@@ -33,7 +33,6 @@ class FastLEDDriver : public Node {
3333 static uint8_t dim () { return _NoD; }
3434 static const char * tags () { return " ☸️" ; }
3535
36- uint16_t maxPower = 10 ;
3736 char chipSet[20 ] = TOSTRING(ML_CHIPSET);
3837 char version[20 ] = TOSTRING(FASTLED_VERSION); // "." TOSTRING(FASTLED_VERSION_MINOR) "." TOSTRING(FASTLED_VERSION_PATCH);
3938 char colorOrder[20 ] = TOSTRING(ML_COLOR_ORDER);
@@ -49,28 +48,34 @@ class FastLEDDriver : public Node {
4948 #endif
5049
5150 void setup () override {
52- addControl (maxPower, " maxPower" , " number" , 0 , 100 );
5351 addControl (version, " Version" , " text" , 0 , 20 , true );
5452 addControl (chipSet, " chipSet" , " text" , 0 , 20 , true );
5553 addControl (colorOrder, " colorOrder" , " text" , 0 , 20 , true );
5654 addControl (usesI2S, " usesI2S" , " checkbox" , 0 , 20 , true );
5755 addControl (usesRMT5, " usesRMT5" , " checkbox" , 0 , 20 , true );
5856 }
5957
58+ uint16_t savedMaxPower = UINT16_MAX;
6059 void loop () override {
6160 if (FastLED.count ()) {
62- if (FastLED.getBrightness () != layer->layerP ->lights .header .brightness ) {
63- EXT_LOGD (ML_TAG, " setBrightness %d" , layer->layerP ->lights .header .brightness );
64- FastLED.setBrightness (layer->layerP ->lights .header .brightness );
61+ if (FastLED.getBrightness () != layerP.lights .header .brightness ) {
62+ EXT_LOGD (ML_TAG, " setBrightness %d" , layerP.lights .header .brightness );
63+ FastLED.setBrightness (layerP.lights .header .brightness );
64+ }
65+
66+ if (layerP.maxPower != savedMaxPower) {
67+ EXT_LOGD (ML_TAG, " setMaxPower %d watt" , layerP.maxPower );
68+ FastLED.setMaxPowerInMilliWatts (1000 * layerP.maxPower ); // 5v, 2000mA, to protect usb while developing
69+ savedMaxPower = layerP.maxPower ;
6570 }
6671
6772 // FastLED Led Controllers
68- CRGB correction = CRGB (layer-> layerP -> lights .header .red , layer-> layerP -> lights .header .green , layer-> layerP -> lights .header .blue );
73+ CRGB correction = CRGB (layerP. lights .header .red , layerP. lights .header .green , layerP. lights .header .blue );
6974 CLEDController* pCur = CLEDController::head ();
7075 while (pCur) {
7176 // ++x;
7277 if (pCur->getCorrection () != correction) {
73- EXT_LOGD (ML_TAG, " setColorCorrection r:%d, g:%d, b:%d (#:%d)" , layer-> layerP -> lights .header .red , layer-> layerP -> lights .header .green , layer-> layerP -> lights .header .blue , pCur->size ());
78+ EXT_LOGD (ML_TAG, " setColorCorrection r:%d, g:%d, b:%d (#:%d)" , layerP. lights .header .red , layerP. lights .header .green , layerP. lights .header .blue , pCur->size ());
7479 pCur->setCorrection (correction);
7580 }
7681 // pCur->size();
@@ -83,26 +88,26 @@ class FastLEDDriver : public Node {
8388
8489 bool hasOnLayout () const override { return true ; }
8590 void onLayout () override {
86- if (layer-> layerP -> pass == 1 && !layer-> layerP -> monitorPass ) { // physical
91+ if (layerP. pass == 1 && !layerP. monitorPass ) { // physical
8792 // if (safeModeMB) {
8893 // EXT_LOGW(ML_TAG, "Safe mode enabled, not adding FastLED driver");
8994 // return;
9095 // }
9196
92- if (layer-> layerP -> nrOfLedPins == 0 ) return ;
97+ if (layerP. nrOfLedPins == 0 ) return ;
9398
94- EXT_LOGD (ML_TAG, " nrOfLedPins #:%d" , layer-> layerP -> nrOfLedPins );
99+ EXT_LOGD (ML_TAG, " nrOfLedPins #:%d" , layerP. nrOfLedPins );
95100
96101 uint16_t startLed = 0 ;
97- for (uint8_t pinIndex = 0 ; pinIndex < layer-> layerP -> nrOfLedPins && pinIndex < 4 ; pinIndex++) { // FastLED RMT supports max 4 pins!
98- EXT_LOGD (ML_TAG, " ledPin s:%d #:%d p:%d" , pinIndex, layer-> layerP -> ledsPerPin [pinIndex]);
102+ for (uint8_t pinIndex = 0 ; pinIndex < layerP. nrOfLedPins && pinIndex < 4 ; pinIndex++) { // FastLED RMT supports max 4 pins!
103+ EXT_LOGD (ML_TAG, " ledPin s:%d #:%d p:%d" , pinIndex, layerP. ledsPerPin [pinIndex]);
99104
100- uint16_t nrOfLights = layer-> layerP -> ledsPerPin [pinIndex];
105+ uint16_t nrOfLights = layerP. ledsPerPin [pinIndex];
101106
102- CRGB* leds = (CRGB*)layer-> layerP -> lights .channels ;
107+ CRGB* leds = (CRGB*)layerP. lights .channels ;
103108
104- if (GPIO_IS_VALID_OUTPUT_GPIO (layer-> layerP -> ledPins [pinIndex])) {
105- switch (layer-> layerP -> ledPins [pinIndex]) {
109+ if (GPIO_IS_VALID_OUTPUT_GPIO (layerP. ledPins [pinIndex])) {
110+ switch (layerP. ledPins [pinIndex]) {
106111 #if CONFIG_IDF_TARGET_ESP32
107112 case 0 :
108113 FastLED.addLeds <ML_CHIPSET, 0 COLOR_ORDER_ARG>(leds, startLed, nrOfLights).setCorrection (TypicalLEDStrip) RGBW_CALL;
@@ -523,24 +528,17 @@ class FastLEDDriver : public Node {
523528 #endif // CONFIG_IDF_TARGET_ESP32S3
524529
525530 default :
526- EXT_LOGW (ML_TAG, " FastLEDPin assignment: pin not supported %d" , layer-> layerP -> ledPins [pinIndex]);
531+ EXT_LOGW (ML_TAG, " FastLEDPin assignment: pin not supported %d" , layerP. ledPins [pinIndex]);
527532 } // switch pinNr
528533 } else
529- EXT_LOGW (ML_TAG, " Pin %d (%d lights) not added as not valid for output" , layer-> layerP -> ledPins [pinIndex], layer-> layerP -> ledsPerPin [pinIndex]);
534+ EXT_LOGW (ML_TAG, " Pin %d (%d lights) not added as not valid for output" , layerP. ledPins [pinIndex], layerP. ledsPerPin [pinIndex]);
530535
531- startLed += layer-> layerP -> ledsPerPin [pinIndex];
536+ startLed += layerP. ledsPerPin [pinIndex];
532537
533538 } // sortedPins
534539 }
535540
536- FastLED.setMaxPowerInMilliWatts (1000 * maxPower); // 5v, 2000mA, to protect usb while developing
537- }
538-
539- void onUpdate (String& oldValue, JsonObject control) override {
540- if (control[" name" ] == " maxPower" ) {
541- EXT_LOGD (ML_TAG, " setMaxPowerInMilliWatts %d" , maxPower);
542- FastLED.setMaxPowerInMilliWatts (1000 * maxPower); // 5v, 2000mA, to protect usb while developing
543- }
541+ FastLED.setMaxPowerInMilliWatts (1000 * layerP.maxPower ); // 5v, 2000mA, to protect usb while developing
544542 }
545543};
546544
0 commit comments