added ackNumberSend to msgTx
This commit is contained in:
parent
9e4d29a4d0
commit
f1ee95a7b4
|
|
@ -236,6 +236,7 @@ namespace APRSPacketLib {
|
|||
}
|
||||
|
||||
String generateMessagePacket(String callsign, String tocall, String path, String addressee, String message) {
|
||||
message.trim();
|
||||
for(int i = addressee.length(); i < 9; i++) {
|
||||
addressee += ' ';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ bool sosActive = false;
|
|||
bool disableGPS;
|
||||
|
||||
bool miceActive = false;
|
||||
int ackNumberSend;
|
||||
|
||||
APRSPacket lastReceivedPacket;
|
||||
|
||||
|
|
@ -138,6 +139,7 @@ void setup() {
|
|||
LoRa_Utils::setup();
|
||||
BME_Utils::setup();
|
||||
STATION_Utils::loadCallsignIndex();
|
||||
ackNumberSend = random(1,999);
|
||||
|
||||
WiFi.mode(WIFI_OFF);
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "WiFi controller stopped");
|
||||
|
|
@ -170,13 +172,19 @@ void loop() {
|
|||
Config.validateConfigFile(currentBeacon->callsign);
|
||||
miceActive = Config.validateMicE(currentBeacon->micE);
|
||||
}
|
||||
|
||||
if (ackNumberSend >= 999) {
|
||||
ackNumberSend = 1;
|
||||
}
|
||||
|
||||
POWER_Utils::batteryManager();
|
||||
|
||||
if (!Config.simplifiedTrackerMode) {
|
||||
#ifdef HAS_BUTTON
|
||||
userButton.tick();
|
||||
#endif
|
||||
}
|
||||
|
||||
Utils::checkDisplayEcoMode();
|
||||
|
||||
if (keyboardConnected) {
|
||||
|
|
|
|||
|
|
@ -208,21 +208,21 @@ namespace KEYBOARD_Utils {
|
|||
menuDisplay = 1300;
|
||||
} else {
|
||||
show_display(" APRS Thu.", "Sending:", "Happy #APRSThursday", "from LoRa Tracker 73!", 2000);
|
||||
MSG_Utils::sendMessage("ANSRVR","CQ HOTG Happy #APRSThursday from LoRa Tracker 73!");
|
||||
MSG_Utils::sendMessage(0, "ANSRVR", "CQ HOTG Happy #APRSThursday from LoRa Tracker 73!");
|
||||
}
|
||||
} else if (menuDisplay == 131) {
|
||||
if (keyDetected) {
|
||||
menuDisplay = 1310;
|
||||
} else {
|
||||
show_display(" APRS Thu.", "Sending:", "Happy #APRSThursday", "from LoRa Tracker 73!", 2000);
|
||||
MSG_Utils::sendMessage("APRSPH","HOTG Happy #APRSThursday from LoRa Tracker 73!");
|
||||
MSG_Utils::sendMessage(0, "APRSPH", "HOTG Happy #APRSThursday from LoRa Tracker 73!");
|
||||
}
|
||||
} else if (menuDisplay == 132) {
|
||||
show_display(" APRS Thu.", "", " Unsubscribe", " from APRS Thursday", 2000);
|
||||
MSG_Utils::sendMessage("ANSRVR","U HOTG");
|
||||
MSG_Utils::sendMessage(0, "ANSRVR", "U HOTG");
|
||||
} else if (menuDisplay == 133) {
|
||||
show_display(" APRS Thu.", "", " Keep Subscribed" ," for 12hours more", 2000);
|
||||
MSG_Utils::sendMessage("ANSRVR","K HOTG");
|
||||
MSG_Utils::sendMessage(0, "ANSRVR", "K HOTG");
|
||||
}
|
||||
|
||||
else if (menuDisplay == 210) {
|
||||
|
|
@ -251,7 +251,7 @@ namespace KEYBOARD_Utils {
|
|||
|
||||
else if (menuDisplay == 4) {
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, "Loop", "%s", "wrl");
|
||||
MSG_Utils::sendMessage("CA2RXU-15","wrl");
|
||||
MSG_Utils::sendMessage(0, "CA2RXU-15", "wrl");
|
||||
}
|
||||
else if (menuDisplay == 5) {
|
||||
show_display("_WINLINK_", "still on", "development..", 2000); /////////////////////////
|
||||
|
|
@ -340,15 +340,15 @@ namespace KEYBOARD_Utils {
|
|||
messageText = messageText.substring(0,67);
|
||||
}
|
||||
if (menuDisplay==111) {
|
||||
MSG_Utils::sendMessage(messageCallsign, messageText);
|
||||
MSG_Utils::sendMessage(0, messageCallsign, messageText);
|
||||
menuDisplay = 11;
|
||||
} else if (menuDisplay==1300) {
|
||||
messageCallsign = "ANSRVR";
|
||||
MSG_Utils::sendMessage(messageCallsign, "CQ HOTG " + messageText);
|
||||
MSG_Utils::sendMessage(0, messageCallsign, "CQ HOTG " + messageText);
|
||||
menuDisplay = 130;
|
||||
} else if (menuDisplay==1310) {
|
||||
messageCallsign = "APRSPH";
|
||||
MSG_Utils::sendMessage(messageCallsign, "HOTG " + messageText);
|
||||
MSG_Utils::sendMessage(0, messageCallsign, "HOTG " + messageText);
|
||||
menuDisplay = 131;
|
||||
}
|
||||
messageCallsign = "";
|
||||
|
|
|
|||
|
|
@ -304,6 +304,21 @@ namespace MENU_Utils {
|
|||
// waiting for Weather Report
|
||||
break;
|
||||
|
||||
case 50: // 5.Winlink
|
||||
// check si no esta logeado o si
|
||||
show_display("__WINLINK_", "" , "Login Initiation ...", "", "" , "<Back");
|
||||
break;
|
||||
/*case 51: //////////// WINLINK/MAIL MENU ////////////
|
||||
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> waiting", "" , "<Back");
|
||||
break;
|
||||
case 52: //////////// WINLINK/MAIL MENU ////////////
|
||||
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> sended", "" , "<Back");
|
||||
break;
|
||||
case 53: //////////// WINLINK/MAIL MENU ////////////
|
||||
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> ack ...", "" , "<Back");
|
||||
break;*/
|
||||
|
||||
|
||||
case 60: // 6. Extras ---> Flashlight
|
||||
show_display("__EXTRAS__", "> Flashlight (" + checkProcessActive(flashlight) + ")", " DigiRepeater (" + checkProcessActive(digirepeaterActive) + ")", " S.O.S. (" + checkProcessActive(sosActive) + ")","",lastLine);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -24,19 +24,14 @@ extern uint32_t messageLedTime;
|
|||
|
||||
extern bool digirepeaterActive;
|
||||
|
||||
extern APRSPacket lastReceivedPacket;
|
||||
extern int ackNumberSend;
|
||||
|
||||
String firstNearTracker = "";
|
||||
String secondNearTracker = "";
|
||||
String thirdNearTracker = "";
|
||||
String fourthNearTracker = "";
|
||||
extern APRSPacket lastReceivedPacket;
|
||||
|
||||
String lastMessageAPRS = "";
|
||||
int numAPRSMessages = 0;
|
||||
bool noMessageWarning = false;
|
||||
String lastHeardTracker = "NONE";
|
||||
uint32_t lastDeleteListenedTracker = millis();
|
||||
|
||||
|
||||
namespace MSG_Utils {
|
||||
|
||||
|
|
@ -146,14 +141,24 @@ namespace MSG_Utils {
|
|||
}
|
||||
}
|
||||
|
||||
void sendMessage(String station, String textMessage) {
|
||||
void sendMessage(int typeOfMessage, String station, String textMessage) {
|
||||
String newPacket = APRSPacketLib::generateMessagePacket(currentBeacon->callsign,"APLRT1",Config.path,station,textMessage);
|
||||
if (textMessage.indexOf("ack")== 0) {
|
||||
show_display("<<ACK Tx>>", 500);
|
||||
if (station != "WLNK-1") { // don't show Winlink ACK
|
||||
show_display("<<ACK Tx>>", 500);
|
||||
}
|
||||
} else if (station.indexOf("CA2RXU-15") == 0 && textMessage.indexOf("wrl")==0) {
|
||||
show_display("<WEATHER>","", "--- Sending Query ---", 1000);
|
||||
} else {
|
||||
show_display("MSG Tx >>", "", newPacket, 1000);
|
||||
if (station == "WLNK-1") {
|
||||
show_display("WINLINK Tx", "", newPacket, 1000);
|
||||
} else {
|
||||
show_display("MSG Tx >>", "", newPacket, 1000);
|
||||
}
|
||||
}
|
||||
if (typeOfMessage==1) { //forced to send MSG with ack confirmation
|
||||
ackNumberSend++;
|
||||
newPacket += "{" + String(ackNumberSend);
|
||||
}
|
||||
LoRa_Utils::sendNewPacket(newPacket);
|
||||
}
|
||||
|
|
@ -189,7 +194,7 @@ namespace MSG_Utils {
|
|||
String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{")+1);
|
||||
ackMessage.trim();
|
||||
delay(4000);
|
||||
sendMessage(lastReceivedPacket.sender, ackMessage);
|
||||
sendMessage(0, lastReceivedPacket.sender, ackMessage);
|
||||
lastReceivedPacket.message = lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf(":")+1, lastReceivedPacket.message.indexOf("{"));
|
||||
} else {
|
||||
lastReceivedPacket.message = lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf(":")+1);
|
||||
|
|
@ -199,7 +204,7 @@ namespace MSG_Utils {
|
|||
}
|
||||
if (lastReceivedPacket.message.indexOf("ping")==0 || lastReceivedPacket.message.indexOf("Ping")==0 || lastReceivedPacket.message.indexOf("PING")==0) {
|
||||
delay(4000);
|
||||
sendMessage(lastReceivedPacket.sender, "pong, 73!");
|
||||
sendMessage(0, lastReceivedPacket.sender, "pong, 73!");
|
||||
}
|
||||
if (lastReceivedPacket.sender == "CA2RXU-15" && lastReceivedPacket.message.indexOf("WX")==0) { // WX = WeatherReport
|
||||
Serial.println("Weather Report Received");
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace MSG_Utils {
|
|||
void ledNotification();
|
||||
void deleteFile();
|
||||
void saveNewMessage(String typeMessage, String station, String newMessage);
|
||||
void sendMessage(String station, String textMessage);
|
||||
void sendMessage(int typeOfMessage, String station, String textMessage);
|
||||
void checkReceivedMessage(ReceivedLoRaPacket packetReceived);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,12 +19,6 @@ extern std::vector<String> lastHeardStation;
|
|||
extern std::vector<String> lastHeardStation_temp;
|
||||
extern int myBeaconsIndex;
|
||||
|
||||
extern String firstNearTracker;
|
||||
extern String secondNearTracker;
|
||||
extern String thirdNearTracker;
|
||||
extern String fourthNearTracker;
|
||||
|
||||
extern uint32_t lastDeleteListenedTracker;
|
||||
extern uint32_t lastTx;
|
||||
extern uint32_t lastTxTime;
|
||||
|
||||
|
|
@ -47,6 +41,13 @@ extern double lastTxDistance;
|
|||
|
||||
extern bool miceActive;
|
||||
|
||||
String firstNearTracker;
|
||||
String secondNearTracker;
|
||||
String thirdNearTracker;
|
||||
String fourthNearTracker;
|
||||
|
||||
uint32_t lastDeleteListenedTracker;
|
||||
|
||||
|
||||
namespace STATION_Utils {
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,30 @@ namespace WINLINK_Utils {
|
|||
|
||||
void login() {
|
||||
Serial.println("Starting Winlink Login");
|
||||
/*
|
||||
---genero ack number en random
|
||||
---reviso si llega a 999 y paso a 1
|
||||
|
||||
menu50 seria:
|
||||
si no logged:
|
||||
start login
|
||||
read msg/mails
|
||||
delete all msg/mails
|
||||
|
||||
|
||||
si esta logeado pasa a otro menu de :
|
||||
L
|
||||
R
|
||||
Y
|
||||
B
|
||||
y mas
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
// enviar "L" con ack
|
||||
// recibir ack - esperar challenge
|
||||
// recibir challenge con ack
|
||||
|
|
|
|||
Loading…
Reference in New Issue