mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-30 03:49:17 +03:00
тест
This commit is contained in:
@@ -4,12 +4,12 @@
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
|
||||||
<title>IoT Manager 4.4.0</title>
|
<title>IoT Manager 4.4.1</title>
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/favicon.ico" />
|
<link rel="icon" type="image/png" href="/favicon.ico" />
|
||||||
<link rel="stylesheet" href="/build/bundle.css?440" />
|
<link rel="stylesheet" href="/build/bundle.css?441" />
|
||||||
|
|
||||||
<script defer src="/build/bundle.js?440"></script>
|
<script defer src="/build/bundle.js?441"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body></body>
|
<body></body>
|
||||||
|
|||||||
131
src/App.svelte
131
src/App.svelte
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
import Alarm from "./components/Alarm.svelte";
|
import Alarm from "./components/Alarm.svelte";
|
||||||
import Progress from "./components/Progress.svelte";
|
import Progress from "./components/Progress.svelte";
|
||||||
|
import Card from "./components/Card.svelte";
|
||||||
|
|
||||||
//import Modal from "./components/Modal.svelte";
|
//import Modal from "./components/Modal.svelte";
|
||||||
import DashboardPage from "./pages/Dashboard.svelte";
|
import DashboardPage from "./pages/Dashboard.svelte";
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
//****************************************************variable section**********************************************************/
|
//****************************************************variable section**********************************************************/
|
||||||
//******************************************************************************************************************************/
|
//******************************************************************************************************************************/
|
||||||
let myip = document.location.hostname;
|
let myip = document.location.hostname;
|
||||||
if (devMode) myip = "192.168.88.238";
|
if (devMode) myip = "192.168.88.234";
|
||||||
|
|
||||||
//Flags
|
//Flags
|
||||||
let firstDevListRequest = true;
|
let firstDevListRequest = true;
|
||||||
@@ -146,7 +147,7 @@
|
|||||||
let currentPageName = undefined;
|
let currentPageName = undefined;
|
||||||
|
|
||||||
var chartJsonBlobArray = [];
|
var chartJsonBlobArray = [];
|
||||||
let chartTopic;
|
let chartTopic = "";
|
||||||
var chartJsonBlob = new MyBlobBuilder();
|
var chartJsonBlob = new MyBlobBuilder();
|
||||||
var layoutJsonBlobArray = [];
|
var layoutJsonBlobArray = [];
|
||||||
|
|
||||||
@@ -257,7 +258,7 @@
|
|||||||
firstDevListRequest = true;
|
firstDevListRequest = true;
|
||||||
connectToAllDevices();
|
connectToAllDevices();
|
||||||
wsTestMsgTask();
|
wsTestMsgTask();
|
||||||
sortingLayout();
|
//sortingLayout();
|
||||||
});
|
});
|
||||||
|
|
||||||
//****************************************************web sockets section******************************************************/
|
//****************************************************web sockets section******************************************************/
|
||||||
@@ -426,13 +427,14 @@
|
|||||||
//сборщик paramsJson сообщений
|
//сборщик paramsJson сообщений
|
||||||
if (data.includes('"params_":"')) {
|
if (data.includes('"params_":"')) {
|
||||||
if (IsJsonParse(data)) {
|
if (IsJsonParse(data)) {
|
||||||
|
console.log("[4.1]", ws, "dev params", data);
|
||||||
//как добавить в объект json новый объект
|
//как добавить в объект json новый объект
|
||||||
paramsJson = {
|
paramsJson = {
|
||||||
...paramsJson,
|
...paramsJson,
|
||||||
...JSON.parse(data),
|
...JSON.parse(data),
|
||||||
};
|
};
|
||||||
paramsJson = paramsJson;
|
paramsJson = paramsJson;
|
||||||
console.log("[4]", ws, "collecting params");
|
console.log("[4.2]", ws, "global params", paramsJson);
|
||||||
updateAllStatuses(ws);
|
updateAllStatuses(ws);
|
||||||
onParced();
|
onParced();
|
||||||
}
|
}
|
||||||
@@ -440,26 +442,28 @@
|
|||||||
//сборщик layoutJson пакетов
|
//сборщик layoutJson пакетов
|
||||||
if (data === "/st/layout.json") {
|
if (data === "/st/layout.json") {
|
||||||
layoutJsonFlag[ws] = true;
|
layoutJsonFlag[ws] = true;
|
||||||
|
console.log("[1]", ws, "layout package start", layoutJsonFlag);
|
||||||
}
|
}
|
||||||
if (data === "/end/layout.json") {
|
if (data === "/end/layout.json") {
|
||||||
layoutJsonFlag[ws] = false;
|
layoutJsonFlag[ws] = false;
|
||||||
console.log("[1]", ws, "blob package received");
|
console.log("[1]", ws, "layout package received", layoutJsonFlag);
|
||||||
//как только прилетел весь блоб мы начнем его читать ридером и заодно запросим json-ы всех параметров
|
//как только прилетел весь блоб мы начнем его читать ридером и заодно запросим json-ы всех параметров
|
||||||
combineLayoutsInOne(ws);
|
combineLayoutsInOne(ws);
|
||||||
wsSendMsg(ws, "/params|");
|
|
||||||
}
|
}
|
||||||
//сборщик chartJson пакетов
|
//сборщик chartJson пакетов
|
||||||
if (data.includes("/st/chart.json|")) {
|
if (data.includes("/st/chart.json|")) {
|
||||||
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
|
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
|
||||||
chartTopic = json.topic;
|
chartTopic = ws.toString() + json.topic.toString();
|
||||||
chartJsonFlag[chartTopic] = true;
|
chartJsonFlag[chartTopic] = true;
|
||||||
|
console.log("[i]", ws, "chart package start", JSON.stringify(chartJsonFlag));
|
||||||
}
|
}
|
||||||
if (data.includes("/end/chart.json|")) {
|
if (data.includes("/end/chart.json|")) {
|
||||||
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
|
let json = JSON.parse(deleteBeforeDelimiter(data, "|"));
|
||||||
chartTopic = json.topic;
|
chartTopic = ws.toString() + json.topic.toString();
|
||||||
chartJsonFlag[chartTopic] = false;
|
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();
|
var bb = chartJsonBlobArray[chartTopic].getBlob();
|
||||||
let chartJsonReader = new FileReader();
|
let chartJsonReader = new FileReader();
|
||||||
chartJsonReader.readAsText(bb);
|
chartJsonReader.readAsText(bb);
|
||||||
@@ -508,9 +512,18 @@
|
|||||||
if (itemsJsonPacket) itemsJsonPacket.append(event.data);
|
if (itemsJsonPacket) itemsJsonPacket.append(event.data);
|
||||||
if (widgetsJsonPacket) widgetsJsonPacket.append(event.data);
|
if (widgetsJsonPacket) widgetsJsonPacket.append(event.data);
|
||||||
if (scenarioJsonPacket) scenarioJsonPacket.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 (!chartJsonBlobArray[chartTopic]) chartJsonBlobArray[chartTopic] = new MyBlobBuilder();
|
||||||
if (chartJsonFlag[chartTopic]) chartJsonBlobArray[chartTopic].append(event.data);
|
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() {
|
async function onParced() {
|
||||||
if (currentPageName === "/|") {
|
if (currentPageName === "/|") {
|
||||||
clearParcedFlags();
|
clearParcedFlags();
|
||||||
@@ -584,17 +610,21 @@
|
|||||||
reader.readAsText(bb);
|
reader.readAsText(bb);
|
||||||
|
|
||||||
reader.onload = () => {
|
reader.onload = () => {
|
||||||
let devLayout = JSON.parse(reader.result);
|
if (IsJsonParse(reader.result)) {
|
||||||
for (let i = 0; i < devLayout.length; i++) {
|
let devLayout = JSON.parse(reader.result);
|
||||||
devLayout[i].ws = ws;
|
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 по алфавиту
|
//сортируем весь layout по алфавиту
|
||||||
layoutJson.sort(function (a, b) {
|
layoutJson.sort(function (a, b) {
|
||||||
if (a.descr < b.descr) {
|
if (a.descr < b.descr) {
|
||||||
@@ -630,7 +660,9 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
layoutJson = layoutJson;
|
layoutJson = layoutJson;
|
||||||
console.log("[3]", "layout sort");
|
console.log("[3]", ws, "layout sort, requested params...");
|
||||||
|
wsSendMsg(ws, "/params|");
|
||||||
|
//onParced(); //удалить
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateAllStatuses(ws) {
|
function updateAllStatuses(ws) {
|
||||||
@@ -665,7 +697,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//если статус виджета это массив и его нужно накопить
|
//если статус виджета это массив и его нужно накопить
|
||||||
function apdateWidgetByArray(newStatusJson) {
|
//должна вызываться когда весь layout в сборе
|
||||||
|
async function apdateWidgetByArray(newStatusJson) {
|
||||||
console.log("[i]", "collecting arrays");
|
console.log("[i]", "collecting arrays");
|
||||||
let error = true;
|
let error = true;
|
||||||
if (layoutJson.length > 0) {
|
if (layoutJson.length > 0) {
|
||||||
@@ -804,10 +837,27 @@
|
|||||||
}
|
}
|
||||||
if (error) console.log("[E]", "error, widget not found: " + setWidget);
|
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;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function layoutOrderForMobileApp() {}
|
||||||
|
|
||||||
function clearData() {
|
function clearData() {
|
||||||
configJson = [];
|
configJson = [];
|
||||||
widgetsJson = [];
|
widgetsJson = [];
|
||||||
@@ -832,11 +882,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function clearParcedFlags() {
|
function clearParcedFlags() {
|
||||||
//chartJsonParced = false;
|
//не сбрасывай эти флаги они живут сами по себе
|
||||||
|
|
||||||
//chartJsonFlag = {};
|
//chartJsonFlag = {};
|
||||||
//layoutJsonFlag = {};
|
//layoutJsonFlag = {};
|
||||||
|
|
||||||
|
console.log("[i]", "parced flags cleared");
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(parcedFlags)) {
|
for (const [key, value] of Object.entries(parcedFlags)) {
|
||||||
parcedFlags[key] = false;
|
parcedFlags[key] = false;
|
||||||
}
|
}
|
||||||
@@ -1172,21 +1223,21 @@
|
|||||||
|
|
||||||
function startUpdate() {
|
function startUpdate() {
|
||||||
if (choosingVersion !== undefined) {
|
if (choosingVersion !== undefined) {
|
||||||
if (choosingVersion === errorsJson.bver) {
|
//if (choosingVersion === errorsJson.bver) {
|
||||||
window.alert("Эта версия уже установленна");
|
// 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 {
|
} else {
|
||||||
if (confirm("Запустить обновление?")) {
|
console.log("update canceled");
|
||||||
console.log("start update...");
|
|
||||||
//запишем выбранную версию в файл на esp
|
|
||||||
wsSendMsg(selectedWs, '/rorre|{"chver":' + choosingVersion + "}");
|
|
||||||
//начнем обновление
|
|
||||||
wsSendMsg(selectedWs, "/update|");
|
|
||||||
rebootingUpdatingInProgress = true;
|
|
||||||
myTimeout = setTimeout(rebootingTask, updatingTimeout);
|
|
||||||
} else {
|
|
||||||
console.log("update canceled");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
//}
|
||||||
} else {
|
} else {
|
||||||
window.alert("Версия не выбрана или сервер недоступен");
|
window.alert("Версия не выбрана или сервер недоступен");
|
||||||
}
|
}
|
||||||
@@ -1201,6 +1252,11 @@
|
|||||||
let p = str.indexOf(found) + found.length;
|
let p = str.indexOf(found) + found.length;
|
||||||
return str.substring(p);
|
return str.substring(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test() {
|
||||||
|
wsSendMsg(selectedWs, "/test|");
|
||||||
|
console.log("[i]", "test");
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col h-screen bg-gray-50">
|
<div class="flex flex-col h-screen bg-gray-50">
|
||||||
@@ -1281,6 +1337,9 @@
|
|||||||
</Route>
|
</Route>
|
||||||
{#if devMode}
|
{#if devMode}
|
||||||
<Route path="/dev">
|
<Route path="/dev">
|
||||||
|
<Card title="Кнопка">
|
||||||
|
<button class="btn-lg" on:click={() => test()}>{"Тест"}</button>
|
||||||
|
</Card>
|
||||||
<DevPage show={pageReady.dev} layoutJson={layoutJson} errorsJson={errorsJson} settingsJson={settingsJson} configJson={configJson} itemsJson={itemsJson} paramsJson={paramsJson} />
|
<DevPage show={pageReady.dev} layoutJson={layoutJson} errorsJson={errorsJson} settingsJson={settingsJson} configJson={configJson} itemsJson={itemsJson} paramsJson={paramsJson} />
|
||||||
</Route>
|
</Route>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user