mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first working version
This commit is contained in:
parent
a9f7fa5783
commit
a238503d9c
2 changed files with 27 additions and 11 deletions
|
@ -108,9 +108,9 @@ class DATA:
|
||||||
FREEDV_MODE.datac4.value,
|
FREEDV_MODE.datac4.value,
|
||||||
]
|
]
|
||||||
# List for minimum SNR operating level for the corresponding mode in self.mode_list
|
# List for minimum SNR operating level for the corresponding mode in self.mode_list
|
||||||
self.snr_list_low_bw = [-5]
|
self.snr_list_low_bw = [-10]
|
||||||
# List for time to wait for corresponding mode in seconds
|
# List for time to wait for corresponding mode in seconds
|
||||||
self.time_list_low_bw = [6]
|
self.time_list_low_bw = [9]
|
||||||
|
|
||||||
# --------------------- HIGH BANDWIDTH
|
# --------------------- HIGH BANDWIDTH
|
||||||
|
|
||||||
|
@ -121,12 +121,12 @@ class DATA:
|
||||||
FREEDV_MODE.datac1.value,
|
FREEDV_MODE.datac1.value,
|
||||||
]
|
]
|
||||||
# List for minimum SNR operating level for the corresponding mode in self.mode_list
|
# List for minimum SNR operating level for the corresponding mode in self.mode_list
|
||||||
self.snr_list_high_bw = [-5, 0, 3]
|
self.snr_list_high_bw = [-10, 0, 3]
|
||||||
# List for time to wait for corresponding mode in seconds
|
# List for time to wait for corresponding mode in seconds
|
||||||
# test with 6,7 --> caused sometimes a frame timeout if ack frame takes longer
|
# test with 6,7 --> caused sometimes a frame timeout if ack frame takes longer
|
||||||
# TODO: Need to check why ACK frames needs more time
|
# TODO: Need to check why ACK frames needs more time
|
||||||
# TODO: Adjust these times
|
# TODO: Adjust these times
|
||||||
self.time_list_high_bw = [7, 7, 8]
|
self.time_list_high_bw = [9, 7, 8]
|
||||||
# -------------- AVAILABLE MODES END-----------
|
# -------------- AVAILABLE MODES END-----------
|
||||||
|
|
||||||
# Mode list for selecting between low bandwidth ( 500Hz ) and modes with higher bandwidth
|
# Mode list for selecting between low bandwidth ( 500Hz ) and modes with higher bandwidth
|
||||||
|
@ -547,7 +547,7 @@ class DATA:
|
||||||
# Transmit frame
|
# Transmit frame
|
||||||
# TODO: Do we have to send , self.send_ident_frame(False) ?
|
# TODO: Do we have to send , self.send_ident_frame(False) ?
|
||||||
# self.enqueue_frame_for_tx([ack_frame, self.send_ident_frame(False)], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
# self.enqueue_frame_for_tx([ack_frame, self.send_ident_frame(False)], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
||||||
self.enqueue_frame_for_tx([ack_frame], c2_mode=FREEDV_MODE.sig1.value, copies=6, repeat_delay=0)
|
self.enqueue_frame_for_tx([ack_frame], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
||||||
|
|
||||||
# reset burst timeout in case we had to wait too long
|
# reset burst timeout in case we had to wait too long
|
||||||
self.burst_last_received = time.time()
|
self.burst_last_received = time.time()
|
||||||
|
@ -598,7 +598,7 @@ class DATA:
|
||||||
while static.CHANNEL_BUSY and time.time() < channel_busy_timeout:
|
while static.CHANNEL_BUSY and time.time() < channel_busy_timeout:
|
||||||
threading.Event().wait(0.01)
|
threading.Event().wait(0.01)
|
||||||
|
|
||||||
self.enqueue_frame_for_tx([nack_frame], c2_mode=FREEDV_MODE.sig1.value, copies=6, repeat_delay=0)
|
self.enqueue_frame_for_tx([nack_frame], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
||||||
# reset burst timeout in case we had to wait too long
|
# reset burst timeout in case we had to wait too long
|
||||||
self.burst_last_received = time.time()
|
self.burst_last_received = time.time()
|
||||||
|
|
||||||
|
@ -646,7 +646,7 @@ class DATA:
|
||||||
while static.CHANNEL_BUSY and time.time() < channel_busy_timeout:
|
while static.CHANNEL_BUSY and time.time() < channel_busy_timeout:
|
||||||
threading.Event().wait(0.01)
|
threading.Event().wait(0.01)
|
||||||
|
|
||||||
self.enqueue_frame_for_tx([disconnection_frame], c2_mode=FREEDV_MODE.sig0.value, copies=6, repeat_delay=0)
|
self.enqueue_frame_for_tx([disconnection_frame], c2_mode=FREEDV_MODE.sig0.value, copies=3, repeat_delay=0)
|
||||||
|
|
||||||
def arq_data_received(
|
def arq_data_received(
|
||||||
self, data_in: bytes, bytes_per_frame: int, snr: float, freedv
|
self, data_in: bytes, bytes_per_frame: int, snr: float, freedv
|
||||||
|
@ -2584,7 +2584,7 @@ class DATA:
|
||||||
# stop_frame[1:2] = self.session_id
|
# stop_frame[1:2] = self.session_id
|
||||||
stop_frame[7:13] = helpers.callsign_to_bytes(self.mycallsign)
|
stop_frame[7:13] = helpers.callsign_to_bytes(self.mycallsign)
|
||||||
|
|
||||||
self.enqueue_frame_for_tx([stop_frame], c2_mode=FREEDV_MODE.sig1.value, copies=6, repeat_delay=0)
|
self.enqueue_frame_for_tx([stop_frame], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
||||||
|
|
||||||
self.arq_cleanup()
|
self.arq_cleanup()
|
||||||
|
|
||||||
|
@ -3018,6 +3018,7 @@ class DATA:
|
||||||
modem.RECEIVE_SIG1 = False
|
modem.RECEIVE_SIG1 = False
|
||||||
modem.RECEIVE_DATAC1 = False
|
modem.RECEIVE_DATAC1 = False
|
||||||
modem.RECEIVE_DATAC3 = False
|
modem.RECEIVE_DATAC3 = False
|
||||||
|
modem.RECEIVE_DATAC4 = False
|
||||||
# modem.RECEIVE_FSK_LDPC_0 = False
|
# modem.RECEIVE_FSK_LDPC_0 = False
|
||||||
modem.RECEIVE_FSK_LDPC_1 = False
|
modem.RECEIVE_FSK_LDPC_1 = False
|
||||||
|
|
||||||
|
@ -3081,24 +3082,34 @@ class DATA:
|
||||||
modem.RECEIVE_SIG0 = enable_sig0
|
modem.RECEIVE_SIG0 = enable_sig0
|
||||||
modem.RECEIVE_SIG1 = enable_sig1
|
modem.RECEIVE_SIG1 = enable_sig1
|
||||||
|
|
||||||
if mode == FREEDV_MODE.datac1.value:
|
if mode == codec2.FREEDV_MODE.datac1.value:
|
||||||
modem.RECEIVE_DATAC1 = True
|
modem.RECEIVE_DATAC1 = True
|
||||||
modem.RECEIVE_DATAC3 = False
|
modem.RECEIVE_DATAC3 = False
|
||||||
|
modem.RECEIVE_DATAC4 = False
|
||||||
modem.RECEIVE_FSK_LDPC_1 = False
|
modem.RECEIVE_FSK_LDPC_1 = False
|
||||||
self.log.debug("[TNC] Changing listening data mode", mode="datac1")
|
self.log.debug("[TNC] Changing listening data mode", mode="datac1")
|
||||||
elif mode == FREEDV_MODE.datac3.value:
|
elif mode == codec2.FREEDV_MODE.datac3.value:
|
||||||
modem.RECEIVE_DATAC1 = False
|
modem.RECEIVE_DATAC1 = False
|
||||||
modem.RECEIVE_DATAC3 = True
|
modem.RECEIVE_DATAC3 = True
|
||||||
|
modem.RECEIVE_DATAC4 = False
|
||||||
modem.RECEIVE_FSK_LDPC_1 = False
|
modem.RECEIVE_FSK_LDPC_1 = False
|
||||||
self.log.debug("[TNC] Changing listening data mode", mode="datac3")
|
self.log.debug("[TNC] Changing listening data mode", mode="datac3")
|
||||||
elif mode == FREEDV_MODE.fsk_ldpc_1.value:
|
elif mode == codec2.FREEDV_MODE.datac4.value:
|
||||||
modem.RECEIVE_DATAC1 = False
|
modem.RECEIVE_DATAC1 = False
|
||||||
modem.RECEIVE_DATAC3 = False
|
modem.RECEIVE_DATAC3 = False
|
||||||
|
modem.RECEIVE_DATAC4 = True
|
||||||
|
modem.RECEIVE_FSK_LDPC_1 = False
|
||||||
|
self.log.debug("[TNC] Changing listening data mode", mode="datac4")
|
||||||
|
elif mode == codec2.FREEDV_MODE.fsk_ldpc_1.value:
|
||||||
|
modem.RECEIVE_DATAC1 = False
|
||||||
|
modem.RECEIVE_DATAC3 = False
|
||||||
|
modem.RECEIVE_DATAC4 = False
|
||||||
modem.RECEIVE_FSK_LDPC_1 = True
|
modem.RECEIVE_FSK_LDPC_1 = True
|
||||||
self.log.debug("[TNC] Changing listening data mode", mode="fsk_ldpc_1")
|
self.log.debug("[TNC] Changing listening data mode", mode="fsk_ldpc_1")
|
||||||
else:
|
else:
|
||||||
modem.RECEIVE_DATAC1 = True
|
modem.RECEIVE_DATAC1 = True
|
||||||
modem.RECEIVE_DATAC3 = True
|
modem.RECEIVE_DATAC3 = True
|
||||||
|
modem.RECEIVE_DATAC4 = True
|
||||||
modem.RECEIVE_FSK_LDPC_1 = True
|
modem.RECEIVE_FSK_LDPC_1 = True
|
||||||
self.log.debug(
|
self.log.debug(
|
||||||
"[TNC] Changing listening data mode", mode="datac1/datac3/fsk_ldpc"
|
"[TNC] Changing listening data mode", mode="datac1/datac3/fsk_ldpc"
|
||||||
|
|
|
@ -315,6 +315,11 @@ class RF:
|
||||||
)
|
)
|
||||||
audio_thread_dat0_datac3.start()
|
audio_thread_dat0_datac3.start()
|
||||||
|
|
||||||
|
audio_thread_dat0_datac4 = threading.Thread(
|
||||||
|
target=self.audio_dat0_datac4, name="AUDIO_THREAD DATAC4", daemon=True
|
||||||
|
)
|
||||||
|
audio_thread_dat0_datac4.start()
|
||||||
|
|
||||||
hamlib_thread = threading.Thread(
|
hamlib_thread = threading.Thread(
|
||||||
target=self.update_rig_data, name="HAMLIB_THREAD", daemon=True
|
target=self.update_rig_data, name="HAMLIB_THREAD", daemon=True
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue