Start to get rid of Legacy Animations
Start to get rid of Legacy Animations: tv mode is now selectable on its own (ENABLE_TV) off mode is now no legacy animation e131 mode is now no legacy animation
This commit is contained in:
@@ -253,7 +253,7 @@ void saveConfigCallback () {
|
||||
// ***************************************************************************
|
||||
// Include: Color modes
|
||||
// ***************************************************************************
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
#include "colormodes.h"
|
||||
#endif
|
||||
|
||||
@@ -403,7 +403,8 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
//save the custom parameters to FS
|
||||
#if defined(ENABLE_STATE_SAVE_SPIFFS) and (defined(ENABLE_MQTT) or defined(ENABLE_AMQTT))
|
||||
(writeConfigFS(shouldSaveConfig)) ? DBG_OUTPUT_PORT.println("WiFiManager config FS Save success!"): DBG_OUTPUT_PORT.println("WiFiManager config FS Save failure!");
|
||||
#else if defined(ENABLE_STATE_SAVE_EEPROM)
|
||||
#endif
|
||||
#if defined(ENABLE_STATE_SAVE_EEPROM)
|
||||
if (shouldSaveConfig) {
|
||||
DBG_OUTPUT_PORT.println("Saving WiFiManager config");
|
||||
|
||||
@@ -601,6 +602,16 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
#else
|
||||
json["legacy_animations"] = "OFF";
|
||||
#endif
|
||||
#ifdef ENABLE_TV
|
||||
json["tv_animation"] = "ON";
|
||||
#else
|
||||
json["tv_animation"] = "OFF";
|
||||
#endif
|
||||
#ifdef ENABLE_E131
|
||||
json["e131_animations"] = "ON";
|
||||
#else
|
||||
json["e131_animations"] = "OFF";
|
||||
#endif
|
||||
#ifdef HTTP_OTA
|
||||
json["esp8266_http_updateserver"] = "ON";
|
||||
#endif
|
||||
@@ -738,7 +749,7 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/off", []() {
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = OFF;
|
||||
@@ -759,10 +770,10 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/auto", []() {
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = OFF;
|
||||
mode = AUTO;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
#ifdef ENABLE_MQTT
|
||||
@@ -780,7 +791,7 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/all", []() {
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
ws2812fx_mode = FX_MODE_STATIC;
|
||||
@@ -804,7 +815,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
server.on("/wipe", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = WIPE;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -823,7 +836,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/rainbow", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = RAINBOW;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -842,7 +857,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/rainbowCycle", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = RAINBOWCYCLE;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -861,7 +878,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/theaterchase", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = THEATERCHASE;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -880,7 +899,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/twinkleRandom", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = TWINKLERANDOM;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -899,7 +920,9 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
|
||||
server.on("/theaterchaseRainbow", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = THEATERCHASERAINBOW;
|
||||
getArgs();
|
||||
getStatusJSON();
|
||||
@@ -916,17 +939,20 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
if(!spiffs_save_state.active()) spiffs_save_state.once(3, tickerSpiffsSaveState);
|
||||
#endif
|
||||
});
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_E131
|
||||
server.on("/e131", []() {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = E131;
|
||||
getStatusJSON();
|
||||
#ifdef ENABLE_MQTT
|
||||
mqtt_client.publish(mqtt_outtopic, String("OK =e131").c_str());
|
||||
#endif
|
||||
#ifdef ENABLE_AMQTT
|
||||
amqttClient.publish(mqtt_outtopic.c_str(), qospub, false, String("OK =131").c_str());
|
||||
amqttClient.publish(mqtt_outtopic.c_str(), qospub, false, String("OK =e131").c_str());
|
||||
#endif
|
||||
#ifdef ENABLE_HOMEASSISTANT
|
||||
stateOn = true;
|
||||
@@ -937,6 +963,7 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
});
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_TV
|
||||
server.on("/tv", []() {
|
||||
exit_func = true;
|
||||
mode = TV;
|
||||
@@ -1000,9 +1027,11 @@ DBG_OUTPUT_PORT.println("Starting....");
|
||||
else
|
||||
Serial.println(F("*** e131.begin failed ***"));
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_STATE_SAVE_SPIFFS
|
||||
(readStateFS()) ? DBG_OUTPUT_PORT.println(" Success!") : DBG_OUTPUT_PORT.println(" Failure!");
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_STATE_SAVE_EEPROM
|
||||
// Load state string from EEPROM
|
||||
String saved_state_string = readEEPROM(256, 36);
|
||||
@@ -1128,22 +1157,25 @@ void loop() {
|
||||
strip.trigger();
|
||||
mode = HOLD;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_E131
|
||||
if (mode == E131) {
|
||||
handleE131();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (mode == HOLD || mode == CUSTOM) {
|
||||
if(!strip.isRunning()) strip.start();
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
if (exit_func) {
|
||||
exit_func = false;
|
||||
}
|
||||
#endif
|
||||
if (prevmode == SET_MODE) prevmode = HOLD;
|
||||
}
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
|
||||
#ifdef ENABLE_TV
|
||||
if (mode == TV) {
|
||||
if(!strip.isRunning()) strip.start();
|
||||
tv();
|
||||
@@ -1151,7 +1183,7 @@ void loop() {
|
||||
#endif
|
||||
|
||||
// Only for modes with WS2812FX functionality
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
if (mode != TV && mode != CUSTOM) {
|
||||
#else
|
||||
if (mode != CUSTOM) {
|
||||
|
||||
@@ -20,8 +20,9 @@ const char HOSTNAME[] = "McLightingRGBW"; // Friedly hostname
|
||||
#define ENABLE_BUTTON // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control
|
||||
//#define ENABLE_BUTTON_GY33 // If defined, enable button handling code for GY-33 color sensor to scan color
|
||||
//#define MQTT_HOME_ASSISTANT_SUPPORT // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth
|
||||
#define ENABLE_LEGACY_ANIMATIONS // Dont disbale this for now
|
||||
#define ENABLE_LEGACY_ANIMATIONS // Enable Legacy Animations
|
||||
#define ENABLE_E131 // E1.31 implementation You have to uncomment #define USE_WS2812FX_DMA
|
||||
#define ENABLE_TV // Enable TV Animation
|
||||
|
||||
#ifdef ENABLE_E131
|
||||
#define START_UNIVERSE 1 // First DMX Universe to listen for
|
||||
@@ -56,10 +57,10 @@ const char HOSTNAME[] = "McLightingRGBW"; // Friedly hostname
|
||||
|
||||
// parameters for automatically cycling favorite patterns
|
||||
uint32_t autoParams[][4] = { // color, speed, mode, duration (seconds)
|
||||
{0xff000000, 120, 1, 5.0}, // blink red for 5 seconds
|
||||
{0x00ff0000, 120, 3, 10.0}, // wipe green for 10 seconds
|
||||
{0x0000ff00, 196, 14, 5.0}, // dual scan blue for 5 seconds
|
||||
{0x0000ff00, 196, 46, 15.0} // fireworks for 15 seconds
|
||||
{0xff000000, 120, 1, 5}, // blink red for 5 seconds
|
||||
{0x00ff0000, 120, 3, 10}, // wipe green for 10 seconds
|
||||
{0x0000ff00, 196, 14, 5}, // dual scan blue for 5 seconds
|
||||
{0x0000ff00, 196, 46, 15} // fireworks for 15 seconds
|
||||
};
|
||||
|
||||
#if defined(ENABLE_MQTT) or defined(ENABLE_AMQTT)
|
||||
@@ -114,18 +115,15 @@ uint32_t autoParams[][4] = { // color, speed, mode, duration (seconds)
|
||||
|
||||
// List of all color modes
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_E131
|
||||
enum MODE { SET_MODE, HOLD, AUTO, OFF, TV, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW, E131};
|
||||
#else
|
||||
enum MODE { SET_MODE, HOLD, AUTO, OFF, TV, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
#endif
|
||||
enum MODE {OFF, AUTO, TV, E131, SET_MODE, HOLD, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
MODE mode = RAINBOW; // Standard mode that is active when software starts
|
||||
bool exit_func = false; // Global helper variable to get out of the color modes when mode changes
|
||||
#else
|
||||
enum MODE { SET_MODE, HOLD, AUTO, OFF, TV, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS};
|
||||
enum MODE {OFF, AUTO, TV, E131, SET_MODE, HOLD, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS};
|
||||
MODE mode = SET_MODE; // Standard mode that is active when software starts
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_TV
|
||||
bool exit_func = false; // Global helper variable to get out of the color modes when mode changes
|
||||
#endif
|
||||
MODE prevmode = mode;
|
||||
|
||||
int ws2812fx_speed = 196; // Global variable for storing the delay between color changes --> smaller == faster
|
||||
@@ -164,7 +162,7 @@ char beforeauto_state[36]; // Keeps the state representation before a
|
||||
#endif
|
||||
|
||||
// Button handling
|
||||
#ifdef ENABLE_BUTTON || ENABLE_BUTTON_GY33
|
||||
#if defined(ENABLE_BUTTON) || defined(ENABLE_BUTTON_GY33)
|
||||
boolean buttonState = false;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ void handleSetAllMode(uint8_t * mypayload) {
|
||||
main_color.blue = ((rgb >> 0) & 0xFF);
|
||||
|
||||
DBG_OUTPUT_PORT.printf("WS: Set all leds to main color: R: [%u] G: [%u] B: [%u] W: [%u]\n", main_color.red, main_color.green, main_color.blue, main_color.white);
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
ws2812fx_mode = FX_MODE_STATIC;
|
||||
@@ -178,7 +178,7 @@ void handleSetSingleLED(uint8_t * mypayload, uint8_t firstChar = 0) {
|
||||
strip.setPixelColor(led, ledstates[led].red, ledstates[led].green, ledstates[led].blue, ledstates[led].white);
|
||||
strip.show();
|
||||
}
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
mode = CUSTOM;
|
||||
@@ -263,7 +263,9 @@ void setModeByStateString(String saved_state_string) {
|
||||
}
|
||||
|
||||
void handleSetNamedMode(String str_mode) {
|
||||
#ifdef ENABLE_TV
|
||||
exit_func = true;
|
||||
#endif
|
||||
|
||||
if (str_mode.startsWith("=off") or str_mode.startsWith("/off")) {
|
||||
mode = OFF;
|
||||
@@ -271,12 +273,17 @@ void handleSetNamedMode(String str_mode) {
|
||||
stateOn = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ENABLE_TV
|
||||
if (str_mode.startsWith("=tv") or str_mode.startsWith("/tv")) {
|
||||
mode = TV;
|
||||
#ifdef ENABLE_HOMEASSISTANT
|
||||
stateOn = true;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_E131
|
||||
if (str_mode.startsWith("=e131") or str_mode.startsWith("/e131")) {
|
||||
if(strip.isRunning()) strip.stop();
|
||||
mode = E131;
|
||||
@@ -284,6 +291,8 @@ void handleSetNamedMode(String str_mode) {
|
||||
stateOn = true;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
if (str_mode.startsWith("=auto")) {
|
||||
mode = AUTO;
|
||||
@@ -377,9 +386,11 @@ String listModesJSON(void) {
|
||||
JsonObject objectoff = json.createNestedObject();
|
||||
objectoff["mode"] = "off";
|
||||
objectoff["name"] = "OFF";
|
||||
#ifdef ENABLE_TV
|
||||
JsonObject objecttv = json.createNestedObject();
|
||||
objecttv["mode"] = "tv";
|
||||
objecttv["name"] = "TV";
|
||||
#endif
|
||||
#ifdef ENABLE_E131
|
||||
JsonObject objecte131 = json.createNestedObject();
|
||||
objecte131["mode"] = "e131";
|
||||
@@ -742,7 +753,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_LEGACY_ANIMATIONS
|
||||
#if defined(ENABLE_TV) || defined(ENABLE_E131)
|
||||
void checkForRequests() {
|
||||
webSocket.loop();
|
||||
server.handleClient();
|
||||
@@ -955,7 +966,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
|
||||
// DBG_OUTPUT_PORT.print("]: "); DBG_OUTPUT_PORT.println(payload_in);
|
||||
uint8_t * payload = (uint8_t *) malloc(length + 1);
|
||||
memcpy(payload, payload_in, length);
|
||||
payload[length] = NULL;
|
||||
payload[length] = 0;
|
||||
DBG_OUTPUT_PORT.printf("]: %s\n", payload);
|
||||
#endif
|
||||
|
||||
@@ -963,7 +974,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
|
||||
void mqtt_callback(char* topic, byte* payload_in, unsigned int length) {
|
||||
uint8_t * payload = (uint8_t *)malloc(length + 1);
|
||||
memcpy(payload, payload_in, length);
|
||||
payload[length] = NULL;
|
||||
payload[length] = 0;
|
||||
DBG_OUTPUT_PORT.printf("MQTT: Message arrived [%s]\n", payload);
|
||||
#endif
|
||||
#ifdef ENABLE_HOMEASSISTANT
|
||||
|
||||
@@ -197,6 +197,9 @@ $(function(){
|
||||
$.getJSON("http://" + host + "/status", function(data) {
|
||||
console.log("status", data);
|
||||
mode = data.mode;
|
||||
if (mode == "1") {
|
||||
// set autoswitch $("#autoSwitch").val('checked');
|
||||
}
|
||||
ws2812fx_mode = data.ws2812fx_mode;
|
||||
$("#rng_delay").val(data.speed);
|
||||
$("#rng_brightness").val(data.brightness);
|
||||
@@ -211,14 +214,14 @@ $(function(){
|
||||
|
||||
// Load modes async
|
||||
// List of all color modes
|
||||
// enum MODE { SET_MODE, HOLD, AUTO, OFF, TV, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
// enum MODE {OFF, AUTO, TV, E131, SET_MODE, HOLD, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
$.getJSON("http://" + host + "/get_modes", function(data) {
|
||||
console.log("modes", data);
|
||||
var modes_html = "";
|
||||
data.forEach(function(current_mode){
|
||||
if (current_mode.mode !== undefined) {
|
||||
modes_html += '<div class="col s12 m6 l6 btn_grid">';
|
||||
if ((mode == "1" && current_mode.mode == ws2812fx_mode) || (mode == "3" && current_mode.mode == "off") || (mode == "4" && current_mode.mode == "tv") || (mode == "15" && current_mode.mode == "e131")){
|
||||
if ((mode == "5" && current_mode.mode == ws2812fx_mode) || (mode == "0" && current_mode.mode == "off") || (mode == "2" && current_mode.mode == "tv") || (mode == "3" && current_mode.mode == "e131")){
|
||||
modes_html += '<a class="btn waves-effect waves-light btn_mode red" name="action" data-mode="' + current_mode.mode + '">(' + current_mode.mode +') '+ current_mode.name;
|
||||
} else {
|
||||
modes_html += '<a class="btn waves-effect waves-light btn_mode blue" name="action" data-mode="' + current_mode.mode + '">(' + current_mode.mode +') '+ current_mode.name;
|
||||
|
||||
@@ -56,14 +56,14 @@ $(function(){
|
||||
|
||||
// Load modes async
|
||||
// List of all color modes
|
||||
// enum MODE { SET_MODE, HOLD, AUTO, OFF, TV, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
// enum MODE {OFF, AUTO, TV, E131, SET_MODE, HOLD, CUSTOM, SETCOLOR, SETSPEED, BRIGHTNESS, WIPE, RAINBOW, RAINBOWCYCLE, THEATERCHASE, TWINKLERANDOM, THEATERCHASERAINBOW};
|
||||
$.getJSON("http://" + host + "/get_modes", function(data) {
|
||||
console.log("modes", data);
|
||||
var modes_html = "";
|
||||
data.forEach(function(current_mode){
|
||||
if (current_mode.mode !== undefined) {
|
||||
modes_html += '<div class="col s12 m6 l6 btn_grid">';
|
||||
if ((mode == "1" && current_mode.mode == ws2812fx_mode) || (mode == "3" && current_mode.mode == "off") || (mode == "4" && current_mode.mode == "tv") || (mode == "15" && current_mode.mode == "e131")){
|
||||
if ((mode == "5" && current_mode.mode == ws2812fx_mode) || (mode == "0" && current_mode.mode == "off") || (mode == "2" && current_mode.mode == "tv") || (mode == "3" && current_mode.mode == "e131")){
|
||||
modes_html += '<a class="btn waves-effect waves-light btn_mode red" name="action" data-mode="' + current_mode.mode + '">(' + current_mode.mode +') '+ current_mode.name;
|
||||
} else {
|
||||
modes_html += '<a class="btn waves-effect waves-light btn_mode blue" name="action" data-mode="' + current_mode.mode + '">(' + current_mode.mode +') '+ current_mode.name;
|
||||
|
||||
Reference in New Issue
Block a user