我正在尝试使用自定义协议(protocol)通过嵌入式设备发送/接收数据。 struct.pack() 和 unpack() 似乎可以完成这项工作,但 fmt 参数似乎不够灵活,无法处理可变长度的数据数组。
示例:设备发送[事件报告][事件数量]([事件类型][事件值],[事件类型][事件值],...)
地点:
- 事件报告(无符号 8 位)
- 事件数量(无符号 16 位)
- 事件类型(无符号 8 位)
- 事件值(有符号 16 位)
将这些数据解码为 Python 的最佳方法是什么?另外,我将如何编码类似的数据结构以发送到设备?
最佳答案
考虑使用python-bitstring实现二进制协议(protocol)。它非常灵活且易于使用。
关于python - 在Python中打包/解包复杂数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512236/