разбор json пришедшего с esp

This commit is contained in:
Dmitry Borisenko
2021-12-25 00:20:49 +01:00
parent a618ddd1e2
commit 5ee3956246

View File

@@ -15,7 +15,7 @@
//==================================constants section======================================== //==================================constants section========================================
let debug = true; let debug = true;
let LOG_MAX_MESSAGES = 10; let LOG_MAX_MESSAGES = 10;
let reconnectTimeout = 10000; let reconnectTimeout = 60000;
//=================================variable section========================================== //=================================variable section==========================================
let myip = document.location.hostname; let myip = document.location.hostname;
@@ -137,6 +137,7 @@
//configuration //configuration
let config = []; let config = [];
let buf = [];
//web sockets //web sockets
let socket = []; let socket = [];
@@ -219,7 +220,8 @@
if (ip === "error") { if (ip === "error") {
if (debug) console.log("[e]", "device list wrong"); if (debug) console.log("[e]", "device list wrong");
} else { } else {
socket[ws] = new WebSocket("ws://" + ip + "/ws"); socket[ws] = new WebSocket("ws://" + ip + ":81");
//socket[ws] = new WebSocket("ws://" + ip + "/ws");
if (debug) console.log("[i]", ip, "started connecting..."); if (debug) console.log("[i]", ip, "started connecting...");
} }
} }
@@ -246,19 +248,24 @@
}); });
socket[ws].addEventListener("message", function (event) { socket[ws].addEventListener("message", function (event) {
let data = event.data.toString(); let data = event.data.toString();
if (debug) console.log("[i]", "data:", data); //if (debug) console.log("[i]", "data:", data);
if (data.includes("[log]")) {
//if (data.includes("[log]")) { data = data.replace("[log]", "");
// data = data.replace("[log]", ""); addCoreMsg(data);
// addCoreMsg(data); //if (debug) console.log("[i]", "log data:", data);
// //if (debug) console.log("[i]", "log data:", data); } else if (data.includes("/config.json")) {
//} else if (data.includes("[/setup.json]")) { data = data.replace("/config.json", "");
// if (debug) console.log("[i]", "config data:", data); buf = buf + data;
// data = data.replace("[/setup.json]", ""); if (data.includes("]}")) {
// data = JSON.parse(data); buf = buf.replace("]}", "]");
// config.push(data); if (IsJsonParse(buf)) {
// config = config; config = JSON.parse(buf);
//} buf = [];
config = config;
if (debug) console.log("[i]", "parsed");
}
}
}
}); });
socket[ws].addEventListener("close", (event) => { socket[ws].addEventListener("close", (event) => {
if (debug) console.log("[e]", ip, "connection closed"); if (debug) console.log("[e]", ip, "connection closed");
@@ -349,6 +356,8 @@
function dropdownChange() { function dropdownChange() {
socketConnected = selectedDeviceData.status; socketConnected = selectedDeviceData.status;
wsSelected = selectedDeviceData.ws; wsSelected = selectedDeviceData.ws;
clearData();
sendCurrentPageName();
if (debug) console.log("[i]", "user selected device:", selectedDeviceData.name); if (debug) console.log("[i]", "user selected device:", selectedDeviceData.name);
if (selectedDeviceData.ip === myip) { if (selectedDeviceData.ip === myip) {
if (debug) console.log("[i]", "user selected original device", selectedDeviceData.name); if (debug) console.log("[i]", "user selected original device", selectedDeviceData.name);
@@ -372,9 +381,13 @@
} }
} }
function clearData() {
config = [];
}
//navigation=========================================================================================== //navigation===========================================================================================
function handleNavigation() { function handleNavigation() {
config = []; clearData();
currentPageName = $router.path.toString(); currentPageName = $router.path.toString();
console.log("[i]", "user on page:", currentPageName); console.log("[i]", "user on page:", currentPageName);
sendCurrentPageName(); sendCurrentPageName();
@@ -412,6 +425,15 @@
return json; return json;
}; };
function IsJsonParse(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
//post и get запросы================================================================================= //post и get запросы=================================================================================
//запрос с помощью которого можно отредактировать любой файл на esp //запрос с помощью которого можно отредактировать любой файл на esp
//editRequest("192.168.88.235", "data data data data", "file.json") //editRequest("192.168.88.235", "data data data data", "file.json")
@@ -459,6 +481,12 @@
} }
} }
function pushConfigToEsp() {
//config.forEach((element) => {
wsSendMsg(wsSelected, JSON.stringify(config));
//});
}
//initialisation======================================================================================= //initialisation=======================================================================================
onMount(async () => { onMount(async () => {
console.log("[i]", "mounted"); console.log("[i]", "mounted");
@@ -568,7 +596,7 @@
{/each} {/each}
</tbody> </tbody>
</table> </table>
<button class="long-button">{"Сохранить"}</button> <button class="long-button" on:click={() => pushConfigToEsp()}>{"Сохранить"}</button>
</Card> </Card>
</div> </div>
</Route> </Route>