mirror of https://github.com/craigerl/aprsd.git
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:
parent
4c2a40b7a7
commit
40c028c844
|
@ -105,6 +105,11 @@ aprsd_opts = [
|
|||
"'multiline' will use multiple lines for each packet and is the traditional format."
|
||||
"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 = [
|
||||
|
|
|
@ -157,22 +157,24 @@ class SendPacketThread(aprsd_threads.APRSDThread):
|
|||
|
||||
class SendAckThread(aprsd_threads.APRSDThread):
|
||||
loop_count: int = 1
|
||||
max_retries = 3
|
||||
|
||||
def __init__(self, packet):
|
||||
self.packet = packet
|
||||
super().__init__(f"SendAck-{self.packet.msgNo}")
|
||||
self.max_retries = CONF.default_ack_send_count
|
||||
|
||||
def loop(self):
|
||||
"""Separate thread to send acks with retries."""
|
||||
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
|
||||
# TODO(hemna) - Need to put this in a delayed queue?
|
||||
LOG.debug(
|
||||
f"{self.packet.__class__.__name__}"
|
||||
f"({self.packet.msgNo}) "
|
||||
"Send Complete. Max attempts reached"
|
||||
f" {self.packet.retry_count}",
|
||||
f" {self.max_retries}",
|
||||
)
|
||||
return False
|
||||
|
||||
|
|
Loading…
Reference in New Issue