mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
ARQ WIP
This commit is contained in:
parent
1fab9f8e53
commit
bf89828c75
5 changed files with 15 additions and 19 deletions
|
@ -25,3 +25,12 @@ class ARQSession():
|
||||||
def get_mode_by_speed_level(self, speed_level):
|
def get_mode_by_speed_level(self, speed_level):
|
||||||
return self.MODE_BY_SPEED[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)
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import threading
|
import threading
|
||||||
import data_frame_factory
|
import data_frame_factory
|
||||||
import queue
|
import queue
|
||||||
|
import arq_session
|
||||||
|
|
||||||
class ARQSessionIRS():
|
class ARQSessionIRS(arq_session.ARQSession):
|
||||||
|
|
||||||
STATE_CONN_REQ_RECEIVED = 0
|
STATE_CONN_REQ_RECEIVED = 0
|
||||||
STATE_WAITING_DATA = 1
|
STATE_WAITING_DATA = 1
|
||||||
|
@ -15,9 +16,8 @@ class ARQSessionIRS():
|
||||||
TIMEOUT_DATA = 2
|
TIMEOUT_DATA = 2
|
||||||
|
|
||||||
def __init__(self, config: dict, tx_frame_queue: queue.Queue, dxcall: str, session_id: int):
|
def __init__(self, config: dict, tx_frame_queue: queue.Queue, dxcall: str, session_id: int):
|
||||||
self.config = config
|
super().__init__(config, tx_frame_queue, dxcall)
|
||||||
self.tx_frame_queue = tx_frame_queue
|
|
||||||
self.dxcall = dxcall
|
|
||||||
self.id = session_id
|
self.id = session_id
|
||||||
|
|
||||||
self.received_data = b''
|
self.received_data = b''
|
||||||
|
@ -38,9 +38,6 @@ class ARQSessionIRS():
|
||||||
self.log(f"ARQ Session {self.id} state {self.state}")
|
self.log(f"ARQ Session {self.id} state {self.state}")
|
||||||
self.state = state
|
self.state = state
|
||||||
|
|
||||||
def transmit_frame(self, frame: bytearray):
|
|
||||||
self.tx_frame_queue.put(frame)
|
|
||||||
|
|
||||||
def set_modem_decode_modes(self, modes):
|
def set_modem_decode_modes(self, modes):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -41,15 +41,6 @@ class ARQSessionISS(arq_session.ARQSession):
|
||||||
self.log(f"ARQ Session {self.id} state {self.state}")
|
self.log(f"ARQ Session {self.id} state {self.state}")
|
||||||
self.state = 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):
|
def runner(self):
|
||||||
if not self.connect():
|
if not self.connect():
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -49,7 +49,7 @@ class TestARQSession(unittest.TestCase):
|
||||||
self.iss_to_irs_channel = threading.Thread(target=self.channelWorker,
|
self.iss_to_irs_channel = threading.Thread(target=self.channelWorker,
|
||||||
args=[self.iss_modem_transmit_queue,
|
args=[self.iss_modem_transmit_queue,
|
||||||
self.irs_frame_dispatcher],
|
self.irs_frame_dispatcher],
|
||||||
name = "IRS to ISS channel")
|
name = "ISS to IRS channel")
|
||||||
self.iss_to_irs_channel.start()
|
self.iss_to_irs_channel.start()
|
||||||
|
|
||||||
self.irs_to_iss_channel = threading.Thread(target=self.channelWorker,
|
self.irs_to_iss_channel = threading.Thread(target=self.channelWorker,
|
||||||
|
|
|
@ -35,8 +35,7 @@ class TestDataFrameFactory(unittest.TestCase):
|
||||||
|
|
||||||
self.assertEqual(frame_data['origin'], self.factory.myfullcall)
|
self.assertEqual(frame_data['origin'], self.factory.myfullcall)
|
||||||
|
|
||||||
frame_session_id = int.from_bytes(frame_data['session_id'], 'big')
|
self.assertEqual(frame_data['session_id'] , session_id)
|
||||||
self.assertEqual(frame_session_id , session_id)
|
|
||||||
|
|
||||||
def testCQ(self):
|
def testCQ(self):
|
||||||
frame = self.factory.build_cq()
|
frame = self.factory.build_cq()
|
||||||
|
|
Loading…
Reference in a new issue