Switch buttons to match 3D housing, improve release ack handling

This commit is contained in:
Riyyi
2025-11-15 16:43:48 +01:00
parent 8941571fa7
commit b103d21913
4 changed files with 23 additions and 38 deletions
+4 -6
View File
@@ -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;
}
}
+4 -7
View File
@@ -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
View File
@@ -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;
}
}
+4 -4
View File
@@ -2,11 +2,11 @@
#include "connect.h"
#define POWER_BUTTON_PIN 10
#define RESET_BUTTON_PIN 2
#define POWER_BUTTON_PIN 2
#define RESET_BUTTON_PIN 10
#define POWER_LED_PIN 3
#define RESET_LED_PIN 1
#define POWER_LED_PIN 1
#define RESET_LED_PIN 3
#define POWER_GATE_PIN 6
#define RESET_GATE_PIN 7