On Thursday, 8 August 2019 22:48:11 UTC+2, Spencer Du  wrote:
> Ok so here is some code below. How do I write an if code block to execute 
> some commands when I subscribe to the topic: 
> microscope/light_sheet_microscope/UI and which has a message which is a 
> device type published to it. I want to execute some code to check if the 
> device has a python file in the currently directory because each device also 
> relates to a python file. If the file exists then import the file into the 
> python program else print an error message. If I need to use on_subscribe 
> callback then tell and show me how the code is to be written and if another 
> method then also tell me and show me how to write the code. I really 
> appreciate all the help you can give me because this is really important for 
> me and I am currently really struggling with MQTT because I need help with 
> writing MQTT code because I am working on MQTT at work.
> 
> import logging
> from datetime import timedelta
> import time
> from thespian.actors import *
> from transitions import Machine
> import paho.mqtt.client as mqtt
> 
> class device(mqtt.Client):
>     def on_connect(self, mqttc, obj, flags, rc):
>      if rc == 0:
>       print("Connected to broker") 
>      else:
>       print("Connection failed")
>      mqttc.subscribe("microscope/light_sheet_microscope/UI")
>     def on_message(self, mqttc, userdata, message):
>         print("message received " ,str(message.payload.decode("utf-8")))
>         print("message topic=",message.topic)
>         print("message qos=",message.qos)
>         print("message retain flag=",message.retain)
>     def on_publish(self, mqttc, obj, mid):
>         print("mid: "+str(mid))
>     def on_subscribe(self, mqttc, obj, mid, granted_qos):
>         print("Subscribed: "+str(mid)+" "+str(granted_qos))
>     def run(self):
>         self.connect("broker.hivemq.com", 1883, 60)
> print("creating new instance laser")
> client = device("Device")
> client.run()
> client.loop_start() #start the loop
> device = "laser"
> time.sleep(2)
> print("Publishing message to topic","microscope/light_sheet_microscope/UI")
> client.publish("microscope/light_sheet_microscope/UI",device)
> time.sleep(2) # wait
> print("subscribing ")
> client.subscribe("microscope/light_sheet_microscope/UI")
> client.loop_stop() #stop the loop
> 
> Thanks
> Spencer

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to