diff --git a/public/index.html b/public/index.html
index b416470..9f21ca7 100644
--- a/public/index.html
+++ b/public/index.html
@@ -4,12 +4,12 @@
-
IoT Manager 4.4.0
+ IoT Manager 4.4.1
-
+
-
+
diff --git a/src/App.svelte b/src/App.svelte
index 81ab0a8..11f4e21 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -13,6 +13,7 @@
import Alarm from "./components/Alarm.svelte";
import Progress from "./components/Progress.svelte";
+ import Card from "./components/Card.svelte";
//import Modal from "./components/Modal.svelte";
import DashboardPage from "./pages/Dashboard.svelte";
@@ -42,7 +43,7 @@
//****************************************************variable section**********************************************************/
//******************************************************************************************************************************/
let myip = document.location.hostname;
- if (devMode) myip = "192.168.88.238";
+ if (devMode) myip = "192.168.88.234";
//Flags
let firstDevListRequest = true;
@@ -146,7 +147,7 @@
let currentPageName = undefined;
var chartJsonBlobArray = [];
- let chartTopic;
+ let chartTopic = "";
var chartJsonBlob = new MyBlobBuilder();
var layoutJsonBlobArray = [];
@@ -257,7 +258,7 @@
firstDevListRequest = true;
connectToAllDevices();
wsTestMsgTask();
- sortingLayout();
+ //sortingLayout();
});
//****************************************************web sockets section******************************************************/
@@ -426,13 +427,14 @@
//сборщик paramsJson сообщений
if (data.includes('"params_":"')) {
if (IsJsonParse(data)) {
+ console.log("[4.1]", ws, "dev params", data);
//как добавить в объект json новый объект
paramsJson = {
...paramsJson,
...JSON.parse(data),
};
paramsJson = paramsJson;
- console.log("[4]", ws, "collecting params");
+ console.log("[4.2]", ws, "global params", paramsJson);
updateAllStatuses(ws);
onParced();
}
@@ -440,26 +442,28 @@
//сборщик layoutJson пакетов
if (data === "/st/layout.json") {
layoutJsonFlag[ws] = true;
+ console.log("[1]", ws, "layout package start", layoutJsonFlag);
}
if (data === "/end/layout.json") {
layoutJsonFlag[ws] = false;
- console.log("[1]", ws, "blob package received");
+ console.log("[1]", ws, "layout package received", layoutJsonFlag);
//как только прилетел весь блоб мы начнем его читать ридером и заодно запросим json-ы всех параметров
combineLayoutsInOne(ws);
- wsSendMsg(ws, "/params|");
}
//сборщик chartJson пакетов
if (data.includes("/st/chart.json|")) {
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
- chartTopic = json.topic;
+ chartTopic = ws.toString() + json.topic.toString();
chartJsonFlag[chartTopic] = true;
+ console.log("[i]", ws, "chart package start", JSON.stringify(chartJsonFlag));
}
if (data.includes("/end/chart.json|")) {
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
- chartTopic = json.topic;
+ chartTopic = ws.toString() + json.topic.toString();
chartJsonFlag[chartTopic] = false;
- console.log("[i] chart blob", json.topic, json.maxCount);
+ console.log("[i]", ws, "chart package received", JSON.stringify(chartJsonFlag));
+
var bb = chartJsonBlobArray[chartTopic].getBlob();
let chartJsonReader = new FileReader();
chartJsonReader.readAsText(bb);
@@ -508,9 +512,18 @@
if (itemsJsonPacket) itemsJsonPacket.append(event.data);
if (widgetsJsonPacket) widgetsJsonPacket.append(event.data);
if (scenarioJsonPacket) scenarioJsonPacket.append(event.data);
+
+ var bb = event.data;
+ handleBlob(bb);
+
+ //bb = bb.slice(0, 10);
+ //let testBlobReader = new FileReader();
+ //testBlobReader.readAsText(bb);
+ //testBlobReader.onload = () => {
+ // let testBlobResult = testBlobReader.result;
+ // console.log("[iiiiiiiiii]", testBlobResult);
+ //};
}
- //принимаем данные от всех устройств
- //if (chartJsonFlag[ws]) chartJsonBlob.append(event.data);
if (!chartJsonBlobArray[chartTopic]) chartJsonBlobArray[chartTopic] = new MyBlobBuilder();
if (chartJsonFlag[chartTopic]) chartJsonBlobArray[chartTopic].append(event.data);
@@ -532,6 +545,19 @@
}
}
+ async function handleBlob(blob) {
+ let txt = await blob.text();
+ console.log("txt: ", txt);
+ ////получаем заголовок
+ //var blobHeader = blob.slice(0, 6);
+ //let header = await blobHeader.text();
+ //console.log("header: ", header);
+ ////получаем размер
+ //var blobSize = blob.slice(7, 11);
+ //let size = await blobSize.text();
+ //console.log("size: ", size);
+ }
+
async function onParced() {
if (currentPageName === "/|") {
clearParcedFlags();
@@ -584,17 +610,21 @@
reader.readAsText(bb);
reader.onload = () => {
- let devLayout = JSON.parse(reader.result);
- for (let i = 0; i < devLayout.length; i++) {
- devLayout[i].ws = ws;
+ if (IsJsonParse(reader.result)) {
+ let devLayout = JSON.parse(reader.result);
+ for (let i = 0; i < devLayout.length; i++) {
+ devLayout[i].ws = ws;
+ }
+ layoutJson = layoutJson.concat(devLayout);
+ console.log("[2]", ws, "blob package pushed to layout");
+ sortingLayout(ws);
+ } else {
+ console.log("[E]", "ERROR OF LAYOUT!!!");
}
- layoutJson = layoutJson.concat(devLayout);
- console.log("[2]", ws, "blob package pushed to layout");
- sortingLayout();
};
}
- function sortingLayout() {
+ function sortingLayout(ws) {
//сортируем весь layout по алфавиту
layoutJson.sort(function (a, b) {
if (a.descr < b.descr) {
@@ -630,7 +660,9 @@
});
layoutJson = layoutJson;
- console.log("[3]", "layout sort");
+ console.log("[3]", ws, "layout sort, requested params...");
+ wsSendMsg(ws, "/params|");
+ //onParced(); //удалить
}
function updateAllStatuses(ws) {
@@ -665,7 +697,8 @@
}
//если статус виджета это массив и его нужно накопить
- function apdateWidgetByArray(newStatusJson) {
+ //должна вызываться когда весь layout в сборе
+ async function apdateWidgetByArray(newStatusJson) {
console.log("[i]", "collecting arrays");
let error = true;
if (layoutJson.length > 0) {
@@ -804,10 +837,27 @@
}
if (error) console.log("[E]", "error, widget not found: " + setWidget);
}
- //if (debug) console.log("[i] layout:", JSON.stringify(layout));
+
+ //сортируем весь layout по алфавиту
+ layout.sort(function (a, b) {
+ if (a.descr < b.descr) {
+ return -1;
+ }
+ if (a.descr > b.descr) {
+ return 1;
+ }
+ return 0;
+ });
+
+ for (let i = 0; i < layout.length; i++) {
+ layout[i].order = i;
+ }
+
return layout;
}
+ function layoutOrderForMobileApp() {}
+
function clearData() {
configJson = [];
widgetsJson = [];
@@ -832,11 +882,12 @@
}
function clearParcedFlags() {
- //chartJsonParced = false;
-
+ //не сбрасывай эти флаги они живут сами по себе
//chartJsonFlag = {};
//layoutJsonFlag = {};
+ console.log("[i]", "parced flags cleared");
+
for (const [key, value] of Object.entries(parcedFlags)) {
parcedFlags[key] = false;
}
@@ -1172,21 +1223,21 @@
function startUpdate() {
if (choosingVersion !== undefined) {
- if (choosingVersion === errorsJson.bver) {
- window.alert("Эта версия уже установленна");
+ //if (choosingVersion === errorsJson.bver) {
+ // window.alert("Эта версия уже установленна");
+ //} else {
+ if (confirm("Запустить обновление?")) {
+ console.log("start update...");
+ //запишем выбранную версию в файл на esp
+ wsSendMsg(selectedWs, '/rorre|{"chver":' + choosingVersion + "}");
+ //начнем обновление
+ wsSendMsg(selectedWs, "/update|");
+ rebootingUpdatingInProgress = true;
+ myTimeout = setTimeout(rebootingTask, updatingTimeout);
} else {
- if (confirm("Запустить обновление?")) {
- console.log("start update...");
- //запишем выбранную версию в файл на esp
- wsSendMsg(selectedWs, '/rorre|{"chver":' + choosingVersion + "}");
- //начнем обновление
- wsSendMsg(selectedWs, "/update|");
- rebootingUpdatingInProgress = true;
- myTimeout = setTimeout(rebootingTask, updatingTimeout);
- } else {
- console.log("update canceled");
- }
+ console.log("update canceled");
}
+ //}
} else {
window.alert("Версия не выбрана или сервер недоступен");
}
@@ -1201,6 +1252,11 @@
let p = str.indexOf(found) + found.length;
return str.substring(p);
}
+
+ function test() {
+ wsSendMsg(selectedWs, "/test|");
+ console.log("[i]", "test");
+ }
@@ -1281,6 +1337,9 @@
{#if devMode}
+
+
+
{/if}