adds #1137 connect retries

setConnectRetries()
This commit is contained in:
tablatronix
2020-11-19 14:25:12 -06:00
parent 9e29835ac8
commit a7fb6d5caf
3 changed files with 30 additions and 6 deletions
+19 -2
View File
@@ -755,7 +755,7 @@ bool WiFiManager::shutdownConfigPortal(){
// clean up, flow is convoluted, and causes bugs
uint8_t WiFiManager::connectWifi(String ssid, String pass) {
DEBUG_WM(DEBUG_VERBOSE,F("Connecting as wifi client..."));
uint8_t retry = 1;
uint8_t connRes = (uint8_t)WL_NO_SSID_AVAIL;
setSTAConfig();
@@ -766,6 +766,10 @@ uint8_t WiFiManager::connectWifi(String ssid, String pass) {
if(_cleanConnect) WiFi_Disconnect(); // disconnect before begin, in case anything is hung, this causes a 2 seconds delay for connect
// @todo find out what status is when this is needed, can we detect it and handle it, say in between states or idle_status
while(retry <= _connectRetries){
if(_connectRetries > 1){
DEBUG_WM(F("Connect Wifi, ATTEMPT #"),(String)retry+" of "+(String)_connectRetries);
}
// if ssid argument provided connect to that
if (ssid != "") {
wifiConnectNew(ssid,pass);
@@ -783,11 +787,13 @@ uint8_t WiFiManager::connectWifi(String ssid, String pass) {
connRes = waitForConnectResult();
}
else {
DEBUG_WM(F("No wifi save required, skipping"));
DEBUG_WM(F("No wifi saved, skipping"));
}
}
DEBUG_WM(DEBUG_VERBOSE,F("Connection result:"),getWLStatusString(connRes));
retry++;
}
// WPS enabled? https://github.com/esp8266/Arduino/pull/4889
#ifdef NO_EXTRA_4K_HEAP
@@ -2057,6 +2063,17 @@ void WiFiManager::setConfigPortalTimeout(unsigned long seconds) {
void WiFiManager::setConnectTimeout(unsigned long seconds) {
_connectTimeout = seconds * 1000;
}
/**
* [setConnectRetries description]
* @access public
* @param {[type]} uint8_t numRetries [description]
*/
void WiFiManager::setConnectRetries(uint8_t numRetries){
_connectRetries = numRetries;
if(_connectRetries > 10) numRetries = 10; // some cap
}
/**
* toggle _cleanconnect, always disconnect before connecting
* @param {[type]} bool enable [description]