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 HOST_NAME "AirsoftTimer_%08X"
|
||||||
|
|
||||||
#define SHUTDOWN_DELAY_MS 5000
|
#define SHUTDOWN_DELAY_MS 5000
|
||||||
|
#define RESETABLE_AFTER_STARTUP_MS 30000
|
||||||
|
|
||||||
#define GPIO_LORA_TX D3
|
#define GPIO_LORA_TX D3
|
||||||
#define GPIO_LORA_RX D4
|
#define GPIO_LORA_RX D4
|
||||||
|
@ -253,13 +253,13 @@ void SevenSeg_Output()
|
|||||||
if (millis() % 3000 < 1500)
|
if (millis() % 3000 < 1500)
|
||||||
snprintf(sevenSegBuff, sizeof(sevenSegBuff), "%4d", globals.battery_level);
|
snprintf(sevenSegBuff, sizeof(sevenSegBuff), "%4d", globals.battery_level);
|
||||||
else
|
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.setBrightness(1);
|
||||||
disp_FAC_1.display(" BAT");
|
disp_FAC_1.display(" Bat");
|
||||||
|
|
||||||
disp_FAC_2.setBrightness(1);
|
disp_FAC_2.setBrightness(1);
|
||||||
disp_FAC_2.display("LOW ");
|
disp_FAC_2.display("low ");
|
||||||
|
|
||||||
disp_FAC_3.setBrightness(1);
|
disp_FAC_3.setBrightness(1);
|
||||||
disp_FAC_3.display(String(sevenSegBuff));
|
disp_FAC_3.display(String(sevenSegBuff));
|
||||||
@ -503,20 +503,11 @@ void ProcessKeyCombos(bool *btnState)
|
|||||||
static keyStatus_t keyStatus_Fac2 = KEY_RELEASED;
|
static keyStatus_t keyStatus_Fac2 = KEY_RELEASED;
|
||||||
static uint8_t keyCount_Fac2 = 0;
|
static uint8_t keyCount_Fac2 = 0;
|
||||||
static keyStatus_t keyStatus_Fac3 = KEY_RELEASED;
|
static keyStatus_t keyStatus_Fac3 = KEY_RELEASED;
|
||||||
|
static uint8_t keyCount_Fac3 = 0;
|
||||||
|
|
||||||
if (btnState[2] == FAC_3_TRG_PRESSED)
|
if (btnState[0] == FAC_1_TRG_PRESSED)
|
||||||
{
|
{
|
||||||
keyStatus_Fac3 = KEY_PRESSED;
|
keyStatus_Fac1 = KEY_PRESSED;
|
||||||
|
|
||||||
// Process FactionKey 1 ComboCounter
|
|
||||||
if (btnState[0] == FAC_1_TRG_PRESSED && keyStatus_Fac1 == KEY_RELEASED)
|
|
||||||
{
|
|
||||||
keyStatus_Fac1 = KEY_PRESSED;
|
|
||||||
keyCount_Fac1++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (btnState[0] != FAC_1_TRG_PRESSED)
|
|
||||||
keyStatus_Fac1 = KEY_RELEASED;
|
|
||||||
|
|
||||||
// Process FactionKey 2 ComboCounter
|
// Process FactionKey 2 ComboCounter
|
||||||
if (btnState[1] == FAC_2_TRG_PRESSED && keyStatus_Fac2 == KEY_RELEASED)
|
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)
|
if (btnState[1] != FAC_2_TRG_PRESSED)
|
||||||
keyStatus_Fac2 = KEY_RELEASED;
|
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_RELEASED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (btnState[2] != FAC_3_TRG_PRESSED && keyStatus_Fac3 == KEY_PRESSED)
|
if (btnState[0] != FAC_1_TRG_PRESSED && keyStatus_Fac1 == KEY_PRESSED)
|
||||||
{
|
{
|
||||||
if (keyCount_Fac1 > 0 || keyCount_Fac2 > 0)
|
if (keyCount_Fac2 > 0 || keyCount_Fac3 > 0)
|
||||||
Serial.printf("KeyCombo 1: %d | 2: %d\n", keyCount_Fac1, keyCount_Fac2);
|
Serial.printf("KeyCombo 2: %d | 3: %d\n", keyCount_Fac2, keyCount_Fac3);
|
||||||
|
|
||||||
if (keyCount_Fac1 == 2 && keyCount_Fac2 == 2)
|
if (keyCount_Fac2 == 2 && keyCount_Fac3 == 0)
|
||||||
{
|
{
|
||||||
Serial.println("KeyCombo: WiFi AP ON");
|
Serial.println("KeyCombo: WiFi AP ON");
|
||||||
OverrideDisplay("NET ", 5000);
|
OverrideDisplay("NET ", 5000);
|
||||||
toggleWiFiAP(false);
|
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_Fac2 = 0;
|
||||||
|
keyCount_Fac3 = 0;
|
||||||
keyStatus_Fac1 = KEY_RELEASED;
|
keyStatus_Fac1 = KEY_RELEASED;
|
||||||
keyStatus_Fac2 = KEY_RELEASED;
|
keyStatus_Fac2 = KEY_RELEASED;
|
||||||
keyStatus_Fac3 = KEY_RELEASED;
|
keyStatus_Fac3 = KEY_RELEASED;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user