diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index b3dc29d0b..2e52cd01f 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -504,7 +504,7 @@ class BusOnOff : public Bus { uint8_t currentPin = bc.pins[0]; if (!pinManager.allocatePin(currentPin, true, PinOwner::BusOnOff)) { - deallocatePins(); return; + return; } _pin = currentPin; //store only after allocatePin() succeeds pinMode(_pin, OUTPUT); @@ -540,7 +540,7 @@ class BusOnOff : public Bus { } void cleanup() { - deallocatePins(); + pinManager.deallocatePin(_pin, PinOwner::BusOnOff); } ~BusOnOff() { @@ -550,10 +550,6 @@ class BusOnOff : public Bus { private: uint8_t _pin = 255; uint8_t _data = 0; - - void deallocatePins() { - pinManager.deallocatePin(_pin, PinOwner::BusOnOff); - } }; @@ -689,6 +685,8 @@ class BusManager { busses[numBusses] = new BusNetwork(bc); } else if (IS_DIGITAL(bc.type)) { busses[numBusses] = new BusDigital(bc, numBusses, colorOrderMap); + } else if (bc.type == TYPE_ONOFF) { + busses[numBusses] = new BusOnOff(bc); } else { busses[numBusses] = new BusPwm(bc); } diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 4b9119053..76e5871c1 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -540,8 +540,8 @@ void deserializeConfigFromFS() { if (!success) { //if file does not exist, try reading from EEPROM #ifdef WLED_ADD_EEPROM_SUPPORT deEEPSettings(); - #endif return; + #endif } if (!requestJSONBufferLock(1)) return; diff --git a/wled00/wled.h b/wled00/wled.h index 893a97aaf..8da851471 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2209141 +#define VERSION 2209161 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG