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 ackNumberRequest = ""; // cual ack espero
int ackNumberSend;
int ackRequestNumber; // si
bool ackRequestState = false;
String ackDataExpected = "";
uint32_t lastRetryTime = millis();
@ -188,7 +188,7 @@ void setup() {
LoRa_Utils::setup();
BME_Utils::setup();
ackNumberSend = random(1,999);
ackRequestNumber = random(1,999);
WiFi.mode(WIFI_OFF);
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Main", "WiFi controller stopped");
@ -225,7 +225,7 @@ void loop() {
}
STATION_Utils::checkSmartBeaconValue();
if (ackNumberSend >= 999) ackNumberSend = 1;
//if (ackNumberSend >= 999) ackNumberSend = 1; // mover ??
POWER_Utils::batteryManager();

View File

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

View File

@ -32,7 +32,8 @@ extern bool digirepeaterActive;
extern String ackCallsignRequest;
extern String ackNumberRequest;
extern int ackNumberSend;
extern int ackRequestNumber; //si
//extern int ackNumberSend;
extern String ackDataExpected;
extern bool ackRequestState;
extern uint8_t winlinkStatus;
@ -230,7 +231,7 @@ namespace MSG_Utils {
#if HAS_TFT
cleanTFT();
#endif
if (textMessage.indexOf("ack") == 0) {
/*if (textMessage.indexOf("ack") == 0) {
if (station != "WLNK-1") { // don't show Winlink ACK
show_display("<<ACK Tx>>", 500);
}
@ -246,10 +247,28 @@ namespace MSG_Utils {
if (typeOfMessage == 1) { //forced to send MSG with ack confirmation
ackNumberSend++;
newPacket += "{" + String(ackNumberSend);
}
}*/
// MSG_Utils::addToOutputBuffer
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 !!!
/* no olvidar revisar que los mensajes no se envien muy pronto despues de gps
@ -270,7 +289,7 @@ namespace MSG_Utils {
/*unit32-t lastPacketTx = millis() - lastTxTime;
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());
lastMsgRxTime = millis(); // ?
}
@ -305,7 +324,7 @@ namespace MSG_Utils {
String payload = rest.substring(rest.indexOf(",") + 1);
ackNumberRequest = payload.substring(payload.indexOf("{") + 1);
ackRequestState = true;
sendMessage(1, ackCallsignRequest, payload); // cambiar "1" !!!
sendMessage(1, ackCallsignRequest, payload); // cambiar "1" !!! //????? cero??
lastRetryTime = millis();
if (triesLeft == 1) {
outputAckRequestBuffer.erase(outputAckRequestBuffer.begin());
@ -361,7 +380,7 @@ namespace MSG_Utils {
if (lastReceivedPacket.message.indexOf("{") >= 0) {
String ackMessage = "ack" + lastReceivedPacket.message.substring(lastReceivedPacket.message.indexOf("{") + 1);
ackMessage.trim();
outputMessagesBuffer.push_back(lastReceivedPacket.sender + "," + ackMessage);
addToOutputBuffer(0, lastReceivedPacket.sender, ackMessage);
lastMsgRxTime = millis();
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) {
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
Serial.println("Weather Report Received");

View File

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

View File

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