下面是一个使用Python和paho-mqtt库的示例代码,用于比较之前和当前在MQTT主题上发布的值:
import paho.mqtt.client as mqtt
# 保存上一次发布的值
previous_value = None
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
# 订阅主题
client.subscribe("topic/test")
def on_message(client, userdata, msg):
global previous_value
# 获取当前收到的值
current_value = msg.payload.decode()
# 比较之前和当前的值
if previous_value is not None:
if current_value > previous_value:
print("当前值大于之前的值")
elif current_value < previous_value:
print("当前值小于之前的值")
else:
print("当前值等于之前的值")
# 保存当前值作为之前的值
previous_value = current_value
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("mqtt.broker.com", 1883, 60)
client.loop_forever()
以上示例代码使用paho-mqtt库连接到MQTT代理,并订阅了"topic/test"主题。每当收到新的消息时,会将其与之前保存的值进行比较,并根据结果打印不同的消息。在比较之后,当前值将被保存为之前的值,以便在下一次收到消息时再次进行比较。
上一篇:比较值匹配的对象列表