From dc832b8edd3fd1a22b8452c6cd2d35b0e770909b Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Thu, 4 Jan 2024 21:13:32 +0100 Subject: [PATCH] adjusted events - still a WIP --- gui/src/js/eventHandler.js | 14 +++++++------- modem/server.py | 8 ++++---- modem/service_manager.py | 1 - modem/websocket_manager.py | 1 - 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/gui/src/js/eventHandler.js b/gui/src/js/eventHandler.js index 73d09785..39855c33 100644 --- a/gui/src/js/eventHandler.js +++ b/gui/src/js/eventHandler.js @@ -79,7 +79,7 @@ export function eventDispatcher(data) { if (data['arq-transfer-outbound']) { switch (data["arq-transfer-outbound"].state) { case "NEW": - message = `Type: ${ev.type}, Session ID: ${ev['arq-transfer-outbound'].session_id}, DXCall: ${ev['arq-transfer-outbound'].dxcall}, Total Bytes: ${ev['arq-transfer-outbound'].total_bytes}, State: ${ev['arq-transfer-outbound'].state}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Total Bytes: ${data['arq-transfer-outbound'].total_bytes}, State: ${data['arq-transfer-outbound'].state}`; displayToast("success", "bi-check-circle", message, 5000); return case "OPEN_SENT": @@ -91,7 +91,7 @@ export function eventDispatcher(data) { return case "BURST_SENT": - message = `Type: ${ev.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Received Bytes: ${data['arq-transfer-outbound'].received_bytes}/${data['arq-transfer-outbound'].total_bytes}, State: ${data['arq-transfer-outbound'].state}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Received Bytes: ${data['arq-transfer-outbound'].received_bytes}/${data['arq-transfer-outbound'].total_bytes}, State: ${data['arq-transfer-outbound'].state}`; displayToast("info", "bi-info-circle", message, 5000); return @@ -100,12 +100,12 @@ export function eventDispatcher(data) { return case "ABORTED": - message = `Type: ${ev.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Total Bytes: ${data['arq-transfer-outbound'].total_bytes}, Success: ${data['arq-transfer-outbound'].success ? 'Yes' : 'No'}, State: ${data['arq-transfer-outbound'].state}, Data: ${data['arq-transfer-outbound'].data ? 'Available' : 'Not Available'}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Total Bytes: ${data['arq-transfer-outbound'].total_bytes}, Success: ${data['arq-transfer-outbound'].success ? 'Yes' : 'No'}, State: ${data['arq-transfer-outbound'].state}, Data: ${data['arq-transfer-outbound'].data ? 'Available' : 'Not Available'}`; displayToast("warning", "bi-exclamation-triangle", message, 5000); return case "FAILED": - message = `Type: ${ev.type}, Session ID: ${ev['arq-transfer-outbound'].session_id}, DXCall: ${ev['arq-transfer-outbound'].dxcall}, Total Bytes: ${ev['arq-transfer-outbound'].total_bytes}, Success: ${ev['arq-transfer-outbound'].success ? 'Yes' : 'No'}, State: ${ev['arq-transfer-outbound'].state}, Data: ${ev['arq-transfer-outbound'].data ? 'Available' : 'Not Available'}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Total Bytes: ${data['arq-transfer-outbound'].total_bytes}, Success: ${data['arq-transfer-outbound'].success ? 'Yes' : 'No'}, State: ${data['arq-transfer-outbound'].state}, Data: ${data['arq-transfer-outbound'].data ? 'Available' : 'Not Available'}`; displayToast("danger", "bi-x-octagon", message, 5000); return } @@ -114,7 +114,7 @@ export function eventDispatcher(data) { if (data['arq-transfer-inbound']) { switch (data["arq-transfer-inbound"].state) { case "NEW": - message = `Type: ${ev.type}, Session ID: ${ev['arq-transfer-outbound'].session_id}, DXCall: ${ev['arq-transfer-outbound'].dxcall}, State: ${ev['arq-transfer-outbound'].state}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, State: ${data['arq-transfer-outbound'].state}`; displayToast("info", "bi-info-circle", message, 5000); return @@ -124,7 +124,7 @@ export function eventDispatcher(data) { return case "INFO_ACK_SENT": - message = `Type: ${ev.type}, Session ID: ${data['arq-transfer-inbound'].session_id}, DXCall: ${data['arq-transfer-inbound'].dxcall}, Received Bytes: ${data['arq-transfer-inbound'].received_bytes}/${data['arq-transfer-inbound'].total_bytes}, State: ${data['arq-transfer-inbound'].state}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-inbound'].session_id}, DXCall: ${data['arq-transfer-inbound'].dxcall}, Received Bytes: ${data['arq-transfer-inbound'].received_bytes}/${data['arq-transfer-inbound'].total_bytes}, State: ${data['arq-transfer-inbound'].state}`; displayToast("info", "bi-info-circle", message, 5000); return @@ -141,7 +141,7 @@ export function eventDispatcher(data) { return case "FAILED": - message = `Type: ${ev.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Received Bytes: ${data['arq-transfer-outbound'].received_bytes}/${data['arq-transfer-outbound'].total_bytes}, State: ${data['arq-transfer-outbound'].state}`; + message = `Type: ${data.type}, Session ID: ${data['arq-transfer-outbound'].session_id}, DXCall: ${data['arq-transfer-outbound'].dxcall}, Received Bytes: ${data['arq-transfer-outbound'].received_bytes}/${data['arq-transfer-outbound'].total_bytes}, State: ${data['arq-transfer-outbound'].state}`; displayToast("info", "bi-info-circle", message, 5000); return } diff --git a/modem/server.py b/modem/server.py index ff38a570..c370adea 100644 --- a/modem/server.py +++ b/modem/server.py @@ -50,7 +50,7 @@ app.state_queue = queue.Queue() # queue which holds latest states app.modem_events = queue.Queue() # queue which holds latest events app.modem_fft = queue.Queue() # queue which holds latest fft data app.modem_service = queue.Queue() # start / stop modem service -app.event_manager = event_manager.EventManager([queue.Queue()]) +app.event_manager = event_manager.EventManager([app.modem_events]) # TODO remove the app.modem_event custom queue # init state manager app.state_manager = state_manager.StateManager(app.state_queue) @@ -84,9 +84,9 @@ def validate(req, param, validator, isRequired = True): # Takes a transmit command and puts it in the transmit command queue def enqueue_tx_command(cmd_class, params = {}): - command = cmd_class(app.config_manager.read(), app.state_manager, app.modem_events, params) + command = cmd_class(app.config_manager.read(), app.state_manager, app.event_manager, params) app.logger.info(f"Command {command.get_name()} running...") - command.run(app.modem_events, app.service_manager.modem) + command.run(app.modem_events, app.service_manager.modem) # TODO remove the app.modem_event custom queue ## REST API @app.route('/', methods=['GET']) @@ -260,7 +260,7 @@ def post_modem_send_raw_stop(): # Event websocket @sock.route('/events') def sock_events(sock): - wsm.handle_connection(sock, wsm.events_client_list, app.modem_events) + wsm.handle_connection(sock, wsm.events_client_list, app.modem_events) # TODO remove the app.modem_event custom queue @sock.route('/fft') def sock_fft(sock): diff --git a/modem/service_manager.py b/modem/service_manager.py index b51f1003..6909a8f3 100644 --- a/modem/service_manager.py +++ b/modem/service_manager.py @@ -16,7 +16,6 @@ class SM: self.beacon = False self.app = app self.config = self.app.config_manager.read() - self.modem_events = app.modem_events self.modem_fft = app.modem_fft self.modem_service = app.modem_service self.states = app.state_manager diff --git a/modem/websocket_manager.py b/modem/websocket_manager.py index bd592079..0c8539b9 100644 --- a/modem/websocket_manager.py +++ b/modem/websocket_manager.py @@ -26,7 +26,6 @@ def handle_connection(sock, client_list, event_queue): def transmit_sock_data_worker(client_list, event_queue): while True: event = event_queue.get() - if isinstance(event, str): print(f"WARNING: Queue event:\n'{event}'\n still in string format") json_event = event