From a8d1d576ad5e4cd9b5c50d416a89cba38dca2bfe Mon Sep 17 00:00:00 2001 From: dj2ls Date: Thu, 17 Feb 2022 12:30:38 +0100 Subject: [PATCH] sending twice before lowering speed-level possible this helps avoiding a problem with lost burst ACK --- tnc/data_handler.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tnc/data_handler.py b/tnc/data_handler.py index c4e54ecc..44256c71 100644 --- a/tnc/data_handler.py +++ b/tnc/data_handler.py @@ -329,6 +329,7 @@ class DATA(): if not static.RX_FRAME_BUFFER.endswith(temp_burst_buffer): static.RX_FRAME_BUFFER += temp_burst_buffer static.RX_BURST_BUFFER = [] + else: structlog.get_logger("structlog").info("[TNC] ARQ | RX | Frame already received - sending ACK again") static.RX_BURST_BUFFER = [] @@ -1275,7 +1276,13 @@ class DATA(): else: print("TIMEOUT") self.frame_received_counter = 0 - self.speed_level -= 1 + self.burst_nack_counter += 1 + + if self.burst_nack_counter >= 2: + self.speed_level -= 1 + print(self.burst_nack_counter) + print(self.speed_level) + self.burst_nack_counter = 0 if self.speed_level <= 0: self.speed_level = 0