From 9894ae21baf91bd4c164f5df09a8baf939a3092a Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 9 Dec 2021 22:35:04 +0100 Subject: [PATCH] add device list --- src/App.svelte | 71 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/src/App.svelte b/src/App.svelte index c0a71d3..a8f9faf 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -129,7 +129,7 @@ let config = []; let socket = []; let socketConnected = false; - + let selectedDeviceData; let deviceList = []; deviceList = [ @@ -154,13 +154,10 @@ function connectToAllDevices() { let ws = 0; deviceList.forEach((device) => { - if (debug) console.log(device.name, ws, device.ip, device.id); + if (debug) console.log("[i]", device.name, ws, device.ip, device.id); wsConnect(ws, device.ip); wsEventAdd(ws); device.ws = ws; - //if (device.ip === myip) { - // if (debug) console.log("My device found in list:", device.name); - //} ws++; }); } @@ -169,9 +166,16 @@ deviceList.forEach((device) => { if (device.ws === ws) { device.status = status; - if (debug) console.log(device.name, ws, device.ip, device.id, device.status); + if (debug) { + if (device.status) { + console.log("[i]", device.name, device.ip, "dev status online"); + } else { + console.log("[i]", device.name, device.ip, "dev status offline"); + } + } } }); + deviceList = deviceList; } function wsConnect(ws, ip) { @@ -181,39 +185,35 @@ function wsEventAdd(ws) { if (socket[ws]) { socket[ws].addEventListener("open", function (event) { - if (debug) console.log("WS CONNECTED! " + myip); - socketConnected = true; + if (debug) console.log("[i]", "ws connected", myip); markDeviceStatus(ws, true); //socket[ws].send("HELLO"); }); socket[ws].addEventListener("message", function (event) { let data = event.data.toString(); - //console.log("NEW data packet " + myip, event.data); + //if (debug) console.log("[i]", "new data:", event.data); if (data.includes("/core/")) { data = data.replace("/core/", ""); addCoreMsg(data); } }); socket[ws].addEventListener("close", (event) => { - socketConnected = false; + if (debug) console.log("[e]", "ws close", myip); markDeviceStatus(ws, false); wsConnect(ws); - console.log("ws close " + myip); }); socket[ws].addEventListener("error", function (event) { - socketConnected = false; + if (debug) console.log("[e]", "ws error", myip); markDeviceStatus(ws, false); wsConnect(ws); - console.log(myip + " ws error: ", event); }); } } function wsPush(ws, topic, status) { let msg = topic + " " + status; - if (debug) console.log(ws, msg); + if (debug) console.log("[i]", "send to ws msg:", msg); wsSendMsg(ws, msg); - //socket[ws].send('{"path":"' + topic + '/control", "status":"' + value.toString() + '"}'); } function wsTestMsgTask() { @@ -224,9 +224,9 @@ function wsSendMsg(ws, msg) { if (socket[ws] && socket[ws].readyState === 1) { socket[ws].send(msg); - if (debug) console.log("[ws:" + ws + "]", "msg send success:", msg); + if (debug) console.log("[i]", "msg send success:", msg); } else { - if (debug) console.log("[ws:" + ws + "]", "msg not send, try reconnected...", msg); + if (debug) console.log("[i]", "msg not send, try reconnected...", msg); wsConnect(ws); } } @@ -283,8 +283,13 @@ }); }; + function dropdownChange() { + socketConnected = selectedDeviceData.status; + if (debug) console.log("[i]", "user choose dev:", selectedDeviceData.name); + } + onMount(async () => { - console.log("mounted"); + console.log("[i]", "mounted"); connectToAllDevices(); //wsTestMsgTask(); //wsEventAdd(); @@ -297,7 +302,7 @@
| Название устройства | +IP адрес | +Идентификатор | +Состояние | +
|---|---|---|---|
| {device.name} | +{device.ip} | +{device.id} | +{device.status ? "online" : "offline"} | +