diff --git a/modem/arq_session.py b/modem/arq_session.py index 17481acc..bbb13403 100644 --- a/modem/arq_session.py +++ b/modem/arq_session.py @@ -25,3 +25,12 @@ class ARQSession(): def get_mode_by_speed_level(self, speed_level): return self.MODE_BY_SPEED[speed_level] + def transmit_frame(self, frame: bytearray): + modem_queue_item = { + 'mode': self.get_mode_by_speed_level(self.speed_level), + 'repeat': 1, + 'repeat_delay': 1, + 'frame': frame, + } + self.tx_frame_queue.put(modem_queue_item) + diff --git a/modem/arq_session_irs.py b/modem/arq_session_irs.py index 81a2ae75..51ea7047 100644 --- a/modem/arq_session_irs.py +++ b/modem/arq_session_irs.py @@ -1,8 +1,9 @@ import threading import data_frame_factory import queue +import arq_session -class ARQSessionIRS(): +class ARQSessionIRS(arq_session.ARQSession): STATE_CONN_REQ_RECEIVED = 0 STATE_WAITING_DATA = 1 @@ -15,9 +16,8 @@ class ARQSessionIRS(): TIMEOUT_DATA = 2 def __init__(self, config: dict, tx_frame_queue: queue.Queue, dxcall: str, session_id: int): - self.config = config - self.tx_frame_queue = tx_frame_queue - self.dxcall = dxcall + super().__init__(config, tx_frame_queue, dxcall) + self.id = session_id self.received_data = b'' @@ -38,9 +38,6 @@ class ARQSessionIRS(): self.log(f"ARQ Session {self.id} state {self.state}") self.state = state - def transmit_frame(self, frame: bytearray): - self.tx_frame_queue.put(frame) - def set_modem_decode_modes(self, modes): pass diff --git a/modem/arq_session_iss.py b/modem/arq_session_iss.py index 979e2602..cc445beb 100644 --- a/modem/arq_session_iss.py +++ b/modem/arq_session_iss.py @@ -41,15 +41,6 @@ class ARQSessionISS(arq_session.ARQSession): self.log(f"ARQ Session {self.id} state {self.state}") self.state = state - def transmit_frame(self, frame: bytearray): - modem_queue_item = { - 'mode': self.get_mode_by_speed_level(self.speed_level), - 'repeat': 1, - 'repeat_delay': 1, - 'frame': frame, - } - self.tx_frame_queue.put(modem_queue_item) - def runner(self): if not self.connect(): return False diff --git a/tests/test_arq_session.py b/tests/test_arq_session.py index c0f73159..d8ea3cc8 100644 --- a/tests/test_arq_session.py +++ b/tests/test_arq_session.py @@ -49,7 +49,7 @@ class TestARQSession(unittest.TestCase): self.iss_to_irs_channel = threading.Thread(target=self.channelWorker, args=[self.iss_modem_transmit_queue, self.irs_frame_dispatcher], - name = "IRS to ISS channel") + name = "ISS to IRS channel") self.iss_to_irs_channel.start() self.irs_to_iss_channel = threading.Thread(target=self.channelWorker, diff --git a/tests/test_data_frame_factory.py b/tests/test_data_frame_factory.py index 8b938fbf..b944031a 100755 --- a/tests/test_data_frame_factory.py +++ b/tests/test_data_frame_factory.py @@ -35,8 +35,7 @@ class TestDataFrameFactory(unittest.TestCase): self.assertEqual(frame_data['origin'], self.factory.myfullcall) - frame_session_id = int.from_bytes(frame_data['session_id'], 'big') - self.assertEqual(frame_session_id , session_id) + self.assertEqual(frame_data['session_id'] , session_id) def testCQ(self): frame = self.factory.build_cq()