The packet msgNo field is a string, but is typically is an integer
counter to keep track of a specific packet id. The counter was
returning an int, but the packet.msgNo is a string. So, when trying to
delete a packet from the packet tracker, the key for accessing the
packet is the msgNo, which has to be a string. Passing an int, will
cause the packet tracker to not find the packet, and hence silently
fail.
This patch forces the msgNo counter to be a string.
This patch rewrites the packet_list internally to be a dictionary
instead of a list for very fast lookups. This was needed to test for
duplicate packets already in the list.
This patch drops packets that have the same data and are < 60 seconds
in age from the last time we got the packet. On RF based clients
we can get dupes!!
Sometimes over KISS clients (RF), we can get duplicate packets
due to having many digipeters in range of the TNC that aprsd is
connected to. We will now filter out any dupe packets that aprsd
is still in the process of doing it's 3 acks.
After the refactor of the messages object in webchat, we are sending
a direct json dict version of the packet now. This means there is no
msg.id in the dict, but msg.msgNo instead. This should help fix
the display of dupes.
This patch adds an auto mouseover hover popover for displaying
the raw APRS packet.
This patch also adds the notification counter for an unselected tab.
This patch changes the layout containers a bit. Moved the tabs to the
header section and made the tab contents fill the rest of the height of
the browser and it is the only portion that scrolls.
This patch will set the to_call form field to the callsign of the
tab when the tab is activated in the UI.
NOTE: still need to populate it when clicking on the already active
tab.
This patch reworks the webchat UI to work in both desktop
and mobile layouts. Comprimises were made, but there is 1
codebase now between both desktop and mobile.
This patch also includes the new imessage/sms chat look.
This patch saves the webchat conversations messages in the browser's
local storage. When the user comes back to the page, the
conversations are restored.
This patch changes the order of the threads starting. The Keepalive
thread's job is to test the aprsis/kiss client to see if it's up and
running, and then issue a reset if it's down. On SIGINT, the keepalive
might issue that reset in the middle of a shutdown, which might cause
things to hang when everything should be shutting down. Making the
KeepaliveThread first, means it will be the first to be shut down as
well, preventing the next loop from resetting the client.
This patch updates the web ui for webchat to suppress the displaying
of duplicate recieved messages. Dupes can happen over the KISS
interface due to packets being encapsulated by nearby repeaters into 3rd
party packets.
When a dupe message is recieved, the dupe message is flashed 3 times.