Reworked KeyCombo to support 2-Button-Variant
This commit is contained in:
		| @@ -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) | ||||
| 	if (btnState[0] == FAC_1_TRG_PRESSED) | ||||
| 	{ | ||||
| 		keyStatus_Fac3 = 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; | ||||
| 		keyStatus_Fac1 = KEY_PRESSED; | ||||
|  | ||||
| 		// 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_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) | ||||
| 			Serial.printf("KeyCombo 1: %d | 2: %d\n", keyCount_Fac1, keyCount_Fac2); | ||||
| 		if (keyCount_Fac2 > 0 || keyCount_Fac3 > 0) | ||||
| 			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"); | ||||
| 			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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user