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