LoRa_APRS_Tracker111/src/button_utils.cpp

99 lines
2.5 KiB
C++

#include "button_utils.h"
#include "msg_utils.h"
#include "display.h"
#include "configuration.h"
#include <logger.h>
extern int menuDisplay;
extern bool displayState;
extern uint32_t displayTime;
extern logging::Logger logger;
extern int messagesIterator;
extern bool sendUpdate;
extern int myBeaconsIndex;
extern bool statusState;
extern bool displayEcoMode;
extern int myBeaconsSize;
extern Configuration Config;
namespace BUTTON_Utils {
void singlePress() {
if (menuDisplay == 0) {
if (displayState) {
sendUpdate = true;
} else {
display_toggle(true);
displayTime = millis();
displayState = true;
}
} else if (menuDisplay == 1) {
MSG_Utils::loadMessagesFromMemory();
if (MSG_Utils::warnNoMessages()) {
menuDisplay = 1;
} else {
menuDisplay = 10;
}
} else if (menuDisplay == 2) {
logger.log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, "Loop", "%s", "wrl");
MSG_Utils::sendMessage("CD2RXU-15","wrl");
} else if (menuDisplay == 10) {
messagesIterator++;
if (messagesIterator == MSG_Utils::getNumAPRSMessages()) {
menuDisplay = 1;
messagesIterator = 0;
} else {
menuDisplay = 10;
}
} else if (menuDisplay == 20) {
menuDisplay = 2;
} else if (menuDisplay == 3) {
show_display("__INFO____", "", "Nothing Yet...", 1500);
}
}
void longPress() {
if (menuDisplay == 0) {
if(myBeaconsIndex >= (myBeaconsSize-1)) {
myBeaconsIndex = 0;
} else {
myBeaconsIndex++;
}
statusState = true;
display_toggle(true);
displayTime = millis();
show_display("__INFO____", "", "CHANGING CALLSIGN ...", 1000);
} else if (menuDisplay == 1) {
MSG_Utils::deleteFile();
show_display("__INFO____", "", "ALL MESSAGES DELETED!", 2000);
MSG_Utils::loadNumMessages();
} else if (menuDisplay == 2) {
menuDisplay = 20;
} else if (menuDisplay == 3) {
if (!displayEcoMode) {
displayEcoMode = true;
show_display("__DISPLAY_", "", " ECO MODE -> ON", 1000);
} else {
displayEcoMode = false;
show_display("__DISPLAY_", "", " ECO MODE -> OFF", 1000);
}
}
}
void doublePress() {
display_toggle(true);
if (menuDisplay == 0) {
menuDisplay = 1;
} else if (menuDisplay == 1) {
menuDisplay = 2;
messagesIterator = 0;
} else if (menuDisplay == 2) {
menuDisplay = 3;
} else if (menuDisplay == 3 || menuDisplay == 20) {
menuDisplay = 0;
displayTime = millis();
}
}
}