From 914c328a451039ec2752c288421401a82ad154d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ebbe=20Ba=C3=9F?= Date: Sun, 18 Feb 2024 13:17:15 +0100 Subject: [PATCH] changed to Value again with c_char_p MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ebbe Baß --- server/app.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/server/app.py b/server/app.py index 1b86847..b44f663 100644 --- a/server/app.py +++ b/server/app.py @@ -7,7 +7,8 @@ import os from getmac import get_mac_address import time import sys -from multiprocessing import Process, Manager +from multiprocessing import Process, Value +from ctypes import c_char_p app = Flask(__name__) @@ -108,13 +109,12 @@ def connect_mqtt(): client.connect("localhost", 1883) return client -def mqtt_publisher(shared_dict): +def mqtt_publisher(tube_index): # Create and start a thread for each universe mqtt_client = connect_mqtt() artnetBindIp = get_eth0_ip() artNet = Artnet.Artnet(BINDIP = artnetBindIp, DEBUG = True, SHORTNAME = "PiXelTubeMaster", LONGNAME = "PiXelTubeMaster", PORT = 6454) while True: - tube_index = shared_dict["tube_index"] # print(tube_index) try: # Gets whatever the last Art-Net packet we received is @@ -140,27 +140,25 @@ def mqtt_publisher(shared_dict): artNet.close() sys.exit() -def tube_index_updater(shared_dict): +def tube_index_updater(tube_index): while True: try: cur = db.cursor() cur.execute("SELECT mac_address, universe, dmx_address FROM tubes") - tube_index = cur.fetchall() + result = cur.fetchall() cur.close() - shared_dict["tube_index"] = [str(tube_index)] + tube_index = [str(result)] print("Updated tube index with values: "+str(tube_index)) except Exception as e: print(e) time.sleep(5) if __name__ == "__main__": - manager = Manager() - shared_dict = manager.dict() - shared_dict["tube_index"] = None - ti_updater_thread = Process(target=tube_index_updater, args=(shared_dict)) + tube_index = Value(c_char_p, None) + ti_updater_thread = Process(target=tube_index_updater, args=(tube_index)) ti_updater_thread.start() time.sleep(1) - publisher_thread = Process(target=mqtt_publisher, args=(shared_dict)) + publisher_thread = Process(target=mqtt_publisher, args=(tube_index)) publisher_thread.start() flask_thread = Process(target=flask_api) flask_thread.start() \ No newline at end of file