MTTQ Threaded receive
-
Hi, not sure if this is related to micropython or is a problem with my code.
I am using a thread to listen for messages, while in the main code I am looping every second and sending data.
The purpose is to continually send data but also be able to not miss and quickly respond to a request.
def recv_msg_callback(topic, msg): BUSY = True print(topic +"="+ msg) def listen(arg): while True: try: BUSY = False client.wait_msg() except NameError: pass client.set_callback(recv_msg_callback) client.subscribe('/lights') _thread.start_new_thread(listen,(None,)) while True: if(not BUSY): print("Sending ON") client.publish("/slights", "ON") time.sleep(1) print("Sending OFF") client.publish("/slights", "OFF") time.sleep(1)But the problem is, the main loop is not executing independently of the thread and only fires after a message is received.
The received data (lights=xxxxx) is being transmitted every 5 seconds (just for dev/testing) so what I am expecting is for the main look to send on and off 4 times for every receive but it is not.
Sending OFF b'/lights=4639.61' Sending ON b'/lights=4644.02' Sending OFF b'/lights=4648.55' Sending ON b'/lights=4653.74'What am I doing wrong ??
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login