Switch buttons to match 3D housing, improve release ack handling
This commit is contained in:
@@ -57,9 +57,9 @@ void onDataSent(const uint8_t* mac_addr, esp_now_send_status_t status)
|
||||
// Flash PWR LED while still receiving acknowledgments
|
||||
if (timerElapsed(&ack) > ack_speed * 2) {
|
||||
timerStart(&ack);
|
||||
digitalWrite(POWER_LED_PIN, HIGH);
|
||||
digitalWrite(RESET_LED_PIN, HIGH);
|
||||
delay(ack_speed);
|
||||
digitalWrite(POWER_LED_PIN, LOW);
|
||||
digitalWrite(RESET_LED_PIN, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,13 +72,11 @@ void onDataRecv(const uint8_t* mac_addr, const uint8_t* data, int data_len)
|
||||
auto msg = String((const char*)data, data_len);
|
||||
|
||||
if (msg == "power_released_ack") {
|
||||
need_power_ack = false;
|
||||
wait_power_ack = false;
|
||||
received_power_released_ack = true;
|
||||
}
|
||||
|
||||
if (msg == "reset_released_ack") {
|
||||
need_reset_ack = false;
|
||||
wait_reset_ack = false;
|
||||
received_reset_released_ack = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
|
||||
#define CHANNEL 11
|
||||
|
||||
#define POWER_LED_PIN 3
|
||||
#define RESET_LED_PIN 1
|
||||
#define POWER_LED_PIN 1
|
||||
#define RESET_LED_PIN 3
|
||||
|
||||
extern bool need_power_ack;
|
||||
extern bool need_reset_ack;
|
||||
|
||||
extern bool wait_power_ack;
|
||||
extern bool wait_reset_ack;
|
||||
extern bool received_power_released_ack;
|
||||
extern bool received_reset_released_ack;
|
||||
|
||||
extern uint8_t client_mac[6];
|
||||
extern uint8_t server_mac[6];
|
||||
|
||||
+11
-21
@@ -3,17 +3,14 @@
|
||||
|
||||
#include "connect.h"
|
||||
|
||||
#define POWER_BUTTON_PIN 10
|
||||
#define RESET_BUTTON_PIN 2
|
||||
#define POWER_BUTTON_PIN 2
|
||||
#define RESET_BUTTON_PIN 10
|
||||
|
||||
int previousPowerButtonState = HIGH;
|
||||
int previousResetButtonState = HIGH;
|
||||
|
||||
bool need_power_ack = false;
|
||||
bool need_reset_ack = false;
|
||||
|
||||
bool wait_power_ack = false;
|
||||
bool wait_reset_ack = false;
|
||||
bool received_power_released_ack = true;
|
||||
bool received_reset_released_ack = true;
|
||||
|
||||
void setup()
|
||||
{
|
||||
@@ -36,8 +33,8 @@ void loop()
|
||||
{
|
||||
delay(20); // used for button debounce
|
||||
|
||||
// digitalWrite(POWER_LED_PIN, LOW);
|
||||
digitalWrite(RESET_LED_PIN, LOW);
|
||||
digitalWrite(POWER_LED_PIN, LOW);
|
||||
// digitalWrite(RESET_LED_PIN, LOW);
|
||||
|
||||
int powerButtonState = digitalRead(POWER_BUTTON_PIN);
|
||||
int resetButtonState = digitalRead(RESET_BUTTON_PIN);
|
||||
@@ -55,7 +52,7 @@ void loop()
|
||||
previousResetButtonState = resetButtonState;
|
||||
|
||||
if (isButtonPressed) {
|
||||
digitalWrite(RESET_LED_PIN, HIGH);
|
||||
digitalWrite(POWER_LED_PIN, HIGH);
|
||||
|
||||
String button = (powerButtonState == LOW) ? "power" : "reset";
|
||||
|
||||
@@ -65,27 +62,20 @@ void loop()
|
||||
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||
Serial.println("Sent " + button + " button press");
|
||||
|
||||
need_power_ack = true;
|
||||
need_reset_ack = true;
|
||||
|
||||
wait_power_ack = false;
|
||||
wait_reset_ack = false;
|
||||
received_power_released_ack = false;
|
||||
received_reset_released_ack = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (need_power_ack && !wait_power_ack) {
|
||||
if (!received_power_released_ack) {
|
||||
String msg = "power_released";
|
||||
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||
Serial.println("Sent power button release");
|
||||
|
||||
wait_power_ack = true;
|
||||
}
|
||||
if (need_reset_ack && !wait_reset_ack) {
|
||||
if (!received_reset_released_ack) {
|
||||
String msg = "reset_released";
|
||||
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||
Serial.println("Sent reset button release");
|
||||
|
||||
wait_reset_ack = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user