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 1/8] 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 From 5e1224a266e8a54e65e193d55c06e55f564baa76 Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 13:20:37 +0100 Subject: [PATCH 2/8] elimination of sub-functions because i dont think it will be used anywhere else --- src/routes/config.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/routes/config.cpp b/src/routes/config.cpp index f315cc3..b7d415f 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -69,16 +69,6 @@ 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) @@ -206,8 +196,8 @@ void onGetStatus(AsyncWebServerRequest *request) JsonDocument doc; doc["uptime"] = millis(); - doc["heapFree"] = getFreeHeap(); - doc["heapTotal"] = getTotalHeap(); + doc["heapFree"] = ESP.getFreeHeap(); + doc["heapTotal"] = ESP.getHeapSize(); String jsonString; serializeJson(doc, jsonString); From e5585dab295903fe66aa337e87db335825c3d40a Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 13:37:25 +0100 Subject: [PATCH 3/8] added psram --- src/routes/config.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routes/config.cpp b/src/routes/config.cpp index b7d415f..bdab358 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -198,6 +198,8 @@ void onGetStatus(AsyncWebServerRequest *request) doc["uptime"] = millis(); doc["heapFree"] = ESP.getFreeHeap(); doc["heapTotal"] = ESP.getHeapSize(); + doc["psramFree"] = ESP.getFreePsram(); + doc["psramTotal"] = ESP.getPsramSize(); String jsonString; serializeJson(doc, jsonString); From 5938585927e3e47bc219b5f30e4feb87987136eb Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 18:10:03 +0100 Subject: [PATCH 4/8] added a bunch of additional information --- src/routes/config.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/routes/config.cpp b/src/routes/config.cpp index bdab358..85b2d30 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -196,6 +196,15 @@ void onGetStatus(AsyncWebServerRequest *request) JsonDocument doc; doc["uptime"] = millis(); + doc["mac"] = ESP.getEfuseMac(); + doc["chipModel"] = ESP.getChipModel(); + doc["chipRevision"] = ESP.getChipRevision(); + doc["cpuFreqMHz"] = ESP.getCpuFreqMHz(); + doc["cycleCount"] = ESP.getCycleCount(); + doc["sdkVersion"] = ESP.getSdkVersion(); + doc["sketchMD5"] = ESP.getSketchMD5(); + doc["sketchSpaceFree"] = ESP.getFreeSketchSpace(); + doc["sketchSize"] = ESP.getSketchSize(); doc["heapFree"] = ESP.getFreeHeap(); doc["heapTotal"] = ESP.getHeapSize(); doc["psramFree"] = ESP.getFreePsram(); From 34bffdbeee720ccf1ffcd36881ffcfcf199347c2 Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 18:24:31 +0100 Subject: [PATCH 5/8] switched to nested structure --- src/routes/config.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/routes/config.cpp b/src/routes/config.cpp index 85b2d30..caba87d 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -196,19 +196,18 @@ void onGetStatus(AsyncWebServerRequest *request) JsonDocument doc; doc["uptime"] = millis(); - doc["mac"] = ESP.getEfuseMac(); - doc["chipModel"] = ESP.getChipModel(); - doc["chipRevision"] = ESP.getChipRevision(); - doc["cpuFreqMHz"] = ESP.getCpuFreqMHz(); - doc["cycleCount"] = ESP.getCycleCount(); + doc["chip"]["model"] = ESP.getChipModel(); + doc["chip"]["mac"] = ESP.getEfuseMac(); + doc["chip"]["revision"] = ESP.getChipRevision(); + doc["chip"]["cpuFreqMHz"] = ESP.getCpuFreqMHz(); + doc["chip"]["cycleCount"] = ESP.getCycleCount(); doc["sdkVersion"] = ESP.getSdkVersion(); - doc["sketchMD5"] = ESP.getSketchMD5(); - doc["sketchSpaceFree"] = ESP.getFreeSketchSpace(); - doc["sketchSize"] = ESP.getSketchSize(); - doc["heapFree"] = ESP.getFreeHeap(); - doc["heapTotal"] = ESP.getHeapSize(); - doc["psramFree"] = ESP.getFreePsram(); - doc["psramTotal"] = ESP.getPsramSize(); + doc["sketch"]["size"] = ESP.getSketchSize(); + doc["sketch"]["md5"] = ESP.getSketchMD5(); + doc["heap"]["free"] = ESP.getFreeHeap(); + doc["heap"]["total"] = ESP.getHeapSize(); + doc["psram"]["free"] = ESP.getFreePsram(); + doc["psram"]["total"] = ESP.getPsramSize(); String jsonString; serializeJson(doc, jsonString); From 2c25932e3c22042bcb5e1b96e49eb60e8b97bb56 Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:41:16 +0100 Subject: [PATCH 6/8] added signal strength --- src/routes/config.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/routes/config.cpp b/src/routes/config.cpp index caba87d..39d2b90 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -69,6 +69,18 @@ Direction parseDirection(uint8_t direction) throw ::std::invalid_argument("Invalid direction value: " + direction); } +int8_t getWiFiStrength() +{ + try + { + return WiFi.RSSI(); + } + catch (...) + { + return NULL; + } +} + #pragma endregion void onGetConfig(AsyncWebServerRequest *request) @@ -208,6 +220,7 @@ void onGetStatus(AsyncWebServerRequest *request) doc["heap"]["total"] = ESP.getHeapSize(); doc["psram"]["free"] = ESP.getFreePsram(); doc["psram"]["total"] = ESP.getPsramSize(); + doc["connection"]["signalStrength"] = getWiFiStrength(); String jsonString; serializeJson(doc, jsonString); From 4ac0681a9aea6d0b133ab693bfbc1260f5619d5b Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Sun, 15 Dec 2024 21:02:37 +0100 Subject: [PATCH 7/8] switched status logic to separate file --- src/main.cpp | 1 + src/routes/config.cpp | 36 ------------------------------------ src/routes/config.h | 2 -- src/routes/status.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/routes/status.h | 4 ++++ 5 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 src/routes/status.cpp create mode 100644 src/routes/status.h diff --git a/src/main.cpp b/src/main.cpp index 0d489aa..d35bfbd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ #include "ESPDMX.h" #include #include "routes/config.h" +#include "routes/status.h" DMXESPSerial dmx1; DMXESPSerial dmx2; diff --git a/src/routes/config.cpp b/src/routes/config.cpp index 39d2b90..5ca6107 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -69,18 +69,6 @@ Direction parseDirection(uint8_t direction) throw ::std::invalid_argument("Invalid direction value: " + direction); } -int8_t getWiFiStrength() -{ - try - { - return WiFi.RSSI(); - } - catch (...) - { - return NULL; - } -} - #pragma endregion void onGetConfig(AsyncWebServerRequest *request) @@ -202,27 +190,3 @@ void onGetNetworks(AsyncWebServerRequest *request) serializeJson(doc, jsonString); request->send(200, "application/json", jsonString); } - -void onGetStatus(AsyncWebServerRequest *request) -{ - JsonDocument doc; - - doc["uptime"] = millis(); - doc["chip"]["model"] = ESP.getChipModel(); - doc["chip"]["mac"] = ESP.getEfuseMac(); - doc["chip"]["revision"] = ESP.getChipRevision(); - doc["chip"]["cpuFreqMHz"] = ESP.getCpuFreqMHz(); - doc["chip"]["cycleCount"] = ESP.getCycleCount(); - doc["sdkVersion"] = ESP.getSdkVersion(); - doc["sketch"]["size"] = ESP.getSketchSize(); - doc["sketch"]["md5"] = ESP.getSketchMD5(); - doc["heap"]["free"] = ESP.getFreeHeap(); - doc["heap"]["total"] = ESP.getHeapSize(); - doc["psram"]["free"] = ESP.getFreePsram(); - doc["psram"]["total"] = ESP.getPsramSize(); - doc["connection"]["signalStrength"] = getWiFiStrength(); - - String jsonString; - serializeJson(doc, jsonString); - request->send(200, "application/json", jsonString); -} diff --git a/src/routes/config.h b/src/routes/config.h index 85ca5eb..54c1a03 100644 --- a/src/routes/config.h +++ b/src/routes/config.h @@ -37,6 +37,4 @@ 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 diff --git a/src/routes/status.cpp b/src/routes/status.cpp new file mode 100644 index 0000000..b21cf8d --- /dev/null +++ b/src/routes/status.cpp @@ -0,0 +1,37 @@ +#include "status.h" + +int8_t getWiFiStrength() +{ + try + { + return WiFi.RSSI(); + } + catch (...) + { + return 0; + } +} + +void onGetStatus(AsyncWebServerRequest *request) +{ + JsonDocument doc; + + doc["uptime"] = millis(); + doc["chip"]["model"] = ESP.getChipModel(); + doc["chip"]["mac"] = ESP.getEfuseMac(); + doc["chip"]["revision"] = ESP.getChipRevision(); + doc["chip"]["cpuFreqMHz"] = ESP.getCpuFreqMHz(); + doc["chip"]["cycleCount"] = ESP.getCycleCount(); + doc["sdkVersion"] = ESP.getSdkVersion(); + doc["sketch"]["size"] = ESP.getSketchSize(); + doc["sketch"]["md5"] = ESP.getSketchMD5(); + doc["heap"]["free"] = ESP.getFreeHeap(); + doc["heap"]["total"] = ESP.getHeapSize(); + doc["psram"]["free"] = ESP.getFreePsram(); + doc["psram"]["total"] = ESP.getPsramSize(); + doc["connection"]["signalStrength"] = getWiFiStrength(); + + String jsonString; + serializeJson(doc, jsonString); + request->send(200, "application/json", jsonString); +} \ No newline at end of file diff --git a/src/routes/status.h b/src/routes/status.h new file mode 100644 index 0000000..3d3d204 --- /dev/null +++ b/src/routes/status.h @@ -0,0 +1,4 @@ +#include +#include + +void onGetStatus(AsyncWebServerRequest *request); \ No newline at end of file From c336e65c4b3ae3d2bf0cf57b15ae981f0522646a Mon Sep 17 00:00:00 2001 From: Hendrik Rauh <114620133+HendrikRauh@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:55:50 +0100 Subject: [PATCH 8/8] Added cpuTemperature --- src/routes/status.cpp | 8 ++++++++ src/routes/status.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/routes/status.cpp b/src/routes/status.cpp index b21cf8d..4550c98 100644 --- a/src/routes/status.cpp +++ b/src/routes/status.cpp @@ -1,5 +1,12 @@ #include "status.h" +float getTemperature() +{ + float tempC = -1.0f; + temp_sensor_read_celsius(&tempC); + return tempC; +} + int8_t getWiFiStrength() { try @@ -22,6 +29,7 @@ void onGetStatus(AsyncWebServerRequest *request) doc["chip"]["revision"] = ESP.getChipRevision(); doc["chip"]["cpuFreqMHz"] = ESP.getCpuFreqMHz(); doc["chip"]["cycleCount"] = ESP.getCycleCount(); + doc["chip"]["tempC"] = getTemperature(); doc["sdkVersion"] = ESP.getSdkVersion(); doc["sketch"]["size"] = ESP.getSketchSize(); doc["sketch"]["md5"] = ESP.getSketchMD5(); diff --git a/src/routes/status.h b/src/routes/status.h index 3d3d204..03e821b 100644 --- a/src/routes/status.h +++ b/src/routes/status.h @@ -1,4 +1,5 @@ #include #include +#include void onGetStatus(AsyncWebServerRequest *request); \ No newline at end of file