From 99e12e46c77e072c8a2af8e631cfdd6bc6f64545 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 10 Mar 2020 01:50:48 +0100 Subject: [PATCH] Memory optimization --- platformio.ini | 4 ++-- src/hasp.cpp | 2 +- src/hasp_dispatch.cpp | 4 ++-- src/hasp_http.cpp | 29 +++++++++++++++-------------- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/platformio.ini b/platformio.ini index bfcae12f..64be7ce9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -206,7 +206,7 @@ board_build.f_cpu = 160000000L ; set frequency to 160MHz build_flags = ${env.build_flags} ; -- TFT_eSPI build options ------------------------ - -D MQTT_MAX_PACKET_SIZE=512 ; longer PubSubClient messages + -D MQTT_MAX_PACKET_SIZE=1024 ; longer PubSubClient messages -D TFT_ROTATION=${lcd.TFT_ROTATION} -D TFT_WIDTH=${lcd.TFT_WIDTH} -D TFT_HEIGHT=${lcd.TFT_HEIGHT} @@ -240,7 +240,7 @@ board_build.ldscript = eagle.flash.4m2m.ld ; 2Mb Spiffs build_flags = ${env.build_flags} ; -- TFT_eSPI build options ------------------------ - -D MQTT_MAX_PACKET_SIZE=512 ; longer PubSubClient messages + -D MQTT_MAX_PACKET_SIZE=1024 ; longer PubSubClient messages -D TFT_ROTATION=${lcd.TFT_ROTATION} -D TFT_WIDTH=${lcd.TFT_WIDTH} -D TFT_HEIGHT=${lcd.TFT_HEIGHT} diff --git a/src/hasp.cpp b/src/hasp.cpp index c479e21d..4c5372d3 100644 --- a/src/hasp.cpp +++ b/src/hasp.cpp @@ -1649,7 +1649,7 @@ void haspLoadPage(String pages) File file = SPIFFS.open(pages, "r"); // ReadBufferingStream bufferingStream(file, 256); - DynamicJsonDocument config(254); + DynamicJsonDocument config(256); uint8_t savedPage = current_page; while(deserializeJson(config, file) == DeserializationError::Ok) { diff --git a/src/hasp_dispatch.cpp b/src/hasp_dispatch.cpp index 117ae508..80ebd42d 100644 --- a/src/hasp_dispatch.cpp +++ b/src/hasp_dispatch.cpp @@ -219,10 +219,10 @@ void dispatchJson(char * payload) void dispatchJsonl(char * strPayload) { Serial.println("JSONL\n"); - DynamicJsonDocument config(254); + DynamicJsonDocument config(256); String output((char *)0); - output.reserve(1500); + output.reserve(MQTT_MAX_PACKET_SIZE+ 256); StringStream stream((String &)output); stream.print(strPayload); diff --git a/src/hasp_http.cpp b/src/hasp_http.cpp index c2ee6a39..f70c69da 100644 --- a/src/hasp_http.cpp +++ b/src/hasp_http.cpp @@ -31,6 +31,7 @@ File fsUploadFile; char httpUser[32] = ""; char httpPassword[32] = ""; HTTPUpload * upload; +#define HTTP_PAGE_SIZE (6 * 256) #if defined(ARDUINO_ARCH_ESP8266) #include @@ -173,7 +174,7 @@ void webHandleRoot() // char buffer[128]; String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += String(F("

")); httpMessage += String(nodename); @@ -231,7 +232,7 @@ void webHandleScreenshot() String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += F("

"); httpMessage += F("

HASP OpenHardware edition

Copyright© 2020 Francis Van Roie "); httpMessage += FPSTR(MIT_LICENSE); @@ -299,7 +300,7 @@ void webHandleInfo() // char buffer[128]; String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); /* HASP Stats */ httpMessage += F("
HASP Version: "); @@ -667,7 +668,7 @@ void webHandleConfig() // char buffer[128]; String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += F("
"); httpMessage += @@ -713,7 +714,7 @@ void webHandleMqttConfig() // char buffer[128]; String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += String(F("")); httpMessage += F("HASP Node Name (required. lowercase letters, numbers, and _ only)" @@ -759,7 +760,7 @@ void webHandleGuiConfig() // char buffer[128]; String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += String(F("")); @@ -829,7 +830,7 @@ void webHandleWifiConfig() // char buffer[128]; String nodename = haspGetNodename(); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += String(F("")); httpMessage += String(F("WiFi SSID (required)")); httpMessage += String(F("Web Username (optional)")); httpMessage += String(F("

Telemetry Period "); @@ -1026,7 +1027,7 @@ void httpHandleNotFound() debugPrintln(String(F("HTTP: Sending 404 to client connected from: ")) + webServer.client().remoteIP().toString()); String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += F("File Not Found\n\nURI: "); httpMessage += webServer.uri(); httpMessage += F("\nMethod: "); @@ -1062,7 +1063,7 @@ void httpHandleEspFirmware() String nodename = haspGetNodename(); // char buffer[128]; String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); httpMessage += String(F("

")); httpMessage += String(haspGetNodename()); httpMessage += String(F(" ESP update


Updating ESP firmware from: ")); @@ -1086,7 +1087,7 @@ void httpHandleResetConfig() String nodename = haspGetNodename(); // char buffer[128]; String httpMessage((char *)0); - httpMessage.reserve(1500); + httpMessage.reserve(HTTP_PAGE_SIZE); if(resetConfirmed) { // User has confirmed, so reset everything httpMessage += F("

");