From 83ac3a51b7382ff9b50c1158bd31ece91cccbffe Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 1 Sep 2022 12:51:17 +0200 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.svelte | 48 ++++++++++++++++++---------------------- src/widgets/Chart.svelte | 48 ++++++++++++++++++++++------------------ 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/App.svelte b/src/App.svelte index fce0b20..ce388ad 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -285,13 +285,14 @@ } } }); + + //события веб сокетов socket[ws].addEventListener("message", function (event) { + //сообщения типа String-----------------------------------------------------------------------------------// if (typeof event.data === "string") { let data = event.data; - //if (debug) console.log("[i]", getIP(ws), "msg received", data);// if (ws === selectedWs) { - //STRING============================================================ - //сборщик deviceList сообщений====================================== + //сборщик deviceList сообщений if (data.includes('devicelist":"')) { if (IsJsonParse(data)) { incDeviceList = JSON.parse(data); @@ -304,16 +305,6 @@ } firstDevListRequest = false; - // deviceList.sort(function (a, b) { - // if (a.name < b.name) { - // return -1; - // } - // if (a.name > b.name) { - // return 1; - // } - // return 0; - // }); - deviceList = deviceList; deviceListParced = true; if (debug) console.log("✔", "deviceList json parced"); @@ -323,7 +314,7 @@ } } - //сборщик ssidJson сообщений====================================== + //сборщик ssidJson сообщений if (data.includes('ssid":"')) { if (IsJsonParse(data)) { ssidJson = JSON.parse(data); @@ -333,7 +324,7 @@ onParced(); } } - //сборщик errorsJson сообщений====================================== + //сборщик errorsJson сообщений if (data.includes('errors":"')) { if (IsJsonParse(data)) { errorsJson = JSON.parse(data); @@ -343,7 +334,7 @@ onParced(); } } - //сборщик settingsJson сообщений====================================== + //сборщик settingsJson сообщений if (data.includes('settings":"')) { if (IsJsonParse(data)) { settingsJson = JSON.parse(data); @@ -355,7 +346,7 @@ } } - //сборщик log сообщений====================================== + //сборщик log сообщений if (data.includes("/log|")) { data = data.replace("/log|", ""); //let msg = data.toString(); @@ -363,8 +354,8 @@ addCoreMsg(data); } - //BLOB============================================================== - //сборщик scenarioJson пакетов====================================== + //метки начала конца пакетов для Blob--------------------------------------------------------------------------// + //сборщик scenarioJson пакетов if (data === "/st/scenario.json") { scenarioJsonFlag = true; } @@ -384,7 +375,7 @@ } }; } - //сборщик configJson пакетов======================================== + //сборщик configJson пакетов if (data === "/st/config.json") { configJsonFlag = true; } @@ -404,7 +395,7 @@ } }; } - //сборщик widgetsJson пакетов======================================== + //сборщик widgetsJson пакетов if (data === "/st/widgets.json") { widgetsJsonFlag = true; } @@ -424,7 +415,7 @@ } }; } - //сборщик itemsJson пакетов======================================== + //сборщик itemsJson пакетов if (data === "/st/items.json") { itemsJsonFlag = true; } @@ -445,13 +436,13 @@ }; } } - //сборщик layoutJson пакетов======================================== + //сборщик layoutJson пакетов if (data === "/st/layout.json") { } if (data === "/end/layout.json") { createLayoutUnderLoading(ws); } - //сборщик paramsJson сообщений====================================== + //сборщик paramsJson сообщений if (data.includes('"params":"')) { if (IsJsonParse(data)) { //как добавить в объект json новый объект @@ -463,8 +454,8 @@ onParced(); } } - //сборщик statusJson сообщений====================================== - if (data.includes("status")) { + //сборщик statusJson сообщений + if (data.includes('"status":')) { if (IsJsonParse(data)) { let statusJson = JSON.parse(data); udateStatusOfWidget(statusJson); @@ -472,6 +463,8 @@ } } } + + //сообщения типа Blob-------------------------------------------------------------------------------------// if (event.data instanceof Blob) { //принимаем данные только для выбранного устройства if (ws === selectedWs) { @@ -498,6 +491,7 @@ } } + //функция создающая общий json всех виджетов под загрузкой (не имеющая события завершения) async function createLayoutUnderLoading(ws) { var bb = layoutJsonArray[ws].getBlob(); let reader = new FileReader(); @@ -510,6 +504,7 @@ }; } + //данная функция обновляет статусы виджетов одного устройства при загрузке страницы dashboard function udateStatusOfDevWidgets(devLayout, ws) { for (const [key, value] of Object.entries(paramsJson)) { for (let i = 0; i < devLayout.length; i++) { @@ -539,6 +534,7 @@ } } + //данная функция обновляет статусы всех виджетов хранящихся в layoutJson function udateStatusOfWidget(newStatusJson) { for (let i = 0; i < layoutJson.length; i++) { let topic = layoutJson[i].topic; diff --git a/src/widgets/Chart.svelte b/src/widgets/Chart.svelte index 2fbbb67..fc553a0 100644 --- a/src/widgets/Chart.svelte +++ b/src/widgets/Chart.svelte @@ -32,30 +32,34 @@ $: widget.status, collectDataToArr(); function collectDataToArr() { - if (Array.isArray(widget.status)) { - //отсекаем лишние события изменения переменной widget - if (prevSatus !== widget.status) { - console.log("[i]", "collecting chart data, topic:", widget.topic); - let incomingDataArr = widget.status; - //console.log("[i]", incomingDataArr); - collectingDataArray = [...collectingDataArray, ...incomingDataArr]; + if (widget.status) { + if (Array.isArray(widget.status)) { + //отсекаем лишние события изменения переменной widget + if (prevSatus !== widget.status) { + console.log("[i]", "collecting chart data to array, topic:", widget.topic); + let incomingDataArr = widget.status; - for (let i = 0; i < collectingDataArray.length; i++) { - labels[i] = getHHMM(collectingDataArray[i].x); - values[i] = [collectingDataArray[i].y1]; + console.log("[i]", "array:", incomingDataArr); + + collectingDataArray = [...collectingDataArray, ...incomingDataArr]; + + for (let i = 0; i < collectingDataArray.length; i++) { + labels[i] = getHHMM(collectingDataArray[i].x); + values[i] = [collectingDataArray[i].y1]; + } + + datachart = { + labels: labels, + datasets: [ + { + name: widget.descr, + values: values, + }, + ], + }; + prevSatus = widget.status; + datachart = datachart; } - - datachart = { - labels: labels, - datasets: [ - { - name: widget.descr, - values: values, - }, - ], - }; - prevSatus = widget.status; - datachart = datachart; } } }