|
|
|
@ -105,6 +105,12 @@ void halt() { |
|
|
|
while (1) ; |
|
|
|
} |
|
|
|
|
|
|
|
/* WIFI RECONNECT TRACKERS */ |
|
|
|
#if defined(ESP32) && defined(WIFI_SSID) |
|
|
|
bool wifi_needs_reconnect = false; |
|
|
|
unsigned long last_wifi_reconnect_attempt = 0; |
|
|
|
#endif |
|
|
|
|
|
|
|
void setup() { |
|
|
|
Serial.begin(115200); |
|
|
|
|
|
|
|
@ -195,6 +201,18 @@ void setup() { |
|
|
|
|
|
|
|
#ifdef WIFI_SSID |
|
|
|
board.setInhibitSleep(true); // prevent sleep when WiFi is active
|
|
|
|
WiFi.setAutoReconnect(true); |
|
|
|
|
|
|
|
WiFi.onEvent([](WiFiEvent_t event, WiFiEventInfo_t info){ |
|
|
|
if (event == ARDUINO_EVENT_WIFI_STA_DISCONNECTED) { |
|
|
|
WIFI_DEBUG_PRINTLN("WiFi disconnected. Flagging for reconnect..."); |
|
|
|
wifi_needs_reconnect = true; |
|
|
|
} else if (event == ARDUINO_EVENT_WIFI_STA_GOT_IP) { |
|
|
|
WIFI_DEBUG_PRINTLN("WiFi connected successfully!"); |
|
|
|
wifi_needs_reconnect = false; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
WiFi.begin(WIFI_SSID, WIFI_PWD); |
|
|
|
serial_interface.begin(TCP_PORT); |
|
|
|
#elif defined(BLE_PIN_CODE) |
|
|
|
@ -229,4 +247,14 @@ void loop() { |
|
|
|
ui_task.loop(); |
|
|
|
#endif |
|
|
|
rtc_clock.tick(); |
|
|
|
|
|
|
|
#if defined(ESP32) && defined(WIFI_SSID) |
|
|
|
// Safely attempt to reconnect every 10 seconds if flagged
|
|
|
|
if (wifi_needs_reconnect && (millis() - last_wifi_reconnect_attempt > 10000)) { |
|
|
|
WIFI_DEBUG_PRINTLN("Attempting manual WiFi reconnect..."); |
|
|
|
WiFi.disconnect(); |
|
|
|
WiFi.reconnect(); |
|
|
|
last_wifi_reconnect_attempt = millis(); |
|
|
|
} |
|
|
|
#endif |
|
|
|
} |
|
|
|
|