2016-09-25 6 views
0

Я пытаюсь подключиться к моему MultiWii поверх PySerial, однако я продолжаю получать эту ошибку.Arduino 'Ошибка связи ... строки unicode не поддерживаются, пожалуйста, закодируйте в байтах. PySerial

Error communicating...unicode strings are not supported, please encode to bytes: '$M<\x00ll'

Это часть кода, которая терпит неудачу:

BASIC="\x24\x4d\x3c\x00" 
MSP_ATTITUDE=BASIC+"\x6C\x6C" 
ser.write(MSP_ATTITUDE) 

Я попытался кодирующая струны с .encode(), в котором я получаю эту ошибку:

Error communicating...'bytes' object has no attribute 'encode' 

I 'Пробовал bytearray (MSP_ATTITUDE,' ascii ') и получить предыдущую ошибку.

Я только прошу об этом, потому что этот круг ошибок на самом деле не имеет смысла. Может ли кто-нибудь помочь? Я могу предоставить дополнительную информацию о коде, если это поможет.

Заранее благодарен

ответ

0

Не создавайте строки.

Строки для текста в Юникоде, который \x24\x4d\x3c\x00 нет.

Для произвольных байтов используйте байтовые строки. Вы можете построить их напрямую, используя b''.

>>> type('foo') 
<class 'str'> 

>>> type(b'foo') 
<class 'bytes'> 
0

Вы должны попробовать:

BASIC = b"\x24\x4d\x3c\x00" 
MSP_ATTITUDE = BASIC + b"\x6C\x6C" 

Так что они рассматриваются как bytes объекты и не юникод строк.

 Смежные вопросы

  • Нет связанных вопросов^_^