diff --git a/include/ESPConfiguration.h b/include/ESPConfiguration.h index d2196696..7f22d53c 100644 --- a/include/ESPConfiguration.h +++ b/include/ESPConfiguration.h @@ -5,4 +5,5 @@ extern std::vector IoTItems; // вектор ссылок базового класса IoTItem - список всех запущенных сенсоров extern void configure(String path); +void clearConfigure(); extern IoTItem* myIoTItem; diff --git a/include/WsServer.h b/include/WsServer.h index ed4788fe..f31c041d 100644 --- a/include/WsServer.h +++ b/include/WsServer.h @@ -2,6 +2,7 @@ #include "Global.h" #include "Utils/WiFiUtils.h" #include "DeviceList.h" +#include "ESPConfiguration.h" #ifdef STANDARD_WEB_SOCKETS extern void standWebSocketsInit(); diff --git a/src/ESPConfiguration.cpp b/src/ESPConfiguration.cpp index 6fe402e4..436f8a82 100644 --- a/src/ESPConfiguration.cpp +++ b/src/ESPConfiguration.cpp @@ -29,4 +29,12 @@ void configure(String path) { } } file.close(); +} + +void clearConfigure() { + Serial.printf("Start clearing config\n"); + for (unsigned int i = 0; i < IoTItems.size(); i++) { + if (IoTItems[i]) delete IoTItems[i]; + } + IoTItems.clear(); } \ No newline at end of file diff --git a/src/WsServer.cpp b/src/WsServer.cpp index 1038e690..a619ea34 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -71,6 +71,8 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) //**сохранение**// if (headerStr == "/gifnoc|") { writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256); + clearConfigure(); + configure("/config.json"); } // page connection=================================================================== //**отправка**//