Added new default_ack_send_count config option

There may be applications where the admin might not want a hard
coded 3 acks sent for every RX'd packet.  This patch adds the
ability to change the number of acks sent per RX'd packet.
The default is still 3.
This commit is contained in:
Hemna 2024-04-12 14:36:27 -04:00
parent 4c2a40b7a7
commit 40c028c844
2 changed files with 9 additions and 2 deletions

View File

@ -105,6 +105,11 @@ aprsd_opts = [
"'multiline' will use multiple lines for each packet and is the traditional format." "'multiline' will use multiple lines for each packet and is the traditional format."
"both will log both compact and multiline.", "both will log both compact and multiline.",
), ),
cfg.IntOpt(
"default_ack_send_count",
default=3,
help="The number of times to send an ack packet in response to recieving a packet.",
),
] ]
watch_list_opts = [ watch_list_opts = [

View File

@ -157,22 +157,24 @@ class SendPacketThread(aprsd_threads.APRSDThread):
class SendAckThread(aprsd_threads.APRSDThread): class SendAckThread(aprsd_threads.APRSDThread):
loop_count: int = 1 loop_count: int = 1
max_retries = 3
def __init__(self, packet): def __init__(self, packet):
self.packet = packet self.packet = packet
super().__init__(f"SendAck-{self.packet.msgNo}") super().__init__(f"SendAck-{self.packet.msgNo}")
self.max_retries = CONF.default_ack_send_count
def loop(self): def loop(self):
"""Separate thread to send acks with retries.""" """Separate thread to send acks with retries."""
send_now = False send_now = False
if self.packet.send_count == self.packet.retry_count: if self.packet.send_count == self.max_retries:
# we reached the send limit, don't send again # we reached the send limit, don't send again
# TODO(hemna) - Need to put this in a delayed queue? # TODO(hemna) - Need to put this in a delayed queue?
LOG.debug( LOG.debug(
f"{self.packet.__class__.__name__}" f"{self.packet.__class__.__name__}"
f"({self.packet.msgNo}) " f"({self.packet.msgNo}) "
"Send Complete. Max attempts reached" "Send Complete. Max attempts reached"
f" {self.packet.retry_count}", f" {self.max_retries}",
) )
return False return False