Merge branch 'main' into 30-add-dmx-in-capability

This commit is contained in:
Hendrik Rauh 2025-02-16 21:47:44 +01:00 committed by GitHub
commit b93ae3d682
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 53 additions and 6 deletions

View file

@ -7,11 +7,11 @@
<link rel="stylesheet" href="/style.css" />
<script type="module" src="/input-visibility.js" defer></script>
<script type="module" src="/loading-screen.js" defer></script>
<script type="module" src="/range-input.js" defer></script>
<script type="module" src="/load-data.js" defer></script>
<script type="module" src="/networks.js" defer></script>
<script type="module" src="/submit.js" defer></script>
<script type="module" src="/reset.js" defer></script>
<script type="module" src="/range-input.js" defer></script>
</head>
<body>
<main>

View file

@ -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);
});

View file

@ -23,6 +23,7 @@
#include <LittleFS.h>
#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) {

29
src/routes/channels.cpp Normal file
View file

@ -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);
}

8
src/routes/channels.h Normal file
View file

@ -0,0 +1,8 @@
#include <Preferences.h>
#include <ArduinoJson.h>
#include <AsyncWebServer_ESP32_W5500.h>
#include "ESPDMX.h"
extern Preferences config;
void onGetChannels(AsyncWebServerRequest *request, DMXESPSerial dmx1, DMXESPSerial dmx2);