MQTT 使用 Python 和 paho-mqtt 发布字节数组



我正在使用paho-mqtt在Python中创建MQTT测试,我需要能够向我的代理发送字节数组。 订阅者查找多个不同数据类型的主题。 基于字符串的有效负载工作正常,但必须在数字类型适当长度的字节数组中接收数值(即 32 位整数必须是 4 个字节的数组(

例如,要发送 32 位整数 (INT32(,有效负载将为 00 00 00 00

如果我想发送十进制 53,我需要发送 00 00 00 35 (0x35 = 53(

由于此测试是作为套件的一部分运行的,因此它需要使用Python,而paho-mqtt是我们选择的mqtt包。

如果有人能告诉我如何使用 paho-mqtt 传输字节数组,我们将不胜感激。

使用 python 结构模块打包二进制数据。 例如:

import struct
struct.pack('i', 53)

将产生:

'5x00x00x00'

(注意:使用您的示例,"5"只是 53 的 ASCII 值(。

此外,要显式指定字节序(字节排序(,请使用:

struct.pack('>i', 53)

这将产生反转的字节:

'x00x00x005'

可以使用重复计数来指定数组。 例如,"10i"表示一个由 10 个 32 位整数组成的数组,每个整数 4 个字节,总共 40 个字节。

有关更多信息,请参阅结构模块文档:https://docs.python.org/2.7/library/struct.html

最新更新