From 4d4598e09ef6278ff6b5d391d82cd7ece8f569d4 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Mon, 13 May 2024 21:00:42 -0400 Subject: [PATCH] buffer added to digimode --- src/digi_utils.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/digi_utils.cpp b/src/digi_utils.cpp index 8b23dd6..f6a4a64 100644 --- a/src/digi_utils.cpp +++ b/src/digi_utils.cpp @@ -64,20 +64,22 @@ namespace DIGI_Utils { if ((packet.substring(0, 3) == "\x3c\xff\x01") && (packet.indexOf("NOGATE") == -1)) { Sender = packet.substring(3, packet.indexOf(">")); if (Sender != Config.callsign) { - STATION_Utils::updateLastHeard(Sender); - Utils::typeOfPacket(packet.substring(3), "Digi"); - AddresseeAndMessage = packet.substring(packet.indexOf("::") + 2); - Addressee = AddresseeAndMessage.substring(0, AddresseeAndMessage.indexOf(":")); - Addressee.trim(); - if (packet.indexOf("::") > 10 && Addressee == Config.callsign) { // its a message for me! - queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage); - } - if (!queryMessage && packet.indexOf("WIDE1-") > 10 && Config.digi.mode == 2) { // If should repeat packet (WIDE1 Digi) - loraPacket = generateDigiRepeatedPacket(packet.substring(3)); - if (loraPacket != "") { - STATION_Utils::addToOutputPacketBuffer(loraPacket); - display_toggle(true); - lastScreenOn = millis(); + if (STATION_Utils::check25SegBuffer(Sender, packet.substring(packet.indexOf(":")+2))) { + STATION_Utils::updateLastHeard(Sender); + Utils::typeOfPacket(packet.substring(3), "Digi"); + AddresseeAndMessage = packet.substring(packet.indexOf("::") + 2); + Addressee = AddresseeAndMessage.substring(0, AddresseeAndMessage.indexOf(":")); + Addressee.trim(); + if (packet.indexOf("::") > 10 && Addressee == Config.callsign) { // its a message for me! + queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage); + } + if (!queryMessage && packet.indexOf("WIDE1-") > 10 && Config.digi.mode == 2) { // If should repeat packet (WIDE1 Digi) + loraPacket = generateDigiRepeatedPacket(packet.substring(3)); + if (loraPacket != "") { + STATION_Utils::addToOutputPacketBuffer(loraPacket); + display_toggle(true); + lastScreenOn = millis(); + } } } }