@@ -157,9 +157,9 @@ void c_WebMgr::init ()
157157 webServer.serveStatic (" /UpdRecipe/" , LittleFS, " /UpdRecipe.json" );
158158
159159 // Heap status handler
160- webServer.on (" /heap" , HTTP_GET | HTTP_OPTIONS, [](AsyncWebServerRequest* request)
160+ webServer.on (" /heap" , HTTP_GET | HTTP_OPTIONS, [this ](AsyncWebServerRequest* request)
161161 {
162- request-> send ( 200 , CN_textSLASHplain, String (ESP. getFreeHeap ()). c_str () );
162+ ProcessHeapRequest (request );
163163 });
164164
165165 webServer.on (" /XJ" , HTTP_POST | HTTP_GET | HTTP_OPTIONS, [this ](AsyncWebServerRequest* request)
@@ -825,6 +825,48 @@ void c_WebMgr::ProcessXJRequest (AsyncWebServerRequest* client)
825825
826826} // ProcessXJRequest
827827
828+ // -----------------------------------------------------------------------------
829+ void c_WebMgr::ProcessHeapRequest (AsyncWebServerRequest* client)
830+ {
831+ // DEBUG_START;
832+
833+ // WebJsonDoc.clear ();
834+ DynamicJsonDocument WebJsonDoc (1024 );
835+ WebJsonDoc.to <JsonObject>();
836+ JsonObject status = WebJsonDoc[(char *)CN_Heap_colon].to <JsonObject> ();
837+ // DEBUG_V();
838+
839+ JsonWrite (status, F (" freeheap" ), ESP.getFreeHeap ());
840+ // DEBUG_V();
841+ #ifdef ARDUINO_ARCH_ESP32
842+ JsonWrite (status, F (" n804_Free_Max" ), heap_caps_get_largest_free_block (0x804 ));
843+ // DEBUG_V();
844+ JsonWrite (status, F (" n804_Free_Tot" ), heap_caps_get_free_size (0x804 ));
845+ // DEBUG_V();
846+ JsonWrite (status, F (" n80C_Free_Max" ), heap_caps_get_largest_free_block (0x80C ));
847+ // DEBUG_V();
848+ JsonWrite (status, F (" n80C_Free_Tot" ), heap_caps_get_free_size (0x80C ));
849+ // DEBUG_V();
850+ JsonWrite (status, F (" n1800_Free_Max" ), heap_caps_get_largest_free_block (0x1800 ));
851+ // DEBUG_V();
852+ JsonWrite (status, F (" n1800_Free_Tot" ), heap_caps_get_free_size (0x1800 ));
853+ #else
854+ JsonWrite (status, F (" n804_Free_Max" ), ESP.getMaxFreeBlockSize ());
855+ JsonWrite (status, F (" n804_Free_Tot" ), ESP.getFreeHeap ());
856+ #endif // def ARDUINO_ARCH_ESP32
857+
858+ // DEBUG_V("Send ProcessHeapRequest response");
859+ String XjResult;
860+ serializeJson (WebJsonDoc, XjResult);
861+ // DEBUG_V(XjResult);
862+
863+ client->send (200 , CN_applicationSLASHjson, XjResult);
864+
865+ // WebJsonDoc.clear();
866+ // DEBUG_END;
867+
868+ } // ProcessXJRequest
869+
828870// -----------------------------------------------------------------------------
829871void c_WebMgr::ProcessSetTimeRequest (time_t EpochTime)
830872{
0 commit comments