From 6b5e8b36c4283db9b24c34b3fc43d8f09123bcef Mon Sep 17 00:00:00 2001
From: Dmitry Borisenko <67171972+IoTManagerProject@users.noreply.github.com>
Date: Sun, 13 Feb 2022 00:37:58 +0100
Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD=D0=B3=20?=
=?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D1=81=D1=82=D1=80=D0=B0?=
=?UTF-8?q?=D0=BD=D0=B8=D1=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/App.svelte | 127 +++++++++++++++-----
src/pages/Config.svelte | 153 ++++++++++++------------
src/pages/Connection.svelte | 224 ++++++++++++++++++------------------
src/pages/Dashboard.svelte | 49 ++++----
src/pages/List.svelte | 78 +++++++------
src/pages/System.svelte | 176 ++++++++++++++--------------
6 files changed, 454 insertions(+), 353 deletions(-)
diff --git a/src/App.svelte b/src/App.svelte
index 44cde72..cd73134 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -45,25 +45,57 @@
//dashboard
let pages = [];
+ //ready flags
+ let dashReady = false;
+ let configReady = false;
+ let connectionReady = false;
+ let listReady = false;
+ let systemReady = false;
+
//configuration
let configJson = [];
let configJsonFlag = false;
+ let configJsonParced = false;
let widgetsJson = [];
let widgetsJsonFlag = false;
+ let widgetsJsonParced = false;
let itemsJson = [];
let itemsJsonFlag = false;
+ let itemsJsonParced = false;
let layoutJson = [];
let layoutJsonFlag = false;
+ let layoutJsonParced = false;
let settingsJson = {};
let settingsJsonFlag = false;
+ let settingsJsonParced = false;
let errorsJson = {};
+ let errorsJsonParced = false;
let ssidJson = {};
+ let ssidJsonParced = false;
+
+ let paramsJson = {};
+ let paramsJsonParced = false;
+
+ let statusJsonParced = false;
+
+ let incDeviceList = [];
+ let incDeviceListParced = false;
+
+ let deviceList = [];
+ deviceList = [
+ {
+ name: "--",
+ id: "--",
+ ip: myip,
+ status: false,
+ },
+ ];
//web sockets
let socket = [];
@@ -77,19 +109,6 @@
let oneOfJsonPackageError = false;
- let deviceList = [];
- deviceList = [
- {
- name: "--",
- id: "--",
- ip: myip,
- status: false,
- },
- ];
-
- let incDeviceList = [];
- let incDeviceListParced = false;
-
//***********************************************************blob**************************************************************/
var MyBlobBuilder = function () {
this.parts = [];
@@ -235,16 +254,16 @@
udateStatusOfWidget(statusJson);
wigetsUpdate();
if (debug) console.log("✔", "statusJson parced");
+ statusJsonParced = true;
onParced("status");
}
}
//сборщик paramsJson сообщений======================================
if (data.includes("params")) {
if (IsJsonParse(data)) {
- let paramsJson = JSON.parse(data);
- udateStatusOfAllWidgets(paramsJson);
- wigetsUpdate();
+ paramsJson = JSON.parse(data);
if (debug) console.log("✔", "paramsJson parced");
+ paramsJsonParced = true;
onParced("params");
}
}
@@ -254,6 +273,7 @@
ssidJson = JSON.parse(data);
ssidJson = ssidJson;
if (debug) console.log("✔", "ssidJson parced");
+ ssidJsonParced = true;
onParced("ssid");
}
}
@@ -267,6 +287,7 @@
deviceList = deviceList;
whenDeviceListWasUpdated();
connectToAllDevices();
+
if (debug) console.log("✔", "incDeviceList json parced");
onParced("devicelist");
}
@@ -276,8 +297,8 @@
if (IsJsonParse(data)) {
errorsJson = JSON.parse(data);
errorsJson = errorsJson;
+ errorsJsonParced = true;
if (debug) console.log("✔", "errorsJson json parced");
- //dataReceived();
onParced("errors");
}
}
@@ -295,6 +316,7 @@
if (IsJsonParse(configJsonResult)) {
configJson = JSON.parse(configJsonResult);
configJson = configJson;
+ configJsonParced = true;
if (debug) console.log("✔", "configJson parced");
onParced("config");
}
@@ -314,6 +336,7 @@
if (IsJsonParse(widgetsJsonResult)) {
widgetsJson = JSON.parse(widgetsJsonResult);
widgetsJson = widgetsJson;
+ widgetsJsonParced = true;
if (debug) console.log("✔", "widgetsJson parced");
onParced("widgets");
}
@@ -333,6 +356,7 @@
if (IsJsonParse(itemsJsonResult)) {
itemsJson = JSON.parse(itemsJsonResult);
itemsJson = itemsJson;
+ itemsJsonParced = true;
if (debug) console.log("✔", "itemsJson parced");
onParced("items");
}
@@ -353,6 +377,7 @@
layoutJson = JSON.parse(layoutJsonResult);
layoutJson = layoutJson;
wigetsUpdate();
+ layoutJsonParced = true;
if (debug) console.log("✔", "layoutJson parced");
onParced("layout");
}
@@ -374,6 +399,7 @@
settingsJson = settingsJson;
wigetsUpdate();
updateThisDeviceInList();
+ settingsJsonParced = true;
if (debug) console.log("✔", "settingsJson parced");
onParced("settings");
}
@@ -401,6 +427,36 @@
}
}
+ function onParced(file) {
+ if (currentPageName === "/|" && layoutJsonParced && paramsJsonParced) {
+ clearParcedFlags();
+ if (debug) console.log("✔✔", "dashboard data parced");
+ udateStatusOfAllWidgets(paramsJson);
+ wigetsUpdate();
+ dashReady = true;
+ }
+ if (currentPageName === "/config|" && itemsJsonParced && widgetsJsonParced && configJsonParced && settingsJsonParced) {
+ clearParcedFlags();
+ if (debug) console.log("✔✔", "config data parced");
+ configReady = true;
+ }
+ if (currentPageName === "/connection|" && ssidJsonParced && settingsJsonParced && errorsJsonParced) {
+ clearParcedFlags();
+ if (debug) console.log("✔✔", "connection data parced");
+ connectionReady = true;
+ }
+ if (currentPageName === "/list|" && incDeviceListParced) {
+ clearParcedFlags();
+ if (debug) console.log("✔✔", "list data parced");
+ listReady = true;
+ }
+ if (currentPageName === "/system|" && errorsJsonParced) {
+ clearParcedFlags();
+ if (debug) console.log("✔✔", "system data parced");
+ systemReady = true;
+ }
+ }
+
function saveConfig() {
wsSendMsg(selectedWs, "/tuoyal|" + JSON.stringify(generateLayout()));
wsSendMsg(selectedWs, "/gifnoc|" + JSON.stringify(configJson));
@@ -501,9 +557,30 @@
errorsJson = {};
+ dashReady = false;
+ configReady = false;
+ connectionReady = false;
+ listReady = false;
+ systemReady = false;
+
+ clearParcedFlags();
+
if (debug) console.log("[i]", "all app data cleared");
}
+ function clearParcedFlags() {
+ configJsonParced = false;
+ widgetsJsonParced = false;
+ itemsJsonParced = false;
+ layoutJsonParced = false;
+ settingsJsonParced = false;
+ errorsJsonParced = false;
+ ssidJsonParced = false;
+ paramsJsonParced = false;
+ statusJsonParced = false;
+ incDeviceListParced = false;
+ }
+
function wsPush(ws, topic, status) {
let msg = topic + " " + status;
if (debug) console.log("[i]", "send to ws msg:", msg);
@@ -802,8 +879,6 @@
wsSendMsg(selectedWs, '/rorre|{"' + alarmKey + '":0}');
}
- function onParced(file) {}
-
//*******************************************************initialisation********************************************************************/
onMount(async () => {
console.log("[i]", "mounted");
@@ -879,16 +954,19 @@
| Тип | -Id | -Виджет | -Вкладка | -Название | -- | - | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {element.subtype} | -- | - | - | - |
| Тип | +Id | +Виджет | +Вкладка | +Название | ++ | |
|---|---|---|---|---|---|---|
| - | - | - |
- {key} - |
- - - | -
{key}
+Название устройства
+{#if show} +Название устройства
+Точка доступа
+Точка доступа
+Пароль точки доступа
+Название wifi сети
+Пароль точки доступа
+Пароль
+Название wifi сети
-Пароль
-Состояние подключения
+Состояние подключения
+Подключено
+ {:else if errorsJson.mqtt === "e13"} +Подключение
+ {:else if errorsJson.mqtt === undefined} +Ожидание
+ {:else} +Ошибка
+ {/if} +Подключено
- {:else if errorsJson.mqtt === "e13"} -Подключение
- {:else if errorsJson.mqtt === undefined} -Ожидание
- {:else} -Ошибка
- {/if} +Название сервера
+Название сервера
+Порт
+Префикс
+Порт
+Имя пользователя
+Пароль
+Префикс
-Имя пользователя
-Пароль
-| Название устройства | -IP адрес | -Идентификатор | -Состояние | -- |
|---|
| {device.name} | -{device.ip} | -{device.id} | -{device.status ? "online" : "offline"} | -Название устройства | +IP адрес | +Идентификатор | +Состояние | +||
|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - |
Список устройств будет обновляться автоматически. Подключенные к одному роутеру устройства будут появляться в списке в течении двух минут. Ручное добавление сделано в целях проверки для разработчика.
-Список устройств будет обновляться автоматически. Подключенные к одному роутеру устройства будут появляться в списке в течении двух минут. Ручное добавление сделано в целях проверки для разработчика.
+Версия прошивки
+{#if show} +Версия прошивки
+{errorsJson.bver}
+{errorsJson.bver}
+Версия файловой системы
+{version}
+Версия файловой системы
+Uptime устройства
+{errorsJson.upt}
+{version}
+Uptime сессии mqtt
+{errorsJson.uptm}
+Uptime устройства
+Качество WiFi сигнала
+не подключено
+ {/if} + {#if errorsJson.rssi === 1} +нет сигнала
+ {/if} + {#if errorsJson.rssi === 2} +очень низкий
+ {/if} + {#if errorsJson.rssi === 3} +низкий
+ {/if} + {#if errorsJson.rssi === 4} +хороший
+ {/if} + {#if errorsJson.rssi === 5} +очень хороший
+ {/if} + {#if errorsJson.rssi === 6} +отличный
+ {/if} +{errorsJson.upt}
+Остаток оперативной памяти
+{errorsJson.heap}
+Uptime сессии mqtt
+ +{systemErrorsRus[key][param].txt}
+ {#if systemErrorsRus[key][param].num} +{"Количество: " + errorsJson[key + "n"]}
+ {/if} +{errorsJson.uptm}
-Качество WiFi сигнала
-не подключено
- {/if} - {#if errorsJson.rssi === 1} -нет сигнала
- {/if} - {#if errorsJson.rssi === 2} -очень низкий
- {/if} - {#if errorsJson.rssi === 3} -низкий
- {/if} - {#if errorsJson.rssi === 4} -хороший
- {/if} - {#if errorsJson.rssi === 5} -очень хороший
- {/if} - {#if errorsJson.rssi === 6} -отличный
- {/if} -Остаток оперативной памяти
-{errorsJson.heap}
-{systemErrorsRus[key][param].txt}
- {#if systemErrorsRus[key][param].num} -{"Количество: " + errorsJson[key + "n"]}
- {/if} -