diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 0f93180..71ecb3b 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -82,10 +82,6 @@ WiFiClient mqttClient; NetworkManager *networkManager; -uint8_t myWiFiAPIndex = 0; -int myWiFiAPSize = Config.wifiAPs.size(); -WiFi_AP *currentWiFi = &Config.wifiAPs[myWiFiAPIndex]; - bool isUpdatingOTA = false; uint32_t lastBatteryCheck = 0; diff --git a/src/wifi_utils.cpp b/src/wifi_utils.cpp index 93ec289..5f958fb 100644 --- a/src/wifi_utils.cpp +++ b/src/wifi_utils.cpp @@ -28,9 +28,6 @@ extern Configuration Config; extern NetworkManager *networkManager; -extern uint8_t myWiFiAPIndex; -extern int myWiFiAPSize; -extern WiFi_AP *currentWiFi; extern bool backUpDigiMode; uint32_t previousWiFiMillis = 0; @@ -79,25 +76,27 @@ namespace WIFI_Utils { } void startWiFi() { - if (currentWiFi->ssid.isEmpty()) { + bool hasNetworks = false; + + networkManager->clearWiFiNetworks(); + for (size_t i = 0; i < Config.wifiAPs.size(); i++) { + const WiFi_AP& wifiAP = Config.wifiAPs[i]; + if (wifiAP.ssid.isEmpty()) { + continue; + } + + hasNetworks = true; + networkManager->addWiFiNetwork(wifiAP.ssid, wifiAP.password); + } + + if (!hasNetworks) { Serial.println("WiFi SSID not set! Starting Auto AP"); startAutoAP(); return; } - // TODO: Create generic multi-SSID support in Network Manager - while (!networkManager->isWiFiConnected()) { - displayShow("", "Connecting to WiFi:", "", currentWiFi->ssid + " ...", 0); - networkManager->disconnectWiFi(); - networkManager->connectWiFi(currentWiFi->ssid, currentWiFi->password); - - if(myWiFiAPIndex >= (myWiFiAPSize - 1)) { - break; - } - - myWiFiAPIndex++; - currentWiFi = &Config.wifiAPs[myWiFiAPIndex]; - } + displayShow("", "Connecting to WiFi:", "", " loading ...", 0); + networkManager->connectWiFi(); #ifdef INTERNAL_LED_PIN digitalWrite(INTERNAL_LED_PIN,LOW);