2

我正在尝试使用自定义协议通过嵌入式设备发送/接收数据。struct.pack() 和 unpack() 似乎可以完成这项工作,但 fmt 参数似乎不够灵活,无法处理可变长度的数据数组。

示例:设备发送 [事件报告] [事件数量] ([事件类型] [事件值], [事件类型] [事件值], ...)

在哪里:

  • 事件报告(无符号 8 位)
  • 事件数(无符号 16 位)
  • 事件类型(无符号 8 位)
  • 事件值(有符号 16 位)

将这些数据解码为 Python 的最佳方法是什么?另外,我将如何编码类似的数据结构以发送到设备?

4

1 回答 1

3

考虑使用python-bitstring来实现二进制协议。它非常灵活且易于使用。

于 2013-05-12T21:35:47.297 回答