我目前正在使用通过MQTT发送字节的传感器,并且我正在使用Paho MQTT模块来创建测试环境,以便我可以了解它的后端进程。 这是我的代码,只是为了连续打印主题发送的消息。
def on_message(sensorclt, userdata, msg):
print(msg.payload)
def on_connect(sensorclt, userdata, flags, rc):
if rc == 0:
print('Connected')
sensorclt.subscribe([(Topics[0], 0), (Topics[1], 0), (Topics[2], 0)])
else:
print("Failed to connect")
sensorclt = mqtt.Client()
sensorclt.connect(host='iot.eclipse.org', port=1883)
sensorclt.on_connect = on_connect
sensorclt.on_message = on_message
sensorclt.loop_forever()
这是几秒钟工作的输出:
b'\x01\x01\x00\x1f\xa4\x94Z\xe3\x03\x00'
b'\x01\x01\x01\x1f\xa4\x94Z\n\x00\x80'
b'\x01\x01\x02\x1f\xa4\x94Z\x06\x00\x00'
b'\x01\x01\x00 \xa4\x94Z\xe4\x03\x00'
b'\x01\x01\x01 \xa4\x94Z\n\x00\x80'
b'\x01\x01\x02 \xa4\x94Z\x06\x00\x00'
b'\x01\x01\x00!\xa4\x94Z\xe3\x03\x00'
b'\x01\x01\x01!\xa4\x94Z\t\x00\x80'
问题是传感器制造商的教程说输出指向应该有10个字节,而不是8个甚至有时7个字节。我可以使用一个简单的节点 - 红色环境来证明该信息,以显示该主题实际上发送的是10个字节,并且永远不会少于该节点,而节点红色总是会收到10个,并且再次,不会少。
为什么会这样?我怎么能反击呢?