From c592c9c178b14eed28430aad3ec5cca61fff835f Mon Sep 17 00:00:00 2001 From: dj2ls Date: Sun, 31 Mar 2024 18:53:46 +0200 Subject: [PATCH] WIP ARQ --- modem/arq_session_iss.py | 1 + modem/codec2.py | 2 +- modem/data_frame_factory.py | 7 ++++++- modem/modulator.py | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modem/arq_session_iss.py b/modem/arq_session_iss.py index ebea54be..c5d3da0d 100644 --- a/modem/arq_session_iss.py +++ b/modem/arq_session_iss.py @@ -182,6 +182,7 @@ class ARQSessionISS(arq_session.ARQSession): return None, None payload_size = self.get_data_payload_size() + print(f"PAYLOAD SIZE: {payload_size}") burst = [] for _ in range(0, self.frames_per_burst): offset = self.confirmed_bytes diff --git a/modem/codec2.py b/modem/codec2.py index b12ec3c9..0f21c4df 100644 --- a/modem/codec2.py +++ b/modem/codec2.py @@ -25,7 +25,7 @@ class FREEDV_MODE(Enum): Enumeration for codec2 modes and names """ signalling = 19 - signalling_ack = 19 + signalling_ack = 20 datac0 = 14 datac1 = 10 datac3 = 12 diff --git a/modem/data_frame_factory.py b/modem/data_frame_factory.py index 5add9421..968cb53f 100644 --- a/modem/data_frame_factory.py +++ b/modem/data_frame_factory.py @@ -207,7 +207,10 @@ class DataFrameFactory: if isinstance(frame_template["frame_length"], int): frame_length = frame_template["frame_length"] else: - frame_length -= 0#2 + frame_length -= 2 + + print(frame_length) + frame = bytearray(frame_length) if frametype in [FR_TYPE.ARQ_BURST_ACK]: buffer_position = 0 @@ -300,6 +303,8 @@ 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 # 2Bytes CRC16 + print("------------------------------") + print(available) available -= 1 # Frame Type for field, length in self.template_list[type.value].items(): if field != 'frame_length' and isinstance(length, int): diff --git a/modem/modulator.py b/modem/modulator.py index 87067c59..c13652cf 100644 --- a/modem/modulator.py +++ b/modem/modulator.py @@ -83,7 +83,8 @@ class Modulator: crc = crc.value.to_bytes(2, byteorder="big") # Append CRC to data buffer buffer += crc - + print(bytes_per_frame) + print(len(buffer)) assert (bytes_per_frame == len(buffer)) data = (ctypes.c_ubyte * bytes_per_frame).from_buffer_copy(buffer) # modulate DATA and save it into mod_out pointer