kopia lustrzana https://github.com/Aircoookie/WLED
Release of WLED v0.10.0
DMX Single RGW and Single DRGB modes now support an additional white channel Improved palettes derived from set colors and changed their namespull/898/head v0.10.0
rodzic
df1f516f6b
commit
71886c162b
|
@ -1,6 +1,13 @@
|
||||||
## WLED changelog
|
## WLED changelog
|
||||||
|
|
||||||
### Development versions after 0.9.1 release
|
### WLED version 0.10.0
|
||||||
|
|
||||||
|
#### Build 2005030
|
||||||
|
|
||||||
|
- DMX Single RGW and Single DRGB modes now support an additional white channel
|
||||||
|
- Improved palettes derived from set colors and changed their names
|
||||||
|
|
||||||
|
### Development versions between 0.9.1 and 0.10.0 release
|
||||||
|
|
||||||
#### Build 2005020
|
#### Build 2005020
|
||||||
|
|
||||||
|
|
|
@ -183,7 +183,7 @@ build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_OTA -D WLED_DISABLE_
|
||||||
board = esp01_1m
|
board = esp01_1m
|
||||||
platform = ${common.platform_latest}
|
platform = ${common.platform_latest}
|
||||||
board_build.ldscript = ${common.ldscript_1m0m}
|
board_build.ldscript = ${common.ldscript_1m0m}
|
||||||
build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK -D WLED_DISABLE_HUESYNC -D WLED_DISABLE_INFRARED
|
build_flags = ${common.build_flags_esp8266} -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK -D WLED_DISABLE_CRONIXIE -D WLED_DISABLE_HUESYNC -D WLED_DISABLE_INFRARED
|
||||||
|
|
||||||
[env:esp01_1m_full]
|
[env:esp01_1m_full]
|
||||||
board = esp01_1m
|
board = esp01_1m
|
||||||
|
|
|
@ -672,7 +672,7 @@ const char JSON_mode_names[] PROGMEM = R"=====([
|
||||||
|
|
||||||
|
|
||||||
const char JSON_palette_names[] PROGMEM = R"=====([
|
const char JSON_palette_names[] PROGMEM = R"=====([
|
||||||
"Default","Random Cycle","Primary Color","Based on Primary","Set Colors","Based on Set","Party","Cloud","Lava","Ocean",
|
"Default","* Random Cycle","* Color 1","* Colors 1&2","* Color Gradient","* Colors Only","Party","Cloud","Lava","Ocean",
|
||||||
"Forest","Rainbow","Rainbow Bands","Sunset","Rivendell","Breeze","Red & Blue","Yellowout","Analogous","Splash",
|
"Forest","Rainbow","Rainbow Bands","Sunset","Rivendell","Breeze","Red & Blue","Yellowout","Analogous","Splash",
|
||||||
"Pastel","Sunset 2","Beech","Vintage","Departure","Landscape","Beach","Sherbet","Hult","Hult 64",
|
"Pastel","Sunset 2","Beech","Vintage","Departure","Landscape","Beach","Sherbet","Hult","Hult 64",
|
||||||
"Drywet","Jul","Grintage","Rewhi","Tertiary","Fire","Icefire","Cyane","Light Pink","Autumn",
|
"Drywet","Jul","Grintage","Rewhi","Tertiary","Fire","Icefire","Cyane","Light Pink","Autumn",
|
||||||
|
|
|
@ -743,25 +743,25 @@ void WS2812FX::handle_palette(void)
|
||||||
case 2: {//primary color only
|
case 2: {//primary color only
|
||||||
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
||||||
targetPalette = CRGBPalette16(prim); break;}
|
targetPalette = CRGBPalette16(prim); break;}
|
||||||
case 3: {//based on primary
|
case 3: {//primary + secondary
|
||||||
//considering performance implications
|
|
||||||
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
|
||||||
CHSV prim_hsv = rgb2hsv_approximate(prim);
|
|
||||||
targetPalette = CRGBPalette16(
|
|
||||||
CHSV(prim_hsv.h, prim_hsv.s, prim_hsv.v), //color itself
|
|
||||||
CHSV(prim_hsv.h, MAX(prim_hsv.s - 50,0), prim_hsv.v), //less saturated
|
|
||||||
CHSV(prim_hsv.h, prim_hsv.s, MAX(prim_hsv.v - 50,0)), //darker
|
|
||||||
CHSV(prim_hsv.h, prim_hsv.s, prim_hsv.v)); //color itself
|
|
||||||
break;}
|
|
||||||
case 4: {//primary + secondary
|
|
||||||
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
||||||
CRGB sec = col_to_crgb(SEGCOLOR(1));
|
CRGB sec = col_to_crgb(SEGCOLOR(1));
|
||||||
targetPalette = CRGBPalette16(sec,prim); break;}
|
targetPalette = CRGBPalette16(prim,prim,sec,sec); break;}
|
||||||
case 5: {//based on primary + secondary
|
case 4: {//primary + secondary + tertiary
|
||||||
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
||||||
CRGB sec = col_to_crgb(SEGCOLOR(1));
|
CRGB sec = col_to_crgb(SEGCOLOR(1));
|
||||||
CRGB ter = col_to_crgb(SEGCOLOR(2));
|
CRGB ter = col_to_crgb(SEGCOLOR(2));
|
||||||
targetPalette = CRGBPalette16(ter,sec,prim); break;}
|
targetPalette = CRGBPalette16(ter,sec,prim); break;}
|
||||||
|
case 5: {//primary + secondary (+tert if not off), more distinct
|
||||||
|
CRGB prim = col_to_crgb(SEGCOLOR(0));
|
||||||
|
CRGB sec = col_to_crgb(SEGCOLOR(1));
|
||||||
|
if (SEGCOLOR(2)) {
|
||||||
|
CRGB ter = col_to_crgb(SEGCOLOR(2));
|
||||||
|
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,ter,ter,ter,ter,ter,prim);
|
||||||
|
} else {
|
||||||
|
targetPalette = CRGBPalette16(prim,prim,prim,prim,prim,prim,prim,prim,sec,sec,sec,sec,sec,sec,sec,sec);
|
||||||
|
}
|
||||||
|
break;}
|
||||||
case 6: //Party colors
|
case 6: //Party colors
|
||||||
targetPalette = PartyColors_p; break;
|
targetPalette = PartyColors_p; break;
|
||||||
case 7: //Cloud colors
|
case 7: //Cloud colors
|
||||||
|
|
|
@ -950,7 +950,7 @@ input[type=number]::-webkit-outer-spin-button {
|
||||||
<button class="btn infobtn" onclick="toggleInfo()">Close Info</button><br>
|
<button class="btn infobtn" onclick="toggleInfo()">Close Info</button><br>
|
||||||
<button class="btn infobtn" onclick="openGH()">WLED Wiki</button>
|
<button class="btn infobtn" onclick="openGH()">WLED Wiki</button>
|
||||||
<button class="btn infobtn" id="resetbtn" onclick="cnfReset()">Reboot WLED</button><br>
|
<button class="btn infobtn" id="resetbtn" onclick="cnfReset()">Reboot WLED</button><br>
|
||||||
<span class="h">Made with <span id="heart">❤</span> by Aircoookie and the WLED community</span>
|
<span class="h">Made with <span id="heart">❤</span> by Aircoookie and the WLED community</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="rover" class="modal">
|
<div id="rover" class="modal">
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
<button type="button" onclick="U()">Manual OTA Update</button><br>
|
<button type="button" onclick="U()">Manual OTA Update</button><br>
|
||||||
Enable ArduinoOTA: <input type="checkbox" name="AO"><br>
|
Enable ArduinoOTA: <input type="checkbox" name="AO"><br>
|
||||||
<h3>About</h3>
|
<h3>About</h3>
|
||||||
<a href="https://github.com/Aircoookie/WLED" target="_blank">WLED</a> version 0.10.0p<br><br>
|
<a href="https://github.com/Aircoookie/WLED" target="_blank">WLED</a> version 0.10.0<br><br>
|
||||||
<a href="https://github.com/Aircoookie/WLED/wiki/Contributors-&-About" target="_blank">Contributors, dependencies and special thanks</a><br>
|
<a href="https://github.com/Aircoookie/WLED/wiki/Contributors-&-About" target="_blank">Contributors, dependencies and special thanks</a><br>
|
||||||
A huge thank you to everyone who helped me create WLED!<br><br>
|
A huge thank you to everyone who helped me create WLED!<br><br>
|
||||||
(c) 2016-2019 Christian Schwinne <br>
|
(c) 2016-2019 Christian Schwinne <br>
|
||||||
|
|
|
@ -46,6 +46,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, bool isArtnet){
|
||||||
|
|
||||||
// update status info
|
// update status info
|
||||||
realtimeIP = clientIP;
|
realtimeIP = clientIP;
|
||||||
|
byte wChannel = 0;
|
||||||
|
|
||||||
switch (DMXMode) {
|
switch (DMXMode) {
|
||||||
case DMX_MODE_DISABLED:
|
case DMX_MODE_DISABLED:
|
||||||
|
@ -57,8 +58,9 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, bool isArtnet){
|
||||||
if (dmxChannels-DMXAddress+1 < 3) return;
|
if (dmxChannels-DMXAddress+1 < 3) return;
|
||||||
realtimeLock(realtimeTimeoutMs, mde);
|
realtimeLock(realtimeTimeoutMs, mde);
|
||||||
if (realtimeOverride) return;
|
if (realtimeOverride) return;
|
||||||
|
wChannel = (dmxChannels-DMXAddress+1 > 3) ? e131_data[DMXAddress+3] : 0;
|
||||||
for (uint16_t i = 0; i < ledCount; i++)
|
for (uint16_t i = 0; i < ledCount; i++)
|
||||||
setRealtimePixel(i, e131_data[DMXAddress+0], e131_data[DMXAddress+1], e131_data[DMXAddress+2], 0);
|
setRealtimePixel(i, e131_data[DMXAddress+0], e131_data[DMXAddress+1], e131_data[DMXAddress+2], wChannel);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DMX_MODE_SINGLE_DRGB:
|
case DMX_MODE_SINGLE_DRGB:
|
||||||
|
@ -66,13 +68,14 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, bool isArtnet){
|
||||||
if (dmxChannels-DMXAddress+1 < 4) return;
|
if (dmxChannels-DMXAddress+1 < 4) return;
|
||||||
realtimeLock(realtimeTimeoutMs, mde);
|
realtimeLock(realtimeTimeoutMs, mde);
|
||||||
if (realtimeOverride) return;
|
if (realtimeOverride) return;
|
||||||
|
wChannel = (dmxChannels-DMXAddress+1 > 4) ? e131_data[DMXAddress+4] : 0;
|
||||||
if (DMXOldDimmer != e131_data[DMXAddress+0]) {
|
if (DMXOldDimmer != e131_data[DMXAddress+0]) {
|
||||||
DMXOldDimmer = e131_data[DMXAddress+0];
|
DMXOldDimmer = e131_data[DMXAddress+0];
|
||||||
bri = e131_data[DMXAddress+0];
|
bri = e131_data[DMXAddress+0];
|
||||||
strip.setBrightness(bri);
|
strip.setBrightness(bri);
|
||||||
}
|
}
|
||||||
for (uint16_t i = 0; i < ledCount; i++)
|
for (uint16_t i = 0; i < ledCount; i++)
|
||||||
setRealtimePixel(i, e131_data[DMXAddress+1], e131_data[DMXAddress+2], e131_data[DMXAddress+3], 0);
|
setRealtimePixel(i, e131_data[DMXAddress+1], e131_data[DMXAddress+2], e131_data[DMXAddress+3], wChannel);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DMX_MODE_EFFECT:
|
case DMX_MODE_EFFECT:
|
||||||
|
|
|
@ -50,7 +50,7 @@ const char PAGE_dmxmap[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
const char PAGE_update[] PROGMEM = R"=====(<!DOCTYPE html>
|
const char PAGE_update[] PROGMEM = R"=====(<!DOCTYPE html>
|
||||||
<html><head><meta content='width=device-width' name='viewport'><title>WLED Update</title><script>function B(){window.history.back()}</script>
|
<html><head><meta content='width=device-width' name='viewport'><title>WLED Update</title><script>function B(){window.history.back()}</script>
|
||||||
<style>.bt{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.3ch solid #333;display:inline-block;font-size:20px;margin:8px;margin-top:12px}input[type=file]{font-size:16px}body{font-family:Verdana,sans-serif;text-align:center;background:#222;color:#fff;line-height:200%}</style></head>
|
<style>.bt{background:#333;color:#fff;font-family:Verdana,sans-serif;border:.3ch solid #333;display:inline-block;font-size:20px;margin:8px;margin-top:12px}input[type=file]{font-size:16px}body{font-family:Verdana,sans-serif;text-align:center;background:#222;color:#fff;line-height:200%}</style></head>
|
||||||
<body><h2>WLED Software Update</h2>Installed version: 0.10.0p<br>Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases"><img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br><form method='POST' action='/update' enctype='multipart/form-data'><input type='file' class="bt" name='update' required><br><input type='submit' class="bt" value='Update!'></form><button type="button" class="bt" onclick="B()">Back</button></body></html>)=====";
|
<body><h2>WLED Software Update</h2>Installed version: 0.10.0<br>Download the latest binary: <a href="https://github.com/Aircoookie/WLED/releases"><img src="https://img.shields.io/github/release/Aircoookie/WLED.svg?style=flat-square"></a><br><form method='POST' action='/update' enctype='multipart/form-data'><input type='file' class="bt" name='update' required><br><input type='submit' class="bt" value='Update!'></form><button type="button" class="bt" onclick="B()">Back</button></body></html>)=====";
|
||||||
|
|
||||||
|
|
||||||
//new user welcome page
|
//new user welcome page
|
||||||
|
|
|
@ -472,7 +472,7 @@ HTTP traffic is unencrypted. An attacker in the same network can intercept form
|
||||||
<button type="button" onclick="U()">Manual OTA Update</button><br>
|
<button type="button" onclick="U()">Manual OTA Update</button><br>
|
||||||
Enable ArduinoOTA: <input type="checkbox" name="AO"><br>
|
Enable ArduinoOTA: <input type="checkbox" name="AO"><br>
|
||||||
<h3>About</h3>
|
<h3>About</h3>
|
||||||
<a href="https://github.com/Aircoookie/WLED" target="_blank">WLED</a> version 0.10.0p<br><br>
|
<a href="https://github.com/Aircoookie/WLED" target="_blank">WLED</a> version 0.10.0<br><br>
|
||||||
<a href="https://github.com/Aircoookie/WLED/wiki/Contributors-&-About" target="_blank">Contributors, dependencies and special thanks</a><br>
|
<a href="https://github.com/Aircoookie/WLED/wiki/Contributors-&-About" target="_blank">Contributors, dependencies and special thanks</a><br>
|
||||||
A huge thank you to everyone who helped me create WLED!<br><br>
|
A huge thank you to everyone who helped me create WLED!<br><br>
|
||||||
(c) 2016-2020 Christian Schwinne <br>
|
(c) 2016-2020 Christian Schwinne <br>
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
/*
|
/*
|
||||||
Main sketch, global variable declarations
|
Main sketch, global variable declarations
|
||||||
@title WLED project sketch
|
@title WLED project sketch
|
||||||
@version 0.10.0p
|
@version 0.10.0
|
||||||
@author Christian Schwinne
|
@author Christian Schwinne
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2005020
|
#define VERSION 2005030
|
||||||
|
|
||||||
// ESP8266-01 (blue) got too little storage space to work with all features of WLED. To use it, you must use ESP8266 Arduino Core v2.4.2 and the setting 512K(No SPIFFS).
|
// ESP8266-01 (blue) got too little storage space to work with all features of WLED. To use it, you must use ESP8266 Arduino Core v2.4.2 and the setting 512K(No SPIFFS).
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Global Variable definitions
|
// Global Variable definitions
|
||||||
WLED_GLOBAL char versionString[] _INIT("0.10.0p");
|
WLED_GLOBAL char versionString[] _INIT("0.10.0");
|
||||||
#define WLED_CODENAME "Namigai"
|
#define WLED_CODENAME "Namigai"
|
||||||
|
|
||||||
// AP and OTA default passwords (for maximum security change them!)
|
// AP and OTA default passwords (for maximum security change them!)
|
||||||
|
|
Ładowanie…
Reference in New Issue