sendMessage modificado

This commit is contained in:
richonguzman 2024-05-06 18:15:55 -04:00
parent 4ed587c430
commit ba42204f03
5 changed files with 54 additions and 34 deletions

View File

@ -121,7 +121,7 @@ bool smartBeaconValue = true;
String ackCallsignRequest = ""; // de quien espero ack String ackCallsignRequest = ""; // de quien espero ack
String ackNumberRequest = ""; // cual ack espero String ackNumberRequest = ""; // cual ack espero
int ackNumberSend; int ackRequestNumber; // si
bool ackRequestState = false; bool ackRequestState = false;
String ackDataExpected = ""; String ackDataExpected = "";
uint32_t lastRetryTime = millis(); uint32_t lastRetryTime = millis();
@ -188,7 +188,7 @@ void setup() {
LoRa_Utils::setup(); LoRa_Utils::setup();
BME_Utils::setup(); BME_Utils::setup();
ackNumberSend = random(1,999); ackRequestNumber = 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");
@ -225,7 +225,7 @@ void loop() {
} }
STATION_Utils::checkSmartBeaconValue(); STATION_Utils::checkSmartBeaconValue();
if (ackNumberSend >= 999) ackNumberSend = 1; //if (ackNumberSend >= 999) ackNumberSend = 1; // mover ??
POWER_Utils::batteryManager(); POWER_Utils::batteryManager();

View File

@ -349,21 +349,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);
outputMessagesBuffer.push_back("ANSRVR,CQ HOTG Happy #APRSThursday from LoRa Tracker 73!"); MSG_Utils::addToOutputBuffer(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);
outputMessagesBuffer.push_back("APRSPH,HOTG Happy #APRSThursday from LoRa Tracker 73!"); MSG_Utils::addToOutputBuffer(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);
outputMessagesBuffer.push_back("ANSRVR,U HOTG"); MSG_Utils::addToOutputBuffer(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);
outputMessagesBuffer.push_back("ANSRVR,K HOTG"); MSG_Utils::addToOutputBuffer(0, "ANSRVR", "K HOTG");
} }
else if (menuDisplay == 210) { else if (menuDisplay == 210) {
@ -396,7 +396,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");
outputMessagesBuffer.push_back("CA2RXU-15,wrl"); MSG_Utils::addToOutputBuffer(0, "CA2RXU-15", "wrl");
} }
else if (menuDisplay == 5) { else if (menuDisplay == 5) {
@ -423,7 +423,7 @@ namespace KEYBOARD_Utils {
} }
} else if (menuDisplay == 5000) { } else if (menuDisplay == 5000) {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "L"); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "L");
} else if (menuDisplay == 5010) { } else if (menuDisplay == 5010) {
menuDisplay = 50100; menuDisplay = 50100;
} else if (menuDisplay == 50100) { } else if (menuDisplay == 50100) {
@ -462,16 +462,16 @@ namespace KEYBOARD_Utils {
menuDisplay = 50620; menuDisplay = 50620;
} else if (menuDisplay == 5063) { } else if (menuDisplay == 5063) {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "AL"); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "AL");
} else if (menuDisplay == 5070) { } else if (menuDisplay == 5070) {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "B"); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "B");
menuDisplay = 5; menuDisplay = 5;
} else if (menuDisplay == 5080) { } else if (menuDisplay == 5080) {
menuDisplay = 5081; menuDisplay = 5081;
} else if (menuDisplay == 5084) { } else if (menuDisplay == 5084) {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "/EX"); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "/EX");
winlinkAddressee = ""; winlinkAddressee = "";
winlinkSubject = ""; winlinkSubject = "";
winlinkBody = ""; winlinkBody = "";
@ -571,15 +571,15 @@ namespace KEYBOARD_Utils {
messageText = messageText.substring(0, 67); messageText = messageText.substring(0, 67);
} }
if (menuDisplay == 111) { if (menuDisplay == 111) {
outputMessagesBuffer.push_back(messageCallsign + "," + messageText); MSG_Utils::addToOutputBuffer(0, messageCallsign, messageText);
menuDisplay = 11; menuDisplay = 11;
} else if (menuDisplay == 1300) { } else if (menuDisplay == 1300) {
messageCallsign = "ANSRVR"; messageCallsign = "ANSRVR";
outputMessagesBuffer.push_back(messageCallsign + ",CQ HOTG " + messageText); MSG_Utils::addToOutputBuffer(0, messageCallsign, "CQ HOTG " + messageText);
menuDisplay = 130; menuDisplay = 130;
} else if (menuDisplay == 1310) { } else if (menuDisplay == 1310) {
messageCallsign = "APRSPH"; messageCallsign = "APRSPH";
outputMessagesBuffer.push_back(messageCallsign + ",HOTG " + messageText); MSG_Utils::addToOutputBuffer(0, messageCallsign, "HOTG " + messageText);
menuDisplay = 131; menuDisplay = 131;
} }
messageCallsign = ""; messageCallsign = "";
@ -603,12 +603,12 @@ namespace KEYBOARD_Utils {
winlinkMailNumber = "_?"; winlinkMailNumber = "_?";
} else if (menuDisplay == 5021 && key == 13 && winlinkMailNumber != "_?") { } else if (menuDisplay == 5021 && key == 13 && winlinkMailNumber != "_?") {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "R" + winlinkMailNumber); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "R" + winlinkMailNumber);
winlinkMailNumber = "_?"; winlinkMailNumber = "_?";
menuDisplay = 5020; menuDisplay = 5020;
} else if (menuDisplay == 5031 && key == 13 && winlinkMailNumber != "_?") { } else if (menuDisplay == 5031 && key == 13 && winlinkMailNumber != "_?") {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "Y" + winlinkMailNumber); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "Y" + winlinkMailNumber);
winlinkMailNumber = "_?"; winlinkMailNumber = "_?";
menuDisplay = 5083; menuDisplay = 5083;
} else if (menuDisplay == 5041 && key == 13 && winlinkMailNumber != "_?") { } else if (menuDisplay == 5041 && key == 13 && winlinkMailNumber != "_?") {
@ -622,7 +622,7 @@ namespace KEYBOARD_Utils {
} else if (key == 13 && winlinkAddressee.length() > 0) { } else if (key == 13 && winlinkAddressee.length() > 0) {
winlinkAddressee.trim(); winlinkAddressee.trim();
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "F" + winlinkMailNumber + " " + winlinkAddressee); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "F" + winlinkMailNumber + " " + winlinkAddressee);
winlinkMailNumber = "_?"; winlinkMailNumber = "_?";
winlinkAddressee = ""; winlinkAddressee = "";
menuDisplay = 5040; menuDisplay = 5040;
@ -634,7 +634,7 @@ namespace KEYBOARD_Utils {
} }
} else if (menuDisplay == 5051 && key == 13 && winlinkMailNumber !="_?") { } else if (menuDisplay == 5051 && key == 13 && winlinkMailNumber !="_?") {
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "K" + winlinkMailNumber); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "K" + winlinkMailNumber);
winlinkMailNumber = "_?"; winlinkMailNumber = "_?";
menuDisplay = 5050; menuDisplay = 5050;
} else if (menuDisplay == 50610) { } else if (menuDisplay == 50610) {
@ -661,7 +661,7 @@ namespace KEYBOARD_Utils {
} else if (key == 13 && winlinkAliasComplete.length()>= 1) { } else if (key == 13 && winlinkAliasComplete.length()>= 1) {
winlinkAliasComplete.trim(); winlinkAliasComplete.trim();
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "A " + winlinkAlias + "=" + winlinkAliasComplete); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "A " + winlinkAlias + "=" + winlinkAliasComplete);
winlinkAlias = ""; winlinkAlias = "";
winlinkAliasComplete = ""; winlinkAliasComplete = "";
menuDisplay = 5061; menuDisplay = 5061;
@ -680,7 +680,7 @@ namespace KEYBOARD_Utils {
} else if (key == 13 && winlinkAlias.length()>= 1) { } else if (key == 13 && winlinkAlias.length()>= 1) {
winlinkAlias.trim(); winlinkAlias.trim();
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "A " + winlinkAlias + "="); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "A " + winlinkAlias + "=");
winlinkAlias = ""; winlinkAlias = "";
menuDisplay = 5062; menuDisplay = 5062;
} else if (key == 8) { } else if (key == 8) {
@ -713,7 +713,7 @@ namespace KEYBOARD_Utils {
} else if (key == 13 && winlinkSubject.length() > 0) { } else if (key == 13 && winlinkSubject.length() > 0) {
winlinkSubject.trim(); winlinkSubject.trim();
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", "SP " + winlinkAddressee + " " + winlinkSubject); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "SP " + winlinkAddressee + " " + winlinkSubject);
menuDisplay = 5083; menuDisplay = 5083;
} else if (key == 8) { } else if (key == 8) {
winlinkSubject = winlinkSubject.substring(0, winlinkSubject.length() - 1); winlinkSubject = winlinkSubject.substring(0, winlinkSubject.length() - 1);
@ -730,7 +730,7 @@ namespace KEYBOARD_Utils {
} else if (key == 13 && winlinkBody.length() <= 67) { } else if (key == 13 && winlinkBody.length() <= 67) {
winlinkBody.trim(); winlinkBody.trim();
// reemplazar con buffer // reemplazar con buffer
MSG_Utils::sendMessage(1, "WLNK-1", winlinkBody); MSG_Utils::addToOutputBuffer(1, "WLNK-1", winlinkBody);
menuDisplay = 5084; menuDisplay = 5084;
} else if (key == 8) { } else if (key == 8) {
winlinkBody = winlinkBody.substring(0, winlinkBody.length() - 1); winlinkBody = winlinkBody.substring(0, winlinkBody.length() - 1);

View File

@ -32,7 +32,8 @@ extern bool digirepeaterActive;
extern String ackCallsignRequest; extern String ackCallsignRequest;
extern String ackNumberRequest; extern String ackNumberRequest;
extern int ackNumberSend; extern int ackRequestNumber; //si
//extern int ackNumberSend;
extern String ackDataExpected; extern String ackDataExpected;
extern bool ackRequestState; extern bool ackRequestState;
extern uint8_t winlinkStatus; extern uint8_t winlinkStatus;
@ -230,7 +231,7 @@ namespace MSG_Utils {
#if HAS_TFT #if HAS_TFT
cleanTFT(); cleanTFT();
#endif #endif
if (textMessage.indexOf("ack") == 0) { /*if (textMessage.indexOf("ack") == 0) {
if (station != "WLNK-1") { // don't show Winlink ACK if (station != "WLNK-1") { // don't show Winlink ACK
show_display("<<ACK Tx>>", 500); show_display("<<ACK Tx>>", 500);
} }
@ -246,9 +247,27 @@ namespace MSG_Utils {
if (typeOfMessage == 1) { //forced to send MSG with ack confirmation if (typeOfMessage == 1) { //forced to send MSG with ack confirmation
ackNumberSend++; ackNumberSend++;
newPacket += "{" + String(ackNumberSend); newPacket += "{" + String(ackNumberSend);
} }*/
// MSG_Utils::addToOutputBuffer
LoRa_Utils::sendNewPacket(newPacket); LoRa_Utils::sendNewPacket(newPacket);
} }
String ackRequestNumberGenerator() {
ackRequestNumber++;
if (ackRequestNumber > 999) {
ackRequestNumber = 1;
}
return String(ackRequestNumber);
}
void addToOutputBuffer(uint8_t typeOfMessage, String station, String textMessage) {
if (typeOfMessage == 1) {
outputMessagesBuffer.push_back(station + "," + textMessage + "{" + ackRequestNumberGenerator());
} else {
outputMessagesBuffer.push_back(station + "," + textMessage);
}
}
void processOutputBuffer() { // todos los mensajes de salida deben llegar a este buffer !!! void processOutputBuffer() { // todos los mensajes de salida deben llegar a este buffer !!!
@ -270,7 +289,7 @@ namespace MSG_Utils {
/*unit32-t lastPacketTx = millis() - lastTxTime; /*unit32-t lastPacketTx = millis() - lastTxTime;
if (lastPacketTx > 7 * 1000) { // no enviar un mensaje antes de 7 segundos del ultimo gps. if (lastPacketTx > 7 * 1000) { // no enviar un mensaje antes de 7 segundos del ultimo gps.
}*/ }*/
sendMessage(0, addressee, payload); sendMessage(0, addressee, payload); //????? cero??
outputMessagesBuffer.erase(outputMessagesBuffer.begin()); outputMessagesBuffer.erase(outputMessagesBuffer.begin());
lastMsgRxTime = millis(); // ? lastMsgRxTime = millis(); // ?
} }
@ -305,7 +324,7 @@ namespace MSG_Utils {
String payload = rest.substring(rest.indexOf(",") + 1); String payload = rest.substring(rest.indexOf(",") + 1);
ackNumberRequest = payload.substring(payload.indexOf("{") + 1); ackNumberRequest = payload.substring(payload.indexOf("{") + 1);
ackRequestState = true; ackRequestState = true;
sendMessage(1, ackCallsignRequest, payload); // cambiar "1" !!! sendMessage(1, ackCallsignRequest, payload); // cambiar "1" !!! //????? cero??
lastRetryTime = millis(); lastRetryTime = millis();
if (triesLeft == 1) { if (triesLeft == 1) {
outputAckRequestBuffer.erase(outputAckRequestBuffer.begin()); outputAckRequestBuffer.erase(outputAckRequestBuffer.begin());
@ -361,7 +380,7 @@ namespace MSG_Utils {
if (lastReceivedPacket.message.indexOf("{") >= 0) { if (lastReceivedPacket.message.indexOf("{") >= 0) {
String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{") + 1); String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{") + 1);
ackMessage.trim(); ackMessage.trim();
outputMessagesBuffer.push_back(lastReceivedPacket.sender + "," + ackMessage); addToOutputBuffer(0, lastReceivedPacket.sender, ackMessage);
lastMsgRxTime = millis(); lastMsgRxTime = millis();
lastReceivedPacket.message = lastReceivedPacket.message.substring(0, lastReceivedPacket.message.indexOf("{")); lastReceivedPacket.message = lastReceivedPacket.message.substring(0, lastReceivedPacket.message.indexOf("{"));
} }
@ -370,7 +389,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) {
lastMsgRxTime = millis(); lastMsgRxTime = millis();
outputMessagesBuffer.push_back(lastReceivedPacket.sender + ",pong, 73!"); addToOutputBuffer(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");

View File

@ -17,6 +17,8 @@ namespace MSG_Utils {
void deleteFile(String typeOfFile); void deleteFile(String typeOfFile);
void saveNewMessage(String typeMessage, String station, String newMessage); void saveNewMessage(String typeMessage, String station, String newMessage);
void sendMessage(uint8_t typeOfMessage, String station, String textMessage); void sendMessage(uint8_t typeOfMessage, String station, String textMessage);
String ackRequestNumberGenerator();
void addToOutputBuffer(uint8_t typeOfMessage, String station, String textMessage);
void processOutputBuffer(); void processOutputBuffer();
void checkReceivedMessage(ReceivedLoRaPacket packetReceived); void checkReceivedMessage(ReceivedLoRaPacket packetReceived);

View File

@ -26,8 +26,7 @@ namespace WINLINK_Utils {
challengeAnswer += char(random(65,90)); challengeAnswer += char(random(65,90));
challengeAnswer += char(random(48,57)); challengeAnswer += char(random(48,57));
challengeAnswer += char(random(65,90)); challengeAnswer += char(random(65,90));
delay(500); MSG_Utils::addToOutputBuffer(1, "WLNK-1", challengeAnswer);
MSG_Utils::sendMessage(1, "WLNK-1", challengeAnswer);
} }
void login() { void login() {
@ -37,7 +36,7 @@ namespace WINLINK_Utils {
menuDisplay = 5000; menuDisplay = 5000;
} else { } else {
winlinkStatus = 1; winlinkStatus = 1;
MSG_Utils::sendMessage(1, "WLNK-1", "L"); MSG_Utils::addToOutputBuffer(1, "WLNK-1", "Start");
menuDisplay = 500; menuDisplay = 500;
} }
} }