mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
ARQ WIP - Timeout adjustments and added state to logging for debugging...
This commit is contained in:
parent
137ac189fc
commit
2db37adf21
3 changed files with 13 additions and 10 deletions
|
@ -23,7 +23,7 @@ export function connectionFailed(endpoint, event) {
|
||||||
}
|
}
|
||||||
export function stateDispatcher(data) {
|
export function stateDispatcher(data) {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
//console.log(data);
|
console.log(data);
|
||||||
|
|
||||||
stateStore.modem_connection = "connected";
|
stateStore.modem_connection = "connected";
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ class ARQSession():
|
||||||
self.final = False # class wide final state for stopping transmissions on command
|
self.final = False # class wide final state for stopping transmissions on command
|
||||||
|
|
||||||
def log(self, message, isWarning = False):
|
def log(self, message, isWarning = False):
|
||||||
msg = f"[{type(self).__name__}]: {message}"
|
msg = f"[{type(self).__name__}][{self.state}]: {message}"
|
||||||
logger = self.logger.warn if isWarning else self.logger.info
|
logger = self.logger.warn if isWarning else self.logger.info
|
||||||
logger(msg)
|
logger(msg)
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,11 @@ class ISS_State(Enum):
|
||||||
class ARQSessionISS(arq_session.ARQSession):
|
class ARQSessionISS(arq_session.ARQSession):
|
||||||
|
|
||||||
RETRIES_CONNECT = 10
|
RETRIES_CONNECT = 10
|
||||||
TIMEOUT_CONNECT_ACK = 3
|
|
||||||
TIMEOUT_TRANSFER = 3
|
# DJ2LS: 3 seconds seems to be too small for radios with a too slow PTT toggle time
|
||||||
|
# DJ2LS: 3.5 seconds is working well WITHOUT a channel busy detection delay
|
||||||
|
TIMEOUT_CONNECT_ACK = 3.5
|
||||||
|
TIMEOUT_TRANSFER = 3.5
|
||||||
|
|
||||||
STATE_TRANSITION = {
|
STATE_TRANSITION = {
|
||||||
ISS_State.OPEN_SENT: {
|
ISS_State.OPEN_SENT: {
|
||||||
|
@ -108,10 +111,10 @@ class ARQSessionISS(arq_session.ARQSession):
|
||||||
|
|
||||||
if irs_frame["flag"]["FINAL"]:
|
if irs_frame["flag"]["FINAL"]:
|
||||||
if self.confirmed_bytes == len(self.data) and irs_frame["flag"]["CHECKSUM"]:
|
if self.confirmed_bytes == len(self.data) and irs_frame["flag"]["CHECKSUM"]:
|
||||||
self.transmission_ended()
|
self.transmission_ended(irs_frame)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self.transmission_failed()
|
self.transmission_failed(irs_frame)
|
||||||
return
|
return
|
||||||
|
|
||||||
payload_size = self.get_data_payload_size()
|
payload_size = self.get_data_payload_size()
|
||||||
|
@ -126,14 +129,14 @@ class ARQSessionISS(arq_session.ARQSession):
|
||||||
self.launch_twr(burst, self.TIMEOUT_TRANSFER, self.RETRIES_CONNECT, mode='auto')
|
self.launch_twr(burst, self.TIMEOUT_TRANSFER, self.RETRIES_CONNECT, mode='auto')
|
||||||
self.set_state(ISS_State.BURST_SENT)
|
self.set_state(ISS_State.BURST_SENT)
|
||||||
|
|
||||||
def transmission_ended(self):
|
def transmission_ended(self, irs_frame):
|
||||||
self.set_state(ISS_State.ENDED)
|
self.set_state(ISS_State.ENDED)
|
||||||
self.log("All data transfered!")
|
self.log(f"All data transfered! flag_final={irs_frame['flag']['FINAL']}, flag_checksum={irs_frame['flag']['CHECKSUM']}")
|
||||||
self.event_manager.send_arq_session_finished(True, self.id, self.dxcall, len(self.data),True)
|
self.event_manager.send_arq_session_finished(True, self.id, self.dxcall, len(self.data),True)
|
||||||
|
|
||||||
def transmission_failed(self):
|
def transmission_failed(self, irs_frame):
|
||||||
self.set_state(ISS_State.FAILED)
|
self.set_state(ISS_State.FAILED)
|
||||||
self.log("Transmission failed!")
|
self.log(f"Transmission failed! flag_final={irs_frame['flag']['FINAL']}, flag_checksum={irs_frame['flag']['CHECKSUM']}")
|
||||||
self.event_manager.send_arq_session_finished(True, self.id, self.dxcall, len(self.data),False)
|
self.event_manager.send_arq_session_finished(True, self.id, self.dxcall, len(self.data),False)
|
||||||
|
|
||||||
def stop_transmission(self):
|
def stop_transmission(self):
|
||||||
|
|
Loading…
Reference in a new issue