mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 23:12:34 +03:00
переписывание api в процессе
This commit is contained in:
366
src/App.svelte
366
src/App.svelte
@@ -66,15 +66,6 @@
|
|||||||
dev: false,
|
dev: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let parcedFlags = {
|
|
||||||
deviceListJson: false,
|
|
||||||
ssidJson: false,
|
|
||||||
errorsJson: false,
|
|
||||||
settingsJson: false,
|
|
||||||
statusJson: false,
|
|
||||||
paramsJson: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
let systemReady = false;
|
let systemReady = false;
|
||||||
|
|
||||||
//update esp
|
//update esp
|
||||||
@@ -82,21 +73,13 @@
|
|||||||
let choosingVersion = undefined;
|
let choosingVersion = undefined;
|
||||||
|
|
||||||
//JSON Files====================================
|
//JSON Files====================================
|
||||||
let configJson = [];
|
|
||||||
let widgetsJson = [];
|
|
||||||
let itemsJson = [];
|
let itemsJson = [];
|
||||||
|
let widgetsJson = [];
|
||||||
|
let configJson = [];
|
||||||
let scenarioTxt = "";
|
let scenarioTxt = "";
|
||||||
|
|
||||||
let chartJsonFlag = {};
|
|
||||||
let layoutJsonFlag = {};
|
|
||||||
//===============================================
|
|
||||||
|
|
||||||
let layoutJson = [];
|
|
||||||
let settingsJson = {};
|
let settingsJson = {};
|
||||||
let errorsJson = {};
|
|
||||||
let ssidJson = {};
|
let ssidJson = {};
|
||||||
let paramsJson = {};
|
let errorsJson = {};
|
||||||
let incDeviceList = [];
|
|
||||||
let deviceList = [];
|
let deviceList = [];
|
||||||
deviceList = [
|
deviceList = [
|
||||||
{
|
{
|
||||||
@@ -107,6 +90,30 @@
|
|||||||
status: false,
|
status: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
let incDeviceList = [];
|
||||||
|
|
||||||
|
//////////////////////////////////
|
||||||
|
let layoutJson = [];
|
||||||
|
|
||||||
|
let paramsJson = {};
|
||||||
|
|
||||||
|
let parsed = {
|
||||||
|
itemsJson: false,
|
||||||
|
widgetsJson: false,
|
||||||
|
configJson: false,
|
||||||
|
scenarioTxt: false,
|
||||||
|
settingsJson: false,
|
||||||
|
ssidJson: false,
|
||||||
|
incDeviceList: false,
|
||||||
|
deviceListJson: false,
|
||||||
|
errorsJson: false,
|
||||||
|
statusJson: false,
|
||||||
|
paramsJson: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
let chartJsonFlag = {};
|
||||||
|
let layoutJsonFlag = {};
|
||||||
|
//===============================================
|
||||||
|
|
||||||
//web sockets
|
//web sockets
|
||||||
let socket = [];
|
let socket = [];
|
||||||
@@ -360,68 +367,67 @@
|
|||||||
let data = event.data;
|
let data = event.data;
|
||||||
if (ws === selectedWs) {
|
if (ws === selectedWs) {
|
||||||
//сборщик deviceList сообщений
|
//сборщик deviceList сообщений
|
||||||
if (data.includes('devicelist_":"')) {
|
//if (data.includes('devicelist_":"')) {
|
||||||
if (IsJsonParse(data)) {
|
// if (IsJsonParse(data)) {
|
||||||
incDeviceList = JSON.parse(data);
|
// incDeviceList = JSON.parse(data);
|
||||||
incDeviceList = incDeviceList;
|
// incDeviceList = incDeviceList;
|
||||||
if (firstDevListRequest) {
|
// if (firstDevListRequest) {
|
||||||
deviceList = incDeviceList;
|
// deviceList = incDeviceList;
|
||||||
deviceList[0].status = true;
|
// deviceList[0].status = true;
|
||||||
} else {
|
// } else {
|
||||||
deviceList = combineArrays(deviceList, incDeviceList);
|
// deviceList = combineArrays(deviceList, incDeviceList);
|
||||||
}
|
// }
|
||||||
firstDevListRequest = false;
|
// firstDevListRequest = false;
|
||||||
deviceList = deviceList;
|
// deviceList = deviceList;
|
||||||
parcedFlags.deviceListJson = true;
|
// parsed.deviceListJson = true;
|
||||||
if (debug) console.log("✔ S", "deviceList parced");
|
// if (debug) console.log("✔ S", "deviceList parced");
|
||||||
onParced();
|
// onParced();
|
||||||
whenDeviceListWasUpdated();
|
// whenDeviceListWasUpdated();
|
||||||
connectToAllDevices();
|
// connectToAllDevices();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
//сборщик ssidJson сообщений
|
//сборщик ssidJson сообщений
|
||||||
if (data.includes('ssids_":"')) {
|
//if (data.includes('ssids_":"')) {
|
||||||
if (IsJsonParse(data)) {
|
// if (IsJsonParse(data)) {
|
||||||
ssidJson = JSON.parse(data);
|
// ssidJson = JSON.parse(data);
|
||||||
ssidJson = ssidJson;
|
// ssidJson = ssidJson;
|
||||||
if (debug) console.log("✔ S", "ssidJson parced");
|
// if (debug) console.log("✔ S", "ssidJson parced");
|
||||||
parcedFlags.ssidJson = true;
|
// parsed.ssidJson = true;
|
||||||
|
//
|
||||||
onParced();
|
// onParced();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
//сборщик errorsJson сообщений
|
//сборщик errorsJson сообщений
|
||||||
if (data.includes('errors_":"')) {
|
//if (data.includes('errors_":"')) {
|
||||||
if (IsJsonParse(data)) {
|
// if (IsJsonParse(data)) {
|
||||||
errorsJson = JSON.parse(data);
|
// errorsJson = JSON.parse(data);
|
||||||
errorsJson = errorsJson;
|
// errorsJson = errorsJson;
|
||||||
parcedFlags.errorsJson = true;
|
// parsed.errorsJson = true;
|
||||||
if (debug) console.log("✔ S", "errorsJson parced");
|
// if (debug) console.log("✔ S", "errorsJson parced");
|
||||||
onParced();
|
// onParced();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
//сборщик settingsJson сообщений
|
//сборщик settingsJson сообщений
|
||||||
if (data.includes('settings_":"')) {
|
//if (data.includes('settings_":"')) {
|
||||||
if (IsJsonParse(data)) {
|
// if (IsJsonParse(data)) {
|
||||||
settingsJson = JSON.parse(data);
|
// settingsJson = JSON.parse(data);
|
||||||
settingsJson = settingsJson;
|
// settingsJson = settingsJson;
|
||||||
//sortingLayout();
|
// //sortingLayout();
|
||||||
parcedFlags.settingsJson = true;
|
// parsed.settingsJson = true;
|
||||||
if (debug) console.log("✔ S", "settingsJson parced");
|
// if (debug) console.log("✔ S", "settingsJson parced");
|
||||||
onParced();
|
// onParced();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
//сборщик log сообщений
|
//сборщик log сообщений
|
||||||
if (data.includes("/log|")) {
|
if (data.includes("/log|")) {
|
||||||
data = data.replace("/log|", "");
|
data = data.replace("/log|", "");
|
||||||
//let msg = data.toString();
|
|
||||||
addCoreMsg(data);
|
addCoreMsg(data);
|
||||||
}
|
}
|
||||||
//метки начала конца пакетов для Blob--------------------------------------------------------------------------//
|
//метки начала конца пакетов для Blob--------------------------------------------------------------------------//
|
||||||
configJsonPacket.handle(data);
|
//configJsonPacket.handle(data);
|
||||||
itemsJsonPacket.handle(data);
|
//itemsJsonPacket.handle(data);
|
||||||
widgetsJsonPacket.handle(data);
|
//widgetsJsonPacket.handle(data);
|
||||||
scenarioJsonPacket.handle(data);
|
//scenarioJsonPacket.handle(data);
|
||||||
}
|
}
|
||||||
//прием от всех устройств
|
//прием от всех устройств
|
||||||
//сборщик paramsJson сообщений
|
//сборщик paramsJson сообщений
|
||||||
@@ -508,21 +514,7 @@
|
|||||||
if (event.data instanceof Blob) {
|
if (event.data instanceof Blob) {
|
||||||
//принимаем данные только для выбранного устройства
|
//принимаем данные только для выбранного устройства
|
||||||
if (ws === selectedWs) {
|
if (ws === selectedWs) {
|
||||||
if (configJsonPacket) configJsonPacket.append(event.data);
|
parseBlob(event.data);
|
||||||
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 (!chartJsonBlobArray[chartTopic]) chartJsonBlobArray[chartTopic] = new MyBlobBuilder();
|
if (!chartJsonBlobArray[chartTopic]) chartJsonBlobArray[chartTopic] = new MyBlobBuilder();
|
||||||
@@ -545,60 +537,188 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleBlob(blob) {
|
async function parseBlob(blob) {
|
||||||
let txt = await blob.text();
|
//получаем заголовок
|
||||||
console.log("txt: ", txt);
|
var blobHeader = blob.slice(0, 6);
|
||||||
////получаем заголовок
|
let header = await blobHeader.text();
|
||||||
//var blobHeader = blob.slice(0, 6);
|
|
||||||
//let header = await blobHeader.text();
|
|
||||||
//console.log("header: ", header);
|
//console.log("header: ", header);
|
||||||
////получаем размер
|
//получаем размер
|
||||||
//var blobSize = blob.slice(7, 11);
|
var blobSize = blob.slice(7, 11);
|
||||||
//let size = await blobSize.text();
|
let size = await blobSize.text();
|
||||||
//console.log("size: ", size);
|
//console.log("size: ", size);
|
||||||
|
|
||||||
|
if (header === "itemsj") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
itemsJson = out.json;
|
||||||
|
parsed.itemsJson = true;
|
||||||
|
console.log("[✔]", "itemsJson: ", itemsJson);
|
||||||
|
} else {
|
||||||
|
parsed.itemsJson = false;
|
||||||
|
console.log("[e]", "itemsJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "widget") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
widgetsJson = out.json;
|
||||||
|
parsed.widgetsJson = true;
|
||||||
|
console.log("[✔]", "widgetsJson: ", widgetsJson);
|
||||||
|
} else {
|
||||||
|
parsed.widgetsJson = false;
|
||||||
|
console.log("[e]", "widgetsJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "config") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
configJson = out.json;
|
||||||
|
parsed.configJson = true;
|
||||||
|
console.log("[✔]", "configJson: ", configJson);
|
||||||
|
} else {
|
||||||
|
parsed.configJson = false;
|
||||||
|
console.log("[e]", "configJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "scenar") {
|
||||||
|
scenarioTxt = await getPayloadAsTxt(blob, size);
|
||||||
|
console.log("[i]", "scenarioTxt: ", scenarioTxt);
|
||||||
|
}
|
||||||
|
if (header === "settin") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
settingsJson = out.json;
|
||||||
|
parsed.settingsJson = true;
|
||||||
|
console.log("[✔]", "settingsJson: ", settingsJson);
|
||||||
|
} else {
|
||||||
|
parsed.settingsJson = false;
|
||||||
|
console.log("[e]", "settingsJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "ssidli") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
ssidJson = out.json;
|
||||||
|
parsed.ssidJson = true;
|
||||||
|
console.log("[✔]", "ssidJson: ", ssidJson);
|
||||||
|
} else {
|
||||||
|
parsed.ssidJson = false;
|
||||||
|
console.log("[e]", "ssidJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "errors") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
errorsJson = out.json;
|
||||||
|
parsed.errorsJson = true;
|
||||||
|
console.log("[✔]", "errorsJson: ", errorsJson);
|
||||||
|
} else {
|
||||||
|
parsed.errorsJson = false;
|
||||||
|
console.log("[e]", "errorsJson parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (header === "devlis") {
|
||||||
|
let out = {};
|
||||||
|
if (await getPayloadAsJson(blob, size, out)) {
|
||||||
|
incDeviceList = out.json;
|
||||||
|
parsed.incDeviceList = true;
|
||||||
|
console.log("[✔]", "incDeviceList: ", incDeviceList);
|
||||||
|
handleDeviseList();
|
||||||
|
} else {
|
||||||
|
parsed.incDeviceList = false;
|
||||||
|
console.log("[e]", "incDeviceList parse error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onParced();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getJsonAsJson(blob, size, out) {
|
||||||
|
let partBlob = blob.slice(12, size);
|
||||||
|
let txt = await partBlob.text();
|
||||||
|
try {
|
||||||
|
out.json = JSON.parse(txt);
|
||||||
|
out.parse = true;
|
||||||
|
} catch (e) {
|
||||||
|
if (debug) console.log("[e]", "json parce error: ", txt);
|
||||||
|
out.parse = false;
|
||||||
|
}
|
||||||
|
return out.parse;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getPayloadAsJson(blob, size, out) {
|
||||||
|
let partBlob = blob.slice(size, blob.length);
|
||||||
|
let txt = await partBlob.text();
|
||||||
|
try {
|
||||||
|
out.json = JSON.parse(txt);
|
||||||
|
out.parse = true;
|
||||||
|
} catch (e) {
|
||||||
|
if (debug) console.log("[e]", "json parse error: ", txt);
|
||||||
|
out.parse = false;
|
||||||
|
}
|
||||||
|
return out.parse;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getPayloadAsTxt(blob, size) {
|
||||||
|
let payloadBlob = blob.slice(size, blob.length);
|
||||||
|
let payload = await payloadBlob.text();
|
||||||
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function onParced() {
|
async function onParced() {
|
||||||
if (currentPageName === "/|") {
|
//if (currentPageName === "/|") {
|
||||||
clearParcedFlags();
|
// clearParcedFlags();
|
||||||
if (debug) console.log("✔", "dashboard data received");
|
// if (debug) console.log("✔", "dashboard data received");
|
||||||
pageReady.dash = true;
|
// pageReady.dash = true;
|
||||||
}
|
//}
|
||||||
if (currentPageName === "/config|" && itemsJsonPacket.isParced && widgetsJsonPacket.isParced && configJsonPacket.isParced && scenarioJsonPacket.isParced && parcedFlags.settingsJson) {
|
|
||||||
clearParcedFlags();
|
|
||||||
|
|
||||||
itemsJson = itemsJsonPacket.getData;
|
|
||||||
widgetsJson = widgetsJsonPacket.getData;
|
|
||||||
configJson = configJsonPacket.getData;
|
|
||||||
scenarioTxt = scenarioJsonPacket.getData;
|
|
||||||
|
|
||||||
|
if (currentPageName === "/config|" && parsed.itemsJson && parsed.widgetsJson && parsed.configJson && parsed.settingsJson) {
|
||||||
|
clearParcedFlags();
|
||||||
pageReady.config = true;
|
pageReady.config = true;
|
||||||
|
|
||||||
if (debug) console.log("✔✔", "config page parced");
|
if (debug) console.log("✔✔", "config page parced");
|
||||||
}
|
}
|
||||||
if (currentPageName === "/connection|" && parcedFlags.ssidJson && parcedFlags.settingsJson && parcedFlags.errorsJson) {
|
if (currentPageName === "/connection|" && parsed.ssidJson && parsed.settingsJson && parsed.errorsJson) {
|
||||||
clearParcedFlags();
|
clearParcedFlags();
|
||||||
if (debug) console.log("✔✔", "connection page parced");
|
if (debug) console.log("✔✔", "connection page parced");
|
||||||
pageReady.connection = true;
|
pageReady.connection = true;
|
||||||
}
|
}
|
||||||
if (currentPageName === "/list|" && parcedFlags.deviceListJson) {
|
|
||||||
|
if (currentPageName === "/list|" && parsed.deviceListJson) {
|
||||||
clearParcedFlags();
|
clearParcedFlags();
|
||||||
if (debug) console.log("✔✔", "list page parced");
|
if (debug) console.log("✔✔", "list page parced");
|
||||||
pageReady.list = true;
|
pageReady.list = true;
|
||||||
}
|
}
|
||||||
if (currentPageName === "/system|" && parcedFlags.errorsJson && parcedFlags.settingsJson) {
|
|
||||||
|
if (currentPageName === "/system|" && parsed.errorsJson && parsed.settingsJson) {
|
||||||
clearParcedFlags();
|
clearParcedFlags();
|
||||||
getVersionsList();
|
getVersionsList();
|
||||||
if (debug) console.log("✔✔", "system page parced");
|
if (debug) console.log("✔✔", "system page parced");
|
||||||
pageReady.system = true;
|
pageReady.system = true;
|
||||||
}
|
}
|
||||||
if (currentPageName === "/dev|" && parcedFlags.errorsJson && parcedFlags.settingsJson && configJsonPacket.isParced && itemsJsonPacket.isParced) {
|
|
||||||
clearParcedFlags();
|
// if (currentPageName === "/dev|" && parsed.errorsJson && parsed.settingsJson && configJsonPacket.isParced && itemsJsonPacket.isParced) {
|
||||||
configJson = configJsonPacket.getData;
|
// clearParcedFlags();
|
||||||
itemsJson = itemsJsonPacket.getData;
|
// configJson = configJsonPacket.getData;
|
||||||
if (debug) console.log("✔✔", "dev page parced");
|
// itemsJson = itemsJsonPacket.getData;
|
||||||
pageReady.dev = true;
|
// if (debug) console.log("✔✔", "dev page parced");
|
||||||
|
// pageReady.dev = true;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleDeviseList() {
|
||||||
|
if (firstDevListRequest) {
|
||||||
|
deviceList = incDeviceList;
|
||||||
|
deviceList[0].status = true;
|
||||||
|
} else {
|
||||||
|
deviceList = combineArrays(deviceList, incDeviceList);
|
||||||
}
|
}
|
||||||
|
firstDevListRequest = false;
|
||||||
|
deviceList = deviceList;
|
||||||
|
parsed.deviceListJson = true;
|
||||||
|
if (debug) console.log("[✔]", "deviceList parced");
|
||||||
|
onParced();
|
||||||
|
whenDeviceListWasUpdated();
|
||||||
|
connectToAllDevices();
|
||||||
}
|
}
|
||||||
|
|
||||||
//***********************************************************dashboard***************************************************************/
|
//***********************************************************dashboard***************************************************************/
|
||||||
@@ -888,8 +1008,8 @@
|
|||||||
|
|
||||||
console.log("[i]", "parced flags cleared");
|
console.log("[i]", "parced flags cleared");
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(parcedFlags)) {
|
for (const [key, value] of Object.entries(parsed)) {
|
||||||
parcedFlags[key] = false;
|
parsed[key] = false;
|
||||||
}
|
}
|
||||||
clearFlags();
|
clearFlags();
|
||||||
}
|
}
|
||||||
@@ -1254,8 +1374,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test() {
|
function test() {
|
||||||
wsSendMsg(selectedWs, "/test|");
|
//wsSendMsg(selectedWs, "/test|");
|
||||||
console.log("[i]", "test");
|
//console.log("[i]", "test");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user