Fix button code
This commit is contained in:
parent
075fd67f5c
commit
bb6958aa00
1 changed files with 24 additions and 60 deletions
|
@ -803,7 +803,7 @@ void checkForRequests() {
|
||||||
// Loop until we're reconnected
|
// Loop until we're reconnected
|
||||||
while (!mqtt_client.connected() && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) {
|
while (!mqtt_client.connected() && mqtt_reconnect_retries < MQTT_MAX_RECONNECT_TRIES) {
|
||||||
mqtt_reconnect_retries++;
|
mqtt_reconnect_retries++;
|
||||||
DBG_OUTPUT_PORT.printf("Attempting MQTT connection %d / %d ...\n", mqtt_reconnect_retries, MQTT_MAX_RECONNECT_TRIES);
|
DBG_OUTPUT_PORT.printf("Attempting MQTT connection %d / %d (%s) ...\n", mqtt_reconnect_retries, MQTT_MAX_RECONNECT_TRIES, mqtt_clientid);
|
||||||
// Attempt to connect
|
// Attempt to connect
|
||||||
if (mqtt_client.connect(mqtt_clientid, mqtt_user, mqtt_pass)) {
|
if (mqtt_client.connect(mqtt_clientid, mqtt_user, mqtt_pass)) {
|
||||||
DBG_OUTPUT_PORT.println("MQTT connected!");
|
DBG_OUTPUT_PORT.println("MQTT connected!");
|
||||||
|
@ -841,64 +841,6 @@ void checkForRequests() {
|
||||||
// Button management
|
// Button management
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
#ifdef ENABLE_BUTTON
|
#ifdef ENABLE_BUTTON
|
||||||
void shortKeyPress() {
|
|
||||||
DBG_OUTPUT_PORT.printf("Short button press\n");
|
|
||||||
if (buttonState == false) {
|
|
||||||
setModeByStateString(BTN_MODE_SHORT);
|
|
||||||
buttonState = true;
|
|
||||||
} else {
|
|
||||||
mode = OFF;
|
|
||||||
buttonState = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// called when button is kept pressed for less than 2 seconds
|
|
||||||
void mediumKeyPress() {
|
|
||||||
DBG_OUTPUT_PORT.printf("Medium button press\n");
|
|
||||||
setModeByStateString(BTN_MODE_MEDIUM);
|
|
||||||
}
|
|
||||||
|
|
||||||
// called when button is kept pressed for 2 seconds or more
|
|
||||||
void longKeyPress() {
|
|
||||||
DBG_OUTPUT_PORT.printf("Long button press\n");
|
|
||||||
setModeByStateString(BTN_MODE_LONG);
|
|
||||||
}
|
|
||||||
|
|
||||||
void button() {
|
|
||||||
if (millis() - keyPrevMillis >= keySampleIntervalMs) {
|
|
||||||
keyPrevMillis = millis();
|
|
||||||
|
|
||||||
byte currKeyState = digitalRead(BUTTON);
|
|
||||||
|
|
||||||
if ((prevKeyState == HIGH) && (currKeyState == LOW)) {
|
|
||||||
// key goes from not pressed to pressed
|
|
||||||
KeyPressCount = 0;
|
|
||||||
}
|
|
||||||
else if ((prevKeyState == LOW) && (currKeyState == HIGH)) {
|
|
||||||
if (KeyPressCount < longKeyPressCountMax && KeyPressCount >= mediumKeyPressCountMin) {
|
|
||||||
mediumKeyPress();
|
|
||||||
}
|
|
||||||
else if ((prevKeyState == LOW) && (currKeyState == HIGH)) {
|
|
||||||
if (KeyPressCount < longKeyPressCountMax && KeyPressCount >= mediumKeyPressCountMin) {
|
|
||||||
mediumKeyPress();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (KeyPressCount < mediumKeyPressCountMin) {
|
|
||||||
shortKeyPress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (currKeyState == LOW) {
|
|
||||||
KeyPressCount++;
|
|
||||||
if (KeyPressCount >= longKeyPressCountMax) {
|
|
||||||
longKeyPress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
prevKeyState = currKeyState;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void shortKeyPress() {
|
void shortKeyPress() {
|
||||||
DBG_OUTPUT_PORT.printf("Short button press\n");
|
DBG_OUTPUT_PORT.printf("Short button press\n");
|
||||||
if (buttonState == false) {
|
if (buttonState == false) {
|
||||||
|
@ -918,6 +860,7 @@ void button() {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// called when button is kept pressed for less than 2 seconds
|
// called when button is kept pressed for less than 2 seconds
|
||||||
void mediumKeyPress() {
|
void mediumKeyPress() {
|
||||||
|
@ -954,3 +897,24 @@ void button() {
|
||||||
if ((prevKeyState == HIGH) && (currKeyState == LOW)) {
|
if ((prevKeyState == HIGH) && (currKeyState == LOW)) {
|
||||||
// key goes from not pressed to pressed
|
// key goes from not pressed to pressed
|
||||||
KeyPressCount = 0;
|
KeyPressCount = 0;
|
||||||
|
}
|
||||||
|
else if ((prevKeyState == LOW) && (currKeyState == HIGH)) {
|
||||||
|
if (KeyPressCount < longKeyPressCountMax && KeyPressCount >= mediumKeyPressCountMin) {
|
||||||
|
mediumKeyPress();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (KeyPressCount < mediumKeyPressCountMin) {
|
||||||
|
shortKeyPress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currKeyState == LOW) {
|
||||||
|
KeyPressCount++;
|
||||||
|
if (KeyPressCount >= longKeyPressCountMax) {
|
||||||
|
longKeyPress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prevKeyState = currKeyState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue