From 9fd11f13b66fae812c98c4916fc353124bec129e Mon Sep 17 00:00:00 2001 From: Alberto Ricci Bitti Date: Mon, 4 Jan 2016 10:44:56 +0100 Subject: [PATCH] connectWifi() now returns connection status, making its use more straightforward --- WiFiManager.cpp | 18 +++++------------- WiFiManager.h | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/WiFiManager.cpp b/WiFiManager.cpp index fc79a72..5567d7f 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -96,9 +96,7 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd) { //String pass = WiFi.psk(); WiFi.mode(WIFI_STA); - connectWifi(ssid, pass); - int s = WiFi.status(); - if (s == WL_CONNECTED) { + if(connectWifi(ssid, pass) == WL_CONNECTED) { DEBUG_PRINT(F("IP Address:")); DEBUG_PRINT(WiFi.localIP()); //connected @@ -127,16 +125,9 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd) { delay(2000); DEBUG_PRINT(F("Connecting to new AP")); connect = false; - //ssid = getSSID(); - //pass = getPassword(); - connectWifi(_ssid, _pass); - int s = WiFi.status(); - if (s != WL_CONNECTED) { + // using user-provided _ssid, _pass in place of system-stored ssid amd pass + if (connectWifi(_ssid, _pass) != WL_CONNECTED) { DEBUG_PRINT(F("Failed to connect.")); - //not connected, should retry everything - //ESP.reset(); - //delay(1000); - //return false; } else { //connected WiFi.mode(WIFI_STA); @@ -153,13 +144,14 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPasswd) { } -void WiFiManager::connectWifi(String ssid, String pass) { +int WiFiManager::connectWifi(String ssid, String pass) { DEBUG_PRINT(F("Connecting as wifi client...")); //WiFi.disconnect(); WiFi.begin(ssid.c_str(), pass.c_str()); int connRes = WiFi.waitForConnectResult(); DEBUG_PRINT ("Connection result: "); DEBUG_PRINT ( connRes ); + return connRes; } diff --git a/WiFiManager.h b/WiFiManager.h index 27deed9..88211fc 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -101,7 +101,7 @@ private: bool keepLooping = true; int status = WL_IDLE_STATUS; - void connectWifi(String ssid, String pass); + int connectWifi(String ssid, String pass); void handleRoot(); void handleWifi(bool scan);