ready for testing

This commit is contained in:
richonguzman 2024-11-14 12:41:21 -03:00
parent 03728205d7
commit 14654b4d32
6 changed files with 53 additions and 11 deletions

View File

@ -55,7 +55,7 @@ TinyGPSPlus gps;
BluetoothSerial SerialBT; BluetoothSerial SerialBT;
#endif #endif
String versionDate = "2024.11.13"; String versionDate = "2024.11.14";
uint8_t myBeaconsIndex = 0; uint8_t myBeaconsIndex = 0;
int myBeaconsSize = Config.beacons.size(); int myBeaconsSize = Config.beacons.size();
@ -186,6 +186,9 @@ void loop() {
Utils::checkDisplayEcoMode(); Utils::checkDisplayEcoMode();
KEYBOARD_Utils::read(); KEYBOARD_Utils::read();
#ifdef HAS_JOYSTICK
JOYSTICK_Utils::loop();
#endif
ReceivedLoRaPacket packet = LoRa_Utils::receivePacket(); ReceivedLoRaPacket packet = LoRa_Utils::receivePacket();

View File

@ -5,6 +5,8 @@
namespace BUTTON_Utils { namespace BUTTON_Utils {
void longPress();
void loop(); void loop();
void setup(); void setup();

View File

@ -1,14 +1,19 @@
#include "joystick_utils.h" #include "joystick_utils.h"
#include "keyboard_utils.h" #include "keyboard_utils.h"
#include "boards_pinout.h" #include "boards_pinout.h"
#include "button_utils.h"
extern int menuDisplay; extern int menuDisplay;
bool exitJoystickInterrupt = false;
typedef void (*DirectionFunc)();
#ifdef HAS_JOYSTICK #ifdef HAS_JOYSTICK
namespace JOYSTICK_Utils { namespace JOYSTICK_Utils {
int debounceDelay = 300; int debounceDelay = 400;
uint32_t lastInterruptTime = 0; uint32_t lastInterruptTime = 0;
bool checkLastJoystickInterrupTime() { bool checkLastJoystickInterrupTime() {
@ -20,14 +25,33 @@ extern int menuDisplay;
} }
} }
void IRAM_ATTR joystickHandler(void (*directionFunc)()) { bool checkMenuDisplayToExitInterrupt(int menu) {
if (checkLastJoystickInterrupTime() && menuDisplay != 0) directionFunc(); if (menu == 10 || menu == 120 || menu == 200 || menu == 210 || menu == 51 || menu == 50100 || menu == 50111) {
return true; // read / delete/ callsignIndex / loraIndex / readW / readW / delete
} else {
return false;
}
}
void loop() { // for running process with SPIFFS outside interrupt
if (checkMenuDisplayToExitInterrupt(menuDisplay) && exitJoystickInterrupt) BUTTON_Utils::longPress();
}
void IRAM_ATTR joystickHandler(DirectionFunc directionFunc) {
if (checkLastJoystickInterrupTime() && menuDisplay != 0) {
if (checkMenuDisplayToExitInterrupt(menuDisplay) && directionFunc == BUTTON_Utils::longPress) {
exitJoystickInterrupt = true;
} else {
exitJoystickInterrupt = false;
directionFunc();
}
}
} }
void IRAM_ATTR joystickUp() { joystickHandler(KEYBOARD_Utils::upArrow); } void IRAM_ATTR joystickUp() { joystickHandler(KEYBOARD_Utils::upArrow); }
void IRAM_ATTR joystickDown() { joystickHandler(KEYBOARD_Utils::downArrow); } void IRAM_ATTR joystickDown() { joystickHandler(KEYBOARD_Utils::downArrow); }
void IRAM_ATTR joystickLeft() { joystickHandler(KEYBOARD_Utils::leftArrow); } void IRAM_ATTR joystickLeft() { joystickHandler(KEYBOARD_Utils::leftArrow); }
void IRAM_ATTR joystickRight() { joystickHandler(KEYBOARD_Utils::rightArrow); } void IRAM_ATTR joystickRight() { joystickHandler(BUTTON_Utils::longPress); }
void setup() { void setup() {
pinMode(JOYSTICK_CENTER, INPUT_PULLUP); pinMode(JOYSTICK_CENTER, INPUT_PULLUP);

View File

@ -5,6 +5,7 @@
namespace JOYSTICK_Utils { namespace JOYSTICK_Utils {
void loop();
void setup(); void setup();
} }

View File

@ -283,7 +283,11 @@ namespace KEYBOARD_Utils {
} else if (menuDisplay == 10) { } else if (menuDisplay == 10) {
MSG_Utils::loadMessagesFromMemory(0); MSG_Utils::loadMessagesFromMemory(0);
if (MSG_Utils::warnNoAPRSMessages()) { if (MSG_Utils::warnNoAPRSMessages()) {
menuDisplay = 10; #ifdef HAS_JOYSTICK
menuDisplay = 11;
#else
menuDisplay = 10;
#endif
} else { } else {
menuDisplay = 100; menuDisplay = 100;
} }
@ -355,7 +359,11 @@ namespace KEYBOARD_Utils {
} else if (menuDisplay == 51) { } else if (menuDisplay == 51) {
MSG_Utils::loadMessagesFromMemory(1); MSG_Utils::loadMessagesFromMemory(1);
if (MSG_Utils::warnNoWLNKMails()) { if (MSG_Utils::warnNoWLNKMails()) {
menuDisplay = 51; #ifdef HAS_JOYSTICK
menuDisplay = 50;
#else
menuDisplay = 51;
#endif
} else { } else {
menuDisplay = 50101; menuDisplay = 50101;
} }
@ -387,7 +395,11 @@ namespace KEYBOARD_Utils {
displayShow("___INFO___", "", " ALL MAILS DELETED!", 2000); displayShow("___INFO___", "", " ALL MAILS DELETED!", 2000);
MSG_Utils::loadNumMessages(); MSG_Utils::loadNumMessages();
if (winlinkStatus == 0) { if (winlinkStatus == 0) {
menuDisplay = 52; #ifdef HAS_JOYSTICK
menuDisplay = 50;
#else
menuDisplay = 52;
#endif
} else { } else {
menuDisplay = 50110; menuDisplay = 50110;
} }