third run with improving arq code

This commit is contained in:
DJ2LS 2023-02-09 18:24:37 +01:00
parent ea2883a85a
commit 1e3314627b

View file

@ -1492,7 +1492,8 @@ class DATA:
""" """
# Only process data if we are in ARQ and BUSY state # Only process data if we are in ARQ and BUSY state
if static.ARQ_STATE and static.TNC_STATE == "BUSY": if not static.ARQ_STATE or static.TNC_STATE != "BUSY":
return
static.DXGRID = b'------' static.DXGRID = b'------'
helpers.add_to_heard_stations( helpers.add_to_heard_stations(
static.DXCALLSIGN, static.DXCALLSIGN,
@ -1512,8 +1513,7 @@ class DATA:
for i in range(0, 6, 2): for i in range(0, 6, 2):
if not missing_area[i: i + 2].endswith(b"\x00\x00"): if not missing_area[i: i + 2].endswith(b"\x00\x00"):
missing = missing_area[i: i + 2] self.rpt_request_buffer.insert(0, missing_area[i: i + 2])
self.rpt_request_buffer.insert(0, missing)
############################################################################################################ ############################################################################################################
# ARQ SESSION HANDLER # ARQ SESSION HANDLER
@ -2167,7 +2167,7 @@ class DATA:
self.mode_list = self.mode_list_high_bw self.mode_list = self.mode_list_high_bw
self.time_list = self.time_list_high_bw self.time_list = self.time_list_high_bw
self.snr_list = self.snr_list_high_bw self.snr_list = self.snr_list_high_bw
elif frametype == FR_TYPE.ARQ_DC_OPEN_W.value and static.LOW_BANDWIDTH_MODE: elif frametype == FR_TYPE.ARQ_DC_OPEN_W.value:
# ISS(w) <-> IRS(n) # ISS(w) <-> IRS(n)
constellation = "ISS(w) <-> IRS(n)" constellation = "ISS(w) <-> IRS(n)"
self.received_LOW_BANDWIDTH_MODE = False self.received_LOW_BANDWIDTH_MODE = False
@ -2181,7 +2181,7 @@ class DATA:
self.mode_list = self.mode_list_low_bw self.mode_list = self.mode_list_low_bw
self.time_list = self.time_list_low_bw self.time_list = self.time_list_low_bw
self.snr_list = self.snr_list_low_bw self.snr_list = self.snr_list_low_bw
elif frametype == FR_TYPE.ARQ_DC_OPEN_N.value and static.LOW_BANDWIDTH_MODE: elif frametype == FR_TYPE.ARQ_DC_OPEN_N.value:
# ISS(n) <-> IRS(n) # ISS(n) <-> IRS(n)
constellation = "ISS(n) <-> IRS(n)" constellation = "ISS(n) <-> IRS(n)"
self.received_LOW_BANDWIDTH_MODE = True self.received_LOW_BANDWIDTH_MODE = True
@ -2459,6 +2459,14 @@ class DATA:
snr=str(static.SNR), snr=str(static.SNR),
) )
if static.RESPOND_TO_CALL: if static.RESPOND_TO_CALL:
self.transmit_ping_ack()
def transmit_ping_ack(self):
"""
transmit a ping ack frame
called by def received_ping
"""
ping_frame = bytearray(self.length_sig0_frame) ping_frame = bytearray(self.length_sig0_frame)
ping_frame[:1] = bytes([FR_TYPE.PING_ACK.value]) ping_frame[:1] = bytes([FR_TYPE.PING_ACK.value])
ping_frame[1:4] = static.DXCALLSIGN_CRC ping_frame[1:4] = static.DXCALLSIGN_CRC
@ -3013,6 +3021,7 @@ class DATA:
self.data_frame_ack_received = state self.data_frame_ack_received = state
def set_listening_modes(self, enable_sig0: bool, enable_sig1: bool, mode: int) -> None: def set_listening_modes(self, enable_sig0: bool, enable_sig1: bool, mode: int) -> None:
# sourcery skip: extract-duplicate-method
""" """
Function for setting the data modes we are listening to for saving cpu power Function for setting the data modes we are listening to for saving cpu power