MQTT发布使用Python和泛美卫生组织,MQTT

问题描述:

我正在使用泛美卫生组织,MQTT在Python中创建一个MQTT测试的字节数组,我需要能够以字节数组发送给我的经纪人。用户寻找不同数据类型的几个主题。基于字符串的有效载荷工作正常,但数值必须以字节数组的形式接收,数字类型的适当长度(即32位整数必须是4字节的数组)MQTT发布使用Python和泛美卫生组织,MQTT

例如发送一个32位整数(INT32)的有效载荷将是00 00 00 00

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

由于这种测试跑了作为的一部分它需要在Python和泛美卫生组织,MQTT套房是我们选择作为我们的MQTT包。

如果有人可以告诉我怎么用泛美卫生组织,MQTT进行传递,将不胜感激字节数组。

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

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

将产生:

'5\x00\x00\x00' 

(注: '5' 只是为53的ASCII值,使用你的例子)。

此外,明确指定字节序(字节顺序),用途:

struct.pack('>i', 53) 

这将产生扭转字节:

'\x00\x00\x005' 

您可以使用重复计数指定数组。例如,“10I”是指10 32位整数,每4个字节,40个字节总的阵列。

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

+1

感谢您的快速答复。解决了它。 –