updated WiFi WDG

pull/60/head
Miroslav Pivovarsky 2024-08-03 21:47:15 +02:00
parent be284668b1
commit 218a3cb02d
1 changed files with 17 additions and 7 deletions

View File

@ -315,8 +315,10 @@ uint8_t WiFiMngt::ScanWifiNetwork(String ssid) {
WifiScanJson = ""; WifiScanJson = "";
/* make json with each found WI-FI networks */ /* make json with each found WI-FI networks */
if (n == 0) { if (n <= 0) {
log->AddEvent(LogLevel_Info, F("No networks found!")); log->AddEvent(LogLevel_Info, "No networks found! [" + String(n) + "]");
ret = 0;
} else { } else {
log->AddEvent(LogLevel_Info, String(n) + " networks found"); log->AddEvent(LogLevel_Info, String(n) + " networks found");
log->AddEvent(LogLevel_Info, F("Nr | SSID | RSSI | CH | BSSID | Encryption")); log->AddEvent(LogLevel_Info, F("Nr | SSID | RSSI | CH | BSSID | Encryption"));
@ -356,7 +358,7 @@ uint8_t WiFiMngt::ScanWifiNetwork(String ssid) {
log->AddEvent(LogLevel_Verbose, WifiScanJson); log->AddEvent(LogLevel_Verbose, WifiScanJson);
/* print status */ /* print status */
if (1 <= ret) { if (ret >= 1) {
log->AddEvent(LogLevel_Info, "SSID: " + ssid + " found, " + String(ret) + "x"); log->AddEvent(LogLevel_Info, "SSID: " + ssid + " found, " + String(ret) + "x");
if (1 < ret) { if (1 < ret) {
memcpy(WiFiStaNetworkBssid, bssid, 6); memcpy(WiFiStaNetworkBssid, bssid, 6);
@ -365,8 +367,10 @@ uint8_t WiFiMngt::ScanWifiNetwork(String ssid) {
sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", WiFiStaNetworkBssid[0], WiFiStaNetworkBssid[1], WiFiStaNetworkBssid[2], WiFiStaNetworkBssid[3], WiFiStaNetworkBssid[4], WiFiStaNetworkBssid[5]); sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", WiFiStaNetworkBssid[0], WiFiStaNetworkBssid[1], WiFiStaNetworkBssid[2], WiFiStaNetworkBssid[3], WiFiStaNetworkBssid[4], WiFiStaNetworkBssid[5]);
log->AddEvent(LogLevel_Info, "WiFi roaming found! Connecting to " + String(mac) + " -> " + String(bestSignal) + "dBm, " + String(WiFiStaMultipleNetwork)); log->AddEvent(LogLevel_Info, "WiFi roaming found! Connecting to " + String(mac) + " -> " + String(bestSignal) + "dBm, " + String(WiFiStaMultipleNetwork));
} }
} else { } else {
log->AddEvent(LogLevel_Info, "SSID: " + ssid + " not found"); log->AddEvent(LogLevel_Info, "SSID: " + ssid + " not found");
ret = 0;
} }
return ret; return ret;
@ -416,15 +420,19 @@ void WiFiMngt::WiFiWatchdog() {
/* when is enabled wifi configuration, and is not connected to wifi network, and is available at least one wifi network */ /* when is enabled wifi configuration, and is not connected to wifi network, and is available at least one wifi network */
if ((true == config->CheckActifeWifiCfgFlag()) && (WL_CONNECTED != WiFi.status()) && (true == GetFirstConnection())) { if ((true == config->CheckActifeWifiCfgFlag()) && (WL_CONNECTED != WiFi.status()) && (true == GetFirstConnection())) {
log->AddEvent(LogLevel_Warning, F("WiFi WDG. STA connection lost.")); log->AddEvent(LogLevel_Warning, "WiFi WDG. STA connection lost. " + String(StartStaWdg));
unsigned long currentMillis = millis(); unsigned long currentMillis = millis();
log->AddEvent(LogLevel_Verbose, "Time: " + String(currentMillis - TaskWdg_previousMillis) + "/" + String(WIFI_STA_WDG_TIMEOUT));
if (false == StartStaWdg) { if (false == StartStaWdg) {
if (ScanWifiNetwork(WifiSsid) >= 1) { if (ScanWifiNetwork(WifiSsid) >= 1) {
log->AddEvent(LogLevel_Warning, F("WiFi STA connection lost. Start watchdog timer!"));
} else {
log->AddEvent(LogLevel_Warning, F("WiFi STA connection lost. No available network!"));
}
StartStaWdg = true; StartStaWdg = true;
TaskWdg_previousMillis = currentMillis; TaskWdg_previousMillis = currentMillis;
log->AddEvent(LogLevel_Warning, F("WiFi STA connection lost. Start watchdog timer!"));
}
} }
if ((true == StartStaWdg) && (currentMillis - TaskWdg_previousMillis >= WIFI_STA_WDG_TIMEOUT)) { if ((true == StartStaWdg) && (currentMillis - TaskWdg_previousMillis >= WIFI_STA_WDG_TIMEOUT)) {
@ -432,10 +440,12 @@ void WiFiMngt::WiFiWatchdog() {
/* restart MCU, or disconnect and connect to WiFi again ? From my point of view, and testing, restart MCU is better */ /* restart MCU, or disconnect and connect to WiFi again ? From my point of view, and testing, restart MCU is better */
ESP.restart(); ESP.restart();
} }
} else if (true == StartStaWdg) { } else if (true == StartStaWdg) {
log->AddEvent(LogLevel_Info, F("WiFi STA connection OK. Stop watchdog timer!")); log->AddEvent(LogLevel_Info, F("WiFi WDG. WiFi STA connection OK. Stop watchdog timer!"));
StartStaWdg = false; StartStaWdg = false;
TaskWdg_previousMillis = millis(); TaskWdg_previousMillis = millis();
} }
} }