Bugfix issue: Just a flicker on WS set single pixel command

See: https://github.com/toblum/McLighting/issues/31
This commit is contained in:
Tobias Blum 2017-08-19 23:36:23 +02:00
parent 32bb5ed7ac
commit ae371e0844
3 changed files with 6 additions and 5 deletions

View file

@ -585,7 +585,7 @@ void loop() {
strip.setMode(FX_MODE_THEATER_CHASE_RAINBOW);
mode = HOLD;
}
if (mode == HOLD) {
if (mode == HOLD || mode == CUSTOM) {
if (exit_func) {
exit_func = false;
}
@ -594,7 +594,8 @@ void loop() {
tv();
}
if (mode != TV) {
// Only for modes with WS2812FX functionality
if (mode != TV && mode != CUSTOM) {
strip.service();
}
}

View file

@ -31,7 +31,7 @@ const char HOSTNAME[] = "ESP8266_01"; // Friedly hostname
#define DBG_OUTPUT_PORT Serial // Set debug output port
// List of all color modes
enum MODE { SET_MODE, HOLD, OFF, ALL, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, THEATERCHASERAINBOW, TV };
enum MODE { SET_MODE, HOLD, OFF, ALL, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, THEATERCHASERAINBOW, TV, CUSTOM };
MODE mode = RAINBOW; // Standard mode that is active when software starts

View file

@ -71,7 +71,7 @@ void handleSetSingleLED(uint8_t * mypayload) {
// decode led index
uint64_t rgb = (uint64_t) strtol((const char *) &mypayload[1], NULL, 16);
uint8_t led = ((rgb >> 24) & 0xFF);
uint8_t led = ((rgb >> 24) & 0xFF);
if (led < strip.numPixels()) {
ledstates[led].red = ((rgb >> 16) & 0xFF);
ledstates[led].green = ((rgb >> 8) & 0xFF);
@ -85,7 +85,7 @@ void handleSetSingleLED(uint8_t * mypayload) {
strip.show();
}
exit_func = true;
mode = ALL;
mode = CUSTOM;
}
void handleSetNamedMode(String str_mode) {