Wifi utils add multiple SSID

This commit is contained in:
Petr Kracik 2026-01-15 01:43:40 +01:00
parent 5750ca31b5
commit 4b0d5a4ca0
2 changed files with 16 additions and 21 deletions

View file

@ -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;

View file

@ -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);