From a52386e6ad9b59c5b0c6266a318bc9941037b5bb Mon Sep 17 00:00:00 2001 From: Blaz Kristan Date: Sat, 3 Apr 2021 19:43:08 +0200 Subject: [PATCH] 0.12 release - removed AUX - fix for negative values in LED settings - fix for iOS app --- CHANGELOG.md | 11 + package.json | 2 +- readme.md | 1 + wled00/FX.h | 1 - wled00/button.cpp | 27 - wled00/cfg.cpp | 3 - wled00/data/index.js | 1 + wled00/data/settings_leds.htm | 56 +- wled00/data/style.css | 1 + wled00/html_other.h | 2 +- wled00/html_settings.h | 84 +- wled00/html_ui.h | 1399 +++++++++++++++++---------------- wled00/set.cpp | 17 - wled00/wled.h | 21 +- wled00/xml.cpp | 1 - 15 files changed, 783 insertions(+), 844 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f6e29813..33bdd5f18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,18 @@ ## WLED changelog +#### Build 2104020 + +- Allow clearing button/IR/relay pin on platforms that don't support negative numbers +- Removed AUX pin +- Hid some easter eggs, only to be found at easter + ### Development versions between 0.11.1 and 0.12.0 releases +#### Build 2103310 + +- Version bump to 0.12.0 "Hikari" +- Fixed LED settings submission in iOS app + #### Build 2103300 - Version bump to 0.12.0-b5 "Hikari" diff --git a/package.json b/package.json index 14ab0f676..5b75307b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.12.0-b6", + "version": "0.12.0", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/readme.md b/readme.md index 866db4aaf..4aa968882 100644 --- a/readme.md +++ b/readme.md @@ -21,6 +21,7 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control - Segments to set different effects and colors to parts of the LEDs - Settings page - configuration over network - Access Point and station mode - automatic failsafe AP +- Up to 10 LED outputs per instance - Support for RGBW strips - Up to 250 user presets to save and load colors/effects easily, supports cycling through them. - Presets can be used to automatically execute API calls diff --git a/wled00/FX.h b/wled00/FX.h index cb833f65f..3aa9180b7 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -603,7 +603,6 @@ class WS2812FX { setPixelColor(uint16_t n, uint32_t c), setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0), show(void), - setRgbwPwm(void), setPixelSegment(uint8_t n); bool diff --git a/wled00/button.cpp b/wled00/button.cpp index 0e354142e..371b75b9d 100644 --- a/wled00/button.cpp +++ b/wled00/button.cpp @@ -106,31 +106,4 @@ void handleIO() } offMode = true; } - - //output - if (auxPin>=1 && (auxActive || auxActiveBefore)) - { - if (!auxActiveBefore) - { - auxActiveBefore = true; - switch (auxTriggeredState) - { - case 0: pinMode(auxPin, INPUT); break; - case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break; - case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break; - } - auxStartTime = millis(); - } - if ((millis() - auxStartTime > auxTime*1000 && auxTime != 255) || !auxActive) - { - auxActive = false; - auxActiveBefore = false; - switch (auxDefaultState) - { - case 0: pinMode(auxPin, INPUT); break; - case 1: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, HIGH); break; - case 2: pinMode(auxPin, OUTPUT); digitalWrite(auxPin, LOW); break; - } - } - } } diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 57b4c3b0a..834deb1b7 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -506,9 +506,6 @@ void serializeConfig() { //JsonObject hw_status = hw.createNestedObject("status"); //hw_status["pin"] = -1; - JsonObject hw_aux = hw.createNestedObject("aux"); - hw_aux["pin"] = auxPin; - JsonObject light = doc.createNestedObject(F("light")); light[F("scale-bri")] = briMultiplier; light[F("pal-mode")] = strip.paletteBlend; diff --git a/wled00/data/index.js b/wled00/data/index.js index e579bd1d6..116363725 100644 --- a/wled00/data/index.js +++ b/wled00/data/index.js @@ -150,6 +150,7 @@ function loadBg(iUrl) if (iUrl == "") { var today = new Date(); if (today.getMonth() == 11 && (today.getDate() > 23 && today.getDate() < 28)) img.src = "https://aircoookie.github.io/xmas.png"; + else if (today.getMonth() == 3 && (today.getDate() > 3 && today.getDate() < 13)) img.src = "https://aircoookie.github.io/easter.png"; } img.addEventListener('load', (event) => { var a = parseFloat(cfg.theme.alpha.bg); diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 63093d566..78182ea83 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -14,29 +14,36 @@ { window.open("/settings","_self"); } + function off(n){ + d.getElementsByName(n)[0].value = -1; + } function bLimits(b,p,m) { maxB = b; maxM = m; maxPB = p; } - function trySubmit() { + function pinsOK() { var LCs = d.getElementsByTagName("input"); for (i=0; i 5 && LCs[i].value < 12) {alert("Sorry, pins 6-11 can not be used.");LCs[i].focus();return;}*/ - if (d.um_p && d.um_p.some((e)=>e==parseInt(LCs[i].value,10))) {alert(`Sorry, pins ${JSON.stringify(d.um_p)} can't be used.`);LCs[i].focus();return;} + if (d.um_p && d.um_p.some((e)=>e==parseInt(LCs[i].value,10))) {alert(`Sorry, pins ${JSON.stringify(d.um_p)} can't be used.`);LCs[i].value="";LCs[i].focus();return false;} + else if (LCs[i].value > 5 && LCs[i].value < 12) {alert("Sorry, pins 6-11 can not be used.");LCs[i].value="";LCs[i].focus();return false;} for (j=i+1; j 100) {var msg = "Too many LEDs for me to handle!"; if (maxM < 10000) msg += "\n\rConsider using an ESP32."; alert(msg); return;} - if (d.Sf.reportValidity()) d.Sf.submit(); + return true; + } + function trySubmit(e) { + e.preventDefault(); + if (!pinsOK()) {e.stopPropagation();return false;} // Prevent form submission and contact with server + if (bquot > 100) {var msg = "Too many LEDs for me to handle!"; if (maxM < 10000) msg += "\n\rConsider using an ESP32."; alert(msg);} + if (d.Sf.checkValidity()) d.Sf.submit(); //https://stackoverflow.com/q/37323914 } function S(){GetV();setABL();} function enABL() @@ -67,6 +74,7 @@ default: d.getElementById('LAdis').style.display = 'inline'; } d.getElementById('m1').innerHTML = maxM; + d.getElementsByName("Sf")[0].addEventListener("submit", trySubmit); UI(); } //returns mem usage @@ -155,16 +163,6 @@ var lc=d.getElementsByName("LC"+LCs[i].name.substring(2))[0]; lc.max=maxPB; } - if (nm=="L0" || nm=="L1" || nm=="L2" || nm=="L3" || nm=="L4" || nm=="RL" || nm=="BT" || nm=="IR" || nm=="AX") - if (LCs[i].value!="" && LCs[i].value!="-1") { - if (d.um_p && d.um_p.some((e)=>e==parseInt(LCs[i].value,10))) {alert(`Sorry, pins ${JSON.stringify(d.um_p)} can't be used.`);LCs[i].focus();continue;} - for (j=0; j 60 ? (bquot > 90 ? "red":"orange"):"#ccc"} 0 ${bquot}%%, #444 ${bquot}%% 100%%)`; @@ -276,15 +268,11 @@ Reverse (rotated 180°): d.getElementById("-").style.display = (i>0) ? "inline":"none"; UI(); - } - function tglFld(o) - { - var f = d.getElementsByName(o.id.substring(1))[0]; f.readOnly = !o.checked; f.value=o.checked?"":"-1"; } function GetV() { //values injected by server while sending HTML - //maxM=5000;maxPB=1536;d.um_p=[1,6,7,8,9,10,...];addLEDs(3);d.Sf.LC.value=250;addLEDs(1);d.Sf.L00.value=2;d.Sf.L10.value=0;d.Sf.LC0.value=250;d.Sf.LT0.value=22;d.Sf.CO0.value=0;d.Sf.LS0.value=0;d.Sf.LS0.checked=0;d.Sf.MA.value=5400;d.Sf.LA.value=55;d.getElementsByClassName("pow")[0].innerHTML="350mA";d.Sf.CA.value=40;d.Sf.AW.value=3;d.Sf.BO.checked=0;d.Sf.BP.value=3;d.Sf.GB.checked=0;d.Sf.GC.checked=1;d.Sf.TF.checked=1;d.Sf.TD.value=700;d.Sf.PF.checked=0;d.Sf.BF.value=64;d.Sf.TB.value=0;d.Sf.TL.value=60;d.Sf.TW.value=1;d.Sf.PB.selectedIndex=0;d.Sf.RV.checked=0;d.Sf.SL.checked=0;d.Sf.RL.value=12;d.Sf.RM.checked=0;d.Sf.BT.value=-1;d.Sf.IR.value=-1;d.Sf.AX.value=-1; + //maxM=5000;maxPB=1536;d.um_p=[1,6,7,8,9,10,11];addLEDs(3);d.Sf.LC.value=250;addLEDs(1);d.Sf.L00.value=2;d.Sf.L10.value=0;d.Sf.LC0.value=250;d.Sf.LT0.value=22;d.Sf.CO0.value=0;d.Sf.LS0.value=0;d.Sf.LS0.checked=0;d.Sf.MA.value=5400;d.Sf.LA.value=55;d.getElementsByClassName("pow")[0].innerHTML="350mA";d.Sf.CA.value=40;d.Sf.AW.value=3;d.Sf.BO.checked=0;d.Sf.BP.value=3;d.Sf.GB.checked=0;d.Sf.GC.checked=1;d.Sf.TF.checked=1;d.Sf.TD.value=700;d.Sf.PF.checked=0;d.Sf.BF.value=64;d.Sf.TB.value=0;d.Sf.TL.value=60;d.Sf.TW.value=1;d.Sf.PB.selectedIndex=0;d.Sf.SL.checked=0;d.Sf.RL.value=12;d.Sf.RM.checked=0;d.Sf.BT.value=-1;d.Sf.IR.value=-1;d.Sf.AX.value=-1; }

WLED Software Update

-Installed version: 0.12.0-b6
Download the latest binary: Download the latest binary:

diff --git a/wled00/html_settings.h b/wled00/html_settings.h index da042d236..4169d99c3 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -6,7 +6,7 @@ */ // Autogenerated from wled00/data/style.css, do not edit!! -const char PAGE_settingsCss[] PROGMEM = R"=====()====="; +const char PAGE_settingsCss[] PROGMEM = R"=====()====="; // Autogenerated from wled00/data/settings.htm, do not edit!! @@ -72,15 +72,15 @@ Do not enable if WiFi is working correctly, increases power consumption.
LED Settings