From eea97d01b689feb88e2071da0f4099c64e15a3b3 Mon Sep 17 00:00:00 2001 From: richonguzman Date: Fri, 22 Dec 2023 21:20:01 -0300 Subject: [PATCH] added APRS Thursday --- README.md | 1 + src/LoRa_APRS_Tracker.cpp | 2 +- src/keyboard_utils.cpp | 48 ++++++++++++++++++++++++++++++--------- src/menu_utils.cpp | 35 +++++++++++++++++++++++++--- 4 files changed, 71 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f5765ac..f3bc13c 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ ____________________________________________________ ____________________________________________________ ## Timeline (Versions): +- 2023.12.22 Added APRS_Thrusday Messages to parcitipate from this exercise (https://aprsph.net/aprsthursday/) - 2023.12.19 Added support for T-Beam V1.2 with Neo8M GPS and SX1262 LoRa Modules. - 2023.12.18 Added Mic-E encoding and decoding. - 2023.12.12 Added BMP280 (to the already BME280) support for Wx Telemetry Tx. diff --git a/src/LoRa_APRS_Tracker.cpp b/src/LoRa_APRS_Tracker.cpp index ed44985..fb65ecb 100644 --- a/src/LoRa_APRS_Tracker.cpp +++ b/src/LoRa_APRS_Tracker.cpp @@ -33,7 +33,7 @@ BluetoothSerial SerialBT; OneButton userButton = OneButton(BUTTON_PIN, true, true); #endif -String versionDate = "2023.12.18"; +String versionDate = "2023.12.22"; int myBeaconsIndex = 0; int myBeaconsSize = Config.beacons.size(); diff --git a/src/keyboard_utils.cpp b/src/keyboard_utils.cpp index 72c3451..a5d7b7d 100644 --- a/src/keyboard_utils.cpp +++ b/src/keyboard_utils.cpp @@ -42,10 +42,15 @@ namespace KEYBOARD_Utils { if (menuDisplay < 1) { menuDisplay = 6; } - } else if (menuDisplay >= 10 && menuDisplay <= 12) { + } else if (menuDisplay >= 10 && menuDisplay <= 13) { menuDisplay--; if (menuDisplay < 10) { - menuDisplay = 12; + menuDisplay = 13; + } + } else if (menuDisplay >= 130 && menuDisplay <= 132) { + menuDisplay--; + if (menuDisplay < 130) { + menuDisplay = 132; } } else if (menuDisplay >= 20 && menuDisplay <= 26) { menuDisplay--; @@ -86,11 +91,17 @@ namespace KEYBOARD_Utils { menuDisplay = 1; } } - else if (menuDisplay >= 10 && menuDisplay <= 12) { + else if (menuDisplay >= 10 && menuDisplay <= 13) { menuDisplay++; - if (menuDisplay > 12) { + if (menuDisplay > 13) { menuDisplay = 10; } + } + else if (menuDisplay >= 130 && menuDisplay <= 132) { + menuDisplay++; + if (menuDisplay > 132) { + menuDisplay = 130; + } } else if (menuDisplay == 100) { messagesIterator++; if (messagesIterator == MSG_Utils::getNumAPRSMessages()) { @@ -142,15 +153,16 @@ namespace KEYBOARD_Utils { void leftArrow() { if (menuDisplay >= 1 && menuDisplay <= 6) { menuDisplay = 0; - } else if (menuDisplay >= 10 && menuDisplay <= 12) { - menuDisplay = 1; } else if (menuDisplay==110) { messageCallsign = ""; menuDisplay = 11; } else if (menuDisplay==111) { messageText = ""; menuDisplay = 110; - } else if ((menuDisplay>=20 && menuDisplay<=29) || (menuDisplay==120) || (menuDisplay>=200 && menuDisplay<=290) || (menuDisplay>=60 && menuDisplay<=61) || (menuDisplay==30) || (menuDisplay==40)) { + } else if (menuDisplay==1300) { + messageText = ""; + menuDisplay = 130; + } else if ((menuDisplay>=10 && menuDisplay<=13) || (menuDisplay>=20 && menuDisplay<=29) || (menuDisplay==120) || (menuDisplay>=130 && menuDisplay<=132) || (menuDisplay>=200 && menuDisplay<=290) || (menuDisplay>=60 && menuDisplay<=61) || (menuDisplay==30) || (menuDisplay==40)) { menuDisplay = int(menuDisplay/10); } /* winlinkMailNumber = "";*/ @@ -169,7 +181,7 @@ namespace KEYBOARD_Utils { statusTime = millis(); show_display("__ INFO __", "", " CHANGING CALLSIGN!", 1000); STATION_Utils::saveCallsingIndex(myBeaconsIndex); - } else if ((menuDisplay>=1 && menuDisplay<=3) || (menuDisplay>=11 &&menuDisplay<=12) || (menuDisplay>=20 && menuDisplay<=29)) { + } else if ((menuDisplay>=1 && menuDisplay<=3) || (menuDisplay>=11 &&menuDisplay<=13) || (menuDisplay>=20 && menuDisplay<=29)) { menuDisplay = menuDisplay*10; } else if (menuDisplay == 10) { MSG_Utils::loadMessagesFromMemory(); @@ -183,6 +195,14 @@ namespace KEYBOARD_Utils { show_display("__INFO____", "", "ALL MESSAGES DELETED!", 2000); MSG_Utils::loadNumMessages(); menuDisplay = 12; + } else if (menuDisplay == 130) { + menuDisplay = 1300; + } else if (menuDisplay == 131) { + show_display(" APRS Thu.", "", " Unsubscribe", " from APRS Thursday", 2000); + MSG_Utils::sendMessage("ANSRVR","U HOTG"); + } else if (menuDisplay == 132) { + show_display(" APRS Thu.", "", " Keep Subscribed" ," for 12hours more", 2000); + MSG_Utils::sendMessage("ANSRVR","K HOTG"); } else if (menuDisplay == 210) { @@ -275,7 +295,7 @@ namespace KEYBOARD_Utils { messageCallsign = messageCallsign.substring(0, messageCallsign.length()-1); } messageCallsign.toUpperCase(); - } else if (menuDisplay == 111 && key!= 180) { // Writting Text of Message + } else if ((menuDisplay==111 || menuDisplay==1300) && key!= 180) { // Writting Text of Message if (messageText.length() == 1) { messageText.trim(); } @@ -286,8 +306,14 @@ namespace KEYBOARD_Utils { if (messageText.length() > 67){ messageText = messageText.substring(0,67); } - MSG_Utils::sendMessage(messageCallsign, messageText); - menuDisplay = 11; + if (menuDisplay==111) { + MSG_Utils::sendMessage(messageCallsign, messageText); + menuDisplay = 11; + } else if (menuDisplay==1300) { + messageCallsign = "ANSRVR"; + MSG_Utils::sendMessage(messageCallsign, "CQ HOTG " + messageText); + menuDisplay = 130; + } messageCallsign = ""; messageText = ""; } else if (key == 8) { // Delete Last Key diff --git a/src/menu_utils.cpp b/src/menu_utils.cpp index 8f7d770..be7bd5d 100644 --- a/src/menu_utils.cpp +++ b/src/menu_utils.cpp @@ -92,7 +92,7 @@ namespace MENU_Utils { case 10: // 1.Messages ---> Messages Read - show_display("_MESSAGES_", "> Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", " Write", " Delete", "", lastLine); + show_display("_MESSAGES_", "> Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", " Write", " Delete", " APRSThursday", lastLine); break; case 100: // 1.Messages ---> Messages Read ---> Display Received/Saved APRS Messages { @@ -104,7 +104,7 @@ namespace MENU_Utils { } break; case 11: // 1.Messages ---> Messages Write - show_display("_MESSAGES_", " Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", "> Write", " Delete", "", lastLine); + show_display("_MESSAGES_", " Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", "> Write", " Delete", " APRSThursday", lastLine); break; case 110: // 1.Messages ---> Messages Write ---> Write if (keyDetected) { @@ -125,11 +125,40 @@ namespace MENU_Utils { } break; case 12: // 1.Messages ---> Messages Delete - show_display("_MESSAGES_", " Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", " Write", "> Delete", "", lastLine); + show_display("_MESSAGES_", " Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", " Write", "> Delete", " APRSThursday", lastLine); break; case 120: // 1.Messages ---> Messages Delete ---> Delete: ALL show_display("DELETE_MSG", "", " DELETE ALL?", "", "", " Confirm = LP or '>'"); break; + case 13: // 1.Messages ---> APRSThursday + show_display("_MESSAGES_", " Read (" + String(MSG_Utils::getNumAPRSMessages()) + ")", " Write", " Delete", "> APRSThursday", lastLine); + break; + case 130: // 1.Messages ---> APRSThursday ---> Delete: ALL + show_display(" APRS Thu.", "> Join APRSThursday", " Unsubscribe", " KeepSubscribed+12h", "", lastLine); + break; + case 1300: + if (keyDetected) { + if (messageText.length() <= 67) { + if (messageText.length() < 10) { + show_display("WRITE_MSG>", " - APRSThursday -", "MSG -> " + messageText, "", "", ""); + } else { + show_display("WRITE_MSG>", " - APRSThursday -", "MSG -> " + messageText, "", "", ""); + } + } else { + show_display("WRITE_MSG>", "--- MSG TO LONG! ---", " -> " + messageText, "", "", "", " - APRSThursday -", "No Keyboard Detected", "Can't write Message", "", "1P = Back"); + } + break; + + + case 131: // 1.Messages ---> APRSThursday ---> Delete: ALL + show_display("APRS Thu._", " Join APRSThursday", "> Unsubscribe", " KeepSubscribed+12h", "", lastLine); + break; + case 132: // 1.Messages ---> APRSThursday ---> Delete: ALL + show_display("APRS Thu._", " Join APRSThursday", " Unsubscribe", "> KeepSubscribed+12h", "", lastLine); + break; case 20: // 2.Configuration ---> Callsign