Websockets handling of JSON response.
This commit is contained in:
parent
baf4a241a2
commit
a30ce1c44d
@ -214,7 +214,12 @@ function onLoad()
|
|||||||
// Creatte UI update WS handler
|
// Creatte UI update WS handler
|
||||||
var mySocket = new WebSocket('ws://'+loc?locip:window.location.hostname+'/ws');
|
var mySocket = new WebSocket('ws://'+loc?locip:window.location.hostname+'/ws');
|
||||||
mySocket.onmessage = function(event) {
|
mySocket.onmessage = function(event) {
|
||||||
requestJson({'v':true},false);
|
// event.data contains JSON state/info object
|
||||||
|
// we should parse it instead of calling requestJson()
|
||||||
|
//requestJson(/*{'v':true},false*/);
|
||||||
|
console.log(event.data);
|
||||||
|
handleJson(event.data);
|
||||||
|
updateUI(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,6 +966,52 @@ function cmpP(a, b)
|
|||||||
return a[1].n.localeCompare(b[1].n,undefined, {numeric: true});
|
return a[1].n.localeCompare(b[1].n,undefined, {numeric: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleJson(s)
|
||||||
|
{
|
||||||
|
if (!s) return false;
|
||||||
|
|
||||||
|
isOn = s.on;
|
||||||
|
d.getElementById('sliderBri').value= s.bri;
|
||||||
|
nlA = s.nl.on;
|
||||||
|
nlDur = s.nl.dur;
|
||||||
|
nlTar = s.nl.tbri;
|
||||||
|
nlFade = s.nl.fade;
|
||||||
|
syncSend = s.udpn.send;
|
||||||
|
currentPreset = s.ps;
|
||||||
|
d.getElementById('cyToggle').checked = (s.pl >= 0);
|
||||||
|
d.getElementById('cycs').value = s.ccnf.min;
|
||||||
|
d.getElementById('cyce').value = s.ccnf.max;
|
||||||
|
d.getElementById('cyct').value = s.ccnf.time/10;
|
||||||
|
d.getElementById('cyctt').value = s.transition/10;
|
||||||
|
|
||||||
|
var selc=0; var ind=0;
|
||||||
|
populateSegments(s);
|
||||||
|
for (let i = 0; i < (s.seg||[]).length; i++)
|
||||||
|
{
|
||||||
|
if(s.seg[i].sel) {selc = ind; break;} ind++;
|
||||||
|
}
|
||||||
|
var i=s.seg[selc];
|
||||||
|
if (!i) return false; // no segments!
|
||||||
|
|
||||||
|
selColors = i.col;
|
||||||
|
var cd = d.getElementById('csl').children;
|
||||||
|
for (let e = 2; e >= 0; e--)
|
||||||
|
{
|
||||||
|
cd[e].style.backgroundColor = "rgb(" + i.col[e][0] + "," + i.col[e][1] + "," + i.col[e][2] + ")";
|
||||||
|
if (isRgbw) whites[e] = parseInt(i.col[e][3]);
|
||||||
|
selectSlot(csel);
|
||||||
|
}
|
||||||
|
d.getElementById('sliderSpeed').value = whites[csel];
|
||||||
|
|
||||||
|
d.getElementById('sliderSpeed').value = i.sx;
|
||||||
|
d.getElementById('sliderIntensity').value = i.ix;
|
||||||
|
|
||||||
|
selectedPal = i.pal;
|
||||||
|
selectedFx = i.fx;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
var jsonTimeout, refreshTimer;
|
var jsonTimeout, refreshTimer;
|
||||||
function requestJson(command, rinfo = true, verbose = true, callback = null)
|
function requestJson(command, rinfo = true, verbose = true, callback = null)
|
||||||
{
|
{
|
||||||
@ -1035,6 +1086,13 @@ function requestJson(command, rinfo = true, verbose = true, callback = null)
|
|||||||
displayRover(info, s);
|
displayRover(info, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!handleJson(s)) {
|
||||||
|
showToast('No Segments!', true);
|
||||||
|
updateUI(false);
|
||||||
|
if (callback) callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/*
|
||||||
isOn = s.on;
|
isOn = s.on;
|
||||||
d.getElementById('sliderBri').value= s.bri;
|
d.getElementById('sliderBri').value= s.bri;
|
||||||
nlA = s.nl.on;
|
nlA = s.nl.on;
|
||||||
@ -1078,7 +1136,7 @@ function requestJson(command, rinfo = true, verbose = true, callback = null)
|
|||||||
|
|
||||||
selectedPal = i.pal;
|
selectedPal = i.pal;
|
||||||
selectedFx = i.fx;
|
selectedFx = i.fx;
|
||||||
|
*/
|
||||||
if (s.error && s.error != 0) {
|
if (s.error && s.error != 0) {
|
||||||
var errstr = "";
|
var errstr = "";
|
||||||
switch (s.error) {
|
switch (s.error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user