From 4d59311f6693a481366286e761914d04de0ea4c7 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Fri, 15 Dec 2023 16:40:05 +0100 Subject: [PATCH] WIP ARQ - more fixes --- modem/arq_session_iss.py | 3 ++- modem/data_frame_factory.py | 5 ++--- modem/modem.py | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modem/arq_session_iss.py b/modem/arq_session_iss.py index 861645cf..a853def8 100644 --- a/modem/arq_session_iss.py +++ b/modem/arq_session_iss.py @@ -18,7 +18,7 @@ class ARQSessionISS(arq_session.ARQSession): RETRIES_CONNECT = 3 TIMEOUT_CONNECT_ACK = 7 - TIMEOUT_TRANSFER = 3 + TIMEOUT_TRANSFER = 10 STATE_TRANSITION = { STATE_OPEN_SENT: { @@ -52,6 +52,7 @@ class ARQSessionISS(arq_session.ARQSession): def transmit_wait_and_retry(self, frame_or_burst, timeout, retries, mode): while retries > 0: + self.event_frame_received = threading.Event() if isinstance(frame_or_burst, list): burst = frame_or_burst else: burst = [frame_or_burst] for f in burst: diff --git a/modem/data_frame_factory.py b/modem/data_frame_factory.py index eeed8609..d9ccd58f 100644 --- a/modem/data_frame_factory.py +++ b/modem/data_frame_factory.py @@ -233,12 +233,11 @@ class DataFrameFactory: def get_available_data_payload_for_mode(self, type: FR_TYPE, mode:codec2.FREEDV_MODE): whole_frame_length = self.get_bytes_per_frame(mode) available = whole_frame_length - 2 # - CRC16 - #available = available - 1 # - FRAME TYPE - + available = available - 1 # - FRAME TYPE + print(self.template_list[type.value].items()) for field, length in self.template_list[type.value].items(): if field != 'frame_length' and isinstance(length, int): available -= length - return available def build_ping(self, destination): diff --git a/modem/modem.py b/modem/modem.py index 146b1090..b29738da 100644 --- a/modem/modem.py +++ b/modem/modem.py @@ -268,7 +268,6 @@ class RF: """ self.demodulator.reset_data_sync() - # get freedv instance by mode mode_transition = { codec2.FREEDV_MODE.datac0: self.freedv_datac0_tx,