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) {
|
String generateMessagePacket(String callsign, String tocall, String path, String addressee, String message) {
|
||||||
|
message.trim();
|
||||||
for(int i = addressee.length(); i < 9; i++) {
|
for(int i = addressee.length(); i < 9; i++) {
|
||||||
addressee += ' ';
|
addressee += ' ';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@ bool sosActive = false;
|
||||||
bool disableGPS;
|
bool disableGPS;
|
||||||
|
|
||||||
bool miceActive = false;
|
bool miceActive = false;
|
||||||
|
int ackNumberSend;
|
||||||
|
|
||||||
APRSPacket lastReceivedPacket;
|
APRSPacket lastReceivedPacket;
|
||||||
|
|
||||||
|
|
@ -138,6 +139,7 @@ void setup() {
|
||||||
LoRa_Utils::setup();
|
LoRa_Utils::setup();
|
||||||
BME_Utils::setup();
|
BME_Utils::setup();
|
||||||
STATION_Utils::loadCallsignIndex();
|
STATION_Utils::loadCallsignIndex();
|
||||||
|
ackNumberSend = random(1,999);
|
||||||
|
|
||||||
WiFi.mode(WIFI_OFF);
|
WiFi.mode(WIFI_OFF);
|
||||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "WiFi controller stopped");
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "WiFi controller stopped");
|
||||||
|
|
@ -171,12 +173,18 @@ void loop() {
|
||||||
miceActive = Config.validateMicE(currentBeacon->micE);
|
miceActive = Config.validateMicE(currentBeacon->micE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ackNumberSend >= 999) {
|
||||||
|
ackNumberSend = 1;
|
||||||
|
}
|
||||||
|
|
||||||
POWER_Utils::batteryManager();
|
POWER_Utils::batteryManager();
|
||||||
|
|
||||||
if (!Config.simplifiedTrackerMode) {
|
if (!Config.simplifiedTrackerMode) {
|
||||||
#ifdef HAS_BUTTON
|
#ifdef HAS_BUTTON
|
||||||
userButton.tick();
|
userButton.tick();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::checkDisplayEcoMode();
|
Utils::checkDisplayEcoMode();
|
||||||
|
|
||||||
if (keyboardConnected) {
|
if (keyboardConnected) {
|
||||||
|
|
|
||||||
|
|
@ -208,21 +208,21 @@ namespace KEYBOARD_Utils {
|
||||||
menuDisplay = 1300;
|
menuDisplay = 1300;
|
||||||
} else {
|
} else {
|
||||||
show_display(" APRS Thu.", "Sending:", "Happy #APRSThursday", "from LoRa Tracker 73!", 2000);
|
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) {
|
} else if (menuDisplay == 131) {
|
||||||
if (keyDetected) {
|
if (keyDetected) {
|
||||||
menuDisplay = 1310;
|
menuDisplay = 1310;
|
||||||
} else {
|
} else {
|
||||||
show_display(" APRS Thu.", "Sending:", "Happy #APRSThursday", "from LoRa Tracker 73!", 2000);
|
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) {
|
} else if (menuDisplay == 132) {
|
||||||
show_display(" APRS Thu.", "", " Unsubscribe", " from APRS Thursday", 2000);
|
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) {
|
} else if (menuDisplay == 133) {
|
||||||
show_display(" APRS Thu.", "", " Keep Subscribed" ," for 12hours more", 2000);
|
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) {
|
else if (menuDisplay == 210) {
|
||||||
|
|
@ -251,7 +251,7 @@ namespace KEYBOARD_Utils {
|
||||||
|
|
||||||
else if (menuDisplay == 4) {
|
else if (menuDisplay == 4) {
|
||||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, "Loop", "%s", "wrl");
|
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) {
|
else if (menuDisplay == 5) {
|
||||||
show_display("_WINLINK_", "still on", "development..", 2000); /////////////////////////
|
show_display("_WINLINK_", "still on", "development..", 2000); /////////////////////////
|
||||||
|
|
@ -340,15 +340,15 @@ namespace KEYBOARD_Utils {
|
||||||
messageText = messageText.substring(0,67);
|
messageText = messageText.substring(0,67);
|
||||||
}
|
}
|
||||||
if (menuDisplay==111) {
|
if (menuDisplay==111) {
|
||||||
MSG_Utils::sendMessage(messageCallsign, messageText);
|
MSG_Utils::sendMessage(0, messageCallsign, messageText);
|
||||||
menuDisplay = 11;
|
menuDisplay = 11;
|
||||||
} else if (menuDisplay==1300) {
|
} else if (menuDisplay==1300) {
|
||||||
messageCallsign = "ANSRVR";
|
messageCallsign = "ANSRVR";
|
||||||
MSG_Utils::sendMessage(messageCallsign, "CQ HOTG " + messageText);
|
MSG_Utils::sendMessage(0, messageCallsign, "CQ HOTG " + messageText);
|
||||||
menuDisplay = 130;
|
menuDisplay = 130;
|
||||||
} else if (menuDisplay==1310) {
|
} else if (menuDisplay==1310) {
|
||||||
messageCallsign = "APRSPH";
|
messageCallsign = "APRSPH";
|
||||||
MSG_Utils::sendMessage(messageCallsign, "HOTG " + messageText);
|
MSG_Utils::sendMessage(0, messageCallsign, "HOTG " + messageText);
|
||||||
menuDisplay = 131;
|
menuDisplay = 131;
|
||||||
}
|
}
|
||||||
messageCallsign = "";
|
messageCallsign = "";
|
||||||
|
|
|
||||||
|
|
@ -304,6 +304,21 @@ namespace MENU_Utils {
|
||||||
// waiting for Weather Report
|
// waiting for Weather Report
|
||||||
break;
|
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
|
case 60: // 6. Extras ---> Flashlight
|
||||||
show_display("__EXTRAS__", "> Flashlight (" + checkProcessActive(flashlight) + ")", " DigiRepeater (" + checkProcessActive(digirepeaterActive) + ")", " S.O.S. (" + checkProcessActive(sosActive) + ")","",lastLine);
|
show_display("__EXTRAS__", "> Flashlight (" + checkProcessActive(flashlight) + ")", " DigiRepeater (" + checkProcessActive(digirepeaterActive) + ")", " S.O.S. (" + checkProcessActive(sosActive) + ")","",lastLine);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -24,19 +24,14 @@ extern uint32_t messageLedTime;
|
||||||
|
|
||||||
extern bool digirepeaterActive;
|
extern bool digirepeaterActive;
|
||||||
|
|
||||||
extern APRSPacket lastReceivedPacket;
|
extern int ackNumberSend;
|
||||||
|
|
||||||
String firstNearTracker = "";
|
extern APRSPacket lastReceivedPacket;
|
||||||
String secondNearTracker = "";
|
|
||||||
String thirdNearTracker = "";
|
|
||||||
String fourthNearTracker = "";
|
|
||||||
|
|
||||||
String lastMessageAPRS = "";
|
String lastMessageAPRS = "";
|
||||||
int numAPRSMessages = 0;
|
int numAPRSMessages = 0;
|
||||||
bool noMessageWarning = false;
|
bool noMessageWarning = false;
|
||||||
String lastHeardTracker = "NONE";
|
String lastHeardTracker = "NONE";
|
||||||
uint32_t lastDeleteListenedTracker = millis();
|
|
||||||
|
|
||||||
|
|
||||||
namespace MSG_Utils {
|
namespace MSG_Utils {
|
||||||
|
|
||||||
|
|
@ -146,15 +141,25 @@ 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);
|
String newPacket = APRSPacketLib::generateMessagePacket(currentBeacon->callsign,"APLRT1",Config.path,station,textMessage);
|
||||||
if (textMessage.indexOf("ack")== 0) {
|
if (textMessage.indexOf("ack")== 0) {
|
||||||
|
if (station != "WLNK-1") { // don't show Winlink ACK
|
||||||
show_display("<<ACK Tx>>", 500);
|
show_display("<<ACK Tx>>", 500);
|
||||||
|
}
|
||||||
} else if (station.indexOf("CA2RXU-15") == 0 && textMessage.indexOf("wrl")==0) {
|
} else if (station.indexOf("CA2RXU-15") == 0 && textMessage.indexOf("wrl")==0) {
|
||||||
show_display("<WEATHER>","", "--- Sending Query ---", 1000);
|
show_display("<WEATHER>","", "--- Sending Query ---", 1000);
|
||||||
|
} else {
|
||||||
|
if (station == "WLNK-1") {
|
||||||
|
show_display("WINLINK Tx", "", newPacket, 1000);
|
||||||
} else {
|
} else {
|
||||||
show_display("MSG Tx >>", "", newPacket, 1000);
|
show_display("MSG Tx >>", "", newPacket, 1000);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (typeOfMessage==1) { //forced to send MSG with ack confirmation
|
||||||
|
ackNumberSend++;
|
||||||
|
newPacket += "{" + String(ackNumberSend);
|
||||||
|
}
|
||||||
LoRa_Utils::sendNewPacket(newPacket);
|
LoRa_Utils::sendNewPacket(newPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,7 +194,7 @@ namespace MSG_Utils {
|
||||||
String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{")+1);
|
String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{")+1);
|
||||||
ackMessage.trim();
|
ackMessage.trim();
|
||||||
delay(4000);
|
delay(4000);
|
||||||
sendMessage(lastReceivedPacket.sender, ackMessage);
|
sendMessage(0, lastReceivedPacket.sender, ackMessage);
|
||||||
lastReceivedPacket.message = lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf(":")+1, lastReceivedPacket.message.indexOf("{"));
|
lastReceivedPacket.message = lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf(":")+1, lastReceivedPacket.message.indexOf("{"));
|
||||||
} else {
|
} else {
|
||||||
lastReceivedPacket.message = lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf(":")+1);
|
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) {
|
if (lastReceivedPacket.message.indexOf("ping")==0 || lastReceivedPacket.message.indexOf("Ping")==0 || lastReceivedPacket.message.indexOf("PING")==0) {
|
||||||
delay(4000);
|
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
|
if (lastReceivedPacket.sender == "CA2RXU-15" && lastReceivedPacket.message.indexOf("WX")==0) { // WX = WeatherReport
|
||||||
Serial.println("Weather Report Received");
|
Serial.println("Weather Report Received");
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ namespace MSG_Utils {
|
||||||
void ledNotification();
|
void ledNotification();
|
||||||
void deleteFile();
|
void deleteFile();
|
||||||
void saveNewMessage(String typeMessage, String station, String newMessage);
|
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);
|
void checkReceivedMessage(ReceivedLoRaPacket packetReceived);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,6 @@ extern std::vector<String> lastHeardStation;
|
||||||
extern std::vector<String> lastHeardStation_temp;
|
extern std::vector<String> lastHeardStation_temp;
|
||||||
extern int myBeaconsIndex;
|
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 lastTx;
|
||||||
extern uint32_t lastTxTime;
|
extern uint32_t lastTxTime;
|
||||||
|
|
||||||
|
|
@ -47,6 +41,13 @@ extern double lastTxDistance;
|
||||||
|
|
||||||
extern bool miceActive;
|
extern bool miceActive;
|
||||||
|
|
||||||
|
String firstNearTracker;
|
||||||
|
String secondNearTracker;
|
||||||
|
String thirdNearTracker;
|
||||||
|
String fourthNearTracker;
|
||||||
|
|
||||||
|
uint32_t lastDeleteListenedTracker;
|
||||||
|
|
||||||
|
|
||||||
namespace STATION_Utils {
|
namespace STATION_Utils {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,30 @@ namespace WINLINK_Utils {
|
||||||
|
|
||||||
void login() {
|
void login() {
|
||||||
Serial.println("Starting Winlink 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
|
// enviar "L" con ack
|
||||||
// recibir ack - esperar challenge
|
// recibir ack - esperar challenge
|
||||||
// recibir challenge con ack
|
// recibir challenge con ack
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue