From 03516e11f71ca0ee3960718e2f43954070ee8361 Mon Sep 17 00:00:00 2001 From: cschwinne Date: Thu, 10 Dec 2020 16:27:23 +0100 Subject: [PATCH] Various fixes --- CHANGELOG.md | 15 ++++++++++++++- wled00/fcn_declare.h | 1 + wled00/led.cpp | 6 +++--- wled00/set.cpp | 1 + wled00/wled.h | 2 +- wled00/wled_eeprom.cpp | 14 ++++++++++++++ 6 files changed, 34 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49841070..d207972c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ ## WLED changelog -### WLED version 0.11.0 +### Development versions after 0.11.0 release + +#### Build 2012100 + +- Fixed multi-segment preset cycle +- Fixed EEPROM (pre-0.11 settings) not cleared on factory reset +- Fixed an issue with intermittent crashes on FX change (PR #1465) +- Added function to know if strip is updating (PR #1466) +- Fixed using colorwheel sliding the UI (PR #1459) +- Fixed analog clock settings not saving (PR #1448) +- Added Temperature palette (PR #1430) +- Added Candy cane FX (PR #1445) #### Build 2012020 @@ -11,6 +22,8 @@ - Fixed compilation for analog (PWM) LEDs +### WLED version 0.11.0 + #### Build 2011290 - Release of WLED 0.11.0 "Mirai" diff --git a/wled00/fcn_declare.h b/wled00/fcn_declare.h index 52f2ff34..ea819f70 100644 --- a/wled00/fcn_declare.h +++ b/wled00/fcn_declare.h @@ -235,6 +235,7 @@ void userLoop(); void applyMacro(byte index); void deEEP(); void deEEPSettings(); +void clearEEPROM(); //wled_serial.cpp void handleSerial(); diff --git a/wled00/led.cpp b/wled00/led.cpp index 6b8243fe..55739be2 100644 --- a/wled00/led.cpp +++ b/wled00/led.cpp @@ -107,7 +107,7 @@ void colorUpdated(int callMode) notify(callMode); //set flag to update blynk and mqtt - if (callMode != NOTIFIER_CALL_MODE_PRESET_CYCLE) interfaceUpdateCallMode = callMode; + interfaceUpdateCallMode = callMode; } else { if (nightlightActive && !nightlightActiveOld && callMode != NOTIFIER_CALL_MODE_NOTIFICATION && @@ -303,10 +303,10 @@ void handleNightlight() if (bri == 0 || nightlightActive) return; if (presetCycCurr < presetCycleMin || presetCycCurr > presetCycleMax) presetCycCurr = presetCycleMin; - applyPreset(presetCycCurr); + applyPreset(presetCycCurr); //this handles colorUpdated() for us presetCycCurr++; if (presetCycCurr > 250) presetCycCurr = 1; - colorUpdated(NOTIFIER_CALL_MODE_PRESET_CYCLE); + interfaceUpdateCallMode = 0; //disable updates to MQTT and Blynk } } diff --git a/wled00/set.cpp b/wled00/set.cpp index 0de8d553..7265ef94 100644 --- a/wled00/set.cpp +++ b/wled00/set.cpp @@ -266,6 +266,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (request->hasArg(F("RS"))) //complete factory reset { WLED_FS.format(); + clearEEPROM(); serveMessage(request, 200, F("All Settings erased."), F("Connect to WLED-AP to setup again"),255); doReboot = true; } diff --git a/wled00/wled.h b/wled00/wled.h index 8915bbcd..15285032 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2012020 +#define VERSION 2012100 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG diff --git a/wled00/wled_eeprom.cpp b/wled00/wled_eeprom.cpp index 1451a746..55405c87 100644 --- a/wled00/wled_eeprom.cpp +++ b/wled00/wled_eeprom.cpp @@ -36,6 +36,20 @@ //21-> 0.10.1p //22-> 2009260 +/* + * Erase all (pre 0.11) configuration data on factory reset + */ +void clearEEPROM() +{ + EEPROM.begin(EEPSIZE); + for (int i = 0; i < EEPSIZE; i++) + { + EEPROM.write(i, 0); + } + EEPROM.end(); +} + + void readStringFromEEPROM(uint16_t pos, char* str, uint16_t len) { for (int i = 0; i < len; ++i)