From d01877d32bca023dc7c168b4a3228f3402ba9a4c Mon Sep 17 00:00:00 2001 From: cschwinne Date: Sun, 30 Oct 2016 16:26:17 +0100 Subject: [PATCH] settings getter/setter/html for fade transition removed pwrled from settings page --- TODO.txt | 1 - wled00/data/settings.htm | 61 ++++++++++++++++++++-------------------- wled00/wled00.ino | 39 +++++++++++++++++++------ 3 files changed, 60 insertions(+), 41 deletions(-) diff --git a/TODO.txt b/TODO.txt index 4096282..61a187d 100644 --- a/TODO.txt +++ b/TODO.txt @@ -15,7 +15,6 @@ svg icons in html notifier function -> send get request nightlight function -> turns off after set time (+implement fading) (replace StrContains and num functions) -settings getter/setter/html for fade transition BUGS static ip disables mdns diff --git a/wled00/data/settings.htm b/wled00/data/settings.htm index 383b141..27442e2 100644 --- a/wled00/data/settings.htm +++ b/wled00/data/settings.htm @@ -12,35 +12,36 @@ if (this.readyState == 4) { if (this.status == 200) { if (this.responseXML != null) { - document.Settings_form.CSSID.value = this.responseXML.getElementsByTagName('cssid')[0].innerHTML; - document.Settings_form.CPASS.value = this.responseXML.getElementsByTagName('cpass')[0].innerHTML; //fake pass like ****** - document.Settings_form.CSIP0.value = this.responseXML.getElementsByTagName('csips')[0].innerHTML; - document.Settings_form.CSIP1.value = this.responseXML.getElementsByTagName('csips')[1].innerHTML; - document.Settings_form.CSIP2.value = this.responseXML.getElementsByTagName('csips')[2].innerHTML; - document.Settings_form.CSIP3.value = this.responseXML.getElementsByTagName('csips')[3].innerHTML; - document.Settings_form.CSGW0.value = this.responseXML.getElementsByTagName('csgws')[0].innerHTML; - document.Settings_form.CSGW1.value = this.responseXML.getElementsByTagName('csgws')[1].innerHTML; - document.Settings_form.CSGW2.value = this.responseXML.getElementsByTagName('csgws')[2].innerHTML; - document.Settings_form.CSGW3.value = this.responseXML.getElementsByTagName('csgws')[3].innerHTML; - document.Settings_form.CSSN0.value = this.responseXML.getElementsByTagName('cssns')[0].innerHTML; - document.Settings_form.CSSN1.value = this.responseXML.getElementsByTagName('cssns')[1].innerHTML; - document.Settings_form.CSSN2.value = this.responseXML.getElementsByTagName('cssns')[2].innerHTML; - document.Settings_form.CSSN3.value = this.responseXML.getElementsByTagName('cssns')[3].innerHTML; - document.Settings_form.CMDNS.value = this.responseXML.getElementsByTagName('cmdns')[0].innerHTML; - document.Settings_form.APSSID.value = this.responseXML.getElementsByTagName('apssid')[0].innerHTML; - document.Settings_form.APHSSID.checked = (this.responseXML.getElementsByTagName('aphssid')[0].innerHTML)!=0?true:false; - document.Settings_form.APPASS.value = this.responseXML.getElementsByTagName('appass')[0].innerHTML; //fake pass like ****** - document.Settings_form.APCHAN.value = this.responseXML.getElementsByTagName('apchan')[0].innerHTML; - document.Settings_form.LEDS.value = this.responseXML.getElementsByTagName('leds')[0].innerHTML; - document.Settings_form.PWRLED.checked = (this.responseXML.getElementsByTagName('pwrled')[0].innerHTML)!=0?true:false; - document.Settings_form.BTNP.value = this.responseXML.getElementsByTagName('btnp')[0].innerHTML; - document.Settings_form.NOOTA.checked = (this.responseXML.getElementsByTagName('noota')[0].innerHTML)!=0?true:false; - document.Settings_form.NORAP.checked = (this.responseXML.getElementsByTagName('norap')[0].innerHTML)!=0?true:false; + document.S_form.CSSID.value = this.responseXML.getElementsByTagName('cssid')[0].innerHTML; + document.S_form.CPASS.value = this.responseXML.getElementsByTagName('cpass')[0].innerHTML; //fake pass like ****** + document.S_form.CSIP0.value = this.responseXML.getElementsByTagName('csips')[0].innerHTML; + document.S_form.CSIP1.value = this.responseXML.getElementsByTagName('csips')[1].innerHTML; + document.S_form.CSIP2.value = this.responseXML.getElementsByTagName('csips')[2].innerHTML; + document.S_form.CSIP3.value = this.responseXML.getElementsByTagName('csips')[3].innerHTML; + document.S_form.CSGW0.value = this.responseXML.getElementsByTagName('csgws')[0].innerHTML; + document.S_form.CSGW1.value = this.responseXML.getElementsByTagName('csgws')[1].innerHTML; + document.S_form.CSGW2.value = this.responseXML.getElementsByTagName('csgws')[2].innerHTML; + document.S_form.CSGW3.value = this.responseXML.getElementsByTagName('csgws')[3].innerHTML; + document.S_form.CSSN0.value = this.responseXML.getElementsByTagName('cssns')[0].innerHTML; + document.S_form.CSSN1.value = this.responseXML.getElementsByTagName('cssns')[1].innerHTML; + document.S_form.CSSN2.value = this.responseXML.getElementsByTagName('cssns')[2].innerHTML; + document.S_form.CSSN3.value = this.responseXML.getElementsByTagName('cssns')[3].innerHTML; + document.S_form.CMDNS.value = this.responseXML.getElementsByTagName('cmdns')[0].innerHTML; + document.S_form.APSSID.value = this.responseXML.getElementsByTagName('apssid')[0].innerHTML; + document.S_form.APHSSID.checked = (this.responseXML.getElementsByTagName('aphssid')[0].innerHTML)!=0?true:false; + document.S_form.APPASS.value = this.responseXML.getElementsByTagName('appass')[0].innerHTML; //fake pass like ****** + document.S_form.APCHAN.value = this.responseXML.getElementsByTagName('apchan')[0].innerHTML; + document.S_form.LEDS.value = this.responseXML.getElementsByTagName('leds')[0].innerHTML; + document.S_form.BTNP.value = this.responseXML.getElementsByTagName('btnp')[0].innerHTML; + document.S_form.TFADE.checked = (this.responseXML.getElementsByTagName('tfade')[0].innerHTML)!=0?true:false; + document.S_form.TDLAY.value = this.responseXML.getElementsByTagName('tdlay')[0].innerHTML; + document.S_form.NOOTA.checked = (this.responseXML.getElementsByTagName('noota')[0].innerHTML)!=0?true:false; + document.S_form.NORAP.checked = (this.responseXML.getElementsByTagName('norap')[0].innerHTML)!=0?true:false; document.getElementsByClassName("sip")[0].innerHTML = this.responseXML.getElementsByTagName('sip')[0].innerHTML; document.getElementsByClassName("sip")[1].innerHTML = this.responseXML.getElementsByTagName('sip')[1].innerHTML; document.getElementsByClassName("otastat")[0].innerHTML = this.responseXML.getElementsByTagName('otastat')[0].innerHTML; document.getElementsByClassName("msg")[0].innerHTML = this.responseXML.getElementsByTagName('msg')[0].innerHTML; - if (Settings_form.NOOTA.checked) {document.Settings_form.NOOTA.disabled="disabled";} + if (S_form.NOOTA.checked) {document.S_form.NOOTA.disabled="disabled";} } } } @@ -62,7 +63,7 @@

WLED Settings

-
+

WiFi setup

@@ -98,14 +99,12 @@

LED setup

The default boot LED color is the current color when settings are saved.
LED amount:
- Disable Power LED:

Button setup

Button pin:
Button function: Toggle on/off
-

Toolbar

- Not implemented
-

Animations

- Not implemented
+

Transitions

+ Fade:
+ Transition Delay: ms

Daisy chain

Not implemented

Security

diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 92c97a6..640436f 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -28,7 +28,7 @@ IPAddress staticsubnet(255, 255, 255, 0); byte col[]{255, 127, 0}; boolean fadeTransition = true; boolean seqTransition = false; -int transitionDelay = 1500; +uint16_t transitionDelay = 1500; boolean ota_lock = false; boolean only_ap = false; int led_amount = 16; @@ -122,7 +122,9 @@ void saveSettingsToEEPROM() EEPROM.write(247, col[1]); EEPROM.write(248, col[2]); EEPROM.write(249, bri); - + EEPROM.write(251, fadeTransition); + EEPROM.write(253, (transitionDelay >> 0) & 0xFF); + EEPROM.write(254, (transitionDelay >> 8) & 0xFF); EEPROM.commit(); } @@ -184,6 +186,14 @@ void loadSettingsFromEEPROM() col[1] = EEPROM.read(247); col[2] = EEPROM.read(248); bri = EEPROM.read(249); + fadeTransition = EEPROM.read(251); + transitionDelay = ((EEPROM.read(253) << 0) & 0xFF) + ((EEPROM.read(254) << 8) & 0xFF00); +} + +uint8_t bool2int(boolean value) +{ + if (value) return 1; + return 0; } void XML_response() @@ -260,9 +270,12 @@ void XML_response_settings() resp = resp + ""; resp = resp + led_amount; resp = resp + ""; - resp = resp + "0"; resp = resp + "0"; //NI - resp = resp + "0"; //NI + resp = resp + ""; + resp = resp + bool2int(fadeTransition); + resp = resp + ""; + resp = resp + transitionDelay; + resp = resp + "0"; //NI resp = resp + "0"; //NI resp = resp + ""; if (!WiFi.localIP()[0] == 0) @@ -278,8 +291,7 @@ void XML_response_settings() { resp = resp + "Not connected"; } - resp = resp + ""; - resp = resp + ""; + resp = resp + ""; if (!WiFi.softAPIP()[0] == 0) { resp = resp + WiFi.softAPIP()[0]; @@ -293,8 +305,7 @@ void XML_response_settings() { resp = resp + "Not active"; } - resp = resp + ""; - resp = resp + "Not implemented"; + resp = resp + "Not implemented"; resp = resp + "WLED 0.3pd OK"; resp = resp + ""; Serial.println(resp); @@ -438,6 +449,17 @@ void handleSettingsSet() int i = server.arg("CSSN3").toInt(); if (i >= 0 && i <= 255) staticsubnet[3] = i; } + if (server.hasArg("LEDS")) + { + int i = server.arg("LEDS").toInt(); + if (i > 0) led_amount = i; + } + fadeTransition = server.hasArg("TFADE"); + if (server.hasArg("TDLAY")) + { + int i = server.arg("TDLAY").toInt(); + if (i > 0) transitionDelay = i; + } saveSettingsToEEPROM(); } @@ -476,7 +498,6 @@ boolean handleSet(String req) return true; } -//format bytes String formatBytes(size_t bytes){ if (bytes < 1024){ return String(bytes)+"B";