From 24d8a4a7f168481163875de48e5832d05eb3bc53 Mon Sep 17 00:00:00 2001 From: Ray Jones Date: Sat, 9 May 2020 19:17:21 +1000 Subject: [PATCH] Added timer retry according to temperature being denied in the past --- data/favicon.ico | Bin 1150 -> 1406 bytes data/gauge.min.js.gz | Bin 13319 -> 0 bytes data/index.html.gz | Bin 15950 -> 59098 bytes src/Afterburner.cpp | 5 +- src/OLED/ScreenManager.cpp | 6 +-- src/OLED/VersionInfoScreen.cpp | 6 ++- src/RTC/TimerManager.cpp | 42 ++++++++++++---- src/RTC/TimerManager.h | 2 + src/Utility/DemandManager.cpp | 3 ++ src/Utility/NVStorage.cpp | 4 +- src/Utility/NVStorage.h | 4 +- src/WiFi/BTCWebServer.cpp | 85 ++++++++++++++++++++++++--------- src/WiFi/BTCWebServer.h | 1 + src/WiFi/BTCWifi.cpp | 27 ++++++++++- src/WiFi/BTCWifi.h | 24 ++++++++++ src/WiFi/WebContentDL.cpp | 4 +- 16 files changed, 169 insertions(+), 44 deletions(-) delete mode 100644 data/gauge.min.js.gz diff --git a/data/favicon.ico b/data/favicon.ico index f225d9dcb96277272ee402fefa503c48a823dcb2..c7e2519a36ca38e7c6d0839b3c4b713605c2e5a2 100644 GIT binary patch literal 1406 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 z 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 RzUX3){so0LHbIZ8001K6h*AIm diff --git a/data/index.html.gz b/data/index.html.gz index 0cd0ccf4a62712b6dda3f42254f2b28a4ec879ad..322a1efddb696d4961197dbf5e9fbb36d39f12b5 100644 GIT binary patch literal 59098 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 literal 15950 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 wG@ag_hz7ff= stopDeltaT) { + DebugPort.println("Immediate switch to suspend mode, too warm"); return eStartSuspend; } } @@ -142,11 +143,13 @@ CDemandManager::checkStart() // temperature exceeded the allowed margin // only deny start if actually using inbuilt thermostat mode if(isThermostat()) { + DebugPort.println("Start denied, too warm"); return eStartTooWarm; // too warm - deny start } } } + DebugPort.println("Start allowed"); return eStartOK; // allow start } diff --git a/src/Utility/NVStorage.cpp b/src/Utility/NVStorage.cpp index 2191f6d..f37c2ca 100644 --- a/src/Utility/NVStorage.cpp +++ b/src/Utility/NVStorage.cpp @@ -600,8 +600,8 @@ sCredentials::load() validatedLoad("APpassword", APpassword, 31, "thereisnospoon"); validatedLoad("webUpdateUser", webUpdateUsername, 31, "Afterburner"); validatedLoad("webUpdatePass", webUpdatePassword, 31, "BurnBabyBurn"); - validatedLoad("webUser", webUsername, 31, "Afterburner"); - validatedLoad("webPass", webPassword, 31, "WebAccess"); + validatedLoad("webUser", webUsername, 31, ""); + validatedLoad("webPass", webPassword, 31, ""); preferences.end(); } diff --git a/src/Utility/NVStorage.h b/src/Utility/NVStorage.h index b902adb..e8bc429 100644 --- a/src/Utility/NVStorage.h +++ b/src/Utility/NVStorage.h @@ -242,8 +242,8 @@ struct sCredentials : public CESP32_NVStorage { strcpy(APpassword, "thereisnospoon"); strcpy(webUpdateUsername, "Afterburner"); strcpy(webUpdatePassword, "BurnBabyBurn"); - strcpy(webUsername, "Afterburner"); - strcpy(webPassword, "WebAccess"); + strcpy(webUsername, ""); + strcpy(webPassword, ""); }; void load(); void save(); diff --git a/src/WiFi/BTCWebServer.cpp b/src/WiFi/BTCWebServer.cpp index 7a23e5e..ef3cd2f 100644 --- a/src/WiFi/BTCWebServer.cpp +++ b/src/WiFi/BTCWebServer.cpp @@ -84,9 +84,7 @@ HTTPSServer * secureServer; #endif HTTPServer * insecureServer; HTTPServer * WSserver; -#if USE_SSL_LOOP_TASK == 1 void SSLloopTask(void *); -#endif sBrowserUpload BrowserUpload; #ifdef OLD_SERVER @@ -100,6 +98,7 @@ bool bTxWebData = false; bool bUpdateAccessed = false; // flag used to ensure browser update always starts via GET /update. direct accesses to POST /update will FAIL bool bFormatAccessed = false; bool bFormatPerformed = false; +bool bStopWebServer = false; long _SuppliedFileSize = 0; bool checkFile(File &file); @@ -474,6 +473,8 @@ void initWebServer(void) { // setup task to handle webserver webSocketQueue = xQueueCreate(50, sizeof(char*) ); + + bStopWebServer = false; xTaskCreate(SSLloopTask, "Web server task", 8192, @@ -486,7 +487,8 @@ void initWebServer(void) { } void SSLloopTask(void *) { - for(;;) { + + while(!bStopWebServer) { WSserver->loop(); insecureServer->loop(); #if USE_HTTPS == 1 @@ -495,23 +497,32 @@ void SSLloopTask(void *) { processWebsocketQueue(); vTaskDelay(1); } + + WSserver->stop(); + insecureServer->stop(); +#if USE_HTTPS == 1 + secureServer->stop(); +#endif + + vTaskDelete(NULL); + bStopWebServer = false; } // called by main sketch loop() bool doWebServer(void) { -#if USE_SSL_LOOP_TASK != 1 - WSserver->loop(); - insecureServer->loop(); -#if USE_HTTPS == 1 - secureServer->loop(); -#endif -#endif - GetWebContent.manage(); return true; } +void stopWebServer() +{ + DebugPort.println("Requesting web server stop"); + bStopWebServer = true; + delay(100); +} + + String getContentType(String filename) { // convert the file extension to the MIME type if (filename.endsWith(".html")) return "text/html"; else if (filename.endsWith(".css")) return "text/css"; @@ -660,9 +671,6 @@ bool handleFileRead(String path, HTTPResponse *res) { // send the right file to if(wr > 0) { done += wr; if(done > progressdot) { -#if USE_SSL_LOOP_TASK != 1 - feedWatchdog(); -#endif DebugPort.print("."); progressdot += 1024; } @@ -1017,14 +1025,45 @@ function onformatClick() { )====="; +const char* wmConfigIndex = R"=====( + + + + + + + + +Launching Afterburner Wifi Manager + + +

Launching Afterburner Wifi Manager

+

+

This page will automatically reload in 15 seconds, please wait.

+ If auto reload fails, try manually refreshing the web page + +

You may need to reconnect to the Afterburner's AP following the reboot

+ + +)====="; void onWMConfig(HTTPRequest * req, httpsserver::HTTPResponse * res) { DebugPort.println("WEB: GET /wmconfig"); - res->print("Start Config Portal - Retaining credential"); + res->print(wmConfigIndex); DebugPort.println("Starting web portal for wifi config"); - delay(500); - wifiEnterConfigPortal(true, false, 3000); + wmReboot newMode(true); + newMode.startPortal = true; + newMode.eraseCreds = false; + newMode.delay = 500; + scheduleWMreboot(newMode); + + // delay(500); + // wifiEnterConfigPortal(true, false, 10000); } @@ -1033,8 +1072,13 @@ void onResetWifi(HTTPRequest * req, httpsserver::HTTPResponse * res) DebugPort.println("WEB: GET /resetwifi"); res->print("Start Config Portal - Resetting Wifi credentials!"); DebugPort.println("diconnecting client and wifi, then rebooting"); - delay(500); - wifiEnterConfigPortal(true, true, 3000); + wmReboot newMode(true); + newMode.startPortal = true; + newMode.eraseCreds = true; + newMode.delay = 500; + scheduleWMreboot(newMode); + // delay(500); + // wifiEnterConfigPortal(true, true, 3000); } @@ -1417,9 +1461,6 @@ void onUploadProgression(HTTPRequest * req, httpsserver::HTTPResponse * res) } while (!parser->endOfField()) { -#if USE_SSL_LOOP_TASK != 1 - feedWatchdog(); // we get stuck here for a while, don't let the watchdog bite! -#endif upload.currentSize = parser->read(upload.buf, HTTP_UPLOAD_BUFLEN); sts = BrowserUpload.fragment(upload, res); if(sts < 0) { diff --git a/src/WiFi/BTCWebServer.h b/src/WiFi/BTCWebServer.h index 447320c..c29d632 100644 --- a/src/WiFi/BTCWebServer.h +++ b/src/WiFi/BTCWebServer.h @@ -27,6 +27,7 @@ void initWebServer(); bool doWebServer(); +void stopWebServer(); bool sendWebSocketString(const char* Str); bool isWebSocketClientChange(); diff --git a/src/WiFi/BTCWifi.cpp b/src/WiFi/BTCWifi.cpp index aa75e3e..835980d 100644 --- a/src/WiFi/BTCWifi.cpp +++ b/src/WiFi/BTCWifi.cpp @@ -22,6 +22,7 @@ // Should be working - Jimmy C #include "BTCWifi.h" +#include "BTCWebServer.h" #include "../Utility/DebugPort.h" #include #include "../OLED/ScreenManager.h" @@ -46,6 +47,8 @@ char MACstr[2][20]; // MACstr[0] STA, MACstr[1] = AP int wifiButtonState = 0; unsigned long WifiReconnectHoldoff = 0; +wmReboot pendingWMreboot; + extern CScreenManager ScreenManager; @@ -164,6 +167,8 @@ bool initWifi() // call from main sketch loop() void doWiFiManager() { + manageWMreboot(); + if(NVstore.getUserSettings().wifiMode) { wm.process(); @@ -233,7 +238,8 @@ void wifiDisable(long rebootDelay) void wifiEnterConfigPortal(bool state, bool erase, long rebootDelay, bool STAonly) { - wm.disconnect(); + stopWebServer(); + wm.disconnect(); sUserSettings settings = NVstore.getUserSettings(); settings.wifiMode = STAonly ? 0x02 : 0x01; @@ -428,3 +434,22 @@ int isWifiButton() { return wifiButtonState; } + +void scheduleWMreboot(wmReboot& newMode) +{ + pendingWMreboot = newMode; +} + +void manageWMreboot() +{ + if(pendingWMreboot.delay) { + long tDelta = millis() - pendingWMreboot.started; + if(tDelta > pendingWMreboot.delay) { + wifiEnterConfigPortal(pendingWMreboot.startPortal, + pendingWMreboot.eraseCreds, + 3000); + pendingWMreboot.delay = 0; + } + } +} + diff --git a/src/WiFi/BTCWifi.h b/src/WiFi/BTCWifi.h index 5811f68..d2a60b8 100644 --- a/src/WiFi/BTCWifi.h +++ b/src/WiFi/BTCWifi.h @@ -24,6 +24,27 @@ #include +struct wmReboot { + bool startPortal; + bool eraseCreds; + unsigned long delay; + unsigned long started; + + wmReboot(bool timenow = false) { + startPortal = false; + eraseCreds = false; + delay = 0; + started = timenow ? millis() : 0; + }; + wmReboot& operator=(wmReboot& rhs) { + startPortal = rhs.startPortal; + eraseCreds = rhs.eraseCreds; + delay = rhs.delay; + started = rhs.started; + return *this; + }; +}; + void doWiFiManager(); bool initWifi(); const char* getWifiAPAddrStr(); @@ -46,4 +67,7 @@ void wifiDisable(long rebootDelay = 7000); void wifiFactoryDefault(); int isWifiButton(); +void scheduleWMreboot(wmReboot& newMode); +void manageWMreboot(); + #endif // __BTCWIFI_H__ diff --git a/src/WiFi/WebContentDL.cpp b/src/WiFi/WebContentDL.cpp index 54a4a20..277f7bb 100644 --- a/src/WiFi/WebContentDL.cpp +++ b/src/WiFi/WebContentDL.cpp @@ -64,7 +64,9 @@ void WebPageRequestCB(void* pClass, asyncHTTPrequest* request, int readyState) CWebContentDL::CWebContentDL() { +#ifdef DEBUG_WEBDL _request.setDebug(true); +#endif _request.onReadyStateChange(WebPageRequestCB, this); _request.onData(WebPageDataCB, this); _queue = NULL; @@ -108,7 +110,7 @@ void CWebContentDL::get(const char* filename) } // routine called regualrly by the "loop" task - ie not IRQL -// it is no safe to write to SPIFFS in the AsyncTCP callbacks! +// it is not safe to write to SPIFFS in the AsyncTCP callbacks! void CWebContentDL::process() {