--- a/LPCMQTT.py Fri Feb 21 14:21:52 2025 +0100
+++ b/LPCMQTT.py Fri Feb 21 16:34:47 2025 +0100
@@ -23,16 +23,48 @@
from runtime.spawn_subprocess import Popen, call, PIPE
+from runtime.loglevels import LogLevelsDict +from runtime import GetPLCObjectSingleton LPCTopic = "/smarteh/"+common_functions.getLPCSerialFromMAC()+"/command"
def _{location}_topic_callback(topic, payload):
- proc = Popen([os.path.join(os.path.dirname(common_functions.__file__), 'mqtt_command.sh')], stdin=PIPE)
- proc.stdin.write(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) + 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) + stdout_thread = threading.Thread(target=WaitForCommandEnd) def _runtime_{location}_mqtt_start():
+ GetPLCObjectSingleton().LogMessage( + "LPC MQTT {name} sub: "+LPCTopic) MQTT_subscribe("{name}", LPCTopic, _{location}_topic_callback)