From 8b80a331d80c2cef43165ba0a7d1415026848d3c Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 10 Mar 2020 15:13:27 +0100 Subject: [PATCH] Update nodenames --- src/hasp_http.cpp | 225 +++++++++++++++++++++++++++++++--------------- 1 file changed, 153 insertions(+), 72 deletions(-) diff --git a/src/hasp_http.cpp b/src/hasp_http.cpp index f70c69da..08c6ef9a 100644 --- a/src/hasp_http.cpp +++ b/src/hasp_http.cpp @@ -137,7 +137,6 @@ void webSendFooter() void webSendPage(String & nodename, uint32_t httpdatalength, bool gohome = false) { char buffer[128]; - snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION); /* Calculate Content Length upfront */ @@ -167,18 +166,27 @@ void webSendPage(String & nodename, uint32_t httpdatalength, bool gohome = false webServer.sendContent_P(HTTP_HEADER_END); // 80 } +void webSendPage(uint32_t httpdatalength, bool gohome = false) +{ + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + webSendPage(nodename, httpdatalength, gohome); +} + void webHandleRoot() { if(!httpIsAuthenticated(F("root"))) return; - // char buffer[128]; - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); - - httpMessage += String(F("

")); - httpMessage += String(nodename); - httpMessage += String(F("

")); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); httpMessage += F("

"); httpMessage += F("

"); @@ -207,8 +215,17 @@ void httpHandleReboot() { // http://plate01/reboot if(!httpIsAuthenticated(F("reboot"))) return; - String nodename = haspGetNodename(); - String httpMessage = F("Rebooting Device"); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + + String httpMessage((char *)0); + httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); + httpMessage = F("Rebooting Device"); + webSendPage(nodename, httpMessage.length(), true); webServer.sendContent(httpMessage); httpMessage.clear(); @@ -230,9 +247,15 @@ void webHandleScreenshot() guiTakeScreenshot(webServer); } else { - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); httpMessage += F("

"); httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("
"); /* HASP Stats */ - httpMessage += F("
HASP Version: "); + httpMessage += F("HASP Version: "); httpMessage += String(haspGetVersion()); - httpMessage += F("
Uptime: "); + httpMessage += F("Build DateTime: "); + httpMessage += __DATE__; + httpMessage += F(" "); + httpMessage += __TIME__; + httpMessage += F(" CET
Uptime: "); httpMessage += String(long(millis() / 1000)); httpMessage += F("
Free Memory: "); httpMessage += spiffsFormatBytes(ESP.getFreeHeap()); @@ -322,8 +357,8 @@ void webHandleInfo() httpMessage += F("
LVGL Fragmentation: "); httpMessage += mem_mon.frag_pct; - // httpMessage += String(F("
LCD Model: ")) + String(LV_HASP_HOR_RES_MAX) + " x " + - // String(LV_HASP_VER_RES_MAX); httpMessage += String(F("
LCD Version: ")) + String(lcdVersion); + // httpMessage += F("
LCD Model: ")) + String(LV_HASP_HOR_RES_MAX) + " x " + + // String(LV_HASP_VER_RES_MAX); httpMessage += F("
LCD Version: ")) + String(lcdVersion); httpMessage += F("

LCD Active Page: "); httpMessage += String(haspGetPage()); @@ -344,12 +379,12 @@ void webHandleInfo() /* Mqtt Stats */ httpMessage += F("

MQTT Status: "); if(mqttIsConnected()) { // Check MQTT connection - httpMessage += String(F("Connected")); + httpMessage += F("Connected"); } else { - httpMessage += String(F("Disconnected, return code: ")); + httpMessage += F("Disconnected, return code: "); // +String(mqttClient.returnCode()); } - httpMessage += String(F("
MQTT ClientID: ")); + httpMessage += F("
MQTT ClientID: "); // +String(mqttClientId); /* ESP Stats */ @@ -665,12 +700,16 @@ void webHandleConfig() httpHandleReboot(); } - // char buffer[128]; - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); - httpMessage += F("
"); httpMessage += F("

"); @@ -709,14 +748,21 @@ void webHandleMqttConfig() { // http://plate01/config/mqtt if(!httpIsAuthenticated(F("config/mqtt"))) return; + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + DynamicJsonDocument settings(256); mqttGetConfig(settings.to()); // char buffer[128]; String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); - httpMessage += String(F("
")); + httpMessage += F(""); httpMessage += F("HASP Node Name (required. lowercase letters, numbers, and _ only)" "

"); - String nodename = haspGetNodename(); webSendPage(nodename, httpMessage.length(), false); webServer.sendContent(httpMessage); httpMessage.clear(); @@ -757,20 +802,25 @@ void webHandleGuiConfig() DynamicJsonDocument settings(256); guiGetConfig(settings.to()); - // char buffer[128]; - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); - httpMessage += String(F("
")); + httpMessage += F(""); - httpMessage += String(F("

Short Idle

"); - httpMessage += String(F("

Long Idle

"); @@ -827,17 +877,22 @@ void webHandleWifiConfig() DynamicJsonDocument settings(256); wifiGetConfig(settings.to()); - // char buffer[128]; - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); - httpMessage += String(F("")); - httpMessage += String(F("WiFi SSID (required)"); + httpMessage += F("WiFi SSID (required)
WiFi Password (required)
WiFi Password (required)")); - httpMessage += String(F("Web Username (optional)"); + httpMessage += F("Web Username (optional)
Web Password (optional)
Web Password (optional)")); - httpMessage += String(F("

Telemetry Period "); + httpMessage += F("

Telemetry Period

"); httpMessage += F("

"); @@ -927,14 +992,19 @@ void webHandleHaspConfig() DynamicJsonDocument settings(256); haspGetConfig(settings.to()); - // char buffer[128]; - String nodename = haspGetNodename(); + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); httpMessage += F("

"); - httpMessage += F("

"); + httpMessage += F("


"); httpMessage += F("
"); httpMessage += F("

UI Theme (required)

"); - httpMessage += F("

Pages File (required)
Startup Page (required)
Startup Page (required)

Startup Brightness (required)")); - httpMessage += String(haspGetNodename()); - httpMessage += String(F(" ESP update
Updating ESP firmware from: ")); - httpMessage += String(webServer.arg("espFirmware")); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); + + httpMessage += F("

ESP update

Updating ESP firmware from: "); + httpMessage += webServer.arg("espFirmware"); webSendPage(nodename, httpMessage.length(), true); webServer.sendContent(httpMessage); @@ -1084,24 +1159,28 @@ void httpHandleResetConfig() if(!httpIsAuthenticated(F("resetConfig"))) return; bool resetConfirmed = webServer.arg(F("confirm")) == F("yes"); - String nodename = haspGetNodename(); - // char buffer[128]; + + String nodename((char *)0); + nodename.reserve(128); + nodename = mqttGetNodename(); + String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); + httpMessage += F("

"); + httpMessage += nodename; + httpMessage += F("


"); if(resetConfirmed) { // User has confirmed, so reset everything - httpMessage += F("

"); - httpMessage += haspGetNodename(); bool formatted = SPIFFS.format(); if(formatted) { - httpMessage += F("

Resetting all saved settings and restarting device into WiFi AP mode"); + httpMessage += F("Resetting all saved settings and restarting device into WiFi AP mode"); } else { - httpMessage += F("Failed to format the internal flash partition"); + httpMessage += F("Failed to format the internal flash partition"); resetConfirmed = false; } } else { httpMessage += - F("

Warning

This process will reset all settings to the default values. The internal flash will " + F("

Warning

This process will reset all settings to the default values. The internal flash will " "be erased and the device is restarted. You may need to connect to the WiFi AP displayed on the panel to " "re-configure the device before accessing it again. ALL FILES WILL BE LOST!" "


" @@ -1192,6 +1271,8 @@ void httpSetup(const JsonObject & settings) webServer.on(F("/reboot"), httpHandleReboot); webServer.onNotFound(httpHandleNotFound); } + + debugPrintln(F("HTTP: Setup Complete")); } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1218,7 +1299,7 @@ void httpReconnect() } //////////////////////////////////////////////////////////////////////////////////////////////////// -void httpLoop(bool wifiIsConnected) +void httpLoop() { if(httpEnable) { if(webServerStarted)