Skip to content

Commit 271bb35

Browse files
Enhanced the output of the heap endpoint
1 parent 2a3828e commit 271bb35

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed

‎include/WebMgr.hpp‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class c_WebMgr
6767
void GetOptions ();
6868

6969
void ProcessXJRequest (AsyncWebServerRequest * client);
70+
void ProcessHeapRequest (AsyncWebServerRequest * client);
7071
void ProcessSetTimeRequest (time_t DateTime);
7172

7273
void GetDeviceOptions ();

‎src/WebMgr.cpp‎

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
//-----------------------------------------------------------------------------
829871
void c_WebMgr::ProcessSetTimeRequest (time_t EpochTime)
830872
{

0 commit comments

Comments
 (0)