From e40ff05190b89dc6f3c9126ec5d5b73eed81c8a0 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Sat, 30 Dec 2023 23:00:27 +0100 Subject: [PATCH] ARQ WIP - data event on IRS --- modem/arq_session_irs.py | 2 +- modem/event_manager.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modem/arq_session_irs.py b/modem/arq_session_irs.py index 701b04dd..eccd52d1 100644 --- a/modem/arq_session_irs.py +++ b/modem/arq_session_irs.py @@ -179,7 +179,7 @@ class ARQSessionIRS(arq_session.ARQSession): self.log("ACK sent") self.set_state(IRS_State.ENDED) self.event_manager.send_arq_session_finished( - False, self.id, self.dxcall, self.total_length, True, self.state.name) + False, self.id, self.dxcall, self.total_length, True, self.state.name, data=self.received_data) else: diff --git a/modem/event_manager.py b/modem/event_manager.py index 5fe57432..851447e1 100644 --- a/modem/event_manager.py +++ b/modem/event_manager.py @@ -1,3 +1,4 @@ +import base64 import json import structlog @@ -53,7 +54,9 @@ class EventManager: } self.broadcast(event) - def send_arq_session_finished(self, outbound: bool, session_id, dxcall, total_bytes, success: bool, state): + def send_arq_session_finished(self, outbound: bool, session_id, dxcall, total_bytes, success: bool, state, data=False): + if data: + data = base64.b64encode(data).decode("UTF-8") direction = 'outbound' if outbound else 'inbound' event = { f"arq-transfer-{direction}": { @@ -62,6 +65,7 @@ class EventManager: 'total_bytes': total_bytes, 'success': success, 'state': state, + 'data': data } } - self.broadcast(event) \ No newline at end of file + self.broadcast(event)