Compare commits
2 Commits
684df16eb1
...
69a8f32179
Author | SHA1 | Date | |
---|---|---|---|
|
69a8f32179 | ||
|
e99474c3cf |
@ -20,6 +20,8 @@ struct WifiConfiguration {
|
|||||||
|
|
||||||
// The interval to reconnect to WiFi if the connection is broken
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
uint32_t reconnectInterval;
|
uint32_t reconnectInterval;
|
||||||
|
|
||||||
|
uint32_t periodicReconnectInterval;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct KeyConfiguration {
|
struct KeyConfiguration {
|
||||||
@ -76,4 +78,6 @@ private:
|
|||||||
void prepareResponseBuffer(SesameEvent event, uint8_t deviceId = 0);
|
void prepareResponseBuffer(SesameEvent event, uint8_t deviceId = 0);
|
||||||
void sendPreparedLocalResponse(AsyncWebServerRequest *request);
|
void sendPreparedLocalResponse(AsyncWebServerRequest *request);
|
||||||
void sendPreparedServerResponse();
|
void sendPreparedServerResponse();
|
||||||
|
|
||||||
|
void periodicallyReconnectWifiAndSocket(uint32_t millis);
|
||||||
};
|
};
|
@ -49,6 +49,9 @@ constexpr const char* networkName = "Sesame-Device";
|
|||||||
// The interval to reconnect to WiFi if the connection is broken
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
constexpr uint32_t wifiReconnectInterval = 10000;
|
constexpr uint32_t wifiReconnectInterval = 10000;
|
||||||
|
|
||||||
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
|
constexpr uint32_t wifiPeriodicReconnectInterval = 86400;
|
||||||
|
|
||||||
/* Local server */
|
/* Local server */
|
||||||
|
|
||||||
// The port for the local server to directly receive messages over WiFi
|
// The port for the local server to directly receive messages over WiFi
|
||||||
|
@ -14,6 +14,6 @@ board = az-delivery-devkit-v4
|
|||||||
framework = arduino
|
framework = arduino
|
||||||
lib_deps =
|
lib_deps =
|
||||||
links2004/WebSockets@^2.3.7
|
links2004/WebSockets@^2.3.7
|
||||||
madhephaestus/ESP32Servo@^0.13.0
|
madhephaestus/ESP32Servo@^1.1.0
|
||||||
ottowinter/ESPAsyncWebServer-esphome@^3.0.0
|
ottowinter/ESPAsyncWebServer-esphome@^3.0.0
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
@ -46,6 +46,7 @@ void SesameController::loop(uint32_t millis) {
|
|||||||
server.loop();
|
server.loop();
|
||||||
servo.loop(millis);
|
servo.loop(millis);
|
||||||
|
|
||||||
|
periodicallyReconnectWifiAndSocket(millis);
|
||||||
ensureWiFiConnection(millis);
|
ensureWiFiConnection(millis);
|
||||||
ensureWebSocketConnection();
|
ensureWebSocketConnection();
|
||||||
}
|
}
|
||||||
@ -214,3 +215,13 @@ bool SesameController::convertHexMessageToBinary(const char* str) {
|
|||||||
};
|
};
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SesameController::periodicallyReconnectWifiAndSocket(uint32_t millis) {
|
||||||
|
static uint32_t nextWifiReconnect = wifiConfig.periodicReconnectInterval;
|
||||||
|
if (millis > nextWifiReconnect) {
|
||||||
|
nextWifiReconnect += wifiConfig.periodicReconnectInterval;
|
||||||
|
|
||||||
|
server.disconnect();
|
||||||
|
WiFi.disconnect();
|
||||||
|
}
|
||||||
|
}
|
@ -49,6 +49,7 @@ void setup() {
|
|||||||
.password = wifiPassword,
|
.password = wifiPassword,
|
||||||
.networkName = networkName,
|
.networkName = networkName,
|
||||||
.reconnectInterval = wifiReconnectInterval,
|
.reconnectInterval = wifiReconnectInterval,
|
||||||
|
.periodicReconnectInterval = wifiPeriodicReconnectInterval,
|
||||||
};
|
};
|
||||||
|
|
||||||
KeyConfiguration keyConfig {
|
KeyConfiguration keyConfig {
|
||||||
|
Loading…
Reference in New Issue
Block a user