Отправка шестнадцатеричных значений через telnet в python - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь отправить серию одиночных шестнадцатеричных байтов через telnet, но у меня возникают некоторые проблемы.

import telnetlib

tn = telnetlib.Telnet('192.168.4.1', 23, 5)

a = [0xFF, 0x0C]
b = a[1]
b = chr(b)
b = bytes(b, 'ascii')

tn.write(b)

raise SystemExit

Я не могу отправить весь диапазон от 0x00 до 0xFF.Например, когда я пытаюсь отправить 0xFF, он говорит:

UnicodeEncodeError: кодек «ascii» не может кодировать символ «\ xff» в позиции 0: порядковый номер не в диапазоне (128)

И я обязательно должен отправлять целый шестнадцатеричный байт за раз, чтобы быть полученным модулем UART STM32.

Если я только пишу

a = [0xFF, 0x0C]
b = a[1]    
tn.write(chr(b))

Это дает мне

TypeError: 'в ' требуется строка в качестве левого операнда, а не байты

Как я могу отправлять шестнадцатеричные байты через telnet с использованием переменных?

...