submitting PR

Here they are the PR #2776, #2803 and #2804 rebased for 0_14 branch,
I hope that now they are OK!
This commit is contained in:
ingDIY 2022-10-02 23:23:24 +02:00
parent f385af595a
commit 503835d47e
7 changed files with 68 additions and 26 deletions

View File

@ -1,20 +1,17 @@
# Auto Save
v2 Usermod to automatically save settings
to preset number AUTOSAVE_PRESET_NUM after a change to any of
to preset number AUTOSAVE_PRESET_NUM after a change to any of:
* brightness
* effect speed
* effect intensity
* mode (effect)
* palette
but it will wait for AUTOSAVE_SETTLE_MS milliseconds, a "settle"
period in case there are other changes (any change will
extend the "settle" window).
but it will wait for AUTOSAVE_AFTER_SEC seconds,
a "settle" period in case there are other changes (any change will extend the "settle" window).
It will additionally load preset AUTOSAVE_PRESET_NUM at startup.
during the first `loop()`. Reasoning below.
It will additionally load preset AUTOSAVE_PRESET_NUM at startup during the first `loop()`.
AutoSaveUsermod is standalone, but if FourLineDisplayUsermod is installed, it will notify the user of the saved changes.
@ -29,9 +26,20 @@ This file should be placed in the same directory as `platformio.ini`.
### Define Your Options
* `USERMOD_AUTO_SAVE` - define this to have this the Auto Save usermod included wled00\usermods_list.cpp
* `USERMOD_FOUR_LINE_DISPLAY` - define this to have this the Four Line Display mod included wled00\usermods_list.cpp - also tells this usermod that the display is available (see the Four Line Display usermod `readme.md` for more details)
* `AUTOSAVE_AFTER_SEC` - define the delay time after the settings auto-saving routine should be executed
* `AUTOSAVE_PRESET_NUM` - define the preset number used by autosave usermod
* `USERMOD_AUTO_SAVE_ON_BOOT` - define if autosave should be enabled on boot
* `USERMOD_FOUR_LINE_DISPLAY` - define this to have this the Four Line Display mod included wled00\usermods_list.cpp
also tells this usermod that the display is available
(see the Four Line Display usermod `readme.md` for more details)
You can configure auto-save parameters using Usermods settings page.
Example to add in platformio_override:
-D USERMOD_AUTO_SAVE
-D AUTOSAVE_AFTER_SEC=10
-D AUTOSAVE_PRESET_NUM=100
-D USERMOD_AUTO_SAVE_ON_BOOT=true
You can also configure auto-save parameters using Usermods settings page.
### PlatformIO requirements

View File

@ -33,9 +33,23 @@ class AutoSaveUsermod : public Usermod {
bool enabled = true;
// configurable parameters
#ifdef AUTOSAVE_AFTER_SEC
uint16_t autoSaveAfterSec = AUTOSAVE_AFTER_SEC;
#else
uint16_t autoSaveAfterSec = 15; // 15s by default
#endif
#ifdef AUTOSAVE_PRESET_NUM
uint8_t autoSavePreset = AUTOSAVE_PRESET_NUM;
#else
uint8_t autoSavePreset = 250; // last possible preset
#endif
#ifdef USERMOD_AUTO_SAVE_ON_BOOT
bool applyAutoSaveOnBoot = USERMOD_AUTO_SAVE_ON_BOOT;
#else
bool applyAutoSaveOnBoot = false; // do we load auto-saved preset on boot?
#endif
// If we've detected the need to auto save, this will be non zero.
unsigned long autoSaveAfter = 0;

View File

@ -16,7 +16,10 @@ This file should be placed in the same directory as `platformio.ini`.
### Define Your Options
* `USERMOD_ROTARY_ENCODER_UI` - define this to have this user mod included wled00\usermods_list.cpp
* `USERMOD_FOUR_LINE_DISPLAY` - define this to have this the Four Line Display mod included wled00\usermods_list.cpp - also tells this usermod that the display is available (see the Four Line Display usermod `readme.md` for more details)
* `USERMOD_ROTARY_ENCODER_GPIO` - define the GPIO function (INPUT, INPUT_PULLUP, etc...)
* `USERMOD_FOUR_LINE_DISPLAY` - define this to have this the Four Line Display mod included wled00\usermods_list.cpp
also tells this usermod that the display is available
(see the Four Line Display usermod `readme.md` for more details)
* `ENCODER_DT_PIN` - The encoders DT pin, defaults to 12
* `ENCODER_CLK_PIN` - The encoders CLK pin, defaults to 14
* `ENCODER_SW_PIN` - The encoders SW pin, defaults to 13

View File

@ -110,9 +110,13 @@ public:
return;
}
pinMode(pinA, INPUT_PULLUP);
pinMode(pinB, INPUT_PULLUP);
pinMode(pinC, INPUT_PULLUP);
#ifndef USERMOD_ROTARY_ENCODER_GPIO
#define USERMOD_ROTARY_ENCODER_GPIO INPUT_PULLUP
#endif
pinMode(pinA, USERMOD_ROTARY_ENCODER_GPIO);
pinMode(pinB, USERMOD_ROTARY_ENCODER_GPIO);
pinMode(pinC, USERMOD_ROTARY_ENCODER_GPIO);
currentTime = millis();
loopTime = currentTime;

View File

@ -278,9 +278,13 @@ public:
return;
}
pinMode(pinA, INPUT_PULLUP);
pinMode(pinB, INPUT_PULLUP);
pinMode(pinC, INPUT_PULLUP);
#ifndef USERMOD_ROTARY_ENCODER_GPIO
#define USERMOD_ROTARY_ENCODER_GPIO INPUT_PULLUP
#endif
pinMode(pinA, USERMOD_ROTARY_ENCODER_GPIO);
pinMode(pinB, USERMOD_ROTARY_ENCODER_GPIO);
pinMode(pinC, USERMOD_ROTARY_ENCODER_GPIO);
loopTime = millis();
currentCCT = (approximateKelvinFromRGB(RGBW32(col[0], col[1], col[2], col[3])) - 1900) >> 5;

View File

@ -319,6 +319,7 @@
#define ABL_MILLIAMPS_DEFAULT 850 // auto lower brightness to stay close to milliampere limit
#else
#if ABL_MILLIAMPS_DEFAULT < 250 // make sure value is at least 250
#warning "make sure value is at least 250"
#define ABL_MILLIAMPS_DEFAULT 250
#endif
#endif

View File

@ -24,10 +24,18 @@
//#define WLED_DISABLE_OTA // saves 14kb
// You can choose some of these features to disable:
//#define WLED_DISABLE_ALEXA // saves 11kb
//#define WLED_DISABLE_BLYNK // saves 6kb
//#define WLED_DISABLE_HUESYNC // saves 4kb
//#define WLED_DISABLE_INFRARED // saves 12kb
#ifndef WLED_ENABLE_ALEXA
#define WLED_DISABLE_ALEXA // saves 11kb
#endif
#ifndef WLED_ENABLE_BLYNK
#define WLED_DISABLE_BLYNK // saves 6kb
#endif
#ifndef WLED_ENABLE_HUESYNC
#define WLED_DISABLE_HUESYNC // saves 4kb
#endif
#ifndef WLED_ENABLE_INFRARED
#define WLED_DISABLE_INFRARED // there is no pin left for this on ESP8266-01, saves 12kb
#endif
#ifndef WLED_DISABLE_MQTT
#define WLED_ENABLE_MQTT // saves 12kb
#endif