From 848492dc36a382241bb60ebc3b8c53bc6b9c6430 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Fri, 28 Jun 2024 16:05:04 -0400 Subject: [PATCH] updated QueryAnswer for 3rdPartyPacket --- src/LoRa_APRS_iGate.cpp | 2 +- src/aprs_is_utils.cpp | 10 +++++----- src/aprs_is_utils.h | 2 +- src/digi_utils.cpp | 2 +- src/query_utils.cpp | 21 ++++++++++----------- src/query_utils.h | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 9b45c8e..17a5be7 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -37,7 +37,7 @@ ________________________________________________________________________________ #include "A7670_utils.h" #endif -String versionDate = "2024.06.27"; +String versionDate = "2024.06.28"; Configuration Config; WiFiClient espClient; diff --git a/src/aprs_is_utils.cpp b/src/aprs_is_utils.cpp index 27b0711..6bd7fae 100644 --- a/src/aprs_is_utils.cpp +++ b/src/aprs_is_utils.cpp @@ -59,7 +59,7 @@ namespace APRS_IS_Utils { aprsauth += Config.callsign; aprsauth += " pass "; aprsauth += Config.aprs_is.passcode; - aprsauth += " vers CA2RXU_LoRa_iGate 1.3 filter "; + aprsauth += " vers CA2RXU_LoRa_iGate 1.4 filter "; aprsauth += Config.aprs_is.filter; upload(aprsauth); delay(200); @@ -129,7 +129,7 @@ namespace APRS_IS_Utils { return buildedPacket; } - bool processReceivedLoRaMessage(const String& sender, const String& packet) { + bool processReceivedLoRaMessage(const String& sender, const String& packet, bool thirdParty) { String receivedMessage; if (packet.indexOf("{") > 0) { // ack? String ackMessage = "ack"; @@ -162,7 +162,7 @@ namespace APRS_IS_Utils { if (!Config.display.alwaysOn && Config.display.timeout != 0) { display_toggle(true); } - STATION_Utils::addToOutputPacketBuffer(QUERY_Utils::process(receivedMessage, sender, 0)); // LoRa + STATION_Utils::addToOutputPacketBuffer(QUERY_Utils::process(receivedMessage, sender, false, thirdParty)); lastScreenOn = millis(); show_display(firstLine, secondLine, thirdLine, fourthLine, fifthLine, "Callsign = " + sender, "TYPE --> QUERY", 0); return true; @@ -187,7 +187,7 @@ namespace APRS_IS_Utils { Addressee.trim(); bool queryMessage = false; if (packet.indexOf("::") > 10 && Addressee == Config.callsign) { // its a message for me! - queryMessage = processReceivedLoRaMessage(Sender, checkForStartingBytes(AddresseeAndMessage)); + queryMessage = processReceivedLoRaMessage(Sender, checkForStartingBytes(AddresseeAndMessage), false); } if (!queryMessage) { const String& aprsPacket = buildPacketToUpload(packet); @@ -291,7 +291,7 @@ namespace APRS_IS_Utils { } if (receivedMessage.indexOf("?") == 0) { Utils::println("Received Query APRS-IS : " + packet); - String queryAnswer = QUERY_Utils::process(receivedMessage, Sender, 1); // APRSIS + String queryAnswer = QUERY_Utils::process(receivedMessage, Sender, true, false); //Serial.println("---> QUERY Answer : " + queryAnswer.substring(0,queryAnswer.indexOf("\n"))); if (!Config.display.alwaysOn && Config.display.timeout != 0) { display_toggle(true); diff --git a/src/aprs_is_utils.h b/src/aprs_is_utils.h index f481848..7c2b9e1 100644 --- a/src/aprs_is_utils.h +++ b/src/aprs_is_utils.h @@ -12,7 +12,7 @@ namespace APRS_IS_Utils { String checkForStartingBytes(const String& packet); String buildPacketToUpload(const String& packet); - bool processReceivedLoRaMessage(const String& sender, const String& packet); + bool processReceivedLoRaMessage(const String& sender, const String& packet, bool thirdParty); void processLoRaPacket(const String& packet); String buildPacketToTx(const String& aprsisPacket, uint8_t packetType); diff --git a/src/digi_utils.cpp b/src/digi_utils.cpp index fa70c53..804e93d 100644 --- a/src/digi_utils.cpp +++ b/src/digi_utils.cpp @@ -84,7 +84,7 @@ namespace DIGI_Utils { String Addressee = AddresseeAndMessage.substring(0, AddresseeAndMessage.indexOf(":")); Addressee.trim(); if (Addressee == Config.callsign) { // it's a message for me! - queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage); + queryMessage = APRS_IS_Utils::processReceivedLoRaMessage(Sender, AddresseeAndMessage, thirdPartyPacket); } } if (!queryMessage) { diff --git a/src/query_utils.cpp b/src/query_utils.cpp index ad7c7bf..22f0a92 100644 --- a/src/query_utils.cpp +++ b/src/query_utils.cpp @@ -12,12 +12,12 @@ extern int freqError; namespace QUERY_Utils { - String process(const String& query, const String& station, const uint8_t queryOrigin) { + String process(const String& query, const String& station, bool queryFromAPRSIS, bool thirdParty) { String answer; if (query=="?APRS?" || query=="?aprs?" || query=="?Aprs?" || query=="H" || query=="h" || query=="HELP" || query=="Help" || query=="help" || query=="?") { answer.concat("?APRSV ?APRSP ?APRSL ?APRSH ?WHERE callsign"); } else if (query=="?APRSV" || query=="?aprsv" || query=="?Aprsv") { - answer = "CA2RXU_LoRa_iGate 1.3 v"; + answer = "CA2RXU_LoRa_iGate 1.4 v"; answer.concat(versionDate); } else if (query=="?APRSP" || query=="?aprsp" || query=="?Aprsp") { answer = "iGate QTH: "; @@ -53,18 +53,17 @@ namespace QUERY_Utils { processedStation += ' '; } String queryAnswer = Config.callsign; - queryAnswer += ">APLRG1,"; - if (queryOrigin == 1) { // from APRS-IS - queryAnswer += "TCPIP,qAC::"; - } else { // else == 0 , from LoRa - if (Config.beacon.path == "") { - queryAnswer += "RFONLY::"; - } else { - queryAnswer += "RFONLY,"; + queryAnswer += ">APLRG1"; + if (queryFromAPRSIS) { + queryAnswer += ",TCPIP,qAC"; + } else { + if (!thirdParty) queryAnswer += ",RFONLY"; + if (Config.beacon.path != "") { + queryAnswer += ","; queryAnswer += Config.beacon.path; - queryAnswer += "::"; } } + queryAnswer += "::"; queryAnswer += processedStation; queryAnswer += ":"; queryAnswer += answer; diff --git a/src/query_utils.h b/src/query_utils.h index 1bab741..9d1aef7 100644 --- a/src/query_utils.h +++ b/src/query_utils.h @@ -6,7 +6,7 @@ namespace QUERY_Utils { - String process(const String& query, const String& station, const uint8_t queryOrigin); + String process(const String& query, const String& station, bool queryFromAPRSIS, bool thirdParty); }