Read and Kill ready

This commit is contained in:
richonguzman 2024-02-14 15:37:21 -03:00
parent 8f9a0c8d3c
commit 5dedd64927
5 changed files with 150 additions and 47 deletions

View File

@ -34,7 +34,7 @@ BluetoothSerial SerialBT;
OneButton userButton = OneButton(BUTTON_PIN, true, true);
#endif
String versionDate = "2024.01.30";
String versionDate = "2024.02.14";
int myBeaconsIndex = 0;
int myBeaconsSize = Config.beacons.size();
@ -94,9 +94,15 @@ bool sosActive = false;
bool disableGPS;
bool miceActive = false;
int ackNumberSend;
int winlinkStatus = 0;
int ackNumberSend;
int winlinkStatus = 5; // debe ser 0
String winlinkMailNumber = "_?";
/*String winlinkAlias = "";
String winlinkAliasComplete = "";
String winlinkAddressee = "";
String winlinkSubject = "";
String winlinkBody = "";*/
APRSPacket lastReceivedPacket;

View File

@ -34,6 +34,7 @@ extern String messageText;
extern bool flashlight;
extern bool digirepeaterActive;
extern bool sosActive;
extern String winlinkMailNumber;
namespace KEYBOARD_Utils {
@ -53,7 +54,9 @@ namespace KEYBOARD_Utils {
if (menuDisplay < 130) {
menuDisplay = 133;
}
} else if (menuDisplay >= 20 && menuDisplay <= 26) {
}
else if (menuDisplay >= 20 && menuDisplay <= 26) {
menuDisplay--;
if (menuDisplay < 20) {
menuDisplay = 26;
@ -68,17 +71,28 @@ namespace KEYBOARD_Utils {
if (menuDisplay < 220) {
menuDisplay = 221;
}
} else if (menuDisplay >= 30 && menuDisplay <= 31) {
}
else if (menuDisplay >= 30 && menuDisplay <= 31) {
menuDisplay--;
if (menuDisplay < 30) {
menuDisplay = 31;
}
} else if (menuDisplay >= 50 && menuDisplay <= 52) {
}
else if (menuDisplay >= 50 && menuDisplay <= 52) {
menuDisplay--;
if (menuDisplay < 50) {
menuDisplay = 52;
}
} else if (menuDisplay >= 60 && menuDisplay <= 62) {
} else if (menuDisplay >= 5000 && menuDisplay <= 5080) {
menuDisplay = menuDisplay - 10;
if (menuDisplay < 5000) {
menuDisplay = 5080;
}
}
else if (menuDisplay >= 60 && menuDisplay <= 62) {
menuDisplay--;
if (menuDisplay < 60) {
menuDisplay = 62;
@ -107,8 +121,7 @@ namespace KEYBOARD_Utils {
if (menuDisplay > 13) {
menuDisplay = 10;
}
}
else if (menuDisplay >= 130 && menuDisplay <= 133) {
} else if (menuDisplay >= 130 && menuDisplay <= 133) {
menuDisplay++;
if (menuDisplay > 133) {
menuDisplay = 130;
@ -161,7 +174,12 @@ namespace KEYBOARD_Utils {
if (menuDisplay > 52) {
menuDisplay = 50;
}
}
} else if (menuDisplay >= 5000 && menuDisplay <= 5080) {
menuDisplay = menuDisplay + 10;
if (menuDisplay > 5080) {
menuDisplay = 5000;
}
}
else if (menuDisplay >= 60 && menuDisplay <= 62) {
menuDisplay++;
@ -185,7 +203,11 @@ namespace KEYBOARD_Utils {
menuDisplay = menuDisplay/10;
} else if ((menuDisplay>=10 && menuDisplay<=13) || (menuDisplay>=20 && menuDisplay<=29) || (menuDisplay==120) || (menuDisplay>=130 && menuDisplay<=133) || (menuDisplay>=50 && menuDisplay<=52) || (menuDisplay>=200 && menuDisplay<=290) || (menuDisplay>=60 && menuDisplay<=62) || (menuDisplay>=30 && menuDisplay<=31) || (menuDisplay>=300 && menuDisplay<=310) || (menuDisplay==40)) {
menuDisplay = int(menuDisplay/10);
} else if (menuDisplay==5000 || menuDisplay== 5010 || menuDisplay == 5020 || menuDisplay==5030 || menuDisplay==5040 || menuDisplay==5050 || menuDisplay==5060 || menuDisplay==5070 || menuDisplay==5080) {
menuDisplay = 5;
}
/* winlinkMailNumber = "";*/
}
@ -266,17 +288,38 @@ namespace KEYBOARD_Utils {
logger.log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, "Loop", "%s", "wrl");
MSG_Utils::sendMessage(0, "CA2RXU-15", "wrl");
}
else if (menuDisplay == 5) {
menuDisplay = 50;
} else if (menuDisplay == 50) {
WINLINK_Utils::login();
menuDisplay = 500;
} else if (menuDisplay == 51) {
show_display("__WINLINK_", "", "READ MSG/MAIL", "", 1000);
show_display("_WINLINK_>", "", "READ MSG/MAIL", "", 1000);
} else if (menuDisplay == 52) {
show_display("__WINLINK_", "", "DELETE MSG/MAIL" ,"", 1000);
show_display("_WINLINK_>", "", "DELETE MSG/MAIL" ,"", 1000);
}
else if (menuDisplay==5000) {
MSG_Utils::sendMessage(1, "WLNK-1", "L");
} else if (menuDisplay==5010) {
show_display("_WINLINK_>", "", "DOWNLOADED MAILS" ,"", 1000);
} else if (menuDisplay==5020) {
menuDisplay = 5021;
} else if (menuDisplay==5030) {
show_display("_WINLINK_>", "", "REPLY MAIL" ,"", 1000);
} else if (menuDisplay==5040) {
show_display("_WINLINK_>", "", "FORWARD MAIL" ,"", 1000);
} else if (menuDisplay==5050) {
menuDisplay = 5051;
} else if (menuDisplay==5060) {
show_display("_WINLINK_>", "", "ALIAS MENU" ,"", 1000);
} else if (menuDisplay==5070) {
MSG_Utils::sendMessage(1, "WLNK-1", "B");
menuDisplay = 5;
} else if (menuDisplay==5080) {
show_display("_WINLINK_>", "", "WRITE MAIL" ,"", 1000);
}
else if (menuDisplay == 6) {
menuDisplay = 60;
@ -376,7 +419,28 @@ namespace KEYBOARD_Utils {
} else if (key == 8) { // Delete Last Key
messageText = messageText.substring(0, messageText.length()-1);
}
} else if (key==13) {
} else if ((menuDisplay== 5021 || menuDisplay==5051) && key >= 48 && key <= 57) { // numeros exactos???
winlinkMailNumber = key;
} else if ((menuDisplay== 5021 || menuDisplay==5051) && key == 8) { // numeros exactos???
winlinkMailNumber = "_?";
} else if (menuDisplay == 5021 && key == 13 && winlinkMailNumber!="?") {
Serial.println("1, WLNK-1, R " + winlinkMailNumber);
//MSG_Utils::sendMessage(1, "WLNK-1", "R" + winlinkMailNumber);
winlinkMailNumber = "_?";
menuDisplay = 5020;
} else if (menuDisplay == 5051 && key == 13 && winlinkMailNumber!="?") {
Serial.println("1, WLNK-1, K " + winlinkMailNumber);
//MSG_Utils::sendMessage(1, "WLNK-1", "K" + winlinkMailNumber);
winlinkMailNumber = "_?";
menuDisplay = 5050;
} /*else if (menuDisplay == 5051 && key == 13) {
Serial.println("1, WLNK-1, Y " + winlinkMailNumber);
//MSG_Utils::sendMessage(1, "WLNK-1", "Y" + winlinkMailNumber);
winlinkMailNumber = "";
menuDisplay = 5030;
}*/ else if (key==13) {
if (menuDisplay==200) {
if(myBeaconsIndex >= (myBeaconsSize - 1)) {
myBeaconsIndex = 0;

View File

@ -33,6 +33,8 @@ extern bool screenBrightness;
extern bool disableGPS;
extern APRSPacket lastReceivedPacket;
extern int winlinkStatus;
extern String winlinkMailNumber;
extern String winlinkAddressee;
namespace MENU_Utils {
@ -63,7 +65,7 @@ namespace MENU_Utils {
void showOnScreen() {
String lastLine, firstLineDecoder, courseSpeedAltitude, speedPacketDec, coursePacketDec, pathDec;
uint32_t lastMenuTime = millis() - menuTime;
if (!(menuDisplay==0) && !(menuDisplay==300) && !(menuDisplay==310) && !(menuDisplay==40) && !(menuDisplay>=500 && menuDisplay<=5000) && lastMenuTime > 30*1000) {
if (!(menuDisplay==0) && !(menuDisplay==300) && !(menuDisplay==310) && !(menuDisplay==40) && !(menuDisplay>=500 && menuDisplay<=5100) && lastMenuTime > 30*1000) {
menuDisplay = 0;
messageCallsign = "";
messageText = "";
@ -306,49 +308,80 @@ namespace MENU_Utils {
break;
case 50: // 5.Winlink MENU
if (winlinkStatus == 0) {
show_display("__WINLINK_", "> Login" , " Read Saved Mails", " Delete Saved Mails", "" , lastLine);
} else {
if (winlinkStatus == 5) {
menuDisplay = 5000;
} else {
show_display("_WINLINK_>", "> Login" , " Read Saved Mails", " Delete Saved Mails", "" , lastLine);
}
break;
case 51: // 5.Winlink
show_display("__WINLINK_", " Login" , "> Read Saved Mails", " Delete Saved Mails", "" , lastLine);
show_display("_WINLINK_>", " Login" , "> Read Saved Mails", " Delete Saved Mails", "" , lastLine);
break;
case 52: // 5.Winlink
show_display("__WINLINK_", " Login" , " Read Saved Mails", "> Delete Saved Mails", "" , lastLine);
show_display("_WINLINK_>", " Login" , " Read Saved Mails", "> Delete Saved Mails", "" , lastLine);
break;
case 500: // 5.Winlink ---> Login
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> waiting", "" , "<Back");
show_display("_WINLINK_>", "" , "Login Initiation ...", "Challenge -> waiting", "" , "");
break;
case 501: // 5.Winlink ---> Login
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> sended", "" , "<Back");
show_display("_WINLINK_>", "" , "Login Initiation ...", "Challenge -> sended", "" , "");
break;
case 502: // 5.Winlink ---> Login
show_display("__WINLINK_", "" , "Login Initiation ...", "Challenge -> ack ...", "" , "<Back");
show_display("_WINLINK_>", "" , "Login Initiation ...", "Challenge -> ack ...", "" , "");
break;
case 5000: // 5.Winlink ---> Logged!!!
show_display("__WINLINK_", "" , "Logged !!! ", "", "" , "<Back");
case 5000: // WINLINK: List Pend. Mail //
show_display("WLNK_MENU_", " Write Mail" , "> List Pend. Mails", " Downloaded Mails", " Read Mail (R#)", lastLine);
break;
case 5010: // WINLINK: Downloaded Mails //
show_display("WLNK_MENU_", " List Pend. Mails", "> Downloaded Mails", " Read Mail (R#)", " Reply Mail (Y#)", lastLine);
break;
/* si esta loggeado (5000)
5010) write mail
5020) list pending mails
5030) download mails
51) read saved mails
5040) reply mail
5050) forward mail
52) delete mail (local o en winlink?)
5060) alias menu ------->
5070) log out
*/
case 5020: // WINLINK: Read Mail //
show_display("WLNK_MENU_", " Downloaded Mails", "> Read Mail (R#)", " Reply Mail (Y#)", " Forward Mail (F#)", lastLine);
break;
case 5021:
show_display("WLNK_READ_", "", " READ MAIL N." + winlinkMailNumber, "", "", "<Back Enter>");
break;
case 5030: // WINLINK: Reply Mail //
show_display("WLNK_MENU_", " Read Mail (R#)", "> Reply Mail (Y#)", " Forward Mail (F#)", " Delete Mail (K#)", lastLine);
break;
case 5031:
show_display("WLNK_REPLY", "", " REPLY MAIL N." + winlinkMailNumber , "", "", "<Back Enter>");
break;
case 5040: // WINLINK: Foward Mail //
show_display("WLNK_MENU_", " Reply Mail (Y#)", "> Forward Mail (F#)", " Delete Mail (K#)", " Alias Menu", lastLine);
break;
case 5041: // WINLINK: Forward Mail //
show_display("WLNK_FORW_", "", " FORWARD MAIL N." + winlinkMailNumber , "", "", "<Back Enter>");
break;
case 5042: // WINLINK: Forward Mail //
show_display("WLNK_FORW_", "", " FORWARD MAIL N." + winlinkMailNumber , "", "", "<Back Enter>");
//show_display("WLNK_FORW_", " FORWARD MAIL N." + winlinkMailNumber , "To = " + winlinkAddressee, "", "", "<Back Enter>");
break;
case 5050: // WINLINK: Delete Mail //
show_display("WLNK_MENU_", " Forward Mail (F#)", "> Delete Mail (K#)", " Alias Menu", " Log Out", lastLine);
break;
case 5051: // WINLINK: Delete Mail //
show_display("WLNK_DEL__", "", " DELETE MAIL N." + winlinkMailNumber, "", "<Back Enter>");
break;
case 5060: // WINLINK: Alias Menu //
show_display("WLNK_MENU_", " Delete Mail (K#)", "> Alias Menu", " Log Out", " Write Mail", lastLine);
break;
case 5070: // WINLINK: Log Out MAIL //
show_display("WLNK_MENU_", " Alias Menu", "> Log Out", " Write Mail", " List Pend. Mails", lastLine);
break;
case 5080: // WINLINK: WRITE MAIL //
show_display("WLNK_MENU_", " Log Out", "> Write Mail", " List Pend. Mails", " Downloaded Mails", lastLine);
break;
// validar winlinkStatus = 0
// check si no esta logeado o si
//show_display("__WINLINK_", "" , "Login Initiation ...", "", "" , "<Back");
case 60: // 6. Extras ---> Flashlight
show_display("__EXTRAS__", "> Flashlight (" + checkProcessActive(flashlight) + ")", " DigiRepeater (" + checkProcessActive(digirepeaterActive) + ")", " S.O.S. (" + checkProcessActive(sosActive) + ")","",lastLine);

View File

@ -245,7 +245,7 @@ namespace MSG_Utils {
menuDisplay = 501;
} /*else if (winlinkStatus == 2 && lastReceivedPacket.message.indexOf("Login [") == -1) {
Serial.println("Estamos conetados a WINLINK!!!!");
show_display("__WINLINK_", "", " LOGGED !!!!", 2000);
show_display("_WINLINK_>", "", " LOGGED !!!!", 2000);
winlinkStatus = 5;
//menuDisplay = 800;
} */else if (winlinkStatus == 3 && winlinkAckAnswer.toInt() == ackNumberSend) {
@ -255,8 +255,13 @@ namespace MSG_Utils {
} else if (lastReceivedPacket.message.indexOf("Login valid") > 0) {
winlinkStatus = 5;
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Winlink","---> Login Succesfull");
show_display("_WINLINK_>", "", " LOGGED !!!!", 2000);
menuDisplay = 5000;
}
} else if (winlinkStatus == 5 && lastReceivedPacket.message.indexOf("Log off successful") == 0 ) {
show_display("_WINLINK_>", "", " LOG OUT !!!",2000);
winlinkStatus = 0;
}
// que se hace con los mensajes recibidos desde Winlink cuando ya estamos conectados
} else {
show_display("< MSG Rx >", "From --> " + lastReceivedPacket.sender, "", lastReceivedPacket.message , 3000);

View File

@ -20,7 +20,7 @@ namespace WINLINK_Utils {
}
challengeAnswer += "AZ6";
delay(8000); ///
Serial.println("el challenge creado es " + challengeAnswer);
//Serial.println("el challenge creado es " + challengeAnswer);
MSG_Utils::sendMessage(1, "WLNK-1", challengeAnswer);
}
@ -28,17 +28,12 @@ namespace WINLINK_Utils {
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "Winlink","---> Start Login");
show_display("__WINLINK_", "" , "Login Initiation ...", "", "" , "<Back");
if (winlinkStatus == 5) {
//menuDisplay = 800;
menuDisplay = 5000;
} else {
winlinkStatus = 1;
MSG_Utils::sendMessage(1, "WLNK-1", "L");
menuDisplay = 500; // enviar a proceso LOGIN
menuDisplay = 500;
}
// procesar challenge
// enviar challenge con ack
// recibir ack
// recibir Login valid
// responder ack
}
}