Bugfixes.
- PWM bus not loading on boot - analog 0 not turning Off - conditional compile for Blynk - segment name
This commit is contained in:
parent
cc0f1be5d2
commit
2fdbc88d8c
@ -1,5 +1,7 @@
|
|||||||
#include "wled.h"
|
#include "wled.h"
|
||||||
|
#ifndef WLED_DISABLE_BLYNK
|
||||||
#include "src/dependencies/blynk/Blynk/BlynkHandlers.h"
|
#include "src/dependencies/blynk/Blynk/BlynkHandlers.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remote light control with the free Blynk app
|
* Remote light control with the free Blynk app
|
||||||
|
@ -239,7 +239,9 @@ class BusPwm : public Bus {
|
|||||||
for (uint8_t i = 0; i < numPins; i++) {
|
for (uint8_t i = 0; i < numPins; i++) {
|
||||||
_pins[i] = bc.pins[i];
|
_pins[i] = bc.pins[i];
|
||||||
if (!pinManager.allocatePin(_pins[i])) {
|
if (!pinManager.allocatePin(_pins[i])) {
|
||||||
_pins[i] = 255; return;
|
_pins[i] = 255;
|
||||||
|
deallocatePins();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
pinMode(_pins[i], OUTPUT);
|
pinMode(_pins[i], OUTPUT);
|
||||||
|
@ -84,7 +84,10 @@ void handleAnalog(uint8_t b)
|
|||||||
// if "double press" macro is 250 or greater use global brightness
|
// if "double press" macro is 250 or greater use global brightness
|
||||||
if (macroDoublePress[b]>=250) {
|
if (macroDoublePress[b]>=250) {
|
||||||
// if change in analog read was detected change global brightness
|
// if change in analog read was detected change global brightness
|
||||||
bri = aRead;
|
if (aRead == 0)
|
||||||
|
toggleOnOff();
|
||||||
|
else
|
||||||
|
bri = aRead;
|
||||||
} else {
|
} else {
|
||||||
// otherwise use "double press" for segment selection
|
// otherwise use "double press" for segment selection
|
||||||
//uint8_t mainSeg = strip.getMainSegmentId();
|
//uint8_t mainSeg = strip.getMainSegmentId();
|
||||||
|
@ -104,7 +104,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
uint16_t length = elm[F("len")];
|
uint16_t length = elm[F("len")];
|
||||||
if (length==0 || length+lC > MAX_LEDS) continue; // zero length or we reached max. number of LEDs, just stop
|
if (length==0 || length+lC > MAX_LEDS) continue; // zero length or we reached max. number of LEDs, just stop
|
||||||
uint16_t start = elm[F("start")] | 0;
|
uint16_t start = elm[F("start")] | 0;
|
||||||
if (start >= lC+length) continue; // something is very wrong :)
|
if (start > lC+length) continue; // something is very wrong :)
|
||||||
uint8_t colorOrder = elm[F("order")];
|
uint8_t colorOrder = elm[F("order")];
|
||||||
uint8_t skipFirst = elm[F("skip")];
|
uint8_t skipFirst = elm[F("skip")];
|
||||||
uint8_t ledType = elm["type"] | TYPE_WS2812_RGB;
|
uint8_t ledType = elm["type"] | TYPE_WS2812_RGB;
|
||||||
@ -117,7 +117,6 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
if (mem <= MAX_LED_MEMORY && busses.getNumBusses() <= WLED_MAX_BUSSES) busses.add(bc); // finalization will be done in WLED::beginStrip()
|
if (mem <= MAX_LED_MEMORY && busses.getNumBusses() <= WLED_MAX_BUSSES) busses.add(bc); // finalization will be done in WLED::beginStrip()
|
||||||
}
|
}
|
||||||
// finalization done in beginStrip()
|
// finalization done in beginStrip()
|
||||||
//strip.finalizeInit();
|
|
||||||
}
|
}
|
||||||
if (lC > ledCount) ledCount = lC; // fix incorrect total length (honour analog setup)
|
if (lC > ledCount) ledCount = lC; // fix incorrect total length (honour analog setup)
|
||||||
|
|
||||||
|
@ -1033,7 +1033,7 @@ input[type="text"].fnd:not(:placeholder-shown) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.segin {
|
.segin {
|
||||||
padding: 8px 8px 4px 8px;
|
padding: 4px 8px 4px 8px;
|
||||||
display: none;
|
display: none;
|
||||||
/*margin: 24px 0 0;*/
|
/*margin: 24px 0 0;*/
|
||||||
}
|
}
|
||||||
|
@ -1241,11 +1241,8 @@ function makeSeg()
|
|||||||
if (pend < ledCount) ns = pend;
|
if (pend < ledCount) ns = pend;
|
||||||
}
|
}
|
||||||
var cn = `<div class="seg">
|
var cn = `<div class="seg">
|
||||||
<div class="segname newseg">
|
|
||||||
New segment ${lowestUnused}
|
|
||||||
</div>
|
|
||||||
<div class="segin expanded">
|
<div class="segin expanded">
|
||||||
<input type="text" class="ptxt noslide" id="seg${lowestUnused}t" autocomplete="off" maxlength=32 value="" placeholder="Enter name..."/><br>
|
<input type="text" class="ptxt noslide" id="seg${lowestUnused}t" autocomplete="off" maxlength=32 value="" placeholder="New segment ${lowestUnused}"/><br>
|
||||||
<table class="segt">
|
<table class="segt">
|
||||||
<tr>
|
<tr>
|
||||||
<td width="38%">Start LED</td>
|
<td width="38%">Start LED</td>
|
||||||
|
@ -26,14 +26,14 @@
|
|||||||
for (i=0; i<LCs.length; i++) {
|
for (i=0; i<LCs.length; i++) {
|
||||||
var nm = LCs[i].name.substring(0,2);
|
var nm = LCs[i].name.substring(0,2);
|
||||||
//check for pin conflicts
|
//check for pin conflicts
|
||||||
if (nm=="L0" || nm=="L1" || nm=="L2" || nm=="L3" || nm=="L4" || nm=="RL" || nm=="BT" || nm=="IR" || nm=="AX")
|
if (nm=="L0" || nm=="L1" || nm=="L2" || nm=="L3" || nm=="L4" || nm=="RL" || nm=="BT" || nm=="IR")
|
||||||
if (LCs[i].value!="" && LCs[i].value!="-1") {
|
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].value="";LCs[i].focus();return false;}
|
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;}
|
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<LCs.length; j++)
|
for (j=i+1; j<LCs.length; j++)
|
||||||
{
|
{
|
||||||
var n2 = LCs[j].name.substring(0,2);
|
var n2 = LCs[j].name.substring(0,2);
|
||||||
if (n2=="L0" || n2=="L1" || n2=="L2" || n2=="L3" || n2=="L4" || n2=="RL" || n2=="BT" || n2=="IR" || n2=="AX")
|
if (n2=="L0" || n2=="L1" || n2=="L2" || n2=="L3" || n2=="L4" || n2=="RL" || n2=="BT" || n2=="IR")
|
||||||
if (LCs[j].value!="" && LCs[i].value==LCs[j].value) {alert(`Pin conflict between ${nm}/${n2}!`);LCs[j].value="";LCs[j].focus();return false;}
|
if (LCs[j].value!="" && LCs[i].value==LCs[j].value) {alert(`Pin conflict between ${nm}/${n2}!`);LCs[j].value="";LCs[j].focus();return false;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,92 +106,104 @@
|
|||||||
if (d.Sf.LA.value == 255) laprev = 12;
|
if (d.Sf.LA.value == 255) laprev = 12;
|
||||||
else if (d.Sf.LA.value > 0) laprev = d.Sf.LA.value;
|
else if (d.Sf.LA.value > 0) laprev = d.Sf.LA.value;
|
||||||
|
|
||||||
|
// enable/disable LED fields
|
||||||
var s = d.getElementsByTagName("select");
|
var s = d.getElementsByTagName("select");
|
||||||
for (i=0; i<s.length; i++) {
|
for (i=0; i<s.length; i++) {
|
||||||
|
// is the field a LED type?
|
||||||
if (s[i].name.substring(0,2)=="LT") {
|
if (s[i].name.substring(0,2)=="LT") {
|
||||||
n=s[i].name.substring(2);
|
n=s[i].name.substring(2);
|
||||||
var type = parseInt(s[i].value,10);
|
var type = parseInt(s[i].value,10);
|
||||||
gId("p0d"+n).innerHTML = (type > 49) ? "Data:" : (type >41) ? "Pins:" : "Pin:";
|
gId("p0d"+n).innerHTML = (type > 49) ? "Data:" : (type >41) ? "Pins:" : "Pin:";
|
||||||
gId("p1d"+n).innerHTML = (type > 49) ? "Clk:" : "";
|
gId("p1d"+n).innerHTML = (type > 49) ? "Clk:" : "";
|
||||||
var LK = d.getElementsByName("L1"+n)[0];
|
var LK = d.getElementsByName("L1"+n)[0]; // clock pin
|
||||||
|
|
||||||
memu += getMem(type, d.getElementsByName("LC"+n)[0].value, d.getElementsByName("L0"+n)[0].value);
|
memu += getMem(type, d.getElementsByName("LC"+n)[0].value, d.getElementsByName("L0"+n)[0].value); // calc memory
|
||||||
|
|
||||||
|
// enumerate pins
|
||||||
for (p=1; p<5; p++) {
|
for (p=1; p<5; p++) {
|
||||||
var LK = d.getElementsByName("L"+p+n)[0];
|
var LK = d.getElementsByName("L"+p+n)[0]; // secondary pins
|
||||||
if (!LK) continue;
|
if (!LK) continue;
|
||||||
if ((type>49 && p==1) || (type>41 && type < 50 && (p+40 < type))) // TYPE_xxxx values from const.h
|
if ((type>49 && p==1) || (type>41 && type < 50 && (p+40 < type))) // TYPE_xxxx values from const.h
|
||||||
{
|
{
|
||||||
|
// display pin field
|
||||||
LK.style.display = "inline";
|
LK.style.display = "inline";
|
||||||
LK.required = true;
|
LK.required = true;
|
||||||
} else {
|
} else {
|
||||||
|
// hide pin field
|
||||||
LK.style.display = "none";
|
LK.style.display = "none";
|
||||||
LK.required = false;
|
LK.required = false;
|
||||||
LK.value="";
|
LK.value="";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gId("ls"+n).readOnly = !(type > 31 && type < 48); // not analog
|
// gId("ls"+n).readOnly = !(type > 31 && type < 48); // if analog, allow editing LED start
|
||||||
gId("LC").readOnly = !(type > 31 && type < 48); // not analog
|
// gId("LC").readOnly = !(type > 31 && type < 48); // if analog, allow editing total LED count
|
||||||
if (change) {
|
if (change) {
|
||||||
// gId("ew"+n).checked = (type == 30 || type == 31 || type == 44 || type == 45); // RGBW checkbox, TYPE_xxxx values from const.h
|
// gId("ew"+n).checked = (type == 30 || type == 31 || type == 44 || type == 45); // RGBW checkbox, TYPE_xxxx values from const.h
|
||||||
gId("ls"+n).value = n+1;
|
gId("ls"+n).value = n+1; // set LED start
|
||||||
|
if (type > 31 && type < 48) d.getElementsByName("LC"+n)[0].value = 1; // for sanity change analog count just to 1 LED
|
||||||
}
|
}
|
||||||
// gId("ew"+n).onclick = (type > 31 && type < 48) ? (function(){return false}) : (function(){}); // prevent change for analog
|
// gId("ew"+n).onclick = (type > 31 && type < 48) ? (function(){return false}) : (function(){}); // prevent change for analog
|
||||||
// isRGBW |= gId("ew"+n).checked;
|
// isRGBW |= gId("ew"+n).checked;
|
||||||
isRGBW |= (type == 30 || type == 31 || type == 44 || type == 45); // RGBW checkbox, TYPE_xxxx values from const.h
|
isRGBW |= (type == 30 || type == 31 || type == 44 || type == 45); // RGBW checkbox, TYPE_xxxx values from const.h
|
||||||
gId("dig"+n).style.display = (type > 31 && type < 48) ? "none":"inline";
|
gId("dig"+n).style.display = (type > 31 && type < 48) ? "none":"inline"; // hide reverse, skip 1st & count for analog
|
||||||
gId("psd"+n).innerHTML = (type > 31 && type < 48) ? "Index:":"Start:";
|
gId("psd"+n).innerHTML = (type > 31 && type < 48) ? "Index:":"Start:"; // change analog start description
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// display white channel calculation method
|
||||||
var myC = d.querySelectorAll('.wc'),
|
var myC = d.querySelectorAll('.wc'),
|
||||||
l = myC.length;
|
l = myC.length;
|
||||||
for (i = 0; i < l; i++) {
|
for (i = 0; i < l; i++) {
|
||||||
myC[i].style.display = (isRGBW) ? 'inline':'none';
|
myC[i].style.display = (isRGBW) ? 'inline':'none';
|
||||||
}
|
}
|
||||||
|
// check for pin conflicts
|
||||||
var LCs = d.getElementsByTagName("input");
|
var LCs = d.getElementsByTagName("input");
|
||||||
var sLC = 0, maxLC = 0;
|
var sLC = 0, maxLC = 0;
|
||||||
for (i=0; i<LCs.length; i++) {
|
for (i=0; i<LCs.length; i++) {
|
||||||
var nm = LCs[i].name.substring(0,2);
|
var nm = LCs[i].name.substring(0,2);
|
||||||
|
// do we have a led count field but not total led count
|
||||||
if (nm=="LC" && LCs[i].name !== "LC") {
|
if (nm=="LC" && LCs[i].name !== "LC") {
|
||||||
var n=LCs[i].name.substring(2);
|
var n=LCs[i].name.substring(2);
|
||||||
var c=parseInt(LCs[i].value,10);
|
var c=parseInt(LCs[i].value,10);
|
||||||
if(gId("ls"+n).readOnly) gId("ls"+n).value=sLC;
|
/*if(gId("ls"+n).readOnly)*/ gId("ls"+n).value=sLC; // update led start field
|
||||||
if(c){sLC+=c;if(c>maxLC)maxLC=c;}
|
if(c){sLC+=c;if(c>maxLC)maxLC=c;} // increase led count
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// do we have led pins for digital leds
|
||||||
if (nm=="L0" || nm=="L1") {
|
if (nm=="L0" || nm=="L1") {
|
||||||
var lc=d.getElementsByName("LC"+LCs[i].name.substring(2))[0];
|
var lc=d.getElementsByName("LC"+LCs[i].name.substring(2))[0];
|
||||||
lc.max=maxPB;
|
lc.max=maxPB; // update max led count value
|
||||||
}
|
}
|
||||||
if (nm=="L0" || nm=="L1" || nm=="L2" || nm=="L3" || nm=="L4" || nm=="RL" || nm=="BT" || nm=="IR" || nm=="AX")
|
// for pins check conflicts
|
||||||
|
if (nm=="L0" || nm=="L1" || nm=="L2" || nm=="L3" || nm=="L4" || nm=="RL" || nm=="BT" || nm=="IR")
|
||||||
if (LCs[i].value!="" && LCs[i].value!="-1") {
|
if (LCs[i].value!="" && LCs[i].value!="-1") {
|
||||||
var p = [];
|
var p = []; // used pin array
|
||||||
if (d.um_p && Array.isArray(d.um_p)) for (k=0;k<d.um_p.length;k++) p.push(d.um_p[k]);
|
if (d.um_p && Array.isArray(d.um_p)) for (k=0;k<d.um_p.length;k++) p.push(d.um_p[k]); // fill with reservations
|
||||||
for (j=0; j<LCs.length; j++) {
|
for (j=0; j<LCs.length; j++) {
|
||||||
if (i==j) continue;
|
if (i==j) continue;
|
||||||
var n2 = LCs[j].name.substring(0,2);
|
var n2 = LCs[j].name.substring(0,2);
|
||||||
if (n2=="L0" || n2=="L1" || n2=="L2" || n2=="L3" || n2=="L4" || n2=="RL" || n2=="BT" || n2=="IR" || n2=="AX")
|
if (n2=="L0" || n2=="L1" || n2=="L2" || n2=="L3" || n2=="L4" || n2=="RL" || n2=="BT" || n2=="IR")
|
||||||
if (LCs[j].value!="" && LCs[j].value!="-1") p.push(parseInt(LCs[j].value,10));
|
if (LCs[j].value!="" && LCs[j].value!="-1") p.push(parseInt(LCs[j].value,10)); // add current pin
|
||||||
}
|
}
|
||||||
|
// now check for conflicts
|
||||||
if (p.some((e)=>e==parseInt(LCs[i].value,10))) LCs[i].style.color="red"; else LCs[i].style.color="#fff";
|
if (p.some((e)=>e==parseInt(LCs[i].value,10))) LCs[i].style.color="red"; else LCs[i].style.color="#fff";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// update total led count
|
||||||
if (gId("LC").readOnly) d.getElementsByName("LC")[0].value = sLC;
|
if (gId("LC").readOnly) d.getElementsByName("LC")[0].value = sLC;
|
||||||
|
// if we are changing total led count update led count for 1st strip
|
||||||
if (d.activeElement == d.getElementsByName("LC")[0]) {
|
if (d.activeElement == d.getElementsByName("LC")[0]) {
|
||||||
var o = d.getElementsByClassName("iST");
|
var o = d.getElementsByClassName("iST");
|
||||||
var i = o.length;
|
var i = o.length;
|
||||||
if (i == 1) d.getElementsByName("LC0")[0].value = d.getElementsByName("LC")[0].value;
|
if (i == 1) d.getElementsByName("LC0")[0].value = d.getElementsByName("LC")[0].value;
|
||||||
}
|
}
|
||||||
|
// memory usage and warnings
|
||||||
gId('m0').innerHTML = memu;
|
gId('m0').innerHTML = memu;
|
||||||
bquot = memu / maxM * 100;
|
bquot = memu / maxM * 100;
|
||||||
gId('dbar').style.background = `linear-gradient(90deg, ${bquot > 60 ? (bquot > 90 ? "red":"orange"):"#ccc"} 0 ${bquot}%%, #444 ${bquot}%% 100%%)`;
|
gId('dbar').style.background = `linear-gradient(90deg, ${bquot > 60 ? (bquot > 90 ? "red":"orange"):"#ccc"} 0 ${bquot}%%, #444 ${bquot}%% 100%%)`;
|
||||||
gId('ledwarning').style.display = (sLC > maxPB || maxLC > 800 || bquot > 80) ? 'inline':'none';
|
gId('ledwarning').style.display = (sLC > maxPB || maxLC > 800 || bquot > 80) ? 'inline':'none';
|
||||||
gId('ledwarning').style.color = (sLC > maxPB || maxLC > maxPB || bquot > 100) ? 'red':'orange';
|
gId('ledwarning').style.color = (sLC > maxPB || maxLC > maxPB || bquot > 100) ? 'red':'orange';
|
||||||
gId('wreason').innerHTML = (bquot > 80) ? "80% of max. LED memory" +(bquot>100 ? ` (<b>WARNING: Using over ${maxM}B!</b>)` : "") : "800 LEDs per pin";
|
gId('wreason').innerHTML = (bquot > 80) ? "80% of max. LED memory" +(bquot>100 ? ` (<b>WARNING: Using over ${maxM}B!</b>)` : "") : "800 LEDs per pin";
|
||||||
|
// calculate power
|
||||||
var val = Math.ceil((100 + sLC * laprev)/500)/2;
|
var val = Math.ceil((100 + sLC * laprev)/500)/2;
|
||||||
val = (val > 5) ? Math.ceil(val) : val;
|
val = (val > 5) ? Math.ceil(val) : val;
|
||||||
var s = "";
|
var s = "";
|
||||||
@ -265,7 +277,7 @@ Color Order:
|
|||||||
<span id="p3d${i}"></span><input type="number" name="L3${i}" min="0" max="40" style="width:35px" onchange="UI()"/>
|
<span id="p3d${i}"></span><input type="number" name="L3${i}" min="0" max="40" style="width:35px" onchange="UI()"/>
|
||||||
<span id="p4d${i}"></span><input type="number" name="L4${i}" min="0" max="40" style="width:35px" onchange="UI()"/>
|
<span id="p4d${i}"></span><input type="number" name="L4${i}" min="0" max="40" style="width:35px" onchange="UI()"/>
|
||||||
<br>
|
<br>
|
||||||
<span id="psd${i}">Start:</span> <input type="number" name="LS${i}" id="ls${i}" min="0" max="8191" value="${lastEnd(i)}" required />
|
<span id="psd${i}">Start:</span> <input type="number" name="LS${i}" id="ls${i}" min="0" max="8191" value="${lastEnd(i)}" readonly required />
|
||||||
<div id="dig${i}" style="display:inline">
|
<div id="dig${i}" style="display:inline">
|
||||||
Count: <input type="number" name="LC${i}" min="0" max="${maxPB}" value="1" required oninput="UI()" /><br>
|
Count: <input type="number" name="LC${i}" min="0" max="${maxPB}" value="1" required oninput="UI()" /><br>
|
||||||
Reverse (rotated 180°): <input type="checkbox" name="CV${i}">
|
Reverse (rotated 180°): <input type="checkbox" name="CV${i}">
|
||||||
@ -295,7 +307,6 @@ Reverse (rotated 180°): <input type="checkbox" name="CV${i}">
|
|||||||
c += `<option value="4" ${t==4?"selected":""}>Switch</option>`;
|
c += `<option value="4" ${t==4?"selected":""}>Switch</option>`;
|
||||||
c += `<option value="5" ${t==4?"selected":""}>Switch inverted</option>`;
|
c += `<option value="5" ${t==4?"selected":""}>Switch inverted</option>`;
|
||||||
c += `<option value="6" ${t==6?"selected":""}>Touch</option>`;
|
c += `<option value="6" ${t==6?"selected":""}>Touch</option>`;
|
||||||
c += `<option value="7" ${t==7?"selected":""}>Analog</option>`;
|
|
||||||
c += `</select>`;
|
c += `</select>`;
|
||||||
c += `<span style="cursor: pointer;" onclick="off('${bt}')"> ×</span><br>`;
|
c += `<span style="cursor: pointer;" onclick="off('${bt}')"> ×</span><br>`;
|
||||||
gId("btns").innerHTML = c;
|
gId("btns").innerHTML = c;
|
||||||
|
@ -15,9 +15,11 @@ void handleAlexa();
|
|||||||
void onAlexaChange(EspalexaDevice* dev);
|
void onAlexaChange(EspalexaDevice* dev);
|
||||||
|
|
||||||
//blynk.cpp
|
//blynk.cpp
|
||||||
|
#ifndef WLED_DISABLE_BLYNK
|
||||||
void initBlynk(const char* auth, const char* host, uint16_t port);
|
void initBlynk(const char* auth, const char* host, uint16_t port);
|
||||||
void handleBlynk();
|
void handleBlynk();
|
||||||
void updateBlynk();
|
void updateBlynk();
|
||||||
|
#endif
|
||||||
|
|
||||||
//button.cpp
|
//button.cpp
|
||||||
void shortPressAction(uint8_t b=0);
|
void shortPressAction(uint8_t b=0);
|
||||||
|
File diff suppressed because one or more lines are too long
3274
wled00/html_ui.h
3274
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -187,8 +187,10 @@ void updateInterfaces(uint8_t callMode)
|
|||||||
espalexaDevice->setColor(col[0], col[1], col[2]);
|
espalexaDevice->setColor(col[0], col[1], col[2]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef WLED_DISABLE_BLYNK
|
||||||
if (callMode != NOTIFIER_CALL_MODE_BLYNK &&
|
if (callMode != NOTIFIER_CALL_MODE_BLYNK &&
|
||||||
callMode != NOTIFIER_CALL_MODE_NO_NOTIFY) updateBlynk();
|
callMode != NOTIFIER_CALL_MODE_NO_NOTIFY) updateBlynk();
|
||||||
|
#endif
|
||||||
doPublishMqtt = true;
|
doPublishMqtt = true;
|
||||||
lastInterfaceUpdate = millis();
|
lastInterfaceUpdate = millis();
|
||||||
}
|
}
|
||||||
@ -282,7 +284,9 @@ void handleNightlight()
|
|||||||
setLedsStandard();
|
setLedsStandard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifndef WLED_DISABLE_BLYNK
|
||||||
updateBlynk();
|
updateBlynk();
|
||||||
|
#endif
|
||||||
if (macroNl > 0)
|
if (macroNl > 0)
|
||||||
applyPreset(macroNl);
|
applyPreset(macroNl);
|
||||||
nightlightActiveOld = false;
|
nightlightActiveOld = false;
|
||||||
|
@ -216,7 +216,9 @@ void WLED::loop()
|
|||||||
yield();
|
yield();
|
||||||
|
|
||||||
handleHue();
|
handleHue();
|
||||||
|
#ifndef WLED_DISABLE_BLYNK
|
||||||
handleBlynk();
|
handleBlynk();
|
||||||
|
#endif
|
||||||
|
|
||||||
yield();
|
yield();
|
||||||
|
|
||||||
@ -266,7 +268,6 @@ void WLED::loop()
|
|||||||
|
|
||||||
yield();
|
yield();
|
||||||
handleWs();
|
handleWs();
|
||||||
handleStatusLED();
|
|
||||||
|
|
||||||
// DEBUG serial logging
|
// DEBUG serial logging
|
||||||
#ifdef WLED_DEBUG
|
#ifdef WLED_DEBUG
|
||||||
@ -330,6 +331,7 @@ void WLED::setup()
|
|||||||
pinManager.allocatePin(17); // GPIO17 reserved for SPI RAM
|
pinManager.allocatePin(17); // GPIO17 reserved for SPI RAM
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
TODO make reservation for Ethernet pins
|
||||||
#ifdef WLED_USE_ETHERNET
|
#ifdef WLED_USE_ETHERNET
|
||||||
if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) {
|
if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) {
|
||||||
ethernet_settings es = ethernetBoards[ethernetType];
|
ethernet_settings es = ethernetBoards[ethernetType];
|
||||||
@ -343,18 +345,12 @@ void WLED::setup()
|
|||||||
*/
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//DEBUG_PRINT(F("LEDs inited. heap usage ~"));
|
|
||||||
//DEBUG_PRINTLN(heapPreAlloc - ESP.getFreeHeap());
|
|
||||||
|
|
||||||
#ifdef WLED_DEBUG
|
#ifdef WLED_DEBUG
|
||||||
pinManager.allocatePin(1,true); // GPIO1 reserved for debug output
|
pinManager.allocatePin(1,true); // GPIO1 reserved for debug output
|
||||||
#endif
|
#endif
|
||||||
#ifdef WLED_USE_DMX //reserve GPIO2 as hardcoded DMX pin
|
#ifdef WLED_USE_DMX //reserve GPIO2 as hardcoded DMX pin
|
||||||
pinManager.allocatePin(2,false);
|
pinManager.allocatePin(2,false);
|
||||||
#endif
|
#endif
|
||||||
//#ifdef WLED_ENABLE_ADALIGHT // reserve GPIO3 (RX) pin for ADALight
|
|
||||||
// pinManager.allocatePin(3,false);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
bool fsinit = false;
|
bool fsinit = false;
|
||||||
DEBUGFS_PRINTLN(F("Mount FS"));
|
DEBUGFS_PRINTLN(F("Mount FS"));
|
||||||
@ -371,24 +367,14 @@ void WLED::setup()
|
|||||||
|
|
||||||
DEBUG_PRINTLN(F("Reading config"));
|
DEBUG_PRINTLN(F("Reading config"));
|
||||||
deserializeConfigFromFS();
|
deserializeConfigFromFS();
|
||||||
/*
|
|
||||||
#if STATUSLED
|
|
||||||
bool lStatusLed = false;
|
|
||||||
for (uint8_t i=0; i<strip.numStrips; i++) {
|
|
||||||
if (strip.getStripPin(i)==STATUSLED) {
|
|
||||||
lStatusLed = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!lStatusLed) pinMode(STATUSLED, OUTPUT);
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
DEBUG_PRINTLN(F("Initializing strip"));
|
DEBUG_PRINTLN(F("Initializing strip"));
|
||||||
beginStrip();
|
beginStrip();
|
||||||
|
|
||||||
DEBUG_PRINTLN(F("Usermods setup"));
|
DEBUG_PRINTLN(F("Usermods setup"));
|
||||||
userSetup();
|
userSetup();
|
||||||
usermods.setup();
|
usermods.setup();
|
||||||
|
|
||||||
if (strcmp(clientSSID, DEFAULT_CLIENT_SSID) == 0)
|
if (strcmp(clientSSID, DEFAULT_CLIENT_SSID) == 0)
|
||||||
showWelcomePage = true;
|
showWelcomePage = true;
|
||||||
WiFi.persistent(false);
|
WiFi.persistent(false);
|
||||||
@ -718,34 +704,3 @@ void WLED::handleConnection()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WLED::handleStatusLED()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
#if STATUSLED
|
|
||||||
for (uint8_t s=0; s<strip.numStrips; s++) {
|
|
||||||
if (strip.getStripPin(s)==STATUSLED) {
|
|
||||||
return; // pin used for strip
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ledStatusType = WLED_CONNECTED ? 0 : 2;
|
|
||||||
if (mqttEnabled && ledStatusType != 2) // Wi-Fi takes presendence over MQTT
|
|
||||||
ledStatusType = WLED_MQTT_CONNECTED ? 0 : 4;
|
|
||||||
if (ledStatusType) {
|
|
||||||
if (millis() - ledStatusLastMillis >= (1000/ledStatusType)) {
|
|
||||||
ledStatusLastMillis = millis();
|
|
||||||
ledStatusState = ledStatusState ? 0 : 1;
|
|
||||||
digitalWrite(STATUSLED, ledStatusState);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
#ifdef STATUSLEDINVERTED
|
|
||||||
digitalWrite(STATUSLED, HIGH);
|
|
||||||
#else
|
|
||||||
digitalWrite(STATUSLED, LOW);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2105212
|
#define VERSION 2105230
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
@ -660,6 +660,5 @@ public:
|
|||||||
void initAP(bool resetAP = false);
|
void initAP(bool resetAP = false);
|
||||||
void initConnection();
|
void initConnection();
|
||||||
void initInterfaces();
|
void initInterfaces();
|
||||||
void handleStatusLED();
|
|
||||||
};
|
};
|
||||||
#endif // WLED_H
|
#endif // WLED_H
|
||||||
|
Loading…
Reference in New Issue
Block a user