[TRIGGER] Enable reset at start when InputGPIO is used (#1447)
TimeToResetAtStart defines the start period
This commit is contained in:
1 parent
799d8e2e85
commit
159d362f2a
2 files changed
+21
-7
No files matched your search
+1
-1
@@ -579,7 +579,7 @@ CRGB leds2[FASTLED_IND_NUM_LEDS];
|
|||||||
#define InitialMQTTConnectionTimeout 10 // time estimated (s) before the board is connected to MQTT
|
#define InitialMQTTConnectionTimeout 10 // time estimated (s) before the board is connected to MQTT
|
||||||
#define subjectSYStoMQTT "/SYStoMQTT"
|
#define subjectSYStoMQTT "/SYStoMQTT"
|
||||||
#define subjectMQTTtoSYSset "/commands/MQTTtoSYS/config"
|
#define subjectMQTTtoSYSset "/commands/MQTTtoSYS/config"
|
||||||
|
#define TimeToResetAtStart 5000 // Time we allow the user at start for the reset command by button press
|
||||||
/*-------------------DEFINE LOG LEVEL----------------------*/
|
/*-------------------DEFINE LOG LEVEL----------------------*/
|
||||||
#ifndef LOG_LEVEL
|
#ifndef LOG_LEVEL
|
||||||
# define LOG_LEVEL LOG_LEVEL_NOTICE
|
# define LOG_LEVEL LOG_LEVEL_NOTICE
|
||||||
|
|||||||
+20
-6
@@ -1113,13 +1113,11 @@ void saveConfigCallback() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ifdef TRIGGER_GPIO
|
# ifdef TRIGGER_GPIO
|
||||||
void checkButton() { // Check if button is pressed so as to reset the credentials and parameters stored into the flash, code from tzapu/wifimanager examples
|
/**
|
||||||
# if defined(INPUT_GPIO) && defined(ZsensorGPIOInput) && INPUT_GPIO == TRIGGER_GPIO
|
* Identify a long button press to trigger a reset
|
||||||
MeasureGPIOInput();
|
* */
|
||||||
# else
|
void blockingWaitForReset() {
|
||||||
// check for button press
|
|
||||||
if (digitalRead(TRIGGER_GPIO) == LOW) {
|
if (digitalRead(TRIGGER_GPIO) == LOW) {
|
||||||
// poor mans debounce/press-hold, code not ideal for production
|
|
||||||
delay(50);
|
delay(50);
|
||||||
if (digitalRead(TRIGGER_GPIO) == LOW) {
|
if (digitalRead(TRIGGER_GPIO) == LOW) {
|
||||||
Log.trace(F("Trigger button Pressed" CR));
|
Log.trace(F("Trigger button Pressed" CR));
|
||||||
@@ -1131,7 +1129,23 @@ void checkButton() { // Check if button is pressed so as to reset the credential
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if button is pressed so as to reset the credentials and parameters stored into the flash
|
||||||
|
* */
|
||||||
|
void checkButton() {
|
||||||
|
unsigned long timeFromStart = millis();
|
||||||
|
// Identify if the reset button is pushed at start
|
||||||
|
if (timeFromStart < TimeToResetAtStart) {
|
||||||
|
blockingWaitForReset();
|
||||||
|
} else { // When we are not at start we either check the button as a regular input (ZsensorGPIOInput used) or for a reset
|
||||||
|
# if defined(INPUT_GPIO) && defined(ZsensorGPIOInput) && INPUT_GPIO == TRIGGER_GPIO
|
||||||
|
MeasureGPIOInput();
|
||||||
|
# else
|
||||||
|
blockingWaitForReset();
|
||||||
# endif
|
# endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
# else
|
# else
|
||||||
void checkButton() {}
|
void checkButton() {}
|
||||||
|
|||||||
Reference in new issue
Block a user