mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
moved from TODO: to TODO
This commit is contained in:
parent
8e46485d8a
commit
c39af3f830
|
@ -110,7 +110,7 @@ class broadcastHandler:
|
||||||
+ str(self.fec_wakeup_callsign, "UTF-8")
|
+ str(self.fec_wakeup_callsign, "UTF-8")
|
||||||
+ "] ", mode=self.wakeup_mode, bursts=self.broadcast_payload_bursts,
|
+ "] ", mode=self.wakeup_mode, bursts=self.broadcast_payload_bursts,
|
||||||
)
|
)
|
||||||
# TODO: We need a dynamic way of modifying this
|
# TODO We need a dynamic way of modifying this
|
||||||
modem.RECEIVE_DATAC4 = False
|
modem.RECEIVE_DATAC4 = False
|
||||||
self.fec_wakeup_callsign = bytes()
|
self.fec_wakeup_callsign = bytes()
|
||||||
self.wakeup_received = False
|
self.wakeup_received = False
|
||||||
|
|
|
@ -138,8 +138,8 @@ class DATA:
|
||||||
self.snr_list_high_bw = [-100, 0, 3]
|
self.snr_list_high_bw = [-100, 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 = [6 + self.duration_sig0_frame + 1, 6 + self.duration_sig0_frame + 1, 6 + self.duration_sig0_frame + 1]
|
self.time_list_high_bw = [6 + self.duration_sig0_frame + 1, 6 + self.duration_sig0_frame + 1, 6 + self.duration_sig0_frame + 1]
|
||||||
# -------------- AVAILABLE MODES END-----------
|
# -------------- AVAILABLE MODES END-----------
|
||||||
|
|
||||||
|
@ -479,7 +479,7 @@ class DATA:
|
||||||
type=frame_type)
|
type=frame_type)
|
||||||
|
|
||||||
# Set the TRANSMITTING flag before adding an object to the transmit queue
|
# Set the TRANSMITTING flag before adding an object to the transmit queue
|
||||||
# TODO: This is not that nice, we could improve this somehow
|
# TODO This is not that nice, we could improve this somehow
|
||||||
Modem.transmitting = True
|
Modem.transmitting = True
|
||||||
modem.MODEM_TRANSMIT_QUEUE.put([c2_mode, copies, repeat_delay, frame_to_tx])
|
modem.MODEM_TRANSMIT_QUEUE.put([c2_mode, copies, repeat_delay, frame_to_tx])
|
||||||
|
|
||||||
|
@ -570,7 +570,7 @@ class DATA:
|
||||||
# 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() + channel_busy_timeout + 8
|
self.burst_last_received = time.time() + channel_busy_timeout + 8
|
||||||
# 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=3, repeat_delay=0)
|
self.enqueue_frame_for_tx([ack_frame], c2_mode=FREEDV_MODE.sig1.value, copies=3, repeat_delay=0)
|
||||||
|
|
||||||
|
@ -604,7 +604,7 @@ class DATA:
|
||||||
nack_frame[4:8] = len(ARQ.rx_frame_buffer).to_bytes(4, byteorder="big")
|
nack_frame[4:8] = len(ARQ.rx_frame_buffer).to_bytes(4, byteorder="big")
|
||||||
|
|
||||||
# TRANSMIT NACK FRAME FOR BURST
|
# TRANSMIT NACK FRAME FOR BURST
|
||||||
# TODO: Do we have to send ident frame?
|
# TODO Do we have to send ident frame?
|
||||||
# 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)
|
||||||
|
|
||||||
# wait while timeout not reached and our busy state is busy
|
# wait while timeout not reached and our busy state is busy
|
||||||
|
@ -654,11 +654,11 @@ class DATA:
|
||||||
disconnection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_CLOSE.value])
|
disconnection_frame[:1] = bytes([FR_TYPE.ARQ_SESSION_CLOSE.value])
|
||||||
disconnection_frame[1:2] = self.session_id
|
disconnection_frame[1:2] = self.session_id
|
||||||
disconnection_frame[2:5] = Station.dxcallsign_crc
|
disconnection_frame[2:5] = Station.dxcallsign_crc
|
||||||
# TODO: Needed? disconnection_frame[7:13] = helpers.callsign_to_bytes(self.mycallsign)
|
# TODO Needed? disconnection_frame[7:13] = helpers.callsign_to_bytes(self.mycallsign)
|
||||||
# self.enqueue_frame_for_tx([disconnection_frame, self.send_ident_frame(False)], c2_mode=FREEDV_MODE.sig0.value, copies=5, repeat_delay=0)
|
# self.enqueue_frame_for_tx([disconnection_frame, self.send_ident_frame(False)], c2_mode=FREEDV_MODE.sig0.value, copies=5, repeat_delay=0)
|
||||||
# TODO: We need to add the ident frame feature with a seperate PR after publishing latest protocol
|
# TODO We need to add the ident frame feature with a seperate PR after publishing latest protocol
|
||||||
# TODO: We need to wait some time between last arq related signalling frame and ident frame
|
# TODO We need to wait some time between last arq related signalling frame and ident frame
|
||||||
# TODO: Maybe about 500ms - 1500ms to avoid confusion and too much PTT toggles
|
# TODO Maybe about 500ms - 1500ms to avoid confusion and too much PTT toggles
|
||||||
|
|
||||||
# wait while timeout not reached and our busy state is busy
|
# wait while timeout not reached and our busy state is busy
|
||||||
channel_busy_timeout = time.time() + 5
|
channel_busy_timeout = time.time() + 5
|
||||||
|
@ -736,7 +736,7 @@ class DATA:
|
||||||
# free up burst buffer
|
# free up burst buffer
|
||||||
ARQ.rx_burst_buffer = []
|
ARQ.rx_burst_buffer = []
|
||||||
|
|
||||||
# TODO: Needs to be removed as soon as mode error is fixed
|
# TODO Needs to be removed as soon as mode error is fixed
|
||||||
# catch possible modem error which leads into false byteorder
|
# catch possible modem error which leads into false byteorder
|
||||||
# modem possibly decodes too late - data then is pushed to buffer
|
# modem possibly decodes too late - data then is pushed to buffer
|
||||||
# which leads into wrong byteorder
|
# which leads into wrong byteorder
|
||||||
|
@ -851,7 +851,7 @@ class DATA:
|
||||||
# # Check if we received last frame of burst - this is an indicator for missed frames.
|
# # Check if we received last frame of burst - this is an indicator for missed frames.
|
||||||
# # With this way of doing this, we always MUST receive the last
|
# # With this way of doing this, we always MUST receive the last
|
||||||
# # frame of a burst otherwise the entire burst is lost
|
# # frame of a burst otherwise the entire burst is lost
|
||||||
# # TODO: See if a timeout on the send side with re-transmit last burst would help.
|
# # TODO See if a timeout on the send side with re-transmit last burst would help.
|
||||||
# self.log.debug(
|
# self.log.debug(
|
||||||
# "[Modem] last frames of burst received:",
|
# "[Modem] last frames of burst received:",
|
||||||
# frame=self.rx_n_frame_of_burst,
|
# frame=self.rx_n_frame_of_burst,
|
||||||
|
@ -1742,7 +1742,7 @@ class DATA:
|
||||||
Station.dxcallsign = self.dxcallsign
|
Station.dxcallsign = self.dxcallsign
|
||||||
Station.dxcallsign_crc = helpers.get_crc_24(self.dxcallsign)
|
Station.dxcallsign_crc = helpers.get_crc_24(self.dxcallsign)
|
||||||
|
|
||||||
# TODO: we need to check this, maybe placing it to class init
|
# TODO we need to check this, maybe placing it to class init
|
||||||
self.datachannel_timeout = False
|
self.datachannel_timeout = False
|
||||||
self.log.info(
|
self.log.info(
|
||||||
"[Modem] SESSION ["
|
"[Modem] SESSION ["
|
||||||
|
@ -2406,7 +2406,7 @@ class DATA:
|
||||||
# initially set speed_level 0 in case of bad SNR and no matching mode
|
# initially set speed_level 0 in case of bad SNR and no matching mode
|
||||||
self.speed_level = 0
|
self.speed_level = 0
|
||||||
|
|
||||||
# TODO: MOVE THIS TO arq_calculate_speed_level()
|
# TODO MOVE THIS TO arq_calculate_speed_level()
|
||||||
# calculate speed level in correlation to latest known SNR
|
# calculate speed level in correlation to latest known SNR
|
||||||
for i in range(len(self.mode_list)):
|
for i in range(len(self.mode_list)):
|
||||||
if ModemParam.snr >= self.snr_list[i]:
|
if ModemParam.snr >= self.snr_list[i]:
|
||||||
|
@ -2578,7 +2578,7 @@ class DATA:
|
||||||
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
dxcallsign=str(self.dxcallsign, 'UTF-8'),
|
||||||
irs=helpers.bool_to_string(self.is_IRS)
|
irs=helpers.bool_to_string(self.is_IRS)
|
||||||
)
|
)
|
||||||
# TODO: We should display a message to this effect on the UI.
|
# TODO We should display a message to this effect on the UI.
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
"[Modem] protocol version mismatch:",
|
"[Modem] protocol version mismatch:",
|
||||||
received=protocol_version,
|
received=protocol_version,
|
||||||
|
@ -2596,7 +2596,7 @@ class DATA:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if not str(dxcallsign).strip():
|
if not str(dxcallsign).strip():
|
||||||
# TODO: We should display a message to this effect on the UI.
|
# TODO We should display a message to this effect on the UI.
|
||||||
self.log.warning("[Modem] Missing required callsign", dxcallsign=dxcallsign)
|
self.log.warning("[Modem] Missing required callsign", dxcallsign=dxcallsign)
|
||||||
return
|
return
|
||||||
Station.dxcallsign = dxcallsign
|
Station.dxcallsign = dxcallsign
|
||||||
|
@ -2775,7 +2775,7 @@ class DATA:
|
||||||
stop_frame[:1] = bytes([FR_TYPE.ARQ_STOP.value])
|
stop_frame[:1] = bytes([FR_TYPE.ARQ_STOP.value])
|
||||||
stop_frame[1:4] = Station.dxcallsign_crc
|
stop_frame[1:4] = Station.dxcallsign_crc
|
||||||
stop_frame[4:7] = Station.mycallsign_crc
|
stop_frame[4:7] = Station.mycallsign_crc
|
||||||
# TODO: Not sure if we really need the session id when disconnecting
|
# TODO Not sure if we really need the session id when disconnecting
|
||||||
# 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)
|
||||||
|
|
||||||
|
@ -3347,7 +3347,7 @@ class DATA:
|
||||||
DATA BURST
|
DATA BURST
|
||||||
"""
|
"""
|
||||||
# IRS SIDE
|
# IRS SIDE
|
||||||
# TODO: We need to redesign this part for cleaner state handling
|
# TODO We need to redesign this part for cleaner state handling
|
||||||
# Return if not ARQ STATE and not ARQ SESSION STATE as they are different use cases
|
# Return if not ARQ STATE and not ARQ SESSION STATE as they are different use cases
|
||||||
if (
|
if (
|
||||||
not ARQ.arq_state
|
not ARQ.arq_state
|
||||||
|
@ -3376,7 +3376,7 @@ class DATA:
|
||||||
frames_left = 1
|
frames_left = 1
|
||||||
|
|
||||||
timeout = self.burst_last_received + (self.time_list[self.speed_level] * frames_left)
|
timeout = self.burst_last_received + (self.time_list[self.speed_level] * frames_left)
|
||||||
# TODO: Enable this for development
|
# TODO Enable this for development
|
||||||
# print(f"timeout expected in:{round(timeout - time.time())} | frames left: {frames_left} of {self.rx_n_frames_per_burst} | speed level: {self.speed_level}")
|
# print(f"timeout expected in:{round(timeout - time.time())} | frames left: {frames_left} of {self.rx_n_frames_per_burst} | speed level: {self.speed_level}")
|
||||||
if timeout <= time.time() or modem_error_state:
|
if timeout <= time.time() or modem_error_state:
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
|
@ -3409,7 +3409,7 @@ class DATA:
|
||||||
self.speed_level = max(self.speed_level - 1, 0)
|
self.speed_level = max(self.speed_level - 1, 0)
|
||||||
ARQ.arq_speed_level = self.speed_level
|
ARQ.arq_speed_level = self.speed_level
|
||||||
|
|
||||||
# TODO: Create better mechanisms for handling n frames per burst for bad channels
|
# TODO Create better mechanisms for handling n frames per burst for bad channels
|
||||||
# reduce frames per burst
|
# reduce frames per burst
|
||||||
if self.burst_rpt_counter >= 2:
|
if self.burst_rpt_counter >= 2:
|
||||||
tx_n_frames_per_burst = max(self.rx_n_frames_per_burst - 1, 1)
|
tx_n_frames_per_burst = max(self.rx_n_frames_per_burst - 1, 1)
|
||||||
|
@ -3419,11 +3419,11 @@ class DATA:
|
||||||
# Update modes we are listening to
|
# Update modes we are listening to
|
||||||
self.set_listening_modes(True, True, self.mode_list[self.speed_level])
|
self.set_listening_modes(True, True, self.mode_list[self.speed_level])
|
||||||
|
|
||||||
# TODO: Does SNR make sense for NACK if we dont have an actual SNR information?
|
# TODO Does SNR make sense for NACK if we dont have an actual SNR information?
|
||||||
self.send_burst_nack_frame_watchdog(0, tx_n_frames_per_burst)
|
self.send_burst_nack_frame_watchdog(0, tx_n_frames_per_burst)
|
||||||
|
|
||||||
# Update data_channel timestamp
|
# Update data_channel timestamp
|
||||||
# TODO: Disabled this one for testing.
|
# TODO Disabled this one for testing.
|
||||||
# self.data_channel_last_received = time.time()
|
# self.data_channel_last_received = time.time()
|
||||||
self.n_retries_per_burst += 1
|
self.n_retries_per_burst += 1
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -599,7 +599,7 @@ def search_hmac_salt(dxcallsign: bytes, mycallsign: bytes, search_token, data_fr
|
||||||
key = token_list[len(token_list) - _][:-1]
|
key = token_list[len(token_list) - _][:-1]
|
||||||
key = bytes(key, "utf-8")
|
key = bytes(key, "utf-8")
|
||||||
search_digest = hmac.new(key, data_frame, hashlib.sha256).digest()[:4]
|
search_digest = hmac.new(key, data_frame, hashlib.sha256).digest()[:4]
|
||||||
# TODO: Remove this debugging information if not needed anymore
|
# TODO Remove this debugging information if not needed anymore
|
||||||
# print("-----------------------------------------")
|
# print("-----------------------------------------")
|
||||||
# print(_)
|
# print(_)
|
||||||
# print(f" key-------------{key}")
|
# print(f" key-------------{key}")
|
||||||
|
|
|
@ -15,7 +15,7 @@ HF mesh networking prototype and testing module
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TODO: SIGNALLING FOR ACK/NACK:
|
TODO SIGNALLING FOR ACK/NACK:
|
||||||
- mesh-signalling burst is datac13
|
- mesh-signalling burst is datac13
|
||||||
- mesh-signalling frame contains [message id, status, hops, score, payload]
|
- mesh-signalling frame contains [message id, status, hops, score, payload]
|
||||||
- frame type is 1 byte
|
- frame type is 1 byte
|
||||||
|
@ -29,7 +29,7 @@ TODO: SIGNALLING FOR ACK/NACK:
|
||||||
- if done already in list, don't reset retry counter
|
- if done already in list, don't reset retry counter
|
||||||
- delete ACK/NACK if "done" and timestamp older than 1day
|
- delete ACK/NACK if "done" and timestamp older than 1day
|
||||||
|
|
||||||
TODO: SCORE CALCULATION:
|
TODO SCORE CALCULATION:
|
||||||
SNR: negative --> * 2
|
SNR: negative --> * 2
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -412,7 +412,7 @@ class MeshRouter():
|
||||||
self.add_mesh_ping_to_signalling_table(destination, origin, frametype="PING", status="forwarding")
|
self.add_mesh_ping_to_signalling_table(destination, origin, frametype="PING", status="forwarding")
|
||||||
|
|
||||||
def received_mesh_ping_ack(self, data_in):
|
def received_mesh_ping_ack(self, data_in):
|
||||||
# TODO:
|
# TODO
|
||||||
# Check if we have a ping callsign already in signalling table
|
# Check if we have a ping callsign already in signalling table
|
||||||
# if PING, then override and make it a PING-ACK
|
# if PING, then override and make it a PING-ACK
|
||||||
# if not, then add to table
|
# if not, then add to table
|
||||||
|
@ -540,7 +540,7 @@ class MeshRouter():
|
||||||
type=frame_type)
|
type=frame_type)
|
||||||
|
|
||||||
# Set the TRANSMITTING flag before adding an object to the transmit queue
|
# Set the TRANSMITTING flag before adding an object to the transmit queue
|
||||||
# TODO: This is not that nice, we could improve this somehow
|
# TODO This is not that nice, we could improve this somehow
|
||||||
Modem.transmitting = True
|
Modem.transmitting = True
|
||||||
modem.MODEM_TRANSMIT_QUEUE.put([c2_mode, copies, repeat_delay, frame_to_tx])
|
modem.MODEM_TRANSMIT_QUEUE.put([c2_mode, copies, repeat_delay, frame_to_tx])
|
||||||
|
|
||||||
|
|
|
@ -467,7 +467,7 @@ class RF:
|
||||||
AudioParam.audio_record_file.writeframes(x)
|
AudioParam.audio_record_file.writeframes(x)
|
||||||
|
|
||||||
# Avoid decoding when transmitting to reduce CPU
|
# Avoid decoding when transmitting to reduce CPU
|
||||||
# TODO: Overriding this for testing purposes
|
# TODO Overriding this for testing purposes
|
||||||
# if not Modem.transmitting:
|
# if not Modem.transmitting:
|
||||||
length_x = len(x)
|
length_x = len(x)
|
||||||
# Avoid buffer overflow by filling only if buffer for
|
# Avoid buffer overflow by filling only if buffer for
|
||||||
|
@ -492,7 +492,7 @@ class RF:
|
||||||
self.fft_data = x
|
self.fft_data = x
|
||||||
else:
|
else:
|
||||||
if not HamlibParam.ptt_state:
|
if not HamlibParam.ptt_state:
|
||||||
# TODO: Moved to this place for testing
|
# TODO Moved to this place for testing
|
||||||
# Maybe we can avoid moments of silence before transmitting
|
# Maybe we can avoid moments of silence before transmitting
|
||||||
HamlibParam.ptt_state = self.radio.set_ptt(True)
|
HamlibParam.ptt_state = self.radio.set_ptt(True)
|
||||||
jsondata = {"ptt": "True"}
|
jsondata = {"ptt": "True"}
|
||||||
|
@ -546,7 +546,7 @@ class RF:
|
||||||
ModemParam.channel_busy = False
|
ModemParam.channel_busy = False
|
||||||
|
|
||||||
start_of_transmission = time.time()
|
start_of_transmission = time.time()
|
||||||
# TODO: Moved ptt toggle some steps before audio is ready for testing
|
# TODO Moved ptt toggle some steps before audio is ready for testing
|
||||||
# Toggle ptt early to save some time and send ptt state via socket
|
# Toggle ptt early to save some time and send ptt state via socket
|
||||||
# HamlibParam.ptt_state = self.radio.set_ptt(True)
|
# HamlibParam.ptt_state = self.radio.set_ptt(True)
|
||||||
# jsondata = {"ptt": "True"}
|
# jsondata = {"ptt": "True"}
|
||||||
|
@ -1095,7 +1095,7 @@ class RF:
|
||||||
"""Worker for FIFO queue for processing frames to be transmitted"""
|
"""Worker for FIFO queue for processing frames to be transmitted"""
|
||||||
while True:
|
while True:
|
||||||
# print queue size for debugging purposes
|
# print queue size for debugging purposes
|
||||||
# TODO: Lets check why we have several frames in our transmit queue which causes sometimes a double transmission
|
# TODO Lets check why we have several frames in our transmit queue which causes sometimes a double transmission
|
||||||
# we could do a cleanup after a transmission so theres no reason sending twice
|
# we could do a cleanup after a transmission so theres no reason sending twice
|
||||||
queuesize = self.modem_transmit_queue.qsize()
|
queuesize = self.modem_transmit_queue.qsize()
|
||||||
self.log.debug("[MDM] self.modem_transmit_queue", qsize=queuesize)
|
self.log.debug("[MDM] self.modem_transmit_queue", qsize=queuesize)
|
||||||
|
@ -1330,7 +1330,7 @@ class RF:
|
||||||
|
|
||||||
# Reduce area where the busy detection is enabled
|
# Reduce area where the busy detection is enabled
|
||||||
# We want to have this in correlation with mode bandwidth
|
# We want to have this in correlation with mode bandwidth
|
||||||
# TODO: This is not correctly and needs to be checked for correct maths
|
# TODO This is not correctly and needs to be checked for correct maths
|
||||||
# dfftlist[0:1] = 10,15Hz
|
# dfftlist[0:1] = 10,15Hz
|
||||||
# Bandwidth[Hz] / 10,15
|
# Bandwidth[Hz] / 10,15
|
||||||
# narrowband = 563Hz = 56
|
# narrowband = 563Hz = 56
|
||||||
|
@ -1456,7 +1456,7 @@ def get_bytes_per_frame(mode: int) -> int:
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
freedv = open_codec2_instance(mode)
|
freedv = open_codec2_instance(mode)
|
||||||
# TODO: add close session
|
# TODO add close session
|
||||||
# get number of bytes per frame for mode
|
# get number of bytes per frame for mode
|
||||||
return int(codec2.api.freedv_get_bits_per_modem_frame(freedv) / 8)
|
return int(codec2.api.freedv_get_bits_per_modem_frame(freedv) / 8)
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||||||
client.send(sock_data)
|
client.send(sock_data)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.log.info("[SCK] Connection lost", e=err)
|
self.log.info("[SCK] Connection lost", e=err)
|
||||||
# TODO: Check if we really should set connection alive to false.
|
# TODO Check if we really should set connection alive to false.
|
||||||
# This might disconnect all other clients as well...
|
# This might disconnect all other clients as well...
|
||||||
self.connection_alive = False
|
self.connection_alive = False
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
@ -722,7 +722,7 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||||||
# wait some random time
|
# wait some random time
|
||||||
helpers.wait(randrange(5, 25, 5) / 10.0)
|
helpers.wait(randrange(5, 25, 5) / 10.0)
|
||||||
|
|
||||||
# TODO: carefully test this
|
# TODO carefully test this
|
||||||
# avoid sending data while we are receiving codec2 signalling data
|
# avoid sending data while we are receiving codec2 signalling data
|
||||||
interrupt_time = time.time() + 5
|
interrupt_time = time.time() + 5
|
||||||
while ModemParam.is_codec2_traffic and time.time() < interrupt_time:
|
while ModemParam.is_codec2_traffic and time.time() < interrupt_time:
|
||||||
|
@ -854,7 +854,7 @@ class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||||||
def modem_get_rx_buffer(self, received_json):
|
def modem_get_rx_buffer(self, received_json):
|
||||||
try:
|
try:
|
||||||
if not RX_BUFFER.empty():
|
if not RX_BUFFER.empty():
|
||||||
# TODO: REMOVE DEPRECATED MESSAGES
|
# TODO REMOVE DEPRECATED MESSAGES
|
||||||
#output = {
|
#output = {
|
||||||
# "command": "rx_buffer",
|
# "command": "rx_buffer",
|
||||||
# "data-array": [],
|
# "data-array": [],
|
||||||
|
|
Loading…
Reference in a new issue