Reworked KeyCombo to support 2-Button-Variant
This commit is contained in:
parent
6b89ed9a8c
commit
53928a93b0
@ -13,6 +13,7 @@
|
||||
#define HOST_NAME "AirsoftTimer_%08X"
|
||||
|
||||
#define SHUTDOWN_DELAY_MS 5000
|
||||
#define RESETABLE_AFTER_STARTUP_MS 30000
|
||||
|
||||
#define GPIO_LORA_TX D3
|
||||
#define GPIO_LORA_RX D4
|
||||
|
@ -253,13 +253,13 @@ void SevenSeg_Output()
|
||||
if (millis() % 3000 < 1500)
|
||||
snprintf(sevenSegBuff, sizeof(sevenSegBuff), "%4d", globals.battery_level);
|
||||
else
|
||||
snprintf(sevenSegBuff, sizeof(sevenSegBuff), "%2d.%1d", (globals.loadvoltage_mV / 1000), ((globals.loadvoltage_mV % 1000) / 100));
|
||||
snprintf(sevenSegBuff, sizeof(sevenSegBuff), "%3d.%1d", (globals.loadvoltage_mV / 1000), ((globals.loadvoltage_mV % 1000) / 100));
|
||||
|
||||
disp_FAC_1.setBrightness(1);
|
||||
disp_FAC_1.display(" BAT");
|
||||
disp_FAC_1.display(" Bat");
|
||||
|
||||
disp_FAC_2.setBrightness(1);
|
||||
disp_FAC_2.display("LOW ");
|
||||
disp_FAC_2.display("low ");
|
||||
|
||||
disp_FAC_3.setBrightness(1);
|
||||
disp_FAC_3.display(String(sevenSegBuff));
|
||||
@ -503,20 +503,11 @@ void ProcessKeyCombos(bool *btnState)
|
||||
static keyStatus_t keyStatus_Fac2 = KEY_RELEASED;
|
||||
static uint8_t keyCount_Fac2 = 0;
|
||||
static keyStatus_t keyStatus_Fac3 = KEY_RELEASED;
|
||||
static uint8_t keyCount_Fac3 = 0;
|
||||
|
||||
if (btnState[2] == FAC_3_TRG_PRESSED)
|
||||
{
|
||||
keyStatus_Fac3 = KEY_PRESSED;
|
||||
|
||||
// Process FactionKey 1 ComboCounter
|
||||
if (btnState[0] == FAC_1_TRG_PRESSED && keyStatus_Fac1 == KEY_RELEASED)
|
||||
if (btnState[0] == FAC_1_TRG_PRESSED)
|
||||
{
|
||||
keyStatus_Fac1 = KEY_PRESSED;
|
||||
keyCount_Fac1++;
|
||||
}
|
||||
|
||||
if (btnState[0] != FAC_1_TRG_PRESSED)
|
||||
keyStatus_Fac1 = KEY_RELEASED;
|
||||
|
||||
// Process FactionKey 2 ComboCounter
|
||||
if (btnState[1] == FAC_2_TRG_PRESSED && keyStatus_Fac2 == KEY_RELEASED)
|
||||
@ -527,22 +518,50 @@ void ProcessKeyCombos(bool *btnState)
|
||||
|
||||
if (btnState[1] != FAC_2_TRG_PRESSED)
|
||||
keyStatus_Fac2 = KEY_RELEASED;
|
||||
|
||||
// Process FactionKey 3 ComboCounter
|
||||
if (btnState[2] == FAC_3_TRG_PRESSED && keyStatus_Fac3 == KEY_RELEASED)
|
||||
{
|
||||
keyStatus_Fac3 = KEY_PRESSED;
|
||||
keyCount_Fac3++;
|
||||
}
|
||||
|
||||
if (btnState[2] != FAC_3_TRG_PRESSED && keyStatus_Fac3 == KEY_PRESSED)
|
||||
{
|
||||
if (keyCount_Fac1 > 0 || keyCount_Fac2 > 0)
|
||||
Serial.printf("KeyCombo 1: %d | 2: %d\n", keyCount_Fac1, keyCount_Fac2);
|
||||
if (btnState[2] != FAC_3_TRG_PRESSED)
|
||||
keyStatus_Fac3 = KEY_RELEASED;
|
||||
}
|
||||
|
||||
if (keyCount_Fac1 == 2 && keyCount_Fac2 == 2)
|
||||
if (btnState[0] != FAC_1_TRG_PRESSED && keyStatus_Fac1 == KEY_PRESSED)
|
||||
{
|
||||
if (keyCount_Fac2 > 0 || keyCount_Fac3 > 0)
|
||||
Serial.printf("KeyCombo 2: %d | 3: %d\n", keyCount_Fac2, keyCount_Fac3);
|
||||
|
||||
if (keyCount_Fac2 == 2 && keyCount_Fac3 == 0)
|
||||
{
|
||||
Serial.println("KeyCombo: WiFi AP ON");
|
||||
OverrideDisplay("NET ", 5000);
|
||||
toggleWiFiAP(false);
|
||||
}
|
||||
else if (keyCount_Fac2 == 4 && keyCount_Fac3 == 0)
|
||||
{
|
||||
Serial.printf("KeyCombo: Reset Timer\n");
|
||||
if (millis() < RESETABLE_AFTER_STARTUP_MS)
|
||||
{
|
||||
OverrideDisplay("RST ", 5000);
|
||||
PersistenceData.faction_1_timer = 0;
|
||||
PersistenceData.faction_2_timer = 0;
|
||||
PersistenceData.faction_3_timer = 0;
|
||||
PersistenceData.activeFaction = NONE;
|
||||
globals.requestEEAction = EE_PDS_SAVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
OverrideDisplay("ERR ", 5000);
|
||||
Serial.printf("ERROR: only %d seconds after Startup!\n", RESETABLE_AFTER_STARTUP_MS / 1000);
|
||||
}
|
||||
}
|
||||
|
||||
keyCount_Fac1 = 0;
|
||||
keyCount_Fac2 = 0;
|
||||
keyCount_Fac3 = 0;
|
||||
keyStatus_Fac1 = KEY_RELEASED;
|
||||
keyStatus_Fac2 = KEY_RELEASED;
|
||||
keyStatus_Fac3 = KEY_RELEASED;
|
||||
|
Loading…
x
Reference in New Issue
Block a user