TM1814 requires refreshes to remain powered off and a slightly faster refresh speed.

pull/1922/head
Eric Severance 2021-04-23 21:45:50 -07:00
rodzic ced0cc1bac
commit 8b759bc5d9
5 zmienionych plików z 10 dodań i 2 usunięć

Wyświetl plik

@ -34,7 +34,7 @@
*/
uint16_t WS2812FX::mode_static(void) {
fill(SEGCOLOR(0));
return (SEGMENT.getOption(SEG_OPTION_TRANSITIONAL)) ? FRAMETIME : 380; //update faster if in transition
return (SEGMENT.getOption(SEG_OPTION_TRANSITIONAL)) ? FRAMETIME : 350; //update faster if in transition
}

Wyświetl plik

@ -606,6 +606,7 @@ class WS2812FX {
bool
isRgbw = false,
isOffRefreshRequred = false, //periodic refresh is required for the strip to remain off.
gammaCorrectBri = false,
gammaCorrectCol = true,
applyToAllSelected = true,

Wyświetl plik

@ -399,6 +399,11 @@ class BusManager {
return false;
}
//Return true if the strip requires a refresh to stay off.
static bool isOffRefreshRequred(uint8_t type) {
return type == TYPE_TM1814;
}
private:
uint8_t numBusses = 0;
Bus* busses[WLED_MAX_BUSSES];

Wyświetl plik

@ -128,6 +128,8 @@ void deserializeConfig() {
bool reversed = elm["rev"];
//RGBW mode is enabled if at least one of the strips is RGBW
strip.isRgbw = (strip.isRgbw || BusManager::isRgbw(ledType));
//refresh is required to remain off if at least one of the strips requires the refresh.
strip.isOffRefreshRequred |= BusManager::isOffRefreshRequred(ledType);
s++;
BusConfig bc = BusConfig(ledType, pins, start, length, colorOrder, reversed);
mem += busses.memUsage(bc);

Wyświetl plik

@ -221,7 +221,7 @@ void WLED::loop()
yield();
if (!offMode)
if (!offMode || strip.isOffRefreshRequred)
strip.service();
#ifdef ESP8266
else if (!noWifiSleep)