--- a/LPCMQTT.py Fri Feb 21 16:34:47 2025 +0100
+++ b/LPCMQTT.py Mon Feb 24 15:58:21 2025 +0100
@@ -30,36 +30,36 @@
LPCTopic = "/smarteh/"+common_functions.getLPCSerialFromMAC()+"/command"
+_{location}_lock = threading.Lock() def _{location}_topic_callback(topic, payload):
GetPLCObjectSingleton().LogMessage(
"LPC MQTT {name} rcv: "+topic)
- lock = threading.RLock()
- proc = Popen([os.path.join(os.path.dirname(common_functions.__file__), 'mqtt_command.sh')], stdin=PIPE, stdout=PIPE)
- proc.stdin.write(payload)
+ _{location}_lock.acquire() + proc = Popen([os.path.join(os.path.dirname(common_functions.__file__), 'mqtt_command.sh')], stdin=PIPE, stdout=PIPE) + proc.stdin.write(payload) - def WaitForCommandEnd():
- stdoutdata, stderrdata = proc.communicate()
- returncode = proc.returncode
- GetPLCObjectSingleton().LogMessage(
- "LPC MQTT {name} command success: "+stdoutdata)
- GetPLCObjectSingleton().LogMessage(
- LogLevelsDict["WARNING"],
- "LPC MQTT {name} command error: rc="+str(returncode)+
- " stdout: "+stdoutdata+
- " stderr: "+stderrdata)
+ def WaitForCommandEnd(): + stdoutdata, stderrdata = proc.communicate() + returncode = proc.returncode + _{location}_lock.release() + GetPLCObjectSingleton().LogMessage( + "LPC MQTT {name} command success: "+stdoutdata) + GetPLCObjectSingleton().LogMessage( + LogLevelsDict["WARNING"], + "LPC MQTT {name} command error: rc="+str(returncode)+ + " stdout: "+stdoutdata+ + " stderr: "+stderrdata) - stdout_thread = threading.Thread(target=WaitForCommandEnd)
+ stdout_thread = threading.Thread(target=WaitForCommandEnd) def _runtime_{location}_mqtt_start():
GetPLCObjectSingleton().LogMessage(