Что касается упаковки ascii и python

У меня есть некоторые проблемы с упаковкой Python, его генерированием массива байтов из диапазона от 0x00 до 0xff, я полагаю, и большинство из них не соответствуют представлению ascii.

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

Я могу избежать этого, отправив 2 байта вместо одного, например, 0x11 кодируется как 0x7d, 0x31. а 0x13 кодируется как 0x7d, 0x33. Эта опция усложняет на принимающей стороне поддержку временного массива байтов и итеративную проверку точности двух строк и преобразование их обратно в одну. - сложный

используйте кодировку base64 - просто, но только увеличивает данные на 25% больше .. я использую радиосвязь .. это очень сложно, я не знаю, что делать .. помогите мне ..!


person harsha    schedule 18.02.2014    source источник
comment
Вы пробовали работать с файлами FITS?? с ними намного проще обращаться   -  person Srivatsan    schedule 18.02.2014


Ответы (1)


Вот как вы кодируете и декодируете байты в python:

>>> '\x41'
'A'

Если вы хотите сделать это с помощью функции, используйте chr(int()):

chr(65)
'A'

Расшифровать известную строку:

ord('A')
65

Шестнадцатеричный в целое:

int('0x41', 16)
65

Int в шестнадцатеричный:

hex(65)
'0x41'
person user2197172    schedule 18.02.2014