From 92dbc1c7867148873b6006a66cbec0234427aec3 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 23 Aug 2022 15:05:18 +0200 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B4=D0=B2?= =?UTF-8?q?=D0=BE=D0=B9=D0=BD=D1=83=D1=8E=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D1=83=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WsServer.cpp | 62 ++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/src/WsServer.cpp b/src/WsServer.cpp index 9915af45..727b55cf 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -50,15 +50,15 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) SerialPrint("E", "WS " + String(num), "Package without header"); } - // page dashboard=================================================================== - //**отправка**// + // Страница веб интерфейса dashboard=================================================================== + // отправляем только файл layout.json // if (headerStr == "/|") { String json = getParamsJson(); standWebSocket.sendTXT(num, json); sendFileToWs("/layout.json", num, 1024); } - // page configutation================================================================ - //**отправка**// + // Страница веб интерфейса configutation================================================================ + //========отправка=========================================================// if (headerStr == "/config|") { sendFileToWs("/items.json", num, 1024); sendFileToWs("/widgets.json", num, 1024); @@ -66,30 +66,24 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendFileToWs("/scenario.json", num, 1024); standWebSocket.sendTXT(num, settingsFlashJson); } - //**сохранение**// + //========сохранение=======================================================// if (headerStr == "/gifnoc|") { writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256); - Serial.println("Start clear"); clearConfigure(); - Serial.println("Start config"); configure("/config.json"); - iotScen.loadScenario("/scenario.json"); } - //**сохранение**// if (headerStr == "/tuoyal|") { writeFileUint8tByFrames("layout.json", payload, length, headerLenth, 256); } - //**сохранение**// if (headerStr == "/oiranecs|") { writeFileUint8tByFrames("scenario.json", payload, length, headerLenth, 256); iotScen.loadScenario("/scenario.json"); - // создаем событие завершения конфигурирования для возможности выполнения блока кода при загрузке IoTItems.push_back((IoTItem*)new externalVariable("{\"id\":\"onStart\",\"val\":1,\"int\":60}")); generateEvent("onStart", ""); } - // page connection=================================================================== - //**отправка**// + // Страница веб интерфейса connection=================================================================== + //========отправка========================================================// if (headerStr == "/connection|") { standWebSocket.sendTXT(num, settingsFlashJson); standWebSocket.sendTXT(num, ssidListHeapJson); @@ -97,20 +91,20 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) //запуск асинхронного сканирования wifi сетей при переходе на страницу соединений // RouterFind(jsonReadStr(settingsFlashJson, F("routerssid"))); } - //**сохранение**// + //========сохранение========================================================// if (headerStr == "/sgnittes|") { writeUint8tToString(payload, length, headerLenth, settingsFlashJson); writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256); standWebSocket.sendTXT(num, errorsHeapJson); addThisDeviceToList(); } - //**отправка**// + //========отправка========================================================// if (headerStr == "/scan|") { //запуск асинхронного сканирования wifi сетей при нажатии выпадающего списка RouterFind(jsonReadStr(settingsFlashJson, F("routerssid"))); standWebSocket.sendTXT(num, ssidListHeapJson); } - //**сохранение**// + //========сохранение========================================================// if (headerStr == "/mqtt|") { standWebSocket.sendTXT(num, settingsFlashJson); //отправляем в ответ новые полученные настройки handleMqttStatus(false, 8); //меняем статус на неопределенный @@ -118,33 +112,33 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) standWebSocket.sendTXT(num, errorsHeapJson); //отправляем что статус неопределен standWebSocket.sendTXT(num, ssidListHeapJson); } - // page list ========================================================================== - //**отправка**// + // Страница веб интерфейса list ========================================================================== + //========отправка========================================================// if (headerStr == "/list|") { standWebSocket.sendTXT(num, devListHeapJson); } - // page system ========================================================================= - //**отправка**// + // траница веб интерфейса system ========================================================================= + //========отправка========================================================// if (headerStr == "/system|") { standWebSocket.sendTXT(num, errorsHeapJson); standWebSocket.sendTXT(num, settingsFlashJson); } - //**сохранение**// + //========сохранение========================================================// //переписать любое поле в errors json if (headerStr == "/rorre|") { writeUint8tValueToJsonString(payload, length, headerLenth, errorsHeapJson); } - // orders ============================================================================== - //**команда перезагрузки esp**// + //Команды веб интерфейса ============================================================================== + //команда перезагрузки esp// if (headerStr == "/reboot|") { ESP.restart(); } - //**команда обновления esp**// + //команда обновления esp// if (headerStr == "/update|") { upgrade_firmware(3); } - // cotrol ============================================================================== + //Прием сообщений cotrol ============================================================================== if (headerStr == "/control|") { String msg; writeUint8tToString(payload, length, headerLenth, msg); @@ -191,6 +185,15 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } } +//публикация статус сообщений +void publishStatusWs(const String& topic, const String& data) { + String path = mqttRootDevice + "/" + topic; //+ "/status"; + String json = "{}"; + jsonWriteStr(json, "status", data); + jsonWriteStr(json, "topic", path); + standWebSocket.broadcastTXT(json); +} + //данные которые мы отправляем в сокеты переодически void periodicWsSend() { standWebSocket.broadcastTXT(devListHeapJson); @@ -235,15 +238,6 @@ void sendFileToWs(const char* filename, uint8_t num, size_t frameSize) { standWebSocket.sendTXT(num, "/end" + String(filename)); } -//публикация статус сообщений -void publishStatusWs(const String& topic, const String& data) { - String path = mqttRootDevice + "/" + topic; //+ "/status"; - String json = "{}"; - jsonWriteStr(json, "status", data); - jsonWriteStr(json, "topic", path); - standWebSocket.broadcastTXT(json); -} - //посылка данных из string void sendStringToWs(const String& msg, uint8_t num, String name) { standWebSocket.sendTXT(num, "/st" + String(name));