Added "forceAP" parameter to autoconnect (defaulted to false, which leaves previous behaviour unchanged).

If true, starts the configuration portal anyway (in my case I have a physical button to enter configuration)
This commit is contained in:
Alberto Ricci Bitti
2016-01-04 13:17:06 +01:00
parent ead84aea36
commit 807933270b
2 changed files with 13 additions and 13 deletions
+12 -12
View File
@@ -76,25 +76,25 @@ boolean WiFiManager::autoConnect(char const *apName) {
return autoConnect(apName,NULL);
}
boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd) {
boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd, bool forceAP) {
DEBUG_PRINT(F(""));
DEBUG_PRINT(F("AutoConnect"));
// read eeprom for ssid and pass
String ssid = getSSID();
String pass = getPassword();
//use SDK functions to get SSID and pass
//String ssid = WiFi.SSID();
//String pass = WiFi.psk();
WiFi.mode(WIFI_STA);
if(connectWifi(ssid, pass) == WL_CONNECTED) {
DEBUG_PRINT(F("IP Address:"));
DEBUG_PRINT(WiFi.localIP());
//connected
return true;
if ( ! forceAP ) {
// attempt to connect; should it fail, fall back to AP
WiFi.mode(WIFI_STA);
if(connectWifi(ssid, pass) == WL_CONNECTED) {
DEBUG_PRINT(F("IP Address:"));
DEBUG_PRINT(WiFi.localIP());
//connected
return true;
}
}
//not connected
//setup AP
WiFi.mode(WIFI_AP);
+1 -1
View File
@@ -38,7 +38,7 @@ public:
boolean autoConnect();
boolean autoConnect(char const *apName);
boolean autoConnect(char const *apName, char const *apPasswd);
boolean autoConnect(char const *apName, char const *apPasswd, bool forceAP = false);
String getSSID();
String getPassword();