diff --git a/WiFiManager.cpp b/WiFiManager.cpp index ae2a525..6243869 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -49,13 +49,11 @@ void WiFiManager::addParameter(WiFiManagerParameter *p) { DEBUG_WM(p->getID()); } -void WiFiManager::setupConfigPortal(char const *apName, char const *apPassword) { +void WiFiManager::setupConfigPortal() { dnsServer.reset(new DNSServer()); server.reset(new ESP8266WebServer(80)); DEBUG_WM(F("")); - _apName = apName; - _apPassword = apPassword; start = millis(); DEBUG_WM(F("Configuring access point... ")); @@ -130,14 +128,17 @@ boolean WiFiManager::startConfigPortal(char const *apName, char const *apPasswo //setup AP WiFi.mode(WIFI_AP); + _apName = apName; + _apPassword = apPassword; + //notify we entered AP mode if ( _apcallback != NULL) { _apcallback(); } connect = false; - setupConfigPortal(apName, apPassword); - + setupConfigPortal(); + DEBUG_WM("start loop"); while (timeout == 0 || millis() < start + timeout) { //DNS dnsServer->processNextRequest(); @@ -169,7 +170,7 @@ boolean WiFiManager::startConfigPortal(char const *apName, char const *apPasswo server.reset(); dnsServer.reset(); - + DEBUG_WM("end loop"); return WiFi.status() == WL_CONNECTED; } @@ -205,6 +206,10 @@ String WiFiManager::getPassword() { return _pass; } +String WiFiManager::getConfigPortalSSID() { + return _apName; +} + String WiFiManager::urldecode(const char *src) { String decoded = ""; @@ -477,7 +482,6 @@ void WiFiManager::DEBUG_WM(Generic text) { } } - int WiFiManager::getRSSIasQuality(int RSSI) { int quality = 0; diff --git a/WiFiManager.h b/WiFiManager.h index 7460082..af67424 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -67,6 +67,9 @@ class WiFiManager String getSSID(); String getPassword(); + // get the AP name of the config portal, so it can be used in the callback + String getConfigPortalSSID(); + void resetSettings(); //for convenience String urldecode(const char*); @@ -96,7 +99,7 @@ class WiFiManager const String HTTP_HEAD = "