Python 将参数传递给paho mqtt回调
我是Python新手,每次收到MQTT消息/主题时,我都会尝试运行一个控件来脉冲RGB LED。因此,我创建了一个对象Python 将参数传递给paho mqtt回调,python,multithreading,mqtt,paho,Python,Multithreading,Mqtt,Paho,我是Python新手,每次收到MQTT消息/主题时,我都会尝试运行一个控件来脉冲RGB LED。因此,我创建了一个对象threadObj,以运行线程并循环脉冲动画 我面临的问题是,我不知道如何将对象实例传递给on_消息mqtt回调。我一直在寻找部分函数的应用程序,但现在我不确定是正确的方式做它 这是主脚本: ledPulse类: 将对象实例作为值放在字典中(如果您想更改回调中的值并查看主代码中反映的更改,则可以将对象实例作为值放在任何可变对象(如list)中),然后在实例化MQTT客户机时将
threadObj
,以运行线程并循环脉冲动画
我面临的问题是,我不知道如何将对象实例传递给on_消息
mqtt回调。我一直在寻找部分函数的应用程序,但现在我不确定是正确的方式做它
这是主脚本:
ledPulse类:
将对象实例作为值放在字典中(如果您想更改回调中的值并查看主代码中反映的更改,则可以将对象实例作为值放在任何可变对象(如list)中),然后在实例化MQTT客户机时将对象实例作为userdata的一部分传递。例如:
client_userdata = {'myobject':threadObj}
client = mqtt.Client(userdata=client_userdata)
在on_消息回调中,您可以在userdata变量中访问此字典
userdata['myobject'] <- this is your threadObj
userdata['myobject']好吧,简单的答案是,在发出消息后,您立即添加一个“global threadObj”,这样您就可以使用它,并且它会工作。但是整个脚本需要清理
client_userdata = {'myobject':threadObj}
client = mqtt.Client(userdata=client_userdata)
userdata['myobject'] <- this is your threadObj