diff --git a/data/index.html b/data/index.html
index c6f81ab..330dbee 100644
--- a/data/index.html
+++ b/data/index.html
@@ -7,11 +7,11 @@
+
-
diff --git a/data/range-input.js b/data/range-input.js
index 4b31c04..4bc9c62 100644
--- a/data/range-input.js
+++ b/data/range-input.js
@@ -1,14 +1,20 @@
-document.querySelector("form").addEventListener("input", (event) => {
+const form = document.querySelector("form");
+
+form.addEventListener("input", (event) => {
if (event.target.classList.contains("range")) {
updateValue(event.target);
}
});
+form.addEventListener("change", () => {
+ console.log("received change event");
+ document.querySelectorAll("input[type='range']").forEach((input) => {
+ updateValue(input);
+ });
+});
+
function updateValue(slider) {
+ console.log("update slide value");
const percentage = Math.round((slider.value / slider.max) * 100);
slider.nextElementSibling.innerText = `${percentage}%`;
}
-
-document.querySelectorAll("input[type='range'].range").forEach((element) => {
- updateValue(element);
-});
diff --git a/src/main.cpp b/src/main.cpp
index ce64fd4..5a9c443 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -23,6 +23,7 @@
#include
#include "routes/config.h"
#include "routes/networks.h"
+#include "routes/channels.h"
//DMXESPSerial dmx1;
//DMXESPSerial dmx2;
@@ -395,6 +396,9 @@ void setup()
server.on("/networks", HTTP_GET, [](AsyncWebServerRequest *request)
{ onGetNetworks(request); });
+ server.on("/dmx", HTTP_GET, [](AsyncWebServerRequest *request)
+ { onGetChannels(request, dmx1, dmx2); });
+
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/channels.cpp b/src/routes/channels.cpp
new file mode 100644
index 0000000..a9b6f5d
--- /dev/null
+++ b/src/routes/channels.cpp
@@ -0,0 +1,29 @@
+#include "channels.h"
+
+void onGetChannels(AsyncWebServerRequest *request, DMXESPSerial dmx1, DMXESPSerial dmx2)
+{
+ JsonDocument doc;
+
+ for (int channel = 1; channel <= DMXCHANNELS; channel++)
+ {
+ uint8_t value = dmx1.read(channel);
+ if (value != 0)
+ {
+ doc["dmx1"][String(channel)] = value;
+ }
+ }
+
+ for (int channel = 1; channel <= DMXCHANNELS; channel++)
+ {
+ uint8_t value = dmx2.read(channel);
+ if (value != 0)
+ {
+ doc["dmx2"][String(channel)] = value;
+ }
+ }
+
+ String jsonBuffer;
+ serializeJson(doc, jsonBuffer);
+
+ request->send(200, "application/json", jsonBuffer);
+}
\ No newline at end of file
diff --git a/src/routes/channels.h b/src/routes/channels.h
new file mode 100644
index 0000000..bbdec2f
--- /dev/null
+++ b/src/routes/channels.h
@@ -0,0 +1,8 @@
+#include
+#include
+#include
+#include "ESPDMX.h"
+
+extern Preferences config;
+
+void onGetChannels(AsyncWebServerRequest *request, DMXESPSerial dmx1, DMXESPSerial dmx2);
\ No newline at end of file