mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-25 17:38:44 -05:00
Compare commits
No commits in common. "66e48503537cbe17c9e24794963fc90d4235e4b3" and "026dc6e3761019308dd609a8d0e610c13425bfca" have entirely different histories.
66e4850353
...
026dc6e376
@ -105,11 +105,6 @@ 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 = [
|
||||||
|
@ -22,7 +22,7 @@ class PacketList(objectstore.ObjectStoreMixin):
|
|||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, *args, **kwargs):
|
||||||
if cls._instance is None:
|
if cls._instance is None:
|
||||||
cls._instance = super().__new__(cls)
|
cls._instance = super().__new__(cls)
|
||||||
cls._maxlen = 50
|
cls._maxlen = 100
|
||||||
cls.data = {
|
cls.data = {
|
||||||
"types": {},
|
"types": {},
|
||||||
"packets": OrderedDict(),
|
"packets": OrderedDict(),
|
||||||
|
@ -77,9 +77,8 @@ class APRSDThreadList:
|
|||||||
age = th.loop_age()
|
age = th.loop_age()
|
||||||
if serializable:
|
if serializable:
|
||||||
age = str(age)
|
age = str(age)
|
||||||
stats[th.name] = {
|
stats[th.__class__.__name__] = {
|
||||||
"name": th.name,
|
"name": th.name,
|
||||||
"class": th.__class__.__name__,
|
|
||||||
"alive": th.is_alive(),
|
"alive": th.is_alive(),
|
||||||
"age": th.loop_age(),
|
"age": th.loop_age(),
|
||||||
"loop_count": th.loop_count,
|
"loop_count": th.loop_count,
|
||||||
|
@ -127,7 +127,8 @@ class SendPacketThread(aprsd_threads.APRSDThread):
|
|||||||
"Message Send Complete. Max attempts reached"
|
"Message Send Complete. Max attempts reached"
|
||||||
f" {packet.retry_count}",
|
f" {packet.retry_count}",
|
||||||
)
|
)
|
||||||
pkt_tracker.remove(packet.msgNo)
|
if not packet.allow_delay:
|
||||||
|
pkt_tracker.remove(packet.msgNo)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Message is still outstanding and needs to be acked.
|
# Message is still outstanding and needs to be acked.
|
||||||
@ -157,24 +158,22 @@ 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.max_retries:
|
if self.packet.send_count == self.packet.retry_count:
|
||||||
# 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.max_retries}",
|
f" {self.packet.retry_count}",
|
||||||
)
|
)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user