2013-05-12 5 views
1

Я пытаюсь отправить/получить данные со встроенным устройством с использованием настраиваемого протокола. struct.pack() и unpack() кажутся, что они выполнили бы эту работу, но аргумент fmt не является достаточно гибким для обработки массивов переменной длины.Упаковка/распаковка сложных данных в Python

Пример: устройство посылает [отчет события] [число событий] ([типа события] [значение события], [тип события] [значение события], ...)

Где:

  • отчет события (без знака 8-бит)
  • количество событий (без знака 16-бит)
  • типа события (без знака 8-бит)
  • значения события (подписано 16-бит)

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

ответ

3

Рассмотрите возможность использования python-bitstring для реализации двоичных протоколов. Это довольно гибкий и простой в использовании.

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

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