From cc91eec43219c75e6775231fa718ae85589ed184 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <67171972+IoTManagerProject@users.noreply.github.com> Date: Mon, 7 Feb 2022 23:40:00 +0100 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.svelte | 136 ++++++++++++++++++++---------------- src/components/Alarm.svelte | 6 +- src/components/Card.svelte | 2 +- src/pages/List.svelte | 4 ++ src/pages/Utilities.svelte | 40 ++++++++++- 5 files changed, 120 insertions(+), 68 deletions(-) diff --git a/src/App.svelte b/src/App.svelte index 355cd9a..f107fb4 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -29,7 +29,8 @@ //****************************************************variable section**********************************************************/ //******************************************************************************************************************************/ - let myip = document.location.hostname; + //let myip = document.location.hostname; + let myip = "192.168.88.235"; //Flags let showInput = false; @@ -68,25 +69,26 @@ let socket = []; let socketConnected = false; let selectedDeviceData = undefined; - let deviceList = []; + let selectedWs = 0; + let flag = true; let newDevice = {}; let coreMessages = []; - let wsSelected = undefined; let oneOfJsonPackageError = false; + let deviceList = []; deviceList = [ { - name: "Устройство", - id: "123456789", - ip: "192.168.88.235", - //ip: myip, + name: "--", + id: "--", + ip: myip, status: false, }, ]; - let deviceListParced = false; + let incDeviceList = []; + let incDeviceListParced = false; //***********************************************************blob**************************************************************/ var MyBlobBuilder = function () { @@ -129,8 +131,8 @@ } function sendCurrentPageName() { - if (wsSelected !== undefined) { - wsSendMsg(wsSelected, currentPageName); + if (selectedWs !== undefined) { + wsSendMsg(selectedWs, currentPageName); } } @@ -138,6 +140,7 @@ function connectToAllDevices() { //closeAllConnection(); //socket = []; + getSelectedDeviceData(selectedWs); let ws = 0; deviceList.forEach((device) => { //if (debug) console.log("[i]", device.name, ws, device.ip, device.id); @@ -149,7 +152,7 @@ ws++; }); deviceList = deviceList; - socketConnected = selectedDeviceData.status; + //socketConnected = selectedDeviceData.status; } function closeAllConnection() { @@ -173,6 +176,7 @@ } }); deviceList = deviceList; + getSelectedDeviceData(selectedWs); socketConnected = selectedDeviceData.status; } @@ -223,14 +227,14 @@ let data = event.data; //if (debug) console.log("[i]", getIP(ws), "msg received", data); // //сборщик statusJson сообщений====================================== - //if (data.includes("status")) { - // if (IsJsonParse(data)) { - // let statusJson = JSON.parse(data); - // udatelayoutJson(statusJson); - // wigetsUpdate(); - // if (debug) console.log("[i]", "status json parced: ", statusJson); - // } - //} + if (data.includes("status")) { + if (IsJsonParse(data)) { + let statusJson = JSON.parse(data); + udatelayoutJson(statusJson); + wigetsUpdate(); + if (debug) console.log("[i]", "status json parced: ", statusJson); + } + } //сборщик ssidJson сообщений====================================== if (data.includes("ssid")) { if (IsJsonParse(data)) { @@ -244,12 +248,15 @@ //сборщик deviceList сообщений====================================== if (data.includes("devicelist")) { if (IsJsonParse(data)) { - deviceList = JSON.parse(data); - delete deviceList.devicelist; + incDeviceList = JSON.parse(data); + delete incDeviceList.devicelist; + incDeviceList = incDeviceList; + incDeviceListParced = true; + deviceList = combineArrays(deviceList, incDeviceList); deviceList = deviceList; - deviceListParced = true; - //connectToAllDevices(); - if (debug) console.log("[i]", "devicelist json parced", deviceList); + whenDeviceListWasUpdated(); + connectToAllDevices(); + if (debug) console.log("[i]", "incDeviceList json parced", incDeviceList); } } //сборщик configJson пакетов======================================== @@ -355,6 +362,7 @@ settingsJson = settingsJson; wigetsUpdate(); settingsJsonParced = true; + updateThisDeviceInList(); if (debug) console.log("[ii]", "settingsJson parced!"); } }; @@ -382,14 +390,14 @@ } function saveConfig() { - wsSendMsg(wsSelected, "/tuoyal" + JSON.stringify(generateLayout())); - wsSendMsg(wsSelected, "/gifnoc" + JSON.stringify(configJson)); + wsSendMsg(selectedWs, "/tuoyal" + JSON.stringify(generateLayout())); + wsSendMsg(selectedWs, "/gifnoc" + JSON.stringify(configJson)); clearData(); sendCurrentPageName(); } function saveSettings() { - wsSendMsg(wsSelected, "/cennoc" + JSON.stringify(settingsJson)); + wsSendMsg(selectedWs, "/cennoc" + JSON.stringify(settingsJson)); clearData(); sendCurrentPageName(); } @@ -406,7 +414,7 @@ widget.page = config.page; widget.descr = config.descr; //widget.id = config.id; - //widget.ws = wsSelected; + //widget.ws = selectedWs; widget.topic = settingsJson.root + "/" + config.id; layout.push(widget); error = false; @@ -542,36 +550,20 @@ }; //***********************************************************dev list******************************************************************/ - function createDefaultDevice() { - let find = false; - let device; - if (debug) console.log("[i]", "original dev ip (js): ", myip); - if (debug) console.log("[i]", "original dev ip (esp): ", settingsJson.ip); - for (let i = 0; i < deviceList.length; i++) { - device = deviceList[i]; - if (debug) console.log("[i]", "start checking dev no: ", i, device.ip); - if (device.ip === settingsJson.ip) { - if (debug) console.log("[i]", "found ", device.ip); - device.name = settingsJson.name; - device.id = settingsJson.id; - find = true; - break; - } - } - if (!find) { - if (debug) console.log("[i]", "not found, add to the end"); - deviceList.push({ - ip: settingsJson.ip, - name: settingsJson.name, - id: settingsJson.id, - }); - } - deviceList = deviceList; + + function combineArrays(A, B) { + var ids = new Set(A.map((d) => d.ip)); + let output = [...A, ...B.filter((d) => !ids.has(d.ip))]; + return output; + } + + function whenDeviceListWasUpdated() { + getSelectedDeviceData(selectedWs); + socketConnected = selectedDeviceData.status; } function devicesDropdownChange() { - socketConnected = selectedDeviceData.status; - wsSelected = selectedDeviceData.ws; + whenDeviceListWasUpdated(); clearData(); sendCurrentPageName(); if (debug) console.log("[i]", "user selected device:", selectedDeviceData.name); @@ -580,6 +572,16 @@ } } + function getSelectedDeviceData(ws) { + for (let i = 0; i < deviceList.length; i++) { + let device = deviceList[i]; + if (device.ws === ws) { + selectedDeviceData = device; + break; + } + } + } + function devListSave() { //createDefaultDevice(); if (!showInput) { @@ -588,16 +590,27 @@ deviceList.push(newDevice); deviceList = deviceList; newDevice = {}; + whenDeviceListWasUpdated(); connectToAllDevices(); if (debug) console.log("[i]", "selected device:", selectedDeviceData); - //socketConnected = selectedDeviceData.status; - //socketConnected = socketConnected; } else { if (debug) console.log("[e]", "wrong data"); } } } + function updateThisDeviceInList() { + for (let i = 0; i < deviceList.length; i++) { + let device = deviceList[i]; + if (device.ip === myip) { + device.name = settingsJson.name; + device.id = settingsJson.id; + settingsJson = settingsJson; + break; + } + } + } + //****************************************************************json******************************************************************/ function getJsonObject(array, number) { let num = 0; @@ -724,7 +737,7 @@ //************************************************elements and presets dropdown************************************************************/ function ssidDropdownClick() { - wsSendMsg(wsSelected, "/scan"); + wsSendMsg(selectedWs, "/scan"); } //*******************************************************initialisation********************************************************************/ @@ -732,8 +745,7 @@ console.log("[i]", "mounted"); connectToAllDevices(); wsTestMsgTask(); - socketConnected = selectedDeviceData.status; - devicesDropdownChange(); + whenDeviceListWasUpdated(); findNewPage(); }); @@ -744,9 +756,9 @@
- devicesDropdownChange()}> {#each deviceList as device} - {/each} diff --git a/src/components/Alarm.svelte b/src/components/Alarm.svelte index eaeb9b5..6c6c376 100644 --- a/src/components/Alarm.svelte +++ b/src/components/Alarm.svelte @@ -15,11 +15,11 @@ @tailwind utilities; @layer components { + .alm { + @apply mb-2 w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-4 xl:py-2 2xl:px-4 2xl:py-2 bg-white shadow-md lg:shadow-lg border border-gray-200 rounded-lg; + } .alm-hdr { @apply text-center text-base text-red-500 pb-0; } - .alm { - @apply mb-4 w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-4 xl:py-2 2xl:px-4 2xl:py-2 bg-white shadow-md lg:shadow-lg border border-gray-200 rounded-lg; - } } diff --git a/src/components/Card.svelte b/src/components/Card.svelte index a145217..01a525c 100644 --- a/src/components/Card.svelte +++ b/src/components/Card.svelte @@ -16,7 +16,7 @@ @layer components { .crd { - @apply w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-8 xl:py-4 2xl:px-8 2xl:py-4 bg-white shadow-md lg:shadow-lg border border-gray-200 rounded-lg; + @apply w-full mb-2 p-2 sm:p-2 md:p-2 lg:p-2 xl:px-8 xl:py-4 2xl:px-8 2xl:py-4 bg-white shadow-md lg:shadow-lg border border-gray-200 rounded-lg; } .crd-hdr { @apply text-center text-lg text-gray-500 font-bold pb-4; diff --git a/src/pages/List.svelte b/src/pages/List.svelte index b061c55..13742d8 100644 --- a/src/pages/List.svelte +++ b/src/pages/List.svelte @@ -1,5 +1,6 @@ - + + + + + - +