У меня есть строка с номерами 5:240
. Из этого я должен отправить числа из строки по их шестнадцатеричному представлению. Номер должен быть в диапазоне двух байтов. Но я хочу отправить точное представление на моем последовательном порту, например '\x00\x05\x00\xf0'
. Может ли кто-нибудь помочь мне в этом?Преобразование строки в шестнадцатеричный для отправки для последовательной связи
Я попытался следующие отрывки, но не успех:
b='5:240'
b = b.split(':')
for i in range(len(b)):
print hex(int(b[i]))
print len(hex(int(b[i])))
Результат:
0x5
3
0xf0
4
Выход показывает шестигранную преобразование, но это не было бы возможно для меня, чтобы отправить его на последовательный порт, причина длина меняется. Может ли кто-нибудь решить эту проблему?
Благодарим за ответ. Но это просто преобразование числа в шестнадцатеричное, где я должен отправить его также на последовательный порт. Для вашего решения это дает мне len (word_hex (int (i))) = 8', которые отправляют 8 символов на порт. Мне нужен только 2 байта (символов) для определенного номера. – abhi1610
ОК. Я получил его после некоторой настройки в скрипте. Чтобы получить желаемый результат, просто удалите '' \\ x "', оставив его пустым, также нужно отредактировать строку. 'print (word_hex (int (i))). encode (" hex ")'. – abhi1610