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 01/45] 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 02/45] 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 03/45] 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 04/45] 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 05/45] 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 06/45] 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 07/45] 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 08/45] 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 From 90f8d7c07ec73e2b32537b2698fe7ab4c6081519 Mon Sep 17 00:00:00 2001 From: RaffaelW Date: Thu, 19 Dec 2024 17:26:05 +0100 Subject: [PATCH 09/45] added class to form and added section to prepare next commit --- data/index.html | 294 ++++++++++++++++++++------------------- data/input-visibility.js | 2 +- data/load-data.js | 2 +- data/loading-screen.js | 6 +- data/reset.js | 2 +- data/submit.js | 2 +- 6 files changed, 157 insertions(+), 151 deletions(-) diff --git a/data/index.html b/data/index.html index 748d193..3868839 100644 --- a/data/index.html +++ b/data/index.html @@ -11,6 +11,7 @@ +
@@ -29,159 +30,164 @@ - + +
diff --git a/data/input-visibility.js b/data/input-visibility.js index d22615f..32445a0 100644 --- a/data/input-visibility.js +++ b/data/input-visibility.js @@ -1,4 +1,4 @@ -const form = document.querySelector("form"); +const form = document.querySelector("form.config"); const dynamicInputs = form.querySelectorAll("[data-field][data-values]"); document.addEventListener("change", updateVisibility); diff --git a/data/load-data.js b/data/load-data.js index 1ec35a7..ed15d2a 100644 --- a/data/load-data.js +++ b/data/load-data.js @@ -4,7 +4,7 @@ import { hideLoadingScreen, } from "./loading-screen.js"; -const form = document.querySelector("form"); +const form = document.querySelector("form.config"); export async function loadData(timeout = null) { const req = await fetch("/config", { diff --git a/data/loading-screen.js b/data/loading-screen.js index 4b04769..322c479 100644 --- a/data/loading-screen.js +++ b/data/loading-screen.js @@ -1,11 +1,11 @@ -const form = document.querySelector("form"); +const content = document.querySelector("section.content"); const loadingScreen = document.querySelector(".loading-screen"); const loadingMsg = loadingScreen.querySelector("h2"); const spinner = loadingScreen.querySelector(".spinner"); const reloadBtn = loadingScreen.querySelector(".reload"); export function showLoadingScreen(msg) { - hide(form, reloadBtn); + hide(content, reloadBtn); show(loadingScreen, spinner); loadingMsg.classList.remove("error"); loadingMsg.textContent = msg; @@ -22,7 +22,7 @@ export function showError(msg) { export function hideLoadingScreen() { hide(loadingScreen, reloadBtn); - show(form); + show(content); loadingMsg.classList.remove("error"); loadingMsg.textContent = ""; } diff --git a/data/reset.js b/data/reset.js index c34c41f..ecf29ec 100644 --- a/data/reset.js +++ b/data/reset.js @@ -1,6 +1,6 @@ import { updateConfig } from "/submit.js"; -const form = document.querySelector("form"); +const form = document.querySelector("form.config"); form.addEventListener("reset", async (event) => { event.preventDefault(); diff --git a/data/submit.js b/data/submit.js index 0fdbda8..cc1404b 100644 --- a/data/submit.js +++ b/data/submit.js @@ -5,7 +5,7 @@ import { showError, } from "./loading-screen.js"; -const form = document.querySelector("form"); +const form = document.querySelector("form.config"); function parseValue(input) { if (input.type === "checkbox") { From 9e83851ddf87e76316bd151cf5b2b56665928f14 Mon Sep 17 00:00:00 2001 From: RaffaelW Date: Thu, 19 Dec 2024 17:27:32 +0100 Subject: [PATCH 10/45] added status ui --- data/index.html | 67 +++++++++++++++++++++++++++++++++++++ data/status.js | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ data/style.css | 56 +++++++++++++++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 data/status.js diff --git a/data/index.html b/data/index.html index 3868839..19f0e35 100644 --- a/data/index.html +++ b/data/index.html @@ -31,6 +31,73 @@