Я пытаюсь отправить серию одиночных шестнадцатеричных байтов через 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 с использованием переменных?