From 7b662dd65ee46ee7524bbbdbbdc7ae0c5f991673 Mon Sep 17 00:00:00 2001 From: foorschtbar Date: Mon, 15 May 2023 17:03:13 +0200 Subject: [PATCH] Added option to control RGB LED brightness --- ESP32_AP-Flasher/data/www/index.html | 10 ++++++++++ ESP32_AP-Flasher/data/www/main.js | 16 +++++++++------- ESP32_AP-Flasher/include/leds.h | 4 +++- ESP32_AP-Flasher/src/leds.cpp | 21 ++++++++++++++++++++- ESP32_AP-Flasher/src/main.cpp | 2 ++ ESP32_AP-Flasher/src/tag_db.cpp | 3 ++- ESP32_AP-Flasher/src/web.cpp | 2 ++ 7 files changed, 48 insertions(+), 10 deletions(-) diff --git a/ESP32_AP-Flasher/data/www/index.html b/ESP32_AP-Flasher/data/www/index.html index d2dbafa6..84e0fd3a 100644 --- a/ESP32_AP-Flasher/data/www/index.html +++ b/ESP32_AP-Flasher/data/www/index.html @@ -66,6 +66,16 @@

+

+ + +

diff --git a/ESP32_AP-Flasher/data/www/main.js b/ESP32_AP-Flasher/data/www/main.js index d350d958..e8411bdc 100644 --- a/ESP32_AP-Flasher/data/www/main.js +++ b/ESP32_AP-Flasher/data/www/main.js @@ -315,18 +315,20 @@ $('#apconfigbutton').onclick = function () { table.deleteRow(i); } $('#apconfigbox').style.display = 'block' - fetch("/get_ap_list") - .then(response => response.json()) - .then(data => { - $('#apcfgalias').value = data.alias; - $('#apcfgchid').value = data.channel; - }) + fetch("/get_ap_list") + .then(response => response.json()) + .then(data => { + $('#apcfgalias').value = data.alias; + $('#apcfgchid').value = data.channel; + $("#apcfgledbrightness").value = data.ledbrightness; + }) } $('#apcfgsave').onclick = function () { let formData = new FormData(); formData.append("alias", $('#apcfgalias').value); - formData.append("channel", $('#apcfgchid').value); + formData.append("channel", $('#apcfgchid').value); + formData.append('ledbrightness', $('#apcfgledbrightness').value); fetch("/save_apcfg", { method: "POST", body: formData diff --git a/ESP32_AP-Flasher/include/leds.h b/ESP32_AP-Flasher/include/leds.h index 747b9b43..b2117623 100644 --- a/ESP32_AP-Flasher/include/leds.h +++ b/ESP32_AP-Flasher/include/leds.h @@ -2,9 +2,11 @@ #ifdef HAS_RGB_LED #include -#endif +#endif void ledTask(void* parameter); +void setBrightness(int brightness); +void updateBrightnessFromConfig(); #ifdef HAS_RGB_LED void shortBlink(CRGB cname); diff --git a/ESP32_AP-Flasher/src/leds.cpp b/ESP32_AP-Flasher/src/leds.cpp index 8eca0861..9638a250 100644 --- a/ESP32_AP-Flasher/src/leds.cpp +++ b/ESP32_AP-Flasher/src/leds.cpp @@ -5,8 +5,10 @@ #endif #include "settings.h" +#include "tag_db.h" QueueHandle_t ledQueue; +int maxledbrightness = 255; #ifdef HAS_RGB_LED QueueHandle_t rgbLedQueue; @@ -230,6 +232,23 @@ void monoIdleStep() { } } +void setBrightness(int brightness) { + maxledbrightness = brightness; +#ifdef HAS_RGB_LED + FastLED.setBrightness(maxledbrightness); +#endif +} + +void updateBrightnessFromConfig() { + if (APconfig["ledbrightness"].as() != 0) { + int newbrightness = APconfig["ledbrightness"].as(); + if (newbrightness < 0) newbrightness = 0; + if (newbrightness != maxledbrightness) { + setBrightness(newbrightness); + } + } +} + void ledTask(void* parameter) { #ifdef HAS_RGB_LED FastLED.addLeds(leds, 1); // GRB ordering is typical @@ -285,7 +304,7 @@ void ledTask(void* parameter) { if (rgbQueueFlush) { delete rgb; - rgb=nullptr; + rgb = nullptr; } else { rgbInstructionFadeTime = rgb->fadeTime; if (rgb->fadeTime <= 1) { diff --git a/ESP32_AP-Flasher/src/main.cpp b/ESP32_AP-Flasher/src/main.cpp index 8150215a..c4b5e9c9 100644 --- a/ESP32_AP-Flasher/src/main.cpp +++ b/ESP32_AP-Flasher/src/main.cpp @@ -87,6 +87,8 @@ void setup() { initAPconfig(); + updateBrightnessFromConfig(); + init_web(); init_udp(); diff --git a/ESP32_AP-Flasher/src/tag_db.cpp b/ESP32_AP-Flasher/src/tag_db.cpp index b1fe45ec..d5502475 100644 --- a/ESP32_AP-Flasher/src/tag_db.cpp +++ b/ESP32_AP-Flasher/src/tag_db.cpp @@ -227,10 +227,11 @@ void initAPconfig() { LittleFS.begin(true); File configFile = LittleFS.open("/current/apconfig.json", "r"); if (!configFile) { - //default values' + // default values' Serial.println("APconfig not found"); APconfig["channel"] = 0; APconfig["alias"] = String(); + APconfig["ledbrightness"] = 100; return; } DeserializationError error = deserializeJson(APconfig, configFile); diff --git a/ESP32_AP-Flasher/src/web.cpp b/ESP32_AP-Flasher/src/web.cpp index 8ee034e7..361090f1 100644 --- a/ESP32_AP-Flasher/src/web.cpp +++ b/ESP32_AP-Flasher/src/web.cpp @@ -308,6 +308,8 @@ void init_web() { if (request->hasParam("alias", true) && request->hasParam("channel", true)) { APconfig["alias"] = request->getParam("alias", true)->value(); APconfig["channel"] = request->getParam("channel", true)->value(); + APconfig["ledbrightness"] = request->getParam("ledbrightness", true)->value(); + updateBrightnessFromConfig(); saveAPconfig(); setAPchannel(); }