From e342fd9b71f2225ba204c0b7ba37d7c821ea5273 Mon Sep 17 00:00:00 2001 From: Shawn A Date: Wed, 14 Feb 2018 10:33:28 -0600 Subject: [PATCH] refactor ip form outputs --- WiFiManager.cpp | 103 ++++++++++++++++++------------------------------ WiFiManager.h | 4 ++ 2 files changed, 43 insertions(+), 64 deletions(-) diff --git a/WiFiManager.cpp b/WiFiManager.cpp index f4da82a..e4d7db2 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -11,7 +11,6 @@ **************************************************************/ #include "WiFiManager.h" -#include "strings_en.h" // PARAMETERS @@ -114,7 +113,7 @@ WiFiManager::WiFiManager(Stream& consolePort):_debugPort(consolePort) { } WiFiManager::WiFiManager():_debugPort(Serial) { - if(_debug) debugPlatformInfo(); + if(_debug && _debugLevel > 0) debugPlatformInfo(); _usermode = WiFi.getMode(); WiFi.persistent(false); // disable persistent so scannetworks and mode switching do not cause overwrites @@ -178,7 +177,7 @@ bool WiFiManager::startAP(){ ret = WiFi.softAP(_apName.c_str()); } - debugSoftAPConfig(); + if(_debugLevel > 1) debugSoftAPConfig(); if(!ret) DEBUG_WM("[ERROR] There was a problem starting the AP"); // @bug startAP returns unreliable success status @@ -211,7 +210,7 @@ boolean WiFiManager::configPortalHasTimeout(){ if(_configPortalTimeout == 0 || (_cpClientCheck && (wifi_softap_get_station_num() > 0))){ if(millis() - timer > 30000){ timer = millis(); - DEBUG_WM("NUM CLIENTS: " + (String)wifi_softap_get_station_num()); + if(_debugLevel > 0) DEBUG_WM("NUM CLIENTS: " + (String)wifi_softap_get_station_num()); } _configPortalStart = millis(); // kludge, bump configportal start time to skew timeouts return false; @@ -222,7 +221,7 @@ boolean WiFiManager::configPortalHasTimeout(){ if(millis() > _configPortalStart + _configPortalTimeout){ DEBUG_WM(F("config portal has timed out")); return true; - } else { + } else if(_debugLevel > 0) { if((millis() - timer) > 1000){ timer = millis(); DEBUG_WM(F("Portal Timeout In"),(String)((_configPortalStart + _configPortalTimeout-millis())/1000) + (String)F(" seconds")); @@ -375,7 +374,7 @@ uint8_t WiFiManager::handleConfigPortal(){ // sta off to stabilize AP on connect failure WiFi_Disconnect(); WiFi_enableSTA(false); - DEBUG_WM(F("Disabling STA")); + DEBUG_WM(F("Disabling STA")); } } @@ -407,6 +406,7 @@ boolean WiFiManager::stopConfigPortal(){ // @todo bug *WM: disconnect configportal // [APdisconnect] set_config failed! // *WM: disconnect configportal - softAPdisconnect failed + // still no way to reproduce reliably DEBUG_WM(F("disconnect configportal")); bool ret = WiFi.softAPdisconnect(false); if(!ret)DEBUG_WM(F("disconnect configportal - softAPdisconnect failed")); @@ -508,7 +508,6 @@ String WiFiManager::getConfigPortalSSID() { // SETTERS void WiFiManager::resetSettings() { DEBUG_WM(F("SETTINGS ERASED")); - DEBUG_WM(F("THIS MAY CAUSE AP NOT TO START UP PROPERLY. YOU NEED TO COMMENT IT OUT AFTER ERASING THE DATA.")); // @todo WHUT? WiFi.persistent(true); WiFi.disconnect(true); WiFi.persistent(false); @@ -712,59 +711,31 @@ String WiFiManager::getScanItemOut(){ return page; } +String WiFiManager::getIpForm(String id, String title, String value){ + String item = FPSTR(HTTP_FORM_LABEL); + item += FPSTR(HTTP_FORM_PARAM); + item.replace(F("{i}"), id); + item.replace(F("{n}"), id); + item.replace(F("{p}"), F("{t}")); + // item.replace(F("{p}"), default); + item.replace(F("{t}"), title); + item.replace(F("{l}"), F("15")); + item.replace(F("{v}"), value); + item.replace(F("{c}"), ""); + return item; +} + String WiFiManager::getStaticOut(){ String page; if (_staShowStaticFields || _sta_static_ip) { - // @todo how can we get these settings from memory , wifi_get_ip_info does not seem to reveal if struct ip_info is static or not - // @todo move titles to params for i18n - - String item = FPSTR(HTTP_FORM_LABEL); - item += FPSTR(HTTP_FORM_PARAM); - item.replace(F("{i}"), F("ip")); - item.replace(F("{n}"), F("ip")); - item.replace(F("{p}"), F("{t}")); - item.replace(F("{t}"), FPSTR(S_staticip)); // @token staticip - item.replace(F("{l}"), F("15")); - item.replace(F("{v}"), (_sta_static_ip ? _sta_static_ip.toString() : "")); - item.replace(F("{c}"), ""); - - // actuals as placeholder - // IPAddress sta_ip = WiFi.localIP(); - // item.replace(F("{p}"), sta_ip.toString()); - - page += item; - - item = FPSTR(HTTP_FORM_LABEL); - item += FPSTR(HTTP_FORM_PARAM); - item.replace(F("{i}"), F("gw")); - item.replace(F("{n}"), F("gw")); - item.replace(F("{p}"), F("{t}")); - item.replace(F("{t}"), FPSTR(S_staticgw)); // @token staticgw - item.replace(F("{l}"), F("15")); - item.replace(F("{v}"), (_sta_static_gw ? _sta_static_gw.toString() : "")); - item.replace(F("{c}"), ""); - - // actuals as placeholder - // IPAddress sta_gateway = WiFi.gatewayIP(); - // item.replace(F("{p}"), sta_gateway.toString()); - - page += item; - - item = FPSTR(HTTP_FORM_LABEL); - item += FPSTR(HTTP_FORM_PARAM); - item.replace(F("{i}"), F("sn")); - item.replace(F("{n}"), F("sn")); - item.replace(F("{p}"), F("{t}")); - item.replace(F("{t}"), FPSTR(S_subnet)); // @token subnet - item.replace(F("{l}"), F("15")); - item.replace(F("{v}"), (_sta_static_sn ? _sta_static_sn.toString() : "")); - item.replace(F("{c}"), ""); - - // actuals as placeholder - // IPAddress sta_subnet = WiFi.subnetMask(); - // item.replace("{p}", sta_subnet.toString()); - page += item; + // @todo how can we get these accurate settings from memory , wifi_get_ip_info does not seem to reveal if struct ip_info is static or not + page += getIpForm(F("ip"),FPSTR(S_staticip),(_sta_static_ip ? _sta_static_ip.toString() : "")); // @token staticip + // WiFi.localIP().toString(); + page += getIpForm(F("gw"),FPSTR(S_staticgw),(_sta_static_gw ? _sta_static_gw.toString() : "")); // @token staticgw + // WiFi.gatewayIP().toString(); + page += getIpForm(F("sn"),FPSTR(S_subnet),(_sta_static_sn ? _sta_static_sn.toString() : "")); // @token subnet + // WiFi.subnetMask().toString(); page += F("
"); // @todo remove these, use css } return page; @@ -1254,8 +1225,10 @@ void WiFiManager::setWebPortalClientCheck(boolean enabled){ template void WiFiManager::DEBUG_WM(Generic text) { if (_debug) { - _debugPort.print("MEM: "); - _debugPort.println((String)ESP.getFreeHeap()); + if(_debugLevel > 2){ + _debugPort.print("MEM: "); + _debugPort.println((String)ESP.getFreeHeap()); + } _debugPort.print("*WM: "); _debugPort.print(text); _debugPort.print("\n"); @@ -1265,8 +1238,10 @@ void WiFiManager::DEBUG_WM(Generic text) { template void WiFiManager::DEBUG_WM(Generic text,Genericb textb) { if (_debug) { - _debugPort.print("MEM: "); - _debugPort.println((String)ESP.getFreeHeap()); + if(_debugLevel > 2){ + _debugPort.print("MEM: "); + _debugPort.println((String)ESP.getFreeHeap()); + } _debugPort.print("*WM: "); _debugPort.print(text); _debugPort.print(" "); @@ -1294,10 +1269,10 @@ void WiFiManager::debugSoftAPConfig(){ void WiFiManager::debugPlatformInfo(){ system_print_meminfo(); - DEBUG_WM(F("getCoreVersion():"),ESP.getCoreVersion()); - DEBUG_WM(F("system_get_sdk_version():"),system_get_sdk_version()); + DEBUG_WM(F("getCoreVersion(): "),ESP.getCoreVersion()); + DEBUG_WM(F("system_get_sdk_version(): "),system_get_sdk_version()); DEBUG_WM(F("system_get_boot_version():"),system_get_boot_version()); - DEBUG_WM((String)ESP.getFreeHeap()); + DEBUG_WM(F("getFreeHeap(): "),(String)ESP.getFreeHeap()); } int WiFiManager::getRSSIasQuality(int RSSI) { @@ -1406,7 +1381,7 @@ bool WiFiManager::WiFi_Disconnect() { DEBUG_WM(F("wifi station disconnect")); ETS_UART_INTR_DISABLE(); ret = wifi_station_disconnect(); - ETS_UART_INTR_ENABLE(); + ETS_UART_INTR_ENABLE(); return ret; } } diff --git a/WiFiManager.h b/WiFiManager.h index d828e0d..f39f8fa 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -27,6 +27,8 @@ } #endif +#include "strings_en.h" + #define WIFI_getChipId() ESP.getChipId() #define WIFI_AUTH_OPEN ENC_TYPE_NONE @@ -214,6 +216,7 @@ class WiFiManager // output helpers String getParamOut(); + String getIpForm(String id, String title, String value); String getScanItemOut(); String getStaticOut(); String getHTTPHead(String title); @@ -247,6 +250,7 @@ class WiFiManager // debugging boolean _debug = true; + uint8_t _debugLevel = 2; Stream& _debugPort; // debug output stream ref template void DEBUG_WM(Generic text);