From 42ac6f90c292a7a1205b18c100596e0a26f2d79b Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 13:17:27 +0100 Subject: [PATCH] added /status with uptime and heap --- src/main.cpp | 3 +++ src/routes/config.cpp | 23 +++++++++++++++++++++++ src/routes/config.h | 2 ++ 3 files changed, 28 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 6a15209..0d489aa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -305,6 +305,9 @@ void setup() server.on("/networks", HTTP_GET, [](AsyncWebServerRequest *request) { onGetNetworks(request); }); + server.on("/status", HTTP_GET, [](AsyncWebServerRequest *request) + { onGetStatus(request); }); + server.onRequestBody([](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { if (request->url() == "/config" && request->method() == HTTP_PUT) { diff --git a/src/routes/config.cpp b/src/routes/config.cpp index 5ca6107..f315cc3 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -69,6 +69,16 @@ Direction parseDirection(uint8_t direction) throw ::std::invalid_argument("Invalid direction value: " + direction); } +size_t getFreeHeap() +{ + return ESP.getFreeHeap(); +} + +size_t getTotalHeap() +{ + return ESP.getHeapSize(); +} + #pragma endregion void onGetConfig(AsyncWebServerRequest *request) @@ -190,3 +200,16 @@ void onGetNetworks(AsyncWebServerRequest *request) serializeJson(doc, jsonString); request->send(200, "application/json", jsonString); } + +void onGetStatus(AsyncWebServerRequest *request) +{ + JsonDocument doc; + + doc["uptime"] = millis(); + doc["heapFree"] = getFreeHeap(); + doc["heapTotal"] = getTotalHeap(); + + String jsonString; + serializeJson(doc, jsonString); + request->send(200, "application/json", jsonString); +} diff --git a/src/routes/config.h b/src/routes/config.h index 54c1a03..85ca5eb 100644 --- a/src/routes/config.h +++ b/src/routes/config.h @@ -37,4 +37,6 @@ void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size void onGetNetworks(AsyncWebServerRequest *request); +void onGetStatus(AsyncWebServerRequest *request); + // #endif \ No newline at end of file