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
|
// Flash PWR LED while still receiving acknowledgments
|
||||||
if (timerElapsed(&ack) > ack_speed * 2) {
|
if (timerElapsed(&ack) > ack_speed * 2) {
|
||||||
timerStart(&ack);
|
timerStart(&ack);
|
||||||
digitalWrite(POWER_LED_PIN, HIGH);
|
digitalWrite(RESET_LED_PIN, HIGH);
|
||||||
delay(ack_speed);
|
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);
|
auto msg = String((const char*)data, data_len);
|
||||||
|
|
||||||
if (msg == "power_released_ack") {
|
if (msg == "power_released_ack") {
|
||||||
need_power_ack = false;
|
received_power_released_ack = true;
|
||||||
wait_power_ack = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg == "reset_released_ack") {
|
if (msg == "reset_released_ack") {
|
||||||
need_reset_ack = false;
|
received_reset_released_ack = true;
|
||||||
wait_reset_ack = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
|
|
||||||
#define CHANNEL 11
|
#define CHANNEL 11
|
||||||
|
|
||||||
#define POWER_LED_PIN 3
|
#define POWER_LED_PIN 1
|
||||||
#define RESET_LED_PIN 1
|
#define RESET_LED_PIN 3
|
||||||
|
|
||||||
extern bool need_power_ack;
|
extern bool received_power_released_ack;
|
||||||
extern bool need_reset_ack;
|
extern bool received_reset_released_ack;
|
||||||
|
|
||||||
extern bool wait_power_ack;
|
|
||||||
extern bool wait_reset_ack;
|
|
||||||
|
|
||||||
extern uint8_t client_mac[6];
|
extern uint8_t client_mac[6];
|
||||||
extern uint8_t server_mac[6];
|
extern uint8_t server_mac[6];
|
||||||
|
|||||||
+11
-21
@@ -3,17 +3,14 @@
|
|||||||
|
|
||||||
#include "connect.h"
|
#include "connect.h"
|
||||||
|
|
||||||
#define POWER_BUTTON_PIN 10
|
#define POWER_BUTTON_PIN 2
|
||||||
#define RESET_BUTTON_PIN 2
|
#define RESET_BUTTON_PIN 10
|
||||||
|
|
||||||
int previousPowerButtonState = HIGH;
|
int previousPowerButtonState = HIGH;
|
||||||
int previousResetButtonState = HIGH;
|
int previousResetButtonState = HIGH;
|
||||||
|
|
||||||
bool need_power_ack = false;
|
bool received_power_released_ack = true;
|
||||||
bool need_reset_ack = false;
|
bool received_reset_released_ack = true;
|
||||||
|
|
||||||
bool wait_power_ack = false;
|
|
||||||
bool wait_reset_ack = false;
|
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
@@ -36,8 +33,8 @@ void loop()
|
|||||||
{
|
{
|
||||||
delay(20); // used for button debounce
|
delay(20); // used for button debounce
|
||||||
|
|
||||||
// digitalWrite(POWER_LED_PIN, LOW);
|
digitalWrite(POWER_LED_PIN, LOW);
|
||||||
digitalWrite(RESET_LED_PIN, LOW);
|
// digitalWrite(RESET_LED_PIN, LOW);
|
||||||
|
|
||||||
int powerButtonState = digitalRead(POWER_BUTTON_PIN);
|
int powerButtonState = digitalRead(POWER_BUTTON_PIN);
|
||||||
int resetButtonState = digitalRead(RESET_BUTTON_PIN);
|
int resetButtonState = digitalRead(RESET_BUTTON_PIN);
|
||||||
@@ -55,7 +52,7 @@ void loop()
|
|||||||
previousResetButtonState = resetButtonState;
|
previousResetButtonState = resetButtonState;
|
||||||
|
|
||||||
if (isButtonPressed) {
|
if (isButtonPressed) {
|
||||||
digitalWrite(RESET_LED_PIN, HIGH);
|
digitalWrite(POWER_LED_PIN, HIGH);
|
||||||
|
|
||||||
String button = (powerButtonState == LOW) ? "power" : "reset";
|
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());
|
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||||
Serial.println("Sent " + button + " button press");
|
Serial.println("Sent " + button + " button press");
|
||||||
|
|
||||||
need_power_ack = true;
|
received_power_released_ack = false;
|
||||||
need_reset_ack = true;
|
received_reset_released_ack = false;
|
||||||
|
|
||||||
wait_power_ack = false;
|
|
||||||
wait_reset_ack = false;
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (need_power_ack && !wait_power_ack) {
|
if (!received_power_released_ack) {
|
||||||
String msg = "power_released";
|
String msg = "power_released";
|
||||||
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||||
Serial.println("Sent power button release");
|
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";
|
String msg = "reset_released";
|
||||||
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
esp_now_send(server_mac, (const uint8_t*)msg.c_str(), msg.length());
|
||||||
Serial.println("Sent reset button release");
|
Serial.println("Sent reset button release");
|
||||||
|
|
||||||
wait_reset_ack = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
#include "connect.h"
|
#include "connect.h"
|
||||||
|
|
||||||
#define POWER_BUTTON_PIN 10
|
#define POWER_BUTTON_PIN 2
|
||||||
#define RESET_BUTTON_PIN 2
|
#define RESET_BUTTON_PIN 10
|
||||||
|
|
||||||
#define POWER_LED_PIN 3
|
#define POWER_LED_PIN 1
|
||||||
#define RESET_LED_PIN 1
|
#define RESET_LED_PIN 3
|
||||||
|
|
||||||
#define POWER_GATE_PIN 6
|
#define POWER_GATE_PIN 6
|
||||||
#define RESET_GATE_PIN 7
|
#define RESET_GATE_PIN 7
|
||||||
|
|||||||
Reference in New Issue
Block a user