From 8d31bcb5ddd391f776d77847be6fbf81ea5bc868 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 4 Aug 2020 02:21:20 +0200 Subject: [PATCH 01/96] Start to make constructor --- data/conf.csv | 1 + data/items/button-in.txt | 1 + data/items/button-out-i.txt | 1 + data/items/button-out.txt | 1 + data/items/pwm-out.txt | 1 + data/set.device.json | 1 + data/setn.device.json | 65 +++++++++++++++++++++++++++++++++++++ include/Class/LineParsing.h | 2 +- include/Utils/FileUtils.h | 5 +++ src/Logging.cpp | 2 +- src/Utils/FileUtils.cpp | 13 +++++++- src/Web.cpp | 12 ++++++- src/Widgets.cpp | 6 ++-- src/udp.cpp | 4 +-- 14 files changed, 106 insertions(+), 9 deletions(-) create mode 100644 data/conf.csv create mode 100644 data/items/button-in.txt create mode 100644 data/items/button-out-i.txt create mode 100644 data/items/button-out.txt create mode 100644 data/items/pwm-out.txt create mode 100644 data/setn.device.json diff --git a/data/conf.csv b/data/conf.csv new file mode 100644 index 00000000..40b35ae1 --- /dev/null +++ b/data/conf.csv @@ -0,0 +1 @@ +Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета \ No newline at end of file diff --git a/data/items/button-in.txt b/data/items/button-in.txt new file mode 100644 index 00000000..d01c6f0b --- /dev/null +++ b/data/items/button-in.txt @@ -0,0 +1 @@ +0;button-in;switch1;toggle;Кнопки;Свет;1;pin[2];db[20] \ No newline at end of file diff --git a/data/items/button-out-i.txt b/data/items/button-out-i.txt new file mode 100644 index 00000000..3db63e7f --- /dev/null +++ b/data/items/button-out-i.txt @@ -0,0 +1 @@ +0;button-out;light1;toggle;Кнопки;Свет;1;pin[12];inv[1];st[1] \ No newline at end of file diff --git a/data/items/button-out.txt b/data/items/button-out.txt new file mode 100644 index 00000000..3c6ba8c0 --- /dev/null +++ b/data/items/button-out.txt @@ -0,0 +1 @@ +0;button-out;light1;toggle;Кнопки;Свет;1;pin[12];st[0] \ No newline at end of file diff --git a/data/items/pwm-out.txt b/data/items/pwm-out.txt new file mode 100644 index 00000000..41eec52d --- /dev/null +++ b/data/items/pwm-out.txt @@ -0,0 +1 @@ +0;pwm-out;volume;range;Кнопки;Свет;1;pin[12];st[500] \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index f890fa5e..340d21b7 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -91,6 +91,7 @@ "action": "/set?devinit", "class": "btn btn-block btn-default" }, + { "type": "h2", "title": "Сценарии" diff --git a/data/setn.device.json b/data/setn.device.json new file mode 100644 index 00000000..b6e813be --- /dev/null +++ b/data/setn.device.json @@ -0,0 +1,65 @@ +{ + "configs": [ + "/config.setup.json", + "/config.option.json", + "/config.live.json", + "/lang/lang.ru.json" + ], + "class": "col-sm-offset-1 col-sm-10", + "content": [ + { + "type": "h5", + "title": "{{name}}", + "class": "alert-default" + }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "dropdown", + "name": "help-url", + "class": "btn btn-default", + "style": "display:inline", + "title": { + "#": "Выберите элемент из списка", + "/set?element=button-out": "1.Кнопка управляющая пином", + "/set?element=button-out-i": "2.Кнопка управляющая пином с инверсией", + "/set?element=pwm-out": "3.Широтно импульсная подуляция", + "/set?element=button-in": "4.Физическая кнопка" + } + }, + { + "type": "hr" + }, + { + "type": "csv", + "title": [ + "checkbox", + "html", + "text", + "text", + "text", + "text", + "text" + ], + "state": "conf.csv", + "style": "width:100%;", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "link", + "title": "Удалить все", + "action": "/set?cleanconf", + "class": "btn btn-block btn-default" + } + ] +} \ No newline at end of file diff --git a/include/Class/LineParsing.h b/include/Class/LineParsing.h index 884510b9..53481c9f 100644 --- a/include/Class/LineParsing.h +++ b/include/Class/LineParsing.h @@ -135,7 +135,7 @@ class LineParsing { #ifdef LAYOUT_IN_RAM all_widgets += widget + "\r\n"; #else - addFile("layout.txt", buf); + addFileLn("layout.txt", buf); #endif } diff --git a/include/Utils/FileUtils.h b/include/Utils/FileUtils.h index af4dadc9..da2688ac 100644 --- a/include/Utils/FileUtils.h +++ b/include/Utils/FileUtils.h @@ -35,6 +35,11 @@ File seekFile(const String& filename, size_t position = 0); */ const String readFileString(const String& filename, const String& to_find); +/* +* Добовление строки в файл +*/ +const String addFileLn(const String& filename, const String& str); + /* * Добовление строки в файл */ diff --git a/src/Logging.cpp b/src/Logging.cpp index 0abe9fb5..ab44bba6 100644 --- a/src/Logging.cpp +++ b/src/Logging.cpp @@ -94,7 +94,7 @@ void deleteOldDate(const String filename, size_t max_lines_cnt, String payload) } } else { if (timeNow->hasTimeSynced()) { - addFile(filename, timeNow->getTimeUnix() + " " + payload); + addFileLn(filename, timeNow->getTimeUnix() + " " + payload); } } } diff --git a/src/Utils/FileUtils.cpp b/src/Utils/FileUtils.cpp index be3c4e5a..0ec732c3 100644 --- a/src/Utils/FileUtils.cpp +++ b/src/Utils/FileUtils.cpp @@ -51,7 +51,7 @@ const String readFileString(const String& filename, const String& to_find) { return res; } -const String addFile(const String& filename, const String& str) { +const String addFileLn(const String& filename, const String& str) { String path = filepath(filename); auto file = LittleFS.open(path, "a"); if (!file) { @@ -62,6 +62,17 @@ const String addFile(const String& filename, const String& str) { return "sucсess"; } +const String addFile(const String& filename, const String& str) { + String path = filepath(filename); + auto file = LittleFS.open(path, "a"); + if (!file) { + return "failed"; + } + file.print(str); + file.close(); + return "sucсess"; +} + bool copyFile(const String& src, const String& dst, bool overwrite) { String srcPath = filepath(src); String dstPath = filepath(dst); diff --git a/src/Web.cpp b/src/Web.cpp index f3813638..69f322fd 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -37,6 +37,16 @@ void web_init() { request->redirect("/?set.device"); } + //-------------------------------------------------------------------------------- + if (request->hasArg("element")) { + String name = request->getParam("element")->value(); + String item = readFile("items/" + name + ".txt", 1024); + item.replace("\r\n", ""); + item.replace("\r", ""); + item.replace("\n", ""); + addFile("conf.csv", "\n" + item); + request->redirect("/?setn.device"); + } //-------------------------------------------------------------------------------- if (request->hasArg("devinit")) { Device_init(); @@ -73,7 +83,7 @@ void web_init() { //-------------------------------------------------------------------------------- if (request->hasArg("updatelist")) { removeFile("/dev.csv"); - addFile("dev.csv", "device id;device name;ip address"); + addFileLn("dev.csv", "device id;device name;ip address"); request->redirect("/?set.udp"); } //-------------------------------------------------------------------------------- diff --git a/src/Widgets.cpp b/src/Widgets.cpp index e05bafbb..1f8b07ca 100644 --- a/src/Widgets.cpp +++ b/src/Widgets.cpp @@ -29,7 +29,7 @@ void createWidget(String descr, String page, String order, String filename, Stri #ifdef LAYOUT_IN_RAM all_widgets += widget + "\r\n"; #else - addFile("layout.txt", buf); + addFileLn("layout.txt", buf); #endif } @@ -56,7 +56,7 @@ void createWidgetParam(String widget, String page, String pageNumber, String fil #ifdef LAYOUT_IN_RAM all_widgets += widget + "\r\n"; #else - addFile("layout.txt", buf); + addFileLn("layout.txt", buf); #endif } @@ -80,7 +80,7 @@ void createChart(String widget, String page, String pageNumber, String filename, #ifdef LAYOUT_IN_RAM all_widgets += widget + "\r\n"; #else - addFile("layout.txt", buf); + addFileLn("layout.txt", buf); #endif } diff --git a/src/udp.cpp b/src/udp.cpp index 5b9dc977..2f7ba644 100644 --- a/src/udp.cpp +++ b/src/udp.cpp @@ -24,7 +24,7 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip); #ifdef UDP_ENABLED void udp_init() { removeFile("dev.csv"); - addFile("dev.csv", "device id;device name;ip address"); + addFileLn("dev.csv", "device id;device name;ip address"); #ifdef ESP8266 udp.begin(udp_port); @@ -130,7 +130,7 @@ void do_udp_data_parse() { void add_dev_in_list(String filename, String id, String dev_name, String ip) { auto file = seekFile("/" + filename); if (!file.find(id.c_str())) { - addFile(filename, id + ";" + dev_name + "; " + ip + ""); + addFileLn(filename, id + ";" + dev_name + "; " + ip + ""); } } From 33ebb36aecfe24168344be5baa513711adff8677 Mon Sep 17 00:00:00 2001 From: Yuri Trikoz Date: Thu, 6 Aug 2020 01:14:24 +0300 Subject: [PATCH 02/96] FSEditor --- data/edit.htm | 658 +++++++++++++++++++++++++++++++++++++++++++++ include/FSEditor.h | 28 ++ src/FSEditor.cpp | 282 +++++++++++++++++++ src/HttpServer.cpp | 5 +- 4 files changed, 971 insertions(+), 2 deletions(-) create mode 100644 data/edit.htm create mode 100644 include/FSEditor.h create mode 100644 src/FSEditor.cpp diff --git a/data/edit.htm b/data/edit.htm new file mode 100644 index 00000000..1ebb989d --- /dev/null +++ b/data/edit.htm @@ -0,0 +1,658 @@ + + + + + + FS Editor + + + + + + + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/include/FSEditor.h b/include/FSEditor.h new file mode 100644 index 00000000..394fb0e2 --- /dev/null +++ b/include/FSEditor.h @@ -0,0 +1,28 @@ +#pragma once + +#include +#include + +#ifdef ESP8266 +#include +#endif + +class FSEditor : public AsyncWebHandler { + private: + fs::FS _fs; + String _username; + String _password; + bool _authenticated; + uint32_t _startTime; + + public: +#ifdef ESP32 + FSEditor(const fs::FS& fs, const String& username = String(), const String& password = String()); +#else + FSEditor(const String& username = String(), const String& password = String(), const fs::FS& fs = LittleFS); +#endif + virtual bool canHandle(AsyncWebServerRequest* request) override final; + virtual void handleRequest(AsyncWebServerRequest* request) override final; + virtual void handleUpload(AsyncWebServerRequest* request, const String& filename, size_t index, uint8_t* data, size_t len, bool final) override final; + virtual bool isRequestHandlerTrivial() override final { return false; } +}; \ No newline at end of file diff --git a/src/FSEditor.cpp b/src/FSEditor.cpp new file mode 100644 index 00000000..7e5d1311 --- /dev/null +++ b/src/FSEditor.cpp @@ -0,0 +1,282 @@ +#include "FSEditor.h" + +#ifdef ESP32 +#include "LITTLEFS.h" +#define LittleFS LITTLEFS +#endif +#ifdef ESP8266 +#include +#endif + +#define FS_MAXLENGTH_FILEPATH 32 + +const char *excludeListFile = "/.exclude.files"; + +typedef struct ExcludeListS { + char *item; + ExcludeListS *next; +} ExcludeList; + +static ExcludeList *excludes = NULL; + +static bool matchWild(const char *pattern, const char *testee) { + const char *nxPat = NULL, *nxTst = NULL; + + while (*testee) { + if ((*pattern == '?') || (*pattern == *testee)) { + pattern++; + testee++; + continue; + } + if (*pattern == '*') { + nxPat = pattern++; + nxTst = testee; + continue; + } + if (nxPat) { + pattern = nxPat + 1; + testee = ++nxTst; + continue; + } + return false; + } + while (*pattern == '*') { + pattern++; + } + return (*pattern == 0); +} + +static bool addExclude(const char *item) { + size_t len = strlen(item); + if (!len) { + return false; + } + ExcludeList *e = (ExcludeList *)malloc(sizeof(ExcludeList)); + if (!e) { + return false; + } + e->item = (char *)malloc(len + 1); + if (!e->item) { + free(e); + return false; + } + memcpy(e->item, item, len + 1); + e->next = excludes; + excludes = e; + return true; +} + +static void loadExcludeList(fs::FS &_fs, const char *filename) { + static char linebuf[FS_MAXLENGTH_FILEPATH]; + fs::File excludeFile = _fs.open(filename, "r"); + if (!excludeFile) { + return; + } + if (excludeFile.isDirectory()) { + excludeFile.close(); + return; + } + if (excludeFile.size() > 0) { + uint8_t idx; + bool isOverflowed = false; + while (excludeFile.available()) { + linebuf[0] = '\0'; + idx = 0; + int lastChar; + do { + lastChar = excludeFile.read(); + if (lastChar != '\r') { + linebuf[idx++] = (char)lastChar; + } + } while ((lastChar >= 0) && (lastChar != '\n') && (idx < FS_MAXLENGTH_FILEPATH)); + + if (isOverflowed) { + isOverflowed = (lastChar != '\n'); + continue; + } + isOverflowed = (idx >= FS_MAXLENGTH_FILEPATH); + linebuf[idx - 1] = '\0'; + if (!addExclude(linebuf)) { + excludeFile.close(); + return; + } + } + } + excludeFile.close(); +} + +static bool isExcluded(fs::FS &_fs, const char *filename) { + if (excludes == NULL) { + loadExcludeList(_fs, excludeListFile); + } + if (strcmp(excludeListFile, filename) == 0) return true; + ExcludeList *e = excludes; + while (e) { + if (matchWild(e->item, filename)) { + return true; + } + e = e->next; + } + return false; +} + +// WEB HANDLER IMPLEMENTATION + +#ifdef ESP32 +FSEditor::FSEditor(const fs::FS &fs, const String &username, const String &password) +#else +FSEditor::FSEditor(const String &username, const String &password, const fs::FS &fs) +#endif + : _fs(fs), _username(username), _password(password), _authenticated(false), _startTime(0) { +} + +bool FSEditor::canHandle(AsyncWebServerRequest *request) { + if (request->url().equalsIgnoreCase("/edit")) { + if (request->method() == HTTP_GET) { + if (request->hasParam("list")) + return true; + if (request->hasParam("edit")) { + request->_tempFile = _fs.open(request->arg("edit"), "r"); + if (!request->_tempFile) { + return false; + } + if (request->_tempFile.isDirectory()) { + request->_tempFile.close(); + return false; + } + } + if (request->hasParam("download")) { + request->_tempFile = _fs.open(request->arg("download"), "r"); + if (!request->_tempFile) { + return false; + } + if (request->_tempFile.isDirectory()) { + request->_tempFile.close(); + return false; + } + } + request->addInterestingHeader("If-Modified-Since"); + return true; + } else if (request->method() == HTTP_POST) + return true; + else if (request->method() == HTTP_DELETE) + return true; + else if (request->method() == HTTP_PUT) + return true; + } + return false; +} + +void FSEditor::handleRequest(AsyncWebServerRequest *request) { + if (_username.length() && _password.length() && !request->authenticate(_username.c_str(), _password.c_str())) + return request->requestAuthentication(); + + if (request->method() == HTTP_GET) { + if (request->hasParam("list")) { + String path = request->getParam("list")->value(); +#if ESP32 + auto dir = _fs.open(path); +#else + auto dir = _fs.openDir(path); +#endif + path = String(); + String output = "["; +#if ESP32 + while (dir.openNextFile()) { +#else + while (dir.next()) { +#endif +#if ESP32 + if (isExcluded(_fs, dir.name())) { +#else + if (isExcluded(_fs, dir.fileName().c_str())) { +#endif + continue; + } + if (output != "[") output += ','; + output += "{\"type\":\""; +#if ESP32 + output += dir.isDirectory() ? "file" : "dir"; +#else + output += dir.isFile() ? "file" : "dir"; +#endif + + output += "\",\"name\":\""; +#if ESP32 + output += dir.name(); +#else + output += dir.fileName(); +#endif + output += "\",\"size\":"; +#if ESP32 + output += String(dir.size()); +#else + + output += String(dir.fileSize()); +#endif + output += "}"; + } + + output += "]"; + request->send(200, "application/json", output); + output = String(); + } else if (request->hasParam("edit") || request->hasParam("download")) { + request->send(request->_tempFile, request->_tempFile.name(), String(), request->hasParam("download")); + } else { + const char *buildTime = __DATE__ " " __TIME__ " GMT"; + if (request->header("If-Modified-Since").equals(buildTime)) { + request->send(304); + } else { + AsyncWebServerResponse *response = request->beginResponse(_fs, "/edit.htm"); + response->addHeader("Last-Modified", buildTime); + request->send(response); + } + } + } else if (request->method() == HTTP_DELETE) { + if (request->hasParam("path", true)) { + _fs.remove(request->getParam("path", true)->value()); + request->send(200, "", "DELETE: " + request->getParam("path", true)->value()); + } else + request->send(404); + } else if (request->method() == HTTP_POST) { + if (request->hasParam("data", true, true) && _fs.exists(request->getParam("data", true, true)->value())) + request->send(200, "", "UPLOADED: " + request->getParam("data", true, true)->value()); + else + request->send(500); + } else if (request->method() == HTTP_PUT) { + if (request->hasParam("path", true)) { + String filename = request->getParam("path", true)->value(); + if (_fs.exists(filename)) { + request->send(200); + } else { + fs::File f = _fs.open(filename, "w"); + if (f) { + f.write((uint8_t)0x00); + f.close(); + request->send(200, "", "CREATE: " + filename); + } else { + request->send(500); + } + } + } else + request->send(400); + } +} + +void FSEditor::handleUpload(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) { + if (!index) { + if (!_username.length() || request->authenticate(_username.c_str(), _password.c_str())) { + _authenticated = true; + request->_tempFile = _fs.open(filename, "w"); + _startTime = millis(); + } + } + if (_authenticated && request->_tempFile) { + if (len) { + request->_tempFile.write(data, len); + } + if (final) { + request->_tempFile.close(); + } + } +} diff --git a/src/HttpServer.cpp b/src/HttpServer.cpp index 78e898a4..cf4ef379 100644 --- a/src/HttpServer.cpp +++ b/src/HttpServer.cpp @@ -2,6 +2,7 @@ #include "Utils/FileUtils.h" #include "Utils/WebUtils.h" +#include "FSEditor.h" namespace HttpServer { @@ -15,9 +16,9 @@ void init() { String login = jsonReadStr(configSetupJson, "weblogin"); String pass = jsonReadStr(configSetupJson, "webpass"); #ifdef ESP32 - server.addHandler(new SPIFFSEditor(LittleFS, login, pass)); + server.addHandler(new FSEditor(LittleFS, login, pass)); #else - server.addHandler(new SPIFFSEditor(login, pass)); + server.addHandler(new FSEditor(login, pass)); #endif server.serveStatic("/css/", LittleFS, "/css/").setCacheControl("max-age=600"); From b512c0258d29be3a074d6fed69264c4c72130134 Mon Sep 17 00:00:00 2001 From: Yuri Trikoz Date: Sat, 8 Aug 2020 02:00:20 +0300 Subject: [PATCH 03/96] FSEditor --- src/FSEditor.cpp | 106 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 31 deletions(-) diff --git a/src/FSEditor.cpp b/src/FSEditor.cpp index 7e5d1311..bdaa5129 100644 --- a/src/FSEditor.cpp +++ b/src/FSEditor.cpp @@ -174,81 +174,125 @@ void FSEditor::handleRequest(AsyncWebServerRequest *request) { if (request->method() == HTTP_GET) { if (request->hasParam("list")) { String path = request->getParam("list")->value(); -#if ESP32 - auto dir = _fs.open(path); +#ifdef ESP32 + File dir = _fs.open(path); #else - auto dir = _fs.openDir(path); + fs::Dir dir = _fs.openDir(path); #endif path = String(); String output = "["; -#if ESP32 - while (dir.openNextFile()) { +#ifdef ESP32 + File entry = dir.openNextFile(); + while (entry) { #else while (dir.next()) { + fs::File entry = dir.openFile("r"); #endif -#if ESP32 - if (isExcluded(_fs, dir.name())) { -#else - if (isExcluded(_fs, dir.fileName().c_str())) { + String fname = entry.fullName(); + if (fname.charAt(0) != '/') fname = "/" + fname; + + if (isExcluded(_fs, fname.c_str())) { +#ifdef ESP32 + entry = dir.openNextFile(); #endif continue; } if (output != "[") output += ','; output += "{\"type\":\""; -#if ESP32 - output += dir.isDirectory() ? "file" : "dir"; -#else - output += dir.isFile() ? "file" : "dir"; -#endif - + output += "file"; output += "\",\"name\":\""; -#if ESP32 - output += dir.name(); -#else - output += dir.fileName(); -#endif + output += String(fname); output += "\",\"size\":"; -#if ESP32 - output += String(dir.size()); -#else - - output += String(dir.fileSize()); -#endif + output += String(entry.size()); output += "}"; +#ifdef ESP32 + entry = dir.openNextFile(); +#else + entry.close(); +#endif } - +#ifdef ESP32 + dir.close(); +#endif output += "]"; request->send(200, "application/json", output); output = String(); } else if (request->hasParam("edit") || request->hasParam("download")) { - request->send(request->_tempFile, request->_tempFile.name(), String(), request->hasParam("download")); + request->send(request->_tempFile, request->_tempFile.fullName(), String(), request->hasParam("download")); } else { const char *buildTime = __DATE__ " " __TIME__ " GMT"; if (request->header("If-Modified-Since").equals(buildTime)) { request->send(304); } else { - AsyncWebServerResponse *response = request->beginResponse(_fs, "/edit.htm"); + AsyncWebServerResponse *response = request->beginResponse(LittleFS, "/edit.htm", "text/html"); + // response->addHeader("Content-Encoding", "gzip"); response->addHeader("Last-Modified", buildTime); request->send(response); } } } else if (request->method() == HTTP_DELETE) { if (request->hasParam("path", true)) { - _fs.remove(request->getParam("path", true)->value()); + if (!(_fs.remove(request->getParam("path", true)->value()))) { +#ifdef ESP32 + _fs.rmdir(request->getParam("path", true)->value()); // try rmdir for littlefs +#endif + } + request->send(200, "", "DELETE: " + request->getParam("path", true)->value()); } else request->send(404); } else if (request->method() == HTTP_POST) { if (request->hasParam("data", true, true) && _fs.exists(request->getParam("data", true, true)->value())) request->send(200, "", "UPLOADED: " + request->getParam("data", true, true)->value()); - else + + else if (request->hasParam("rawname", true) && request->hasParam("raw0", true)) { + String rawnam = request->getParam("rawname", true)->value(); + + if (_fs.exists(rawnam)) _fs.remove(rawnam); // delete it to allow a mode + + int k = 0; + uint16_t i = 0; + fs::File f = _fs.open(rawnam, "a"); + + while (request->hasParam("raw" + String(k), true)) { //raw0 .. raw1 + if (f) { + i += f.print(request->getParam("raw" + String(k), true)->value()); + } + k++; + } + f.close(); + request->send(200, "", "IPADWRITE: " + rawnam + ":" + String(i)); + + } else { request->send(500); + } + } else if (request->method() == HTTP_PUT) { if (request->hasParam("path", true)) { String filename = request->getParam("path", true)->value(); if (_fs.exists(filename)) { request->send(200); } else { +/*******************************************************/ +#ifdef ESP32 + if (strchr(filename.c_str(), '/')) { + // For file creation, silently make subdirs as needed. If any fail, + // it will be caught by the real file open later on + char *pathStr = strdup(filename.c_str()); + if (pathStr) { + // Make dirs up to the final fnamepart + char *ptr = strchr(pathStr, '/'); + while (ptr) { + *ptr = 0; + _fs.mkdir(pathStr); + *ptr = '/'; + ptr = strchr(ptr + 1, '/'); + } + } + free(pathStr); + } +#endif + /*******************************************************/ fs::File f = _fs.open(filename, "w"); if (f) { f.write((uint8_t)0x00); From ef6930350ebc7abb65d4f1a5e5b7881130538353 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 01:28:10 +0300 Subject: [PATCH 04/96] Class renaming --- include/Class/button.h | 6 +++--- src/Class/Button.cpp | 2 +- src/Cmd.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/Class/button.h b/include/Class/button.h index 87b4a805..4287720a 100644 --- a/include/Class/button.h +++ b/include/Class/button.h @@ -4,9 +4,9 @@ #include "Class/LineParsing.h" #include "Global.h" -class Button : public LineParsing { +class Button1 : public LineParsing { public: - Button() : LineParsing(){}; + Button1() : LineParsing(){}; void pinModeSet() { if (_pin != "") { @@ -40,4 +40,4 @@ class Button : public LineParsing { } }; -extern Button* myButton; \ No newline at end of file +extern Button1* myButton; \ No newline at end of file diff --git a/src/Class/Button.cpp b/src/Class/Button.cpp index 220de75d..04afbd77 100644 --- a/src/Class/Button.cpp +++ b/src/Class/Button.cpp @@ -1,2 +1,2 @@ #include "Class/Button.h" -Button* myButton; \ No newline at end of file +Button1* myButton; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 22606ca2..3d1dfd1b 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -110,7 +110,7 @@ void cmd_init() { //button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1] //========================================================================================================== void buttonOut() { - myButton = new Button(); + myButton = new Button1(); myButton->update(); String key = myButton->gkey(); String pin = myButton->gpin(); From b2c8437c05eb552508e5b63813ad9dcbc6d84c75 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 01:53:59 +0300 Subject: [PATCH 05/96] pic --- doc/pictures/001 iot manager.jpeg | Bin 0 -> 176763 bytes doc/pictures/pic1.png | Bin 78309 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/pictures/001 iot manager.jpeg delete mode 100644 doc/pictures/pic1.png diff --git a/doc/pictures/001 iot manager.jpeg b/doc/pictures/001 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eac7f456b949e048f8d49e89c5058a5d1e1a90ba GIT binary patch literal 176763 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

mGzGXG?DaMC?m524+XRExGP$N^}p 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

Q>~i{c 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 U9JsKj?}M!dQhFO)O#c5j0T}`UX#fBK literal 0 HcmV?d00001 diff --git a/doc/pictures/pic1.png b/doc/pictures/pic1.png deleted file mode 100644 index 4cbed5779ffa6fdf4dd7f736f8a8ea20645c99ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78309 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%0D*3iYmj0Q9CWUx!c%KlTZBm6Z(;(&~kcuTDR0G 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≫0Pq9&C9_Kk2V?)Y0Lq;mB1hbD(Z+4(Fy_=&&`vMQd@K{PD9_@;; z9e~c^ncEkv zvCpmm&ni!^MW)a+`Z5_d&<9Vh9*wH=^YPK30^*8qR($+;tk>+r&nIsQ6mAuU2dy?9 zlvjr?@l|JBYG?L@ogo-=MgmHOs>k=cRd2A5YN|xJ&_WJ8*hb89*VKo?iKzw9W>7Ov z%4rI7ROVBgUKR;_8*_gGw7t5ibFF8*w)&Ma22FF4?wXPD=pD2Xn_hVxb;?ihYMVGl zXL9>X^*8v2tMd#ZwU1VQ=ZCr0qS@@{@m2Y(d^|j*Q}^oz!CHWV$y|wU@tsip=|eN@ zTnT3rc6wyK)kyH@n>Ct|#e4TDtAxww_U%^V%+iQRDYyq=`%XDcB6d#5R?tR_34M=# zT3K<%;ifI#hs!T(T#IT7PcAjj#zEe_^7FPkb<)x+l`X5tYrc@m7zxg=w3rwfUqYD7 zb{p}CFMP7k`_H_RtGhaW16tvzy0Xqr1)R7CGj%HE}ETN|5WH1Q%cU0oM{1xmO0 zdcuhPI-(eo+puY0yf{8FArn$8Y&g$qL|^;iuAD&*J3ou6RPIR6TH&N2M6tDtA%G#SVm%uGy@XCxL^ zR$)QzFI`B&N=?odqU@1FUl^IJt@#fZAaUEh`pPPIlxoFV$!7T;w{}ZyP(SHYV8b3A zQ}R-&Xx`9RJBR(KtyucS6I<@aawD81+QmMSG>rc+^Mkuq^qC>2N|UrkcBLL?7k||Q zwe;BD8_vpZePSZ&0r42TnT9(;CiLxFWV3nmJmsc0+_=v~IFGI#yBGg*LCdc6H%*Etpm#MJsH&=>6sxJsWj75BEsklA( z5+nJwuSdmnh`oS~lcx07BO@{Iu&Sr~e24~Zi{B{C<+n@B%NQ3R+YGh_FU2gT7pZ#0 zcI5Qmn_sM)zL+Qd#8gOJM1;<-qE~MuOfhwzb#6go;>o^K8(PE^Yn|>NeVfY5%Ztfu zStet9F9rgz$BAwOYX+w)C@kBm^0OA5q-&iUsLL+2S&IDfa6g~xPMy{|I%yy6jvpIo zPA;A==QEVwIZC_zYmxKb>AS`cbl7!H1g=S zm0e@!j)`h*y1i3_wsiMqRZ(AfM8=Ige2?~z<}!N88D5cI*~BKHZl)YmeO1h#V(IC=3#Eo{8WPNI z9$XoYS{?2aWvmAMhBI(OjInf#nD71SEfQ^^RcJy`J)ID4mzp=tc=I(A5>tH#<&QDO z0vQ!Y4wLuUQM9LLmaHROV%vG;LXTe7R7?lg2#_y;rNG~#Dp|-p_T+Ps7Tlk?!Z|a4o`XPE*7<#v*nA;Z_|7jW;nk?( zwI$zH11@*}Cp#NkFr6i1yBj7t%)i&=eV++^OT_w22wPo?ePmX4b^m@(PuJxN*X6YX zJ!L0k6{lfJT(>$_*Aq>qHmtajyT}%DyH6E0CNB!{nrcQm@Y)L=b~7hY~eg zgesJlb)P@WGPzU7a&PODs|D_aX1+e4=p!-5Fe1pvp2byF7KwV zTc1E2yV%1XfvbT^X2)8hCb`#oe_D3_M*Edx0r5cZkplnoL)6mh$cAoGkBB`_xE`%j zoVDT%{!)Tv7&8kCI0E$tc6gTkh^qy)F0ksCZ{;9&0i8xgQh*_Ax)tbJaY-*&Hn4~LZtmb*{MO#p^_M$}N@`g#g05CGI8~R; zz)Z{~i*BOi2RV!l!b#m56lC|{W&zSq4NZ&|SnTCfPMm=;_sRyRQd3gm&k&hmpFgY4 zrpU&CYIwbGEB(&o=7S$FfxxkT&LLdPLY8c|T6D6hJ&J+BDgUnd`T6(nH_AzfiOqwz z2ujPrXBq95UUIT&=Zh9#HL2LSLeb^6z z`S+=XXa#KefUL%b@3A68Mpjw<0yqsC8%q4mGTT`T6gi;EPPlHMp?M1)v>jHkwuW5A z_GRTi?VNL1gV7$L_9eIqfxZ%>F3H@gsIL?Nk?^#RCkT#)<(Jbn!iaYV;SaGNyYzSm zC+#U#kU4i%f@~z2B^ks#7-T~(cQ>cs;oGfC+wqHvt z^;gk%0Fes)i8Cma87!NF_gncP7M1o4AekYx`{FL?aO%D}E#(O61r#WZwe!V*PvNv#d#9^3tnwV59 z_m1%2F(43|6Jb(BTW8m?@9&|uaB4hOKE^Q23rvd4?UnMxh}fF8g5&H%e_lhH9~v~Dc)L;F~R*$O3I+hl8&MZn6a1K;kjw#Z|3A(Zqdz*{;Gei zgVL%B7R#wO^1{0(T3HB|X>F}nEK;8wRu*q*>BBa-{>qVTynwJ;g=^zLcdo>L!PUTh zClm_|8xyCna5NqG*iaF@r#5reu@C`4A+4jk1CV)^C-J+HJ zj1!RroYlY6nQ8$YuTuvH9)PU?AE9x(R`YDzyp%f7cgWc=`$}wN+Bi2iN6uDiNWJlI zHkmekUv7xg^Hs~{=K%wEgvHsSD#%$@hpz+i^d&I6lxZf(PDnC~N*S`o6rMN%{ioyaqaRNAGdlai0Yg4jfWbwJM{ndlDyRdFU?JzS~j!}P64s4 zxpz#xxhDW^SD4u$Db&|kYmCMzz#Q84*+5PfX>VqkM*}+s}rLo*2*|!8k zB1!C}K!3H!4(%MzX}3h*w>BlSHnqofau3&O|81j#H|5vQGRd?5YAEjNJe4xW@PKfC z=Z;Yji}-Awed=Q1)%60sF2AtQ8Q@+xX$gZkop(rqS~#l(kf_XdBBy7k?9i1>!iuA3 zv71HrGTt!{gwU#U-0sHO`B|Pd2+Uuc>2-)))Xh}qx(Fo^MCPx~2@WXz(-D|_=NPvU zTSwzW)jpYLd&tHB+6}yA>({;%`cs`~RvLqmYGMYc%}e+KwL5kOK4a z`O|p%>FDvc*4O*zk&dI@dU0mMN-Fm$fspte6`a$vvl)@uH_cjMzJO6~Xv+I1I!i07 zm>6LtX$n|!Z%8KhQnl6CS7q(rDA{9hI?TJP&K>VPhBql%$se2P4b`w0f;aCLa8@cv zHSyIoCHA2c8xOzRB)W@Er7!c&8&fwrj~AYtJ5|5p<+^!N+HB@>556ORIw0%qTSb-O zfny3;uEGrI!6u(X$j0nq4YuZELQ-W^xo2hKsP8Cpj*%^C7<-h-mk1pjz8P7f#+X0z zHoap`M-D!f<+}Fdi&r2>eum3*9MLj)$ z#Q^z``C+q&`<3F+WNh6dV;$&-^q0Y?_sHEuW zL$$J_R#C8#%Odg>l$oG-jn2PLyM`5;s+t}b%$Wi{aEP=c$2=?8hDVgylbw)V#6g-5-%dG*GR323M?{g_qP zB$bx*D``9rEnE`>(q6zb9E)uL)Vn{{CU71q>i1B$Bxw#d1s5 zB_}Oj4I;zeJxb2gd0#Cc9uPn)kt$blJ%D4Sx_G%7IbLhq?nQffuxNt$)ByD%RO|?< zV1t*@b*4nGb$!D!d@ffLY1~*=QGhx88yzW=NB4@&Lx#$;?AKX1$kKV+)M1cwoB~(= z)wz-39}o7v#G53^hI&a;vkUQhuB-0`-tN4|iubF8KilYRvT}?%#*LU*pNlx*L`d<)Ejm78prT+P7?4(lxd5)Dv$+Vx4OXs zh}nUBWU?&xkU~9;Z3ri7ik@YLe_E}vw?f>nwi9ISZEc39KO3Ly-1dpehob%XcT0IP zwyeIk_e~qM35Wv-%r=Jf1Tiq_>3zg^HoA*hQZ?$W%QD=znw*Az4g|R$=mN$MsFXE6 z7af);+fb8`VsGnA$6oc?JT|XTy_%4&E==nR||JP*FOXh0W^Mz$JoIN-;wwU7Axm#x~fRne$Tw9 zj5w@f%TIrktG1J$3fNrs3L!ZK82eyg(M|_e7lC)w4K87`sN7Q_SX(|gb?YYa5$#1x zJ|c=C1GAoPLL5%@bE5`ES0M1pWKe3fFzwyA5p4$!>C*8);pTtl`X9e7fQny-`8&p@ zjKQ_Wcwv}@k&QxW`H!*`K!P+T_aM;+oO%HkFlc9H^Q0_JN5sTX&VH<@NK8!pODT3v zB$V|j4g3_;f1`!D5N9M%H6_Ub9q(bKUCUX;#b}tBfSsL5zZ&`AQXIU*Dla=ZIbFI` zI&N2%CmqE{IK4q`e!#a6Zf-$n}<{b4tevmbEHE-#qXG>nK+y%ZXX);^q*o*r|X8@-Q^D&&z+ z1tupXjVvyTOF`!e!F!eiY655%Sg(ukI;K51u77!Gcp3yAwn>}e*MB_k2rM4JF^6VSB4qj5Z@ZxXmV~O&PCB(Lc5Y^IOSO*_2xq=CSq8-Ea&`f*Z}o&S&AU5u*6f930oFHf(jJz= zlpo27)kXrplIsQ!(Rs6OxRIv^IPDjW(avoTShs_PAR}|_d#37knr#oDBknOHRi}k( zWNoiaJ#|zaxUtbcKD>%<-SdSpcQ`!p^1_b5}p`^(+xu4Nmf>p#rMrP0tZPoiz^ajDH#A-QqZ-7 z()#aiM0x5;cF52B4Fcf!{sqS)JcFCZMvi9mQ=;#>b?ce4JCY2us%Wywxek@2_lQ~J zjkmHIKVQ7~jQi1%32r}`;+leIg$etPPR?9RiP2a)_{er`)tSCV-QZzyLBZ+jt@l41 z(FxXBhaxqTVW}gpF*Y%g*s2gXi0a>eaC_ln>zFs3slUk~JaH*DaJAg%tfE8~lXMk( z=b2Z~-<>dH_EB(%^qk8f0&j-H>My6`=q)YslWrMrAHMm1L&bHR>H1**5$bHR+zYAa zu&(4)#@9tb4ez8AgwdbkLW2NkPKd%MoG0!WZUfcSC!?*qyV!1=F^tyel5N4&;ju9& zk%ih}#)F*~t=m3&dN=XLU5zbv;t>l@MQ2{2@o798t5A%s31hRZccJ+n0}DUrvyeZE)fMcw%LP zB#*s>K_m zLih1i5+EGLnV$4*hGH&lUU72=Hc~E@lCnU>;$!Wyyl}NKHPj-s>I3QY#gyX)7lsUU zp0gcS`Sjw9lAt0^enDaIM?)>H2$~S^;GX5*LB;W(*;046#Q*glnhBri*v*mx?dM}z zTfa}f?bY8;ElB4L*MPP83K`?BLwoZEbLeQU8xCFEM(D9(x!)K5vM^Zcc#>zjtj>~F zX>ja$zmv2KBHq5woav#Ft+rd5wX*NQF-3B6yUq9bN#URILg6BN-WvIzY)pc*Jc$C0 zA9`E}-57^OXxds@uC(3e+%)g?d%o)={dq&sSLx`WQx*xc`hs^SO+W3Ll@;9OBBd=c z>W4XB*o_HWb~seXRG6U1#snWVbIEaRuTeJdHBpu5-w!T><h7C_A<6RUT=B%{Xxwa)f)2f{5#3=B^bAY)i|bBc zl=QW=HF0=f&Tz@Hac*ZRV}*#fG<$J3n0$wxeZrv!0hbUnV}-0HG$1VA<;vg6&+d&` zO@wWD-C*ga&Gkap*p(YMQ!IUUA_(>6F_chTc|94rLG<4EV^4U} z2LH%W>LvY=bf9%`cjVyS1>O6(!2?%i1uwelm87#p)n#rX;bjG_esPB6p9LMF=2XVp z63xdm&8K`L$I?Fo+7pTZ<0Opj^Wz%iNx-eo8&D#%XxwFW@!+$e>D_VqC zxr}6B)BL~QX60pt^?mcgI$U+Ux$RaVWHZlwF1k2!fVN;^u|1*eN%bLOMEt35(Vgk` zoRq90D|O}I6k>)s+&2?S_*jj`>Dd!ql5H={XbQa`xzI^jg7bJs{z2)Fi^9bJNCQskpfXWC20NS+c&KfOxyTp z_RodZSuCf+Qp8l>bQ`1Uo{brRn~klkD4Dd)GSpoveY@`a&EzKZ;#J<1c(V>k9(eRU zU0QL2cfKjrx`02Rx?jkncYQ<=V{T~zfVB4edEY(|kG@ZeNpMhPdI+_9Ton`^D^S=J zY<{3EF9nFn1k=@Y?Gh=HZ3zqq2ZXwv!C3|?#PL+$wCqYMTM^WQ3H`!DQKZOZ=(29* zJD#9^+o|Oh>=YJJbaQdLv85Deqkz6Syi4+yn^9spL<_zZeK;&bBOWrFxa@0B9TToK z`o7mLJyKz1`(72O+J3YO5<6SU>lzB0caB>R&Sqchc9uQ<=?EGJa zB?H4{KVvL>SGSA3nWXD7pVR4iD{np?^vyr9=EfIi$vT*NX)ztDHPMOvUkJr3 zhi&4MLGPxefXe+In?jIn#Zl*f!w#fb*&uYwk})t`@{4nw5(VNg)9X=zPwh6|&5k>r zWJ1N}hM8`^TNP*fAS~Q$v|QvmPbyo?2ZJUQ5)D^~n_t>5(#@tmv@bg#}LaT!!9?a$q4xq?Uip z+koC<)UWLReb-qN*97vl&$o;E#z!T7e@%3dr0V9k7GM3M=DPSID6e<&#;3EEFWc9a zT%#`NS4bN_RET2?Rpx(T2>i+=|IblI`wSU^oI@*5Qg<+FN|KKGH=D$z6PM=ge zdUBeaXkYQa|D>EbQJs~|p@d{U>6LmCDNc9pN54NyOeh9?NqUEu&$JSLPtCLB+efqc z_?>L-Py?|Nap+>C#A^JZ)Fj|)@kebjKPzyD!hqbRW@XFH%`roRPm_{hW)`E)4c$r_ z27RD3{9nxuLj4Ta4Idh1|5NuFJh%Xi3a0rhgRZNC*PFnTgOQ@UKahT;1LzXH+$tnF zj2qr#-=XpP0KzvL2R+66#7b=rrO>D-Prpa6l0p?ZP&o)OA{+?Zc3azkJ~4lGtj!l^ z$OT>;3tjJTk0I&iK2_MHSW9IF*#xe_#gsq+Fv5JXoD!*%sq*|76qEv6sO}v_rMX z_5MJ;=~$avFb0YGX{~Scp|5VThQUBCY-k0Yb&r>uiPa*=l+wK8rFdv*bktb{H=TL4 z4vt_}#7zr*h<+McnQ*B)bRBP?oUqPCTV@_AE7;IRe#_`&=Jg?t#_6Y`=5a4v-0A~<;&kOOAkFj0`rW|s`@>XCdcD0i<%cIl;JSk>|ku> zljFgo3g}qp_bi%~4CwfvgLk>?xRt-+`XD0ZX?nZmt8?3Y9U?^= z{(2yL2^c>;g~%i79iFAX30f$TsA{9TdozG_*-LGAIM{yNr;>hHei`P{_gIzH)S4vt zn=2p&hR48D5JlF#D|T3agYC~bUj^5_be8L+v4_A|myi^P?)3e`9(0;wD-c?-o&;O` znB|6cOS-X8cYjA5Ii0Vjs|Mk}QrsP-%(+`0+Hyq8XeFm7LO`OUp1wmCv-YM)G?SC| zOmc59ZM{ov+xHQ?R{O|nUk>{ueKqnt6SAYr*3`J)ea-M8Z; zqEyZuggskY8r8<5zEGn?=M8&#(4;Q-iqN`Ru7!q|OY0*&^K8_^g>zOyzjqT|qninv z`TJG_aawuQ_M5$>Ibgy-UKa~}(wD|MRrAJ2I`uExJW^X<{v_sJnaThn)~RxCVH@r& zk0hr>j_v53al}RJWmX=yS~N9$jRShYcwCjIKQ z=`P7K=;Kc4pp*jETheOdOlsb0TbSP4OLFR<@slOX%H)0oc9wXfWddOy5aUBbsB0u@ zvv%g`p*^DxeIKvGs2NhbvU%UB;gJ#GOX>#ptdchd9&=)wgs<25$cTVaVwK${9RVI$E4R#VNE=PViTM(iWr z<0(apu@)paP0Wq@vCzzRSsNHctunvjZ^fvahT&`51jj+F1H*b37qf$n zq}kzIikpT%C#EYkMJ9>2Px++DP61efy}WInCA|BZN9Ky=r0OTp=bYW%vC**5W6Wi- zDJo+?)P6N)e5>|h&@tda2k~OMwq*hh@PT#bDNFWanTTIF(r>Q1!Q`2OHF@p1kk|?J z=kUK8xdm?~ika7~qbp;Xbr{)kKQj3oo(Cjs$)Zqy4ZfG`PZR}0gp}z*7vGL6bg`ML zVd@+c!}d$@k`#3$<4M&lg?*`>N_-@Nfi zyRaI&&sO?=?aUIR_W@foHxWBZ(ZA?sGrm&R19BszRf`g5Fz<&=p5hfXuYrHaVx@Z> zj`fY1+U9?|)XFqMBio&6lGzUXTP*sQ)lYnB9QBxu$@8wBmhH!aXB-Iy_kL!1o(2zP^OTSyHL^ZIY88ztz zBV2i~TQ_d-$>F8lh7LQ_uAXE2U6q`@FU{9yXP1Y#Z^b_rjJc2s=jHBw`7<3>Qtm>g zHpLw+nQ%rQr^F_5KZcXWAHEYVfadVSGtLm5%DRz4>~tdp- z_~bAEr4)4wjt*ZOma&mdJ$aR{ljGbxx!ZEr334wA_P@c{rqx_{q|g5FI^O_9>ih4} zr!B2z++MqM{n_o+wQJ@zF=RC<<>ay>>U(K6r|r0sS$R2G=e4n3K$7lWFQ0%1XF4Wq zZ{@jJKaW2r{xRZm=r*$smFBnyYK`&6IjJg^^b+kE9r?krl**#YS8B94w``sOXK6TA5*8+M9IOcFZ|P-SMsJ_m-Hr5tYE{yw-EVb4S%w!(L%IVBw%H z1Rg)WDx+&1L|15WJiM`~3DT@PJtcRCGKPmFSlwY9gj9KOmS70cYa>Vc6e3o`Blgon z4K`wun&a73M)^PUM|uCtt8DRck*OKyeOMTc&5I;c&$~)^dWDCRnmQo zjEv08Eo)WM3N9|IzWXEqw_Ro=qJZH@d|k`*gF`o39HWhab)8k+oBE?VC4RoWg7g}s zmp5D+cr4d_MrZYq$*z?-#nqiY3%mD!E;bchq)JsYrgN42zQ!jp9JOpCma=wq56xHXgin^4yC}B;Tk6w4=mtnYXalWOEuNbJ z`Ak|aove_M5T+~03$Xh3PA77?qqT_BeF(lRx~uKuc6q6vrfKD$+>wT1_o%ngqgZ4+ z9F0(QApNmw0GNbkZGxAk1oUy7eLxXky6ywlL}yjv7V@yVC;W<8<-Tom=;Z1OwQA(c zFmFy8@61JfqOzmzG^2-7amLMWYtao48k)ZFSCevc8Gi>PGqoB(J^pSEe(aDg42Km! za)$x}l_ zfPKW`^fSA;et<4gY6znbVLvrUG?MdGh-Hnsaq-W2vd#E&g&Dl zXzJWT`1QIL%>CK5@rMnI@_&CiWO8A-Ci5|V&W*pa<$w2yPH%{uq~xz_2>O6_1#5hl zEC&}?YfB5S{yXheQ;Y0k<`bZy?E3$l2<4^vSC^FdK=SId^KDxq!}XZrz$e`V;Y(a8X8e00XH{ z%PWN#bXOa!{su1+=O3~8AyJDN`3#j$*g-_Nh};~^&8YW_-zey^W{B|HC&4K=ho>}c zxz7(!*dBfRvk0ZC7WoC+C9O%-%3{^8+HgAuns`5_hz z$E`g`eu$<)q%(rW_D>;s!(2(J>ItH_SY%#vpF(^s(sl*wB&XhQ=fkFf^mIvM?RH~R z(;>_b0u#)D#jp?q=G93ekI_7oZf%-y_{xjkK{8L`pSrb<&rKfswIsYVI6rW$2T00iuG=2WeA;_^pGh!-c=z zZ-?(aek-z9bQ4Lm`f~XnPF3WGf$`~=ip#X0XhVDzs#ZP0o!RjO3!35`c z+S9EhN7%pUZYl}?isAy53xZ-&mO-qZe3s_)A~*Lo0!&1^ZZ=W5&Y#FzI*E*W{8w3+ zbv}`70`Lic=IwAon04WdR)}+y!$8QZNcE?;I;o`Rd-`yHq2iVSX#|fA&fH|pI2J;r zyx4O;)sM7@jQw7kFO1s~p}@q%SQ^X8VBypG9}LcCM~E_~qwvlgw#~zJ)v?>LLLCMe z*ggzO&mD#N92~+NXGZY-)mGP)pp=)soKerdY?pPXZq>V?qNVj*??9BxWlTdBfBrQY ztbI)d>oDXLVBgHq_U>-iX3g^q5=0DO&v#scYc)eGB(KN`H~7cL*SE+2^(X#B%N1n8 zGYC@=e>_&eJEg#|WzSjKt4>aOO<71S)1e~rko4SPBuu@ZpZ~f-p>b5I3MW<)oPYG` z@x5R*q=ewSsL8MSiy=zlHo(f8m}J_+{@%@josEqRYA|8pTiAF7M->kf0bvxS(rozj zzu!Cmw|nmY`1k&7(xg^cJ}_{e1<4_50vN6ALxehFsk_c*MrF5K;*>3a5Xnl?bLJVf zmmKdj6G_jeShEg4*X2I=9-wymCcO=qB<+dSqN<|e{Nu^V-&0e3(@q;mf|xUe-KyUs z@g1dsEwanfT9oDu%5=hkQbRxk|eh_?^q-Ph-ha+n! z-p0C%4ahXq)qg$UbGnq2xEtwg$VyIkTCipNFjXhxieIF<`JBYkQlTvV^fDUV`^KVi*`o7NE?Q-lNok!gnw zik4p&{4}?=W~QePZu@@xKL?k~PLg1jw)<2il5~Uc zWNDXW-w{C&^ba^0E}UR#A=^6hU9CTpuJ z1oE?-xq`?JamDW`GOx2`RCMCr6{`Yh|?F5%!MX(%xoVX?LLGNWze%{Gci=oFHvX2 z#q|v*Mjsd7^sClu`F?CG>W59F9=4`Oo7$m*aUI#Bv*xb#N%FLG%H`F!PrA~~s z;9Bt|IWs1q$*$xXX>G$)}M{kXM znJZp%&g-wdT{IN|6D|Enh-H_5aLFuS@1FRYH$^-MVx%DdGP&&)$fX7m4BH3jSx`mK zY@^F;4-X5&IFrR?zL$nem1v{*+r{ZAa8nZdIqn&Ob_u2(VYRbh1K~N_;fF+&pQd76;hadTFBOKVTwo z$Q^rzDCewm&t1}KLmr+BS*9zCGk7pC`HI(8CK8LMz4?mf;floq+`23O)}-{h@$k`|ur4B|kBd-aXe=NSGl1)?}&Lxuky)c~T;gXnKym*N1 z0}|X|qZkw%Jnv#Ki4Eh~Xc5X@d^BZIc$V=C@5Pf?s4N7ALo!CF=MZ<-hG+SJIgh*8(wr~jNv$saRZ~~S{^xHoNw8l zVgHedp1!T{&TVt^5t-#O8I-qEwCrvUewLJmkp5~Ezi7nN_{o@4iu+&?$3 zi*5xw#_PO+P~bKWdBiS%f+cj>E3|mIpO3hqK4_Y#G@*R{%N~?w!ai+|9sX6UOCh)}Eox*Rs4{0f9-b6$-r^UlG zJQ`~Krpy981c$0nG(YoH&Zv2~h*Q5-CL?huaD3G?w~1Fw(4M^N6l~G^qAXDx&0U z`YsFoXlc|eZP3JCa~{>jP=j>1Zd^_6Xs?BS8 zb_RlizzMBM&%;Jhnko|dfaJp_u> z)w%x68+4gTHh|w8JPvsgECqkW+E8Jf$$>x1cNXKw1pNC+s8K(UCzF`zKeyoK4?|=U1 z-}?XNU)o1TBU95JE^hk%W$#&$w*v>$uV!-_NRJ-E1Cs;=xGQo96huDvOxWJiD16?l zN7O`A65p`#3UOAcJXhMWd}%VuV5e)8#6_a*G+bT(a!%J@T26Xxf)DceXHWLpv<=_f zK|vuGg}Eur@HnBT3?cqF3&;Jat0@av^PXzkP%&0~9~VH}^_7YpDou|g$ngWeHV7Ja z;SqK^o+V?$AI$oCz@56^xeA2y^Sl6O6v4o_Krg*1{(xFFF*7Z#uHP2-A#5E5 zsL3q9y<33rYLN`J31%D(<0_nIr(@raal8MrmjuoTU24ols4b3=G zF-y`5c4A-((anl%)7NbdkTv8q5V%{mb6!Qc^a6deHcSD=uO2_#elQV|RUSe+7oC)JeHJO>4W-U4vG=p7--A@*RAknn z7M@wr7m`qzV1^;u!`CmtbOz+~+a5s`TSs4cgpOF4hl(^65UsUREjEpTrnR}=@}gq0 zDbEKJ@!XwvB6*=>vDMUsVuy84WPb%=ehbGQ+icBiacSjANsfqn4dw@Rk8s)FtI`x2 z7DlyC{D+O$4>jz0iJ{7@)DM|c@iya)c6^{q7Ncg#=qT%>PYyY1!0Fb&5g;G*^!^5C zKevz0fG(-ptgrD@B}`;E2;tpmUhKJP8(n$4if%&Hi&@+`1Hlfo73eAImbMT>U=&0x zhnQ*V)?DA)rB*JzA@i$?t`YA5W8kWfr+wP8IQ+;$pEB@>zXBw_oef?;r%#Xm{JGa+6`cQY0aCSA5<%pEz#KY0g^?4-_Tw$4#5;CILdrrs|h(P^DadcPDK;FL=( zadIxrjt7n>M)Ba@{cQ1Cm@P)M{85GbL_D=@iv8FcoxU2Mpx{|e&AB^Tuk{>Y9$MVZ z(q(+}<~g;H8+c@FEs2Z6h?*$)`ST~y!68IhkZ~4wFivFt<%McNlh4XislqB4W@5+= zuL_h+AR9Nx`0QxnPgn>Av5pCuvDxO$U%7}m&8AuMCzFde)=csT_w)sYgtX&gyTjpk z?e?;|X{e)V$d{{bxL&(tk-`DCML@v*J?}wCxcV@tOaa+et<(MA>^V7I|MJfh;jBhy z24)~Uwjt4FlVhcR`SPWyxp^q3YxRR4L=r1)p~nYsSvs;$ul{7KqoAbRC*$ITQ5t4d zwjq*^S@=x|4=43~Jj*XDDJx4(v=X}_MhHJHNZ`2+n9d5bwd&2R=~L1;o?U)-`?m;< zN=mLOhPG8z4Kl`8ukNO$t-LqvwfD9%;^x$IzU&3fnjmP|>1CTgi#(pVN6-p|O_zqo zQ_W;8cvhZlwNJT_eM*DYfoUbU54p7{?-4$X79tK9>?{`eaN^F3hjv}0*>%GU`7bMt zO-{8>pVAf{B%%;+2rb_*HfGSq;fd}<|BoLZ4u7k=er#vO zY$v{HZ@{puPrwsB8COg0Fz~bE>AZN+FI%^M!2E-QV3z#foS+S46%+DK4dQ`Gcx@3U zA5v60mWi*eIGiNK*9Ls1wi=qt65qap3HblpCwhN4EQ6w-S~uvOSy(rSyS7n?XTaW0 zh`50tt&N<8`y9rphOE@VePZ})Z!Ir&jJAX(5U2U=+jZ9=C&0cALMvs+ZhV_p?S>=Y zl`Ke;gR1{>M+U|E1`Lo1^$*YuNX6aNH8sheL`Ct1S$%ywiNdcd$0|$`jCmY6eUn)^ zIosH9_4^sx`41cz25!SZPftzYitx2ybGNk2?ZhrHC~!kl6GwnOY`Tk3uHSe^oJ4QK z8J?%ExD-S3AE>0+3>gk?AEmH%%Nz{b!SoF&MyYskr45q*Lj9x24+4kY@f{qUOf4-z zd1RCXZKfv93`X2w5ajmPQ{Fw)N9J#;AW zXj`vMR#q04Qtit-VoZ<|FR}vMz`Pku7#v)(5AWUEm^UARZXDnWl4g)MrfZ!iZx?>^ zn7oFFRR?X|i}NYk{Bf^{J0egZ;hXr;qwrX%zJl3?zd!Z12gX9OknkX#iuF-!{EHV1 z0;0s@-@nwBKU2=Rx}N`8LjBQb6q07>2CGFbYeo0Pr`c5>7gE{Fz@YQaeljJI))fd0 zPJXho*&d5)*II>CnzAsj0`>us00V*of$LC{5uuKuKXD!KlCra_7KbtIG(3W=CDSj{ z_-(hjF#gdNtaPM^qh;JJ3o|dc1#V|k<~)lW;_ChYiT+eff!1fLDA)0;nwrgRZS>BE zS#Tq~d)va*L+s>2Ei_U0=VgLvKdHVm>xj))%+J_i&^i=W9M?bx#;%7%34a+Iyt?G5O*t1z+Q8 z9Y77^f(`1_7Ec_8Gw^qVxR7ZFyvK2dV7;u!u5VW5#+l@7NMBM@tHY=hX0?D1(OW~* zHaao_pJohg;Cnay^pUr>s8vTi_oHRVWMqbGCg5k980ly}-1x%dD=(g2jf}_DQIsMu zO?Jn*2v7*WDmcQt!xM6KX+;fB`{-dbk1+uGVr$0R@v1Dz)RX3}7a%+b6V(aU%%`EZPKnI9$ zYDtl>T5@vo7{w{qtIe~eXTF@xh=qTMAjI)f>e`}N!U7|Ov1)ETxHq+7)ftnXX#NlEWsj{UAbK~=?zeGV_g zmYdBzG7JbPIA@=p9hzYwXM3kVfoz6Y(bqZaC&A)p;-EVwxeHT-F-Jt^Tx-uLZ)?Zb zNcN;oZS6TdUr6BaCGrn|K9Z2o-~XR}Ds!`h(+eB`ouv)J$MJt>&jQ@yugHu}GOxPx zS;9BL47Rm_pU=8%Ir@3pz{rau@OVD ziPjt+o9>px^EgXKRriOEzQg@>L=6W{L4N+_7Qan*kEy8mM51oQ$HykrhRCY2v$Gqi z5TLmu$$V51M{HyO5FO0wYVvJyP%N!r5WTqh)TvYM)L_5-j*~uzbAy$-UMLk)*@A-3 zep?60$f1yGUZ^qF$E)bx7gkoW?DypS|7O|OJcUwJnKO|3vZ<-5y}cM0m&y14xbhXc z_;Dd?1plmj2DN=VDlq;4mF96i3@y@Hlc~;}I|pYh=y&?nwr|@8Cjn{<0^u70TSj>e zMAF_XH8e9bQ;vXy3j8}gOh{t6WyuhN8yFZzC0x51Y22cgZ8jDAZdY2!3x+7?VtD$v zXeS<(S9CiC!(ad9G@TZlBzqtWxN{5D&Pvx&nGeJGqHuNoV}w+1{BF|oIo z$~=ZXqBgwl%V}}`;Gsi(QN$L&`uJ1Jp6AWx&Lgi9jpT2^l?f6VTt(m`HNS6!hu!%x zI9Q!QlXq_ie)vOGaH#*EgW2!O-{-PlXabBgm7Bf|PRYwmaDUSs0cYKhVdNb|o1G)L ztqgxsB!Tz64=*lfu2#VRsBlJ)2+*Uq_KId}!SX=su zx(_(pKw0m#`9N{&+juT^hx?^H=-aOLVP1E%GR2x0YVaETZ?}Tn3I7M5Gi)70K{WV; z(bYN4XM3JqWOf{4Ykz?OWO1=US_m@k{Fgj`^!J0_3hk9b(AhBM1RTZ4K8`wiLxD^~ zU!OVi2~m+y`~8_+VCsfimfubUUn`Nv>YCr>!pDw(*!-W`t~?&?O%k_LPxU6xo|XvW4s+TXu?sBx^C2<{*PgQorjNo$d2G@B2CL z@ArBAb53PuzVrP)&;4BYbzk>&t5W~M!u)eSMWX9=_rRU)%kJh~*HOsHabEkz>JtR3 zRROuftI!WQw8Fcz_Vw$vj6Hkznp;?ezFL-LJp4;75;ura`ui8q6!O-|J6iI!`H4GW z5e)L!Au?AMDdt!%;r$7V9t0+4LpAlaB9TDG3(t1Ziy)u%5;5v1qX`AG9B{5g9jGKw zUEq|SO}I8r)(1;6A>uI)3*weSf=e+_y*nMWIj-0 zbhNODh&dOQ3(kU~=-p{LgRi1~gLxC)}pJTY-y*Hysw zD_5q$STdt2LIvHjm|sa{gbT-M#NXsY#Y)Lvw7jZn0WDB@wP#^Xef|8FxTq-8#$;og zyc|5aM~C@SEWzTZgO~(MlhJhB-~VNEb7){-psz0+VT2jHo`uj68yP8>9D|c6#4(Dh z&_3!p_C|u^jE+ScIZ;hD)YYMx6(}00g%lQg`uout5bYWU&JSdT$d<I%TW+0K!q9 z4_00sRhx;*2uRdj0basalFe&Z=SUkmJ8$8iap1G!SC&33O(Iu`iS6Hp#%k2ZpPHn6 zfwT;LMV=Qg4hNMD;UsfhxWCpF<=-~&y2$T$HS6O0=q#EMH&q0XKkmsa&z<+HzkG4d zELuFx1HyX}{r1$Rf__E*SEh#>q&BbEND_aThkSTZ4}Mjk2=kvY6}ggiMK9EUiE+F5 z+O;=@km?=?m8BlZu8vDdsXdldwyN7qBhK!{Et9LoHvGI zonXpZpFW+Wb4o*f1RWlvrXEv(AFTBkFVu2aMP-{syi3WK;ZMOBz{``#@_gb)i8b>wEJi7+lN`hr87VNl7ed$Qg`xloeUX=TwlNeRry{ zEHyMWg}-Nl>*qMcu9>$=UQ;DyZX^+0SvGXT{D4&mX~mwWeTdERccz^p3t zQmt5lKB{*&WR}Lp!g&%4ke)qv&G?n%BOtYe5;3|5bA27Px6|paaPPvYeD>_{8CQH} zU@4+6zHh)UY3KoxkvY=!E2@)#QB$d?3*vd`>$jojA$Op3xbwas2+Eqxu08IRIa`}8 zGqxb(z%>}3`^NpW84E9M)m7oS;l;pht@=dpFSv20y zKR#dVyO6f(=FPcO1wdG4NFuoKnTw?r@}8~|oP~-SXq}$G&4VY`9il_*YGae~_&ETY z@w&tYClFj1Ju4HEx@!u#;eQFob7*C{k@* zWAeLr)?{ZJA;La9x|d}6Pmx>4kEXxpYU002;ni-LhAmu0=*1rfyyno%f)Or2>xuoD zM?et;hA>WTxh^%`9u(y4X=&HSaSTCeq0ac@c{j@PRjZ2M zSn-l97biU=koV1z-9rus_l}aFpdgz&Xk4f;-3M#%hFm+@x$l^sPMKHaQfrY z?2!8vAA^SsC!)GLE^33+$rQ)7aXVvmWQ-RhFj+_aNWa|rqT8F^NcGO7@Cr=qmx>-*v)}^0vpWu z{-FQk|4dHCeD#F*c$og5PRDFIKyQ@y1*<1e_@KVaa=C9fjIeIKOE<7jb8kgc;UnhC5G_6WfU`W^O*Q}cxcgh z)zv*HK-bBQ$m59&3ny{8AqM$L1|g3zB1SWXvS^MMXvD{eHr&DkY2Dr0AhV-^Vdfgh9%&vC=X!5QFW1jdKK(@8Abk z`Nahazur=`U9d+gcEEWG%}^b7fNF+@5%tH>nT667=S%$&eX*ge+TKw6u)P7PBh86- z1Ox?9u|U<4W4LSA#RfJWF((V3xBbhE%9qH|B)u^q2Rs@a;RNj9QH19%bPo(K#HNtP zJbI)_G+fIT=GjMRw1S!Gh+@{(oNFcoqVB<31mK2z z-2u~rxo64qYr7^evJgB45rlSj5r)QDVup4`?yDj?-*N`OfIyAZekM|7z+Ryq1(FQu z^ZUlbe;P-TXwxP7c`x7G*J3}{NS!n?G8%kaoWfKK-AGN&cSOiHVdLBh4HdjX_(_TB z7yAktT3Zv$gYTQ;1S@~`49`$fd~Dp6FxaxFyGymOmM+0fOLonQh}hYd+u?GHo9!ZL zD0bS|h9^DnQIWjWI)M~Rj0Ss*^B-p#m4SA#Jl7mTncTW{3nRNS54ECLN_y*vE*6Xe zk~LCuD&-^<-r|5;lkPf@$UHk zf`7G1F2u&J8ju^11=YH7|3b(`17@!28rZ(<`RmsJtQx-~RJsm<;X@%u8?(?XVlpmE z;f1WPN9i$Auh@4(qdMY8pa8)>LYZmAP(WRNskh+0^mL8czylaJmW}`Yx`(F?EbvEy z14gF$`T6lu0Sh{Jy9j4KePFHyJ0I>8uq*T+B)$I&G!FHl!w$zIrs>d(Oii^#7mO43 z+70|Femyp}Vx$91ZcN1nbSPtwwpgBnZgSf6=_7`4!^Jppy+pwx*aX}@Ag_1U))vOxksz?x=BWG3p!bkMH;{tH5$ttPP_@f$$=ML-Y=dH;sQ650Sg3t$FhaH88V zZxnKf_2&>B+a*o8fmnuxHa9OboV)i*X~TDEKw2mmsKj(ls~FpSp$v>G|Lr{_L=puvX3 zZ`Cicc&vy8kl!PpF{gIVSig~qjSli`Y3YOQrF-@J z{Dq7!4@nV*Wq8QzZBArA+~xzr-o6>Fa3~<^ zznA55lSPzP;0a~w1i)Qach6kw>7ZzItQLnkd(C-30$ zOo1&75;DDYpRh6HZyL3E0M*$hh(=@unZ2@HJpl5(j3!uMy~NMu8aWCtsxy`?S@nHq zU_p4QDgESvg}_~KrTHrf?s$NZVCr|OyR9>`{=|Yuzx#~^w^!$~;Op5H_?&@{s1CFF zkmb&y4UdeJdw)J?9Yn89#jfw~w+yIc4cdpBif2RlIE{*|W1*N96qts&w;R~#OC!hq zB^V}OEe_WwE5HXwC74om^-Nb_$1Um(7oVA&Ff&6T%6kiE&(Wh{t`-CYcsH(HM^R0V*V$ZjDj`YbsFSce&u=ruPp z6BZZu3Q|*2x>{~Dmxd}3QgL*pDabtk?cn2JW(%S+2!UNKn{b6sXa7?!tTXsD04L@@ zdC<5Je~NnnRGxvG2qifYIuunI6ih)~vu3x@@!+X&1+{$j@Qv5zexHUb;F-gO*m6Yg z@mx&8$Pbb|OhG02B#nl8(u?XM3}i<_m2*{RF*En7PV@pA(tQv#**XbGH83P}ng_fS zL9J0*9wB9^sxj)@2N3ebmp~wfYUAf8$rzw2KjQZw8ob<7Op)U9DA(w&UN$l}k@3>c zEI;zx4pe$_J4zdEZKvuw$$~q@|2Mq2zpTpN@nO}&V;_4X7X55AY0?~ly$U-Huh?BJ z_Idq2T)}pJ%~N7Rztl;cgo@HyX=c!A7IX3W?d{LQcGlX;1Sum$7w6~pSzRc&+njBv zW}QNmQ$0aA;LxK2Bo!D|l|6n2LqjF_w}4NuXokh_&zCJbtYlG3U@_P1_Fjrn-0*uo z-A3-B&I06xdg&H)z)T8eRVV7_>G6UwL7s~<5}*=bBgb*1w>HXyf)^po;{Zij;IpP> z8+H0^W0tLQ{`LF+mNH`rB6UG+iB)l{hE>NcT$>DaJwp%q9GYK1K&i#bi4Ghw?y2_#nzkQ^WbrLl z$dDUQYQPhA<6mf(j&O~%)^V1!so>UK)z#5&Qr(T<(Nxrfp2uNn*cKtw zbL+(XA6)Q_BodKIVZ1X4u!8P8=W@ft!@+#S#O$q2{jIiVw3tMgTcvp5aDKFe-)b*3 z|ET+E<0Mm6MV*8}0ku>Ut_WpAGElc}iV4P$dEYmu@uIL691Kz=eBC?SP5Le)^~jWa z0{q3C93A1ZJfrq^0_?LkGEe~13=vV$EkLGVt(ymkWJ8<}m>E-7(1DtmnTgI;WSXdl zqj1*M*$I!mY1Aig9<~h#f#?fDcq7&xs(xUB1N0ot@l|7Eab_i+8)r|{-R|Dahm@TP zJv4$PgnY63(T^V4*WTZMC7hc9hXw?6pUGw^LUV}(CiFmevT-Fz{&hEnb63-FeLuu4 z1`_;3^E=A{8%EKhgW7rdz{kbb=Ww-FauUDNOHg;qe2aYhBA4d^QNvnfBRmhI9B7vy z&e~s#%>hPzg;P9Njp1AF=j(e2*~E!$gwvrwCxKN*7?aalXZ+4*M@R2*6%`SYJN=fS z)3-GdSO{J z{%B{IkA*LjiSboSHaxlh)|dgYE4GU}>=ZS|uT}X2v*f zVctQj008_vH6WXO&4G@TYk1xWL@20$#zSHNp%Ef4$px1g9ZP5GA%ejf9y*5;Cw?KB z9ZJ}js~24?d}Gd2<34gPgn>Rg4;poJ1sC|OzCMO8kbe(5|7F9yonZ%8&Rrk!3~qfa z))F~uBsMFdM-n$gMYMMcwbs{rEiS3Y*Ca)blrO?S8yQH*Mz~=>QUm*>r6p5JlUrL| zKwl=#;1?3whOxMzhY0P$I6v|dj&RBRuh}Cw_A0&v-?))V({ujy;o}3GP&K`|I=G;bA!cgtv}FLpRYU{|-U`z|r$+@td0)r10i8E^cs zs8W35&-O65cO0B?zCeLl9LiB^nNFReB!Zv*D{3vV0O8I z2*O63M&ztOwHnKP<9--Fqx=q)igeY}r=eql_-wc7Rc^sPzw@!<%KP?J9KMeH#J#`( zY`_<==166_wvyAg{lW(9s4Rc2H311E;8rqz*hs}n=Mt)0m?hR>jMC^|5#9lFJAz`8go|`utg*V1^H?U%y<1 ziSZy{hW>QE=tMhUCAM>pDw6{W$_}*3T>I3fRQ7okmp`1m4Jj+65M1H+Bl#YIKo+9w9e75~I{)4B)CfnNCVSGa?B**Bl z{_txf!1wSdNNV8NMm>Ekh)C+|>v8l!23j*&Lqp??o!u=zzcR_2dvS9imqA(SkMnCn z^SENg&U7g8upBsJ<2K*C@L~B50zUE3rjZ0LAZWf~d1a+<_qgjfd}eY=iU$zkNg#-0 zPhKPg`(kHl&V}1k@0n~k0HTTF1vf!ZcE?gfBgDHOT!1hn^(Gjg#$BrOTq4PGw9gYr zSJ}g5@5DqzZWJ%2T|$P3#5L!o1K1qAIcFGxj~2_1vFdTqof^KiLvdkg1yb1^JI*(- zH@?fpyG%+k*q-hmgUQ`5-dIiK<(b|hC~M<}e#^_*%wrybfxlmQ*M<63$n6nc`zkDz zy5z0c$;%(r2-6M{? zc)oPO+_g7DIJ0KUuS`8Y@+K{D-1UBTrOmf3-NQp~&Z$6V;O#7=%5#=l)Y_^Sui;y| zg92-q*kIyIU?n@H(b3ct^=8;IVG4(P1G*A$$`p=tVE`rrgEKJd4y4`tV1HwHFJshP z(+5;!l^)KzV1R7mpfKYI{QS{xtu(kRA}KEq{+kEBaWxD#>V_Gga@)+L7?cF|MS1FF zg(n}!F$}>$w_h>d{54GYJ7hWIiq%6edQ&ZK%_?`HSu}mEH+hvDw^{UUmL-gRSI!kH zzFPd&10A5cS@$~0UUDlGdF8$i%;K^2LGCjPi2(_e%&e-jy|!BY1*ZHZaP^mMm3k&2 z14|!&d5+i6n56Y}9WTGdqaHa8M^BG7t+yZqz1z24+9{1&8gD~P2Qle!F6a9t$!kV_ z#RqOH@>grF^lJM|E=zTH!l~ilgdQV$qD{GOq7-|4V(V_4XvbYNE!i$d4}1+5s=yCTMojwogrkG~pvY`dw? zfhlM}_cx|XGX3{O;w_FP@h`1Z#zimxKLmn8Uyfjn|XfPzC7CfxR+FN(3zMzc(Djm$lR_An+ynHl5R2u^?d$PnC z68ncBVAMySMtl={B&$RA=nd@uJuB5j7qFr*-xW%5J{nB9Oj77^^-}vo0t4T>oWn5B zcE@y4bb7?P8hZ;plKo9F^efe5^F=hWpg&r|(#c-a14B=WZhVy|Ho z35NMOG$;S)qWtD~#+I2EfEGXc3}PWVx2b;7e24K>Vv$~jb}fL2$W}?2ZPEc{dS04y zyaewBH0kPsD^5&QF=@8W6vd#YfkMyOp3UMiJw5{>)2PzY(#~xvE9d4d61u)?#f>r) zRG-xMJXFt$th>>4%88lr_;Khn6PA+?-Zj5mn4OUeZ;$uyA5xx3TtkE9G^(vG@&S0} zVLI)_qiE{v2AxH_gxx!qyA6PS+qQG>H4_B9y}hSXjk;5v69=R496~};M3r1)9<$I! z%<(spq{kdK5}_&thCtsxH2MVzNTD}_;??1dmY(*K`in;~Io4ydC$3>qY0XOuX_YhG z=;wI*HvBbLWOeSriplT4eLBkxCEKQP?N|QErv6JTC=oDaJLWLUjdU91o6N~aMU}!x zVbY|#CENDJ{`7tKFeu!MF%Rx?XvIuR_}HPZY_{G)+PrBV_4Vows^vuJ>9!%tphb&^ z{q?IW$p|5(bR6os{v}!~9-0{Z4c&iW44Z}Qg?3plW4iVG?&>=#+qfX;sYuyNbYajg z6%_1n2;LWohRsd~CM7%~qEKo-m6594GY-C=z_zx6g0Z)oTyUt|6nQFE z-r=>NYdnv@jKy{1qZ%`WYg8Lm@TPdczy0RM@s~e4#q6~1C6&ofO2R!;;dlGNC9lRz z(Db2Bbb>}4=difp9amCI$qzc@6AydRm2;C$YBRGE5NzI!d{+7SM6k4!RHv+$ph1)L z0I8m~J0E<`2UmfjA_WYjj#Q&vVltVS*2#8^*BI;lgb~xhT`1*K-eNO6=GOIw!r~h( tn7>v5jTILwrlk;I^;L5>Py4wazS_o5eKKldg1?!xSMh*C0?pvU{{Rp^_<#Ta From 6c8be73d3aabffa8fd176d84cadee0df7f905005 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 01:56:13 +0300 Subject: [PATCH 06/96] pictures --- doc/pictures/001 iot manager.jpeg | Bin 176763 -> 21218 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/pictures/001 iot manager.jpeg b/doc/pictures/001 iot manager.jpeg index eac7f456b949e048f8d49e89c5058a5d1e1a90ba..399147747821393c402988d996f2e4247fb90e12 100644 GIT binary patch literal 21218 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 t9TFNRU_~jtkNJL3w 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

mGzGXG?DaMC?m524+XRExGP$N^}p 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

Q>~i{c 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 U9JsKj?}M!dQhFO)O#c5j0T}`UX#fBK From 1fa2add71851863967abd7ed31a6c94415d21f64 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 02:07:28 +0300 Subject: [PATCH 07/96] pic --- doc/pictures/002 iot manager.jpeg | Bin 0 -> 11024 bytes doc/pictures/003 iot manager.jpeg | Bin 0 -> 11818 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/pictures/002 iot manager.jpeg create mode 100644 doc/pictures/003 iot manager.jpeg diff --git a/doc/pictures/002 iot manager.jpeg b/doc/pictures/002 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..74d49f8ebb484fa1aa9dbe83ea7049da4c963a54 GIT binary patch literal 11024 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 G;eP<%`?;0? literal 0 HcmV?d00001 diff --git a/doc/pictures/003 iot manager.jpeg b/doc/pictures/003 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb228856e3a762bcd5fed6ca6abada4406025bdb GIT binary patch literal 11818 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 literal 0 HcmV?d00001 From 10975cc8df17ecc8612fd3f877eecc54f3c5449f Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 02:10:01 +0300 Subject: [PATCH 08/96] pic --- doc/pictures/002 iot manager.jpeg | Bin 11024 -> 29441 bytes doc/pictures/003 iot manager.jpeg | Bin 11818 -> 32790 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/pictures/002 iot manager.jpeg b/doc/pictures/002 iot manager.jpeg index 74d49f8ebb484fa1aa9dbe83ea7049da4c963a54..80b9d67ccf522c02fd47167ced38a0bdf0d4b580 100644 GIT binary patch literal 29441 zcmeFYcU05Qwm2FD0R^N;uPVJu7epc|O{7Y%Do76zF%&7mf^?9sAVrGQ&_kpJ=}kns zgc3rPo=`%75MKPAd(XY+-16?bf4ud3YrRQkC7IbXv)k;+?7cr{zs}|XO!u|*v;h

Y{tW*!iu|UhrJ?-; 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 z zNoqJ_WeXhbV|6yJaGgCy!BQ3OQOgq1y-X!4ZapV!sU!J#!TiR2j-=!yli>s-dEl%p zi-Ph8v-I?vu2pG!C-2@kTRUyC!%*!*cudv?2brjRGKIDsdwuc6;x4?p*t|A+8N1?I zjSOEy^82R=vu4H$+L)#6lYrDIveV-!XSuW}9&I?^d+zv8jz-O{^C=wcYOkrX?nSir zv-UHIM|$%$M$GKX8Sd-7ag3(F^GRE6LBc5Z6$gaZO*Y$4el3?cevF;wters%ZP9op z+*Vwz{fg@q5!T7F{^@5HJ3{vh5UB<|eCAg}2B|$uZJ~yJRKZt!+!+$rNQ~8RA|nMpzi9}b+4hO@*wmINsQASk;rc_K ztHno)V?m0>14lH0^idikplX8RU(Iy+`8t`AIyK4>M<7z*kKD)zwiv1|X-1mWyn0pB zfNnuQ5k;X~b74iVQ^$m~*abw^KU_T}sm%>?KKi_a3;;>YNZ&zhh#zc1#oui_n7&NB zFek8u+lB$Yxk?=(^n=3C}ib!(#gB| zf8II7xfdk$=hr{mOJoCFM+?$v;c!o{TDQ#12Q&bb3AgEugixPnj;51-#~(3B3UU6{ zOO^ZcDN8HtqyZ47YW`X^q04(C%AsCa=&!HSlqmYrS>j{P2>5_dRF!<(j*&BFdnKy>!7 zUIPFUlsrB9X-<(fyuGKLQDNd5lxLHdJE-K7Hv3(9jsl~sSI3Ul{z4;zekQ|TpE;Nb z)EjrO2t>@C$7ZH&_CMul{7QqO!K*ZXo{9VOI@s3#au)*uhQ|USKOSOe^#`-8tSH00 z4VbISGK;2W{4F+Vv{P^F)v0c+Kv}|DoXXh&NW`-ZjzA%2msnY*%Z4yJ_p;?!BJ$%@^-UV7r;O8Oqq`dSoITAt3=4hDTx6%$ggMPd|C9>XA2+hm@=GUE<;=%% zw7L2_6#F5q&{5Pi;Z;2xUGYBez6zDdRo&Uc^i^sSbOzriYYtYJX&IM>c^^BkN_n47 zO}J4WH`ycf$nLRGs*0=WcJMcIbEs)wP@`O{-LRidbWr2Ov%irKW~B3t`{0CNTOspY z_CxckkT)TcRd}s6QJS6e+*SCv?Lu5RgL4L7i*MjItF*H9zFJGwaGCXIGW6r!qA>r3 z7Y|=0Ru-Q+5Epeq$3Mifc~B4lSF7LMdEcroGv!NBJoQvk{4@*(c+?K&&_1cU7`RgsB|mTot(Rt-LG;5kc0_4Q9&%vNLK;Z@8K%g zp_#ICT7+nX!fLQYtTyo?s}~ZCUS(jZbE@)T5{g&7DZ@p_4BVL{r02};ca>xTw)Hv@ zj3d{PpUi6#Zz64{ z@H{>SR~|OJEkXzjQK%*I@JBtz=Ol>L*t|l%8~*lLp$E>Qj(Z4oQF zFz~?B%}ycfLxh=Q^3*B*r>>xcS+F3op~+1?zXw{6t>0<~g**)sAX4L7tPfsl7Bqlc zgFRbk=+UAYuSD}A zXZzopV*v3FQ$Vy+L97&3ZRk2;Yb(E88J^HiTX23i#+G6B@xDUH?%L2~H)O$X4t zF2~n(vTH>(DI#T)=4g*@pVQKB2^G(D@??yRH=R5=S^6yYzT|Pc35XW#XeWEAd&kk@ zdvA`0^5*@HS^T%(&$fWQmz{+1iFa0BIdr&JkQl#m)TgAPxJlvHj@@WFqw0G}2iTpB z@l0q%4Kd0cE;4}X%Xc1_2*ES*P@3CwtuY&4-Ka%VdY!()mTP46FTHR;}a z?r+D=oa9Ne$#>g%$k=o4?9$6XMemxS;o5B#Eg77=ovFdJ{N_v%bU**wVEn+l$`@BH z(zuTU8$||Jl>^Ne`#Z}SzMv(EGjnSYErC7j+>%=ct{3Uj+-`kRU0pz&@1qMyc!%T+ zLd?^he#&J=NQn9-DvGgBt5b-LPZ7`Gd_q~Ze!k;%z?PCGfjymmC_l1o$Ssyj%EM(1 zJ8Jf2ch_Pbcb-1`rb23oiLr;7w)JT9`Ud9f`Z`4+labA%94~|)7p@FNpj$%~mF3Wu zWjx&R4T#7+kppvWN{v+-R^WEx4!^bd%1vH=95KFWg4lhG1{^J%YXJaQxQ7hWL^{!N zA;&yb0f=(LMytZ{^_oGwKd#khF&&e9aJ&c;KmW=KJnz zJV_T;0COwFU_O}1_@9+#HU98nRjs(VL`p*GIA1LfQMnZA*Qq|}$~*Lps_8oO)=G)) zNJbxyx>D+i3GS%02j%36fw1h$2Bz#LLaio+;hB0bru6q3ErU3g(VN+YI@OC^3WNF> zVt_BPDQD8=Z{)Q5D}{e*S~(4{a1>Se#hRzFK0@C7t?%HMy;42yO;n*z>XGp&ig(=> zZmciJ7oM(cjIUS>+K;f9j08#L0d*3~)P=Wd$ORWn8!nf2aQkFc=HIT^v9$0(!Deyb zNGdRiuD5()gH1eT^;!jE{5N1bC3FuN*c-frAW3~f9fH)k+K?nsuN*QMAREnY338wl zKXVA8hVmbR5=JTSH_;;JCt?b#_AfQD2e)81#LC6aPEYrVuCT(+C9wHk1KFp!fl!Z# z^m8Y_LG?%1s$C^Tc~)nf(dZFe#Jht+r5=Qs#{}qM(2Hr5tK25+f%>iEsb9eHe`0n7G{2Dp!n|tHjx3}&*lTNwaZ*E0dQ3~ z4rS`)YGifQp{o9F<|C(tJ{G_3#q<&OIuyB|EHEHaBmAUv4Lft4!02c8^?DJ_D;u!^ zlS9z3q{R__wd?1uQyRPw-=lb$*U~-=4WZ-TQF(U&Tl@A9fruR5pN4N-`-@2N|2`t4 z=^(n1>Zc0ZD~2OYiiPbC#n#Tm#uoZ6PfysZz9cb~ApfWb9lobRNz9m(x5x>ahJd^= zt>WgKiM)L;SxL!aXf@mPtEWqzv1@McT(1=Soh)(+%f=A*e2FTv7B6LxrCNbO%1Hdh z&%fVUizGGu3pWiK4zj%;iYqB1PQSzjjyIWm)0RC-!zOzA*uRDwaqnuazk9#@A;4A1 zt5=*h=rn;c#_Rq1o%!J%Xs^=Qv%@wTw4<`X6QqtBd_z->%FA z3eM;$s-rN|jk&?DUpEhIWdRtbLy+qN`IFUO<^9WFwNm+W(kTKT$^i#?AuO;oGIF%E%2UCh)cUhqj33snH9dxPzzf zPvRzn4ncV_FOWDvK$ml&ivL)QZX56_r1KF~?4yTm_O1!?R~gvJ+cKZ3F}>bn$%kT- z#)z1Gk!f(oy(s%kK7#}y2Q@~(_(z$5{sLHc5*!L%%3J0l>gWO1Z6$r5g`PA5*aTN` z@(s+sPC5WY&j=vY>$69%BXN{?$^#~-`XPu)yM=hbg?~V#AV-Vk0{&OQ3@IdG^_JG= zO+ad@TXrv#hYGPa#AAR6Fh=Ax<`7j$M-D+6EQWvqGDeWWTE9O@{?9iCSHJX0Cm#Wm zui;)O3j#NSFA&8!zNrx>>qCfrdyjLkg0x2d;4E>NNn2-ViX-wx0$a z2&`uwqDYtK_2i5j*o#t~#Gf?kHOZzY){av18i)EcNSJ}}6FSKhj*a^{@!1^J1m;l` z0=NCqTNA&9mBWgo@++Xmfl-!xuj_TM@CayRB|~0D?NnTN(h%JWjEV#3|5t(pfq!OC zIpk;+=OwU%rWY!3#W^H212g)!X|JNuLr+?t7W5G*q#%_ za-a3O7p`C(niRIvX&&pw)ZdUSc{ije+mVf>qDqP(ef`Y)z%+=3Fnv;qt`ycV`f^VA zoURqdeza^udV(5KUj4*&;^O7(YZGaXcglHqk}PKM5Bz@N6Hyh-1vpgy5ChCD_t%xa z-hv2#xc=HfKA*6#9XOODwa!WD74bxAKDcU|k9@8!2B>av80#gv&MSl4_P`INU0pb~ zhe$vMOH&nWpZ!zcb*Fg01&zdT?`~!Xk=JyIsuT*NXnA~a-#rx3)>YhkI7liu*y*LE zHcZ-hrd{dm*EeedDfBr?dOV2*Co?&G1!TBL+%tft{HH(y?p7Gb&%FQEu9mHmDnA@k zFmlssq+mw4d2U8|Z9{I@JaE;^B#qtE)5T>wKr^t!lBBp4pN7Q7D`p;8&FP)jd;ldd z+RS|UWH@jOmH^v!taf~F$M>c{<-|GW)?+lc5ZJu#nRctxIhZfT>TbqPB7jX4Yc<esrD5n&f>6T5^ScR$Q@zk&ZuDI}auh)f8QnujuQOsol8Aeq$j#+SO$E@Dp^Cp4I- zeNL*_NkoXEjW{SI?j(YQzYp{0>HUM6KV(+#?~~ZmR)X!R*GEfZUv0Q?%7kOe(-d}Wfbw6eC7qzNj#fr?0{Y?a#t^Vn)4y1% zVlLJo^XJ5pcNqa+7@+;YJB&246OOlkxJY%ky-Ahbj@9vNo9rBmJGUMGm9nVY(<~Hb zG7cPFZ@Z;pv(pjR>kv=UYfTAf+>EPD%Kf?!@Vn`=9`!)dm^IaMgg`rhI1nuXq@ml! z0(F$E-*d@M{O>pZN9+9mZvX9_P5;4u$p2M36(54`S^`+e4M22k%4 z2eQih@00&O5drC7gO6OA*`fs8Iy{3onJB#44i6-=b_ZQLXmhf$>#f;)dO^_0Z`vsn) ziag#w2wk7cgvH4W&_MFT-Xb#1Do}OY8-QXuvS@=(UYXg_bOqy`0Bq3?XTT9jw+5U$ zDHx#U6v1RE>kZ%AFBo>P3tGeBxr&TCZWS-jzg`HI?+0A(lOe$PuLg?)Z+p0S2%3YdMT3A2 z!oZrqTZL580ppN_B*>)C9h}Fg4LH0W4&o_V@r~|g=w&!b6Pm@?oET3j-^$mZBS6vJ z^6L-)AD>FB`4DvNdvVGMA0)}K*(@6LwVbH!y|Kq5n?sbU0$gfo0jv3 zU~>cuEJt(^Uf9miEdUp#NhI%*Q*Fa$D<%J8tZN6QQJMb*U{mi`$@_O65DZ8j S$3G?S`^qXL?stwJj{h40dA#QU literal 11024 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 G;eP<%`?;0? diff --git a/doc/pictures/003 iot manager.jpeg b/doc/pictures/003 iot manager.jpeg index eb228856e3a762bcd5fed6ca6abada4406025bdb..3f23d111335149ac471d7e1b9dbae47b8b2a7761 100644 GIT binary patch literal 32790 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 From e32097f5636043433a1be369c82affa8ab168d76 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 02:46:18 +0300 Subject: [PATCH 09/96] pic --- doc/pictures/004 iot manager.jpeg | Bin 0 -> 62719 bytes doc/pictures/005 iot manager.jpeg | Bin 0 -> 35513 bytes doc/pictures/006 iot manager.jpeg | Bin 0 -> 48160 bytes doc/pictures/007 iot manager.jpg | Bin 0 -> 390182 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/pictures/004 iot manager.jpeg create mode 100644 doc/pictures/005 iot manager.jpeg create mode 100644 doc/pictures/006 iot manager.jpeg create mode 100644 doc/pictures/007 iot manager.jpg diff --git a/doc/pictures/004 iot manager.jpeg b/doc/pictures/004 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..95cf44d2d1d19184286540f95e790e6258b81288 GIT binary patch literal 62719 zcmeFZ2UJsE(>EFf1O$w9krJg#RjNt}h%^yt(n~}@nt(_P5{Q8GCh!LYlu)EMktQ|L z1w;fX5_%9(Y9bPjB!qi>-g4jjzUwW|cfWPlUF&-eY;v-5b~v+V_RQ?x%$(yd$IFm2 zH+2nkAv82J5G42mIbMMX=^#DsLm);*5J?CG!U%rG4xt6lXuzMp9mjJJZO924nm@n) ze9+R<{y9$4(b3W~oMd45(-@hUnHU*QF)}cmVm)<=nFTx;m`+1kSx)~s|MMk(hW{A_ z{<1JKF#fsX?>mm)LD(4S0#5ML(g;CLu+h-6(H!?dVBo#dgB1NC>Yopq6SQ>nC&61f z#SC81bOyYATG|uf&C=7+fmertpF`-_=-Dq^);h^y>ck-A$0;9?R>&xPy}p~vY@8sX zaPLth(IAV|2JJY2n#I@$UIs$2pmF1e=kaaNc{h%brl?CA4A-BW2k43QYaS0J^Vl# z-k8U|4V_S<#<8-?^8K*Q1CD$AG;1tat;I^0H~-4L7Lz-=(JvRYB(I)_$&DjiP+CWc z;jHs0y(0|86`B}07IO?a5q{O<;BoT)z}sU8&Wg&DXPj@X#H^TpRxh6=tw`(QQ;zk* zfSz=n?mL=Iv0E)} zqk75C!MZ{>25G+2uI5TDb)BXTwxMG*E>NycYN&f!Eu9YM26nYui8`fK_s1QUytpqh zSvWP_*rW3wQ*^u;vQenA>naKH)g=0M!y}g(F3)@{i&)Uq&?@S}f5N&gMI1vI;4aXo8j{4a9!w&P zP0e(*hQWk*x*i^j(rpXNPxI!k2=wy#So+bslBmga|E_#lEfUzphnK7@An<}sfh#g{ zrsF6DzhL1XSv&`kKQ|`kG3i&u?q~_qbl*+HXlb5Rv>Jys%=C`YQUs1(`gAFw^glTh zixHa&NZ)rn-CmZM40X@(bWKOA zax~ODshllSMMUnDdfSa$!3IuUk?DZ;IrlngpGeqSm*#vim!U6f8R9-(qu(J#2@-!_ z!y3Yu(~lvq%X;B}1kcuJ1yUKxvT-iF-mO9#y*eha!KNoVl@MP-KAl}q{@_9`SK5x) zOKUO4%OlU#umu{Y(A|7g24KvZD3_#h#ywn&coIu69(;_6s_T#=a))}2G7nhgJ}Ss( zchYgsLa3uEmLzHmhJ4J=KMB7$?r^ZJC;r40IELVZ0jCn6Oq-yVt<|`o(q{*6Y@9F3 z@%}0~n#R9)@4|gqQ<3@ACvq&pd<>UR|uwKmUpko7dMy1$r z&uSate9A|ygEFUrYOnvSW1R222FJ@szbWw@w+@h_J>=1qS4_r`EMKI0qPWiyPa%=?&eW*T1L=(Kg>?(a9Z|F z49dSe8Q?9uP+NBld9xFcUC(p5=gE-JtM8R$&aKnDudmj{Z<=>^U7e=#1CauDy|{sj zf{m=@xH`qnRv90m_uX?sXL^M{ePUQb2*O=E-S8?s*e@88%hbL)&pS9rwjPnYIMfSo zlRu#@X=HAawRyX#^;9)s-d>t9kwd~yv`;H?XEeapHFf~XhVE9SsseJPrv&K3wNOVTGfE zC(l7TuaB&ct4Ha}F-y05h8!EWy$}N!9yJ@H*ucO{pQAYObf;HIS+?ux;_}fzfudh? z=ic|7Uw-)Zho)c|0Y+uoCi1M-^}!ec*XmWm%VS8N%*kDQf)^0s(%3>Yi4bvZY0U7j z%(|bPr9NkolPyhK0k=WfOln+2nH@tSEl~Cd9N)XoC>25a>0hB(NITLUsY@ft#D1#6e@85FI74 zbK&({zMNDuFT+6$7sZ@-+si=B7;k(AnQo*37n^D_y6!d5d|Ts=yn?qQ11)U=guJ>u z32zbaJ%W;ge4mEP5nGbg7%DxcvmN=3Pu6_M7knMu>ZFlZ#faBW`gBv^KKb^(&Jg

OD$| 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

$f|-d@nz2W% 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 H-{<}hg~L3_ literal 0 HcmV?d00001 diff --git a/doc/pictures/005 iot manager.jpeg b/doc/pictures/005 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b8e621dfbb7a85cbf79b15a96e097d8a9253d677 GIT binary patch literal 35513 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 GP5&>na)Ji{ literal 0 HcmV?d00001 diff --git a/doc/pictures/006 iot manager.jpeg b/doc/pictures/006 iot manager.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..6734aec89f76d046f57121e080cdf3f326d049c0 GIT binary patch literal 48160 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

x?Uc%(IFf4&yCPbPw1G5q}a^jdO+nokE`%EhVZ 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 Lksk^EyZpZZpzVp# literal 0 HcmV?d00001 diff --git a/doc/pictures/007 iot manager.jpg b/doc/pictures/007 iot manager.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2178d63483cdee20d205844f59fdb492860d512b GIT binary patch literal 390182 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%0D}0y{hsN z$ozqUPRQ!Xs__pAnfj zm4HDvZp6~RBD|;CIQg_X9(jFqi4J$#9M_EgIMyPzb@N?$cQS1P4n!kbNzTiN}E38K%AgBW~ zPzn%MkNnf(V8KxE12f5I5T}8h7t<>>l8}tS;Ow-dW|1j)}Db4FFPf zc@nTL5KfUcLraiKmPaS}SoiY%k@ZVjDp#f|j)3AedNjmeVa+T9Js$j&jD5__Umyzv zqWh~@^EL;VTNIMyC;8F`G$J(p*a>_i1R+f3_oCpKmvw=MQmhHFKkM+a8-&=OkZg`K zC0jGQ^GVh9$!5$u&SAY{EIyZW)5LguJE3OvJ`-3RL?!-bg6tmz$-Kwc2?_Ux|EB8u zf9G9Y6_*+e0+?`7thx9w8k5eH4Q@Hzph_o^Iimd;euZ?{uIwCulI0@>^|{sLAporNj8J(%<|s zaYn~Mc@yoo*5iyioJmLTFoN{`21LRW{vz$|6s3CBIE;dprIRCG6rX8O$H4rW|wSJv)sFA1nQeNkT@Q&eIttRmGSDA z$pA(%mVq%eo9z)AT!p&SxOMG$g4+VO&Y4oAeYNXJ?cC zI@bPCS2W}w!uSqSv`!sgMq_4a9w@(mp8PDBX+*QhZjU%Hn<`@gn#qpgNv*J!T;mQq z)Zpik11)ZJvS?Iy!B0~pa0nHlyoI; zSJbLG2~84ZfOFWsO~MMDz6w~r07n5r-fTlb`f6dTYE>nl4C^)Y7^lmdeg@)G3b)4@ z(-gSo$|4`DOQ}eleELJ`UGz*AM#p{(wmqUG*0_D^N15e<@}-u#wv*fGb<5z+E{ZE9 zV!?!;{Ot(oW?%XHteKGhLfxLgTOLgNeJ+Z1)c?>s1)^Dz+T8hI5jpK#?-6OeLF~9(o-UQU-zm5EIgFAMQvyW6ttZg*`g<{Z zd}1pJJ&a9pl!=V0DwOJj>UL69Xt}@6G2dsI(<}k6{NZA(D5<2sk|7esI5@c?yGBsf z_rBcbWU@qf_vy99T*^z1Taw!(L3P75_Ja%WchyWiRycD3`KO#F8Aka?b$N7WPJB=UXR{eS)2Bxc_pU#v;^ zlc92q4zyEBf?ViAn&?)5+!g#SyJ%9$8brALI_Pm5n@)R@B4eEp2hPM5zQsNypvwKiR)m8Hy_n5jpf zqYWw5x4dWB-;s+i9SrSg(f3k>*33!xnru|IT0*H&7E3;V_&T|y*eWQjvfK~(Zp_zY)! zMgNc6%bL&=m%x44HR?;1cy-Q~=IYp->(mzUm9MtX07%7g&Z$>mI2=xY6H)Mr7jnP% zl-IRY^8OzLfOXf_1+_49I~E4P+hPJ?g*<`ZO*^mOe#I_V-z6*KlE=FZ~<|&D1Wo>7G;P;ZzR~ z;k;;d-jfk3#?sOlD4bDZ9CsdAbG@r*gU&){XvYuIn!@Xf7%?)uI*^so9T4mOO7*GK zVO#b8LEKvh#r3V*qTRRz*Wm6A!7W$vEj6;{xue>T<$-Rp#G9$P%>Z(u6c=e-k?@n5dJ8ScZsgpRxRXKp(fcFuD7cHmc6RXf>iI}gvP8wo*siPGQ^x13B z_SH#91u|X4u?*NKx~yMOJt^>vGOAEYD9h~-CP1vDr}td7**yqZ=;C`h2>-p;3sb9n zu>ZYsb>e^K?H~D8`}s@7A3(r&1>9PUW1-zMA-H zb2V`9aRRt#MlNrWvuC+&Ve=#NDzlJK)+2C2Cz-+Q`-e∓q<*n{cN!35p%$Ta9uo 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�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

OD$| z=-VGo_bHH7N}H$>r|2zb#pheS706q&y{mgU-t?>#aqt6_YwQ!l?9v;a_znjmnskq_ z6Gg~2{i$&k#YQ~YRQKIhF^Di0j1LpGc+(t7d{CI_;3K=8oOk)j#WZ}|{bcK&FP$ss zcto??wwFfzGG9iWb}_=v&;zeJ>eg$Sdpo;mHd6yNGn4ut(c{$ldmlf%a;BBmgmd5= zMx6rr2?inxJ$U`E$q9`QPHWLUVpRKT6-X2&RRM*>j9!!PU2;I$>MoZ%=|c@`Og)~t zebYVRmlXdS`AF5fewqTo6i!(w|OclHyWnY4Bb|t@wNlS zVGOam9e1)wT_RJy_G8k@K^cvH>K~%7m%$~N(;@Gv_smG{TVGpjUfG2>xFDkhQijh; zv3+_b@I<`@W^U*js{As9wZCIxZr<)~`bFn^b$qnXhV{-zy%#Ql_)?rfp$oFU50uFqP2Vd|gT?9}LOZ;-ViF)q;8Cx+5{_skL?M_u4*YNc=j495_9 zTELI6KClQQ4#uG1t79;01nea8&5p&Jan#LbCT4?@4Hb4S?iL!?Ip&X?#eIbLR+q~u zT59L&#VP`ob67L%?Ui13)Tx>9G9_H)7izEk#nN-7TR5G~|I@urNEie8Bz3k8v-Jc2 zr9-Kbavi8xhDGNKO*(fHZ!NK|M-KJ{pFAt3ua=jMo6~-;qB{}d!tGt%?e&G?wEP?E zzVv0p;Hb1q4!NoWDXgy9o{V2+K0F;j)9GuNgLdf=?z1qBFyDNmDD$t)d@gG#R4YWi?VUT(JAQvbu< zGmbncDj{M&o5ImRWtxR{qqzatfTN_LfO&u7DmK^g{g%MuPvmD7Yj+NIc zP+9wQGpMH!rQ2pp#M_=_pu2cW2gUa`?a;C;O3lB9a)rowZ7?=4*<5R?CW_HF;BU5o zrNmk~?OCs+{uQ-I9SGXNQLyFNCJEk-27pumjpL#`nJFvArY63A;iEPP7{XMV@OX9QT&K@2J|kS zKu7BPF(g_6Z+ys5N2TjMhV;+8HPsY^9YapJ^C+k>l?ohn8$KKeBbS}aE<^7t2 zv9{*fzbwX1BZEzdsqu;nF#Y8kF`{lz;F%3)hn?SGxNl{*C_+|H&b> z7cskpXBa@A-fSC;qCoLuTpk)ciDT2g0WT%JM#3c3Q^@Pc$+(#ZKC}0(=&F~~rW8ec zZ!mrp)Y>n4a!TUwY!^#)^epC8F88Eth0*g3<`RFUD>O|Wt!X?BDzG0W34olq^e=FM zy4226R5%^zsXSVsoF}|kR3)x&bGfa?H+rcMxwVd z9k3sA_r%Z*IY?N?iwXGopWW{KvS>5W8w znfkOGVa>Eyqlpt<(MQj`MTm-UPBn$HDh(_iO}l9K!&LlmZslDq?!PSy2d5)ja$+yh&}Xw&BfkH@30uI#P9k^MMsz@By?PIXYk8acEs zc;d89==xUSs)OAix+xso#`h^mPag_qR&6c{wdy}LdBy6a)YemesX%pv^Wxd%7ZfraJn693fZ@hT!hZMz*Cm2w+#(nywr}T868Z<$$ZJeHgBA zu`-a+9?)p?Ns0pjePX8p(Jn$X>7-fAkJYxftqFn2;X$eQ*lC?2-YH|3KaKrX zMJHlN61K;XAMSO-p<^dEFl^NGhAW+?2Exo8iGr0l%N*AeJ6WWSkPjw3QSE9el?)XH z(0cfC2Zmr22JVh4$c}Tfzzqi-!qQ-F=%y`;ihN^DiQ1zFZS{L+v(kj_$B%#6nSGeh zpTpd>-kl04x09-Y5yH2nzT}lUW~7qb1s-mkTl{`j!<3k=!^m^t1cd1OV@Q^Nqfc3k z#rcT+Itu?@m1pkmb};!oMV+ADr-I@5<*$Zwk(ZXqYu`MQT`~%`iMnC2Q|$`tq(40{ zf9k6hE4W2C3n&nZSBwXZSvJtkR@=!$yM7D|B~^^`_;=5Eb*ZfcbB9_ z{~N%0wFkYD!w-jtHF^N6W5~&I>eLcv*SR@l8by5>^c9=7PJCO^Bc6Wi9q7T9{U|2k z$}9aBk?>&YxbMio>x{6Q=fP$iuQn>pyrM<&^*pH{q@m zJ{Ml@$b5~SA3QZYF`9XKQSLdNOJDWiLxz3~;r7@QLB*qN^l}sWWCt^mp|@p`hiDnQ z%4gC3x((NNGI>@&fLTxaL79}ugW-i#2ADIt+ZekH;^B?r+hp)wZviW-X!`HrunE)! zKmS*HPL)8ax$>orZSLqYz4Oi1t66$XLT`9ntPiRr?wLjs!(|EZZB|etoj!MzAArSa z_uCq$beQ_0@3!&8H7;mOf1ER$U};G{%S?A>+a;%#R!=BP*Ez<;C1?*0$YKYfygx7m z2Q0^sHy(Rt4nwoC$Zvd_vF@wRI9KDswYC1Y3~W2O9uD;fNwHV?O&H=R%ty~V0?7j4 zB-v9LQE(u+U~FZH(*slrq9V<^LPq>VgKC>b|6XaAS7}$i58q~V^{%b1I=l?h_7v3K z;wTjOHxAu>v%_f>O7la5?=wpLWMavzb`>(#Liyp+7(Z|N6|*aAna#T<4#n0#Z^la3 za$yM$hK%?AY;n=fp(V+d_%Oqs%LeCR3YEy}Ou9o_;WR3-E)TxEo|+^mjQ}KH_9r@)4gl#gC~{V-Q_I`ww3)XFgo_Wc{K8p~a(dSkg@(ihPFR(m~+q zTY`?RVA*h**>N#EX1WC2txYQaVLWS0W!*X|#d=|$wxN@M zfi}ghrwcY+Gre~c&ABn^>{n^`df15nvW{Y0(p7W$!B%~zOjqXvD1~dcw;9$*N&`3S zV>4YMHn#J~D7;vG;g7|O33sf!X1&XmlMaaQA+&dcosyhTGXpC8lmjq?U_n6;gId8U z6qryGMVEU94Xp9ps^^`6*Tjv+K4$JtDHluF-gfJyvALMlmZW8-PGSgF@G}b( zkh4+##}HRcJo?PnT=L+!XLHuYDo3AmvRQLh&ykCaF#FC7o6VfPs+;V%)E!IS$#zPwMksxsv5>6H0Q+ArSa#@CzA8YDyHoq%9N1+Hg3YQI&V^D?iQTQ0$tMkbyO_Q)Xc2MxoMFhb%&;<=XWMBiVqYCL zF%>8{s7J=arxwo>oAOhSqL$nFysBU=%Ju$uD3CQ5`NjI>YW!FE77=N`w=|FXAGLQy zg9K$Mu|oTo2!>0u9FCuwlKuN_9lj;K@pw#XD<&iEH00?vr-`>+fnjqjFN#7S2sJ;4 zI*NccSr2s`&|PZSiC%&6BU^eN->xa~%$^|~iq&YmB>gB7HENuMdjqBYy;`1qaLLs7 zed)d2c+Ys0_ltj92{HJ z<33*=gK~S1YwP`pWQ7sG6~n6cMKU6f17AIo>FmrMVM*)vJO4IoZO!CTsXWS!%4AGT z)B@=LEHwa*ALB%5mwe|wx6;%xDeA}n_-=c1?x@ep=T9n_=S8afR&KcD)6|lwOlbr| zy!cipILeN&6cwnof<3hfV-5VScnlHH#xpO-<8bQy_H+GVYsV1xGa1s&KVy^LvD9%^ ziP)c+q;b|Ixb@Zn64`MbTFW4s-^C1Akgt0b{ieuM>Dw|<97I7w`-UG?-fHQIs;xo^ zdQJHkxtWHf&R-vQTlET=#&e~GZ$9Zwdg!(3`=y2CM&yaWE>{b(*H4Lm`qd7Lc0At# zq~ep!jiQ04 z!hNdGOoi3v2rDNkphV`+t3PoTcmjJwHT~uE!|I@ zW~tCekD0`tReS2MdwBP`Jn^%)AAKX{tCf4GO2QFSiU~_S7$}wVd$74j7wc<67N*L< z4%Zs5G&0vHKkBbBAJTePxyt1PlR*7wT$Pf<=Q6Kh@>V+K2#WdW&th?H@}V^s%)=^g zF>~Je?5nRhqpRv>rX9Ya&FM-SqT!zs$Q?G3*Eb7J^^Mxhwb!uC8O63$r zlvr8U6yN`HMmG4u*E3_H@K{XKIz@4@)pa>F<=GFa=*0dHv!20zp^wZ)ZoLZcgLLE# z*^4?Z4Dafl6&6jTmsnB~s+66g(frQfsprre<9fhA7sl#(gfYxUB>rw&0{L&$_8_Dx zQvM*eaf-;@Uf1M^{${q|RhfXQ2yI^b^gUdPqBI%KO1V8l5wG(0*6wYY`10X zbeh&zsoELdbrz`;U9|w32)zj^<7dc^dp#QRgzVUWx_H~Eq=R#?#KtS{}C&Y31^# zuYG1oA=4>xIjXm1!g8(*56zb5dbNWo2OAo3f07QMLR};PG}a8l;S(5|@Y8_dyDk_a zrm6st(s}bqaooSa7!>OJO%dl4KcE|vKbk4cYeHT;W4H;3fk-m{F(j@G>p6BMpun|IQWXQ$!-~pbehm3(5$-px$pCHPPA;uGt!D4lYob|3e(=8RDP(v92)Km0uceaNCMnWruO zI*bAy6CIl>!aq?VKxT+?#j0%>2e7dr4E!WF3!8&uE@^O5drSD~H z9dA)?hUR0dzB-%)GUHv%@-7qLYfOMezItoeUZe35Z`j`H=t52n4Hgp&ixoXXmu&Ff zK3aIxy(lC2UqaZlTXlfYI)#h*I>;?+iVLwUL1~w1(@{3I|C;nQ`%4}zY}X0$#^17> z#p&1v`M-7UbuSU@VY7K8hv^+P8-g}TX}l30mnUi`<7GR!>RhH4w=p41pJn=Ni&xk^ zu}VJM#2=9jBG}awoujwmq7>_+*V|Mzufwm`V*3&W9*y;JXUq9gV?C5!)DL;lJ*16p zP94!qU*odk z=DnYVm2jnK=6}>>e#-iUHQZ`k6Bhg@PK8~5(+uv0qFQB{cVx5<8AikUH+n1V(c#|5}gh}F7 zCK2uDzh7IGO{-GxQfqjK@oZr)e8(pq^Qb;LsWGkqHj*nrySBZyhyZ zmkSnUf$@^>kF#P+ky!^f+f#3KWQw#twfSO$Ys`g;JzkpRHgfA?rY|t>d%o&fWA)6FY&so-D#Hs+?`CQGP3J#L-Zz z0Sq9kvQ-Xg9_HDRByyVIPKY2Zm$NC0?HRO0bGi*ipNhow?@JY~E)3|A5-8?U|o zh`*ogBV(&{pD&knPrIXCvLGz#Cn*7P_?ddD38dO)3Y3tNYlG3hj1+oEXx4Bpih8qh z{#imZMn1FoH}?g#7{wbb^+K=w1|rTI4VSbiz)Ceh_CCV8q34{zR0UtS$L?&IIS@@W zf7e{fETFABrIVFc(R#}MgQfec6kY*szTlK^ilX%|UQliRh!wgU+!im_QMti+&I=z} zVxe%9q7*xTz*^w+dPu_bHzq}WZ`|lMZgG~&V#@R>AB_$TR}2GJ26(qG{zwE8O+A%d zLy>Fygo4!q2H~(DGb9z}3J2}0?JBIEcgnIq$<5AP-F*A_9FPyjX7kZpWv=? zv#b4>6X8mztLQ`oEyY1$LEzd&VU^rF>E0feSH4N{r!~f9$cn_TJXcKUfBt}EObf07 zqy}yH80b(?Wl&OpAz5X^k&d8}{Ojsgz-C<24U9!w=iBDDk#;Y&*3xxdEJ6d5xovJf z&HmOaS+^F*3Hc)Yvp|Qs5pnxp(8B-XRo7(0;)$zMB;zJR#~n^Exlc@uP=v9dya4BA zOscI_w0G9vjY*}=sw26+$F4;$2Jg4kB#j%(RB}J6zb%Thk9IZT?g}b;qTag--5#$( z&aKdo^}=ZZcsHogHF!37*c>(-1qs!`ta5QBPj@2rRml~uZJj@#r^oHoU&Jli1X>Eh zKR#nlU6bIXqHT$G+aJG6KN~4d|H$78hlY>2 zP_X=Jw;1lCnEeN-a4_DqJ9|J)jE%<JVfRD1jv?A0 zn)X}o81fh92GSRw+Jm0e36ybOnXbWO1(Amv17WI0lluZ!13Fc%b6iL<%#6#BZlJq= zitj7$)q~&D5`C8?>lRESewCTpnHE$mEHocH`1PhEKmU|@)tF?axR1wZnONplcyVXbC{aH-D3~#4YE^yMA z|Lv@t`oVbT7$VuC1G)3hr|-2aGWQzE(3DB1rRIEa5MY*Be1u2je&E*4`%oB7Q%2A^Dj<)><{>U}O8%OKDfTQaljb-tR?&479 zyZnOcj7oFH(G6GI5@&ysuRa>dHBHX5GFl+D-GwmFhtrz0I?agOk5@NmTu;8Xjs~$Y_7#dQahn zz^VM<>aAa)Dn4$mL7AD0Gip8wzrc(Fc!NEft&4LJ*=s@!k6m#P8@uBzI%krgd(xEC zj5c$hJtEaYDT-*ml9EawO%E8!4GO}D{tl|u@uja4rVFn>vqRq>qJ=FeB|nJeGdxwF zDfE}fUzuxs;6FC~_HF6?M7~GN%i!23AA{K+QVw2TxTW|(Qys3={3m~m<^QaOii2SC zc>}Tz03FZ}Ya?bwEZ0E0%DFq4mh7|x_Bh*Q3!s1%N>%G&$ zdr{V`p~D4ah|qb8?+8@V%*-uKfCIF>S%lUyqe!$ z0tn)}jYZ608s!GPq3?ohqib_QYVD1E1s3`q5O3Uzu`!VBco7%3+R91OJMP#?Xdr1! zX-Fbh@iDQ!wI0*{D4ExjzB}Ktn0S4sKUyYdUAk)4|41cZOv#HReH5o=NcKi%+-V&5 zt!`9T)s0bZo2&B#`Bko^ zbCfINR(7qC$d`-zr*19UyCN-*hIoB6oNOIW9HsBeafXiy3ITQ1Ubg6Hid69^NgclZ zup?XWeB0Nv-kE-w7j*Nt=i`~)C0vK7?WA!hY{?6Lr21=`(0#KfVristoJm`%L|UzXJjf5^Y3 zn#ggWe}#4vAuX6Wh0+81D^X^j)TGKhl@A}BLBekti4D~_r#V_@nrh#)`NGq4`i{hA zf0(ZJ3zKfA%Xc=lj3!M?lQR5*a(zf1-gyl`Ox%tdAAVHax=G)qZG87G zHbRWPC`2gD#biZa)WGx^`c2_!}jbQkWSxn?=QP9 zlt~XlP8(}El6d03<6j4^q`q)A3lx^|xHy<~>7jvKgR4v1te~T?XoVizZENeHp37ba zKigX`I&`&6VdW1f9PgS^2e$3*ptA&cdR1B)3{o>8msyS>tAjr^GGSZp?HW*&4`K(9 zH9dwrE31_=I4auTJx#ehO%X4#L81-niJWh`3WGhI*B0k>E?jMq_Yod~WLnHUtL_bA zs$PnPo!vK%26OZ*^UCagG}r;XM&6S9wZ&=q5;+crH!LQlR>q{yKD@HOKH|T1nqwoN zH7{AzW@v8PB307Baa&4v*NBpQImc0oZ9jfiT*XKS@k%sk$!pPXoOzr#b|RH_s{MUf1b+oV>B1 zmhN-K^*jsf+q3(%sVi>V>Xnp>Kycv79l}y1N~hS-leJ=q8(V7dSZ$TxkI>~=3W?Vr zPG|B7fw)l2f%oB(HeY&Buw^LoQH);32f|J=iAh!kqC6bjymt0I|J@AhZ?m;fuFOxx zOoRC^uk@E0FSdEN-}zom+TZbb@(wTI>^b=tLb?=(Ifo?Q~gn)dMR1xw=vlCVw-w;A8`ehwS4H=ZCu@5*^uzbuk*Oz%>Dt8|iyJ=X{b2 z!=hcML=(O#NV5%zl*{r+HS70W+2i}BTJ`N1l7eZx-vov>!%t1@d&9Lp2h_zLUjL5M z$AiGb;K??F$dk})3fIVreVg1sDioz<7kb4BNPDHH{&V(2 z3->3_tRa4@%dZkMU2%7NY4`9o1xELz22(D%;#%MS0-l6Jl4>=WpXlg%bTo|I%`ZyCLBYOOFn;{lK!=Ojd{fS zx%8WEX>Y!>BTm7!%ggMvoVc4&Z^Kl`obHH*F^Y2R(|tG{vKSvY6IZ)iCpOVoqi5KX zF#V;oraK_lbVPE%W$yL*1$ko;ij+g}yVRt^maSc4s5Y@S*0&^l*y(A6Z3|nFgPUDN5w^;7tROwr?wjyK0MS2%5l6o55>HFuGR{-hJ18QHMfJ+Pi}9yuq_xr5boMz7rS?&)&7YAgx@lj!ubr|hj@Z!1nV3w z@=!UGOLG-RSY;WTl_ScNhc^RMlz-f;%i_<7Nw{qQmgHQc@EjF2Ek(egl#rE9!7-h- z*FgNMWFGVMLtd9$#_PlF1s5eHyTp7P>>py~7_Pxi9z#6G*g!wXc@;`O_XUaW6XYOv zXeqJE*+qsFBxqieJ^!;bzBupc@1G$F!bwHXX!gstj>u}b@Cg{z$0x!k5#W%-E|G*eGF+>PxR#Q+ za-^m!?4W8Cp}0a9s(0%4x3s@pr1Xb1EVzDd!JFlhYT&M1fXV~KP~%fgBlh<8y>wOO zi&D2fH_Gd~UjD6n{Z(|b^-~k;$nG}*ayYmnD4ttWwG^qCF&*@2Al4?;z7>?6+lBn! z&(oOp6%6+_wN{J|5Me)+s{`HDN3I7DL9d!V%i4gUM=WuKqQI-|2K61 z7x>iQ<8N$qF;lKjP|qTF)a|SZ&3UU*oRRvs^H9!b+Al%iW1Ll)8yfcH1QHbRHU@L6 ze))!jQMaxw5ZyV^6&VRQe`nSy>wQ>zRB1ho` zqY~*F3CEC_Ng(VPqIRZDzH)HHw-kZiZHH4ei~rsGx|i<7N9d2okbD>*23iU!=)RQ<)dsyhjG?6cvZ5%L z_3j?3U{4%FmV(ff2)%#bfw(rVcX$kWc??kloq8D661GumM|lHINhbWa@b|hutXTTD zoJjo-Js@vV_m3f}R3v&i7fz{$PuaKpb_K)2lIWlRV^+Za4JWM8m94%%N5I(p9Wc8t zwFtY?qya;ZcY>CY+yM5Rg8%!D-_r^38OrW&Ff1JD4ze56ZWfQ0*0QNA6=28-ri1SF zL}?sDibDx$FG@lE~ zC5pN<%pUm|SNyu1aPvK=qtc@Po8pH5uK3|!Kj)f6X#jHg)C9kdT)|ZJwT=g-JG>KT zwNFU&_s(ZCnQ>-&)mY@X~juffvIyl$Ux|s4G_s*|~j+bKQ z-+{!eLy9`V6oYj#-6FbMlPU~gwOWYzvCD=CI>2_lzb&Pr%Fa-|BPi=rA=>7LW^v zgSwqfm@wEo#=Ma)I+a5=(eGKAhP&=h-i&`G#ns_PcQP#ouUvlrJnVDoQ!t}*Fj)x; ztzJ|F>Ot$zydkYXa!|O@I+GceYargpyN`S7Rw$f%6mS%Sz6YZZe}{$yU}*sPQRR0< z-c}arqIRP}geM|xFJmp8duoFQB1|7v(uZL9gi8)BQn* zIuF03qg*RUebe(N>9UM4=?KGtrx3K9*Gi4renaffQsd>LYk|j*R6pJ=)40LSgwK-! z?W44o?Vp>Z43ptzpV!l;ccug9l&Z(;4TSt=(<01N&v|66>L0#u)f0aR)6o1#E18zm z>|u|(Nl@9QFZi*!T2-}s8Ynh;3eKSC+zpq6-zW9wx$NlDts_q|soJsJ34}xU;n6S_ zwab+_cdDX$lab>>P05sNbLM(H)O}KyOLIeYr(3kS99DOCP4f2)>7|;zM(yrSTY_BH zG|7jxDrkH9>kI5w>go~5N};!e+ns)XweIKE{wiE)^;eml)$|@7O|R5cbE9c~-OUel z6}lbemD}6x?rDrk^<&9o>m=%xy8F#Q+A?BxulHbN*{*8$46@iHc5Bt*ZFF(M5EH{1 zOI11}9i&Y9+f|cV;~U?RvdOoQ6AI-5v$3xD^$#C-BTPk`hk*>)2w&&+T?U) zLQv#wPSs~ud(Q1*@5wz~YDlGU_>$rYyC9$wKG_8YQkI}M4%)1uQA|aP4xZ=MR_zQ~ z{BlHa&&v0hU5AU$&|Z@bhCBol>2DuHW}A(1QY3++x3#hw=fLVRKccx-1EC|A^Ag}p z)^?omb(;*l@VMEOaS&?otq z2rXM+^qTI*C#np(CmmoQstzoQ0bnLuOa~CZ{5Ej)B<3hXnk?i^9B#kgcvjF!>)X)J zwKt0B<>EzNf>n~544D@AYyemhFe^vv{h?x$9Y&>qYR~kcZch388JyV`^3LV-OKOIrLf;r?BGYa;gxm$vN8$H!ri%<1?t(s}M26qW#Ac1aX zq%Fl83`7t?pP#Lm5-{1p>k%yeq(fk3`^3(m$+TRp%-5FWeO@thfm}V#32qjJx3Oln zN|7d~q1Hz^jSDa;qr<9q2t}X(d{7GDO#J4+&@XtQd15t8@7Cwy&(mTFhBf(*X7gH| z-`!{1^&8me$E@f@i-49W46G-C#h}zsuJA#Q;z7JtY41^)SiWLV##Yg$Z>~4xlidhw z15%uqYZcotNa5sIMQmY+3Vr$VKp>IXl8_yTa#hT}_BHFZmY+w(@K1w_Au>MBSq!cr zt`Z-jGd?`5R#6TwII02}RC;b{y9JcSdoAM{7b%8~#Ml8Tbm9-Rz|*Ye=HRsN<3Hqe z)8o7g6E2_0)#Gda+Q6ToDPXlN4h~rY-E0p8Zjf{f2wi^3(~E`v^5sA=g2@D{oxZm| zZ~p=w$Z&qdrPK!uN1S_9c*amR*ihucmy05f;MBGu+gBL2lF8Sp;O6Iy1|x_D$WX(r>h&~IFa(IqjHup+bvqbA--)_#oEt2f1l;%LF?vs@3t?vy}5~9E=8O+r!p-O z%2t+ojGT?9x`dFcD`l~i3q%gv`pl6Z*EI5c#*R{ML#*;QHvA;a{5c+QMQ3ff|>2oMj=4#G5(8LH3JuY}=Z!o772I)8JDo zGrC(HdmoX2)7vT|^NiwslMM0PGj}@xW4f$MN0C3ToF~gm4-?nU?k{HcuHRX|jaAQxa)Lb;i->OGiKgJ?>L7wyVEdY-QIRK?$Edf|SKjZ9P~#0C0S z?oarf!fIU<1r1K~>!VZ@PZ1DnG}&RXtVjeOHIq%3SF4C=TcvEN$;9F*`EvRlx9>YC<^J%Si>zX=|NU}~j!14UfaapT z>HzVv{<<#@+=F3k9hU_$#lTCO#xOVINtu0hIWtKb*AzU1>uH*ggSfsE@3`n@z%4bM zA>g;Nln5?S3*V@4USe?UFE|&{*Q#sMxoaZurG^xlZ^}XFP=~!+veCC`oZrVhM#m|V zMqqH;kBC@7zk>pzyV2Zk1CB~F(kPV`?~`PcY?H~|v(?-QhZbA<)=$EJ zr3ny|0s*MbRQx$~ zysw;Za%au64ZzTE)(;YmVLM5U5Rk8ki^V7a4fbB9#=M9 zi;{7!LB=AyZ}yj@4dhF^$go-JvV9c}asH;&dMB0UC>Q-8HS!q3E_PH&Wkupb$DX1Y z;O?Cvpq){_H*=GGEBs_f^Q24rYlE%rJ!;CZOxgrD)7hs3yw3j8clpu%W4M`R1Xu*b zkNnZ$1S);sZfG*~Ozs4^TLsI~aoO*chlW&3$mI~HP%qfabJuiBrbArKY*tU*5s6p% zVhhd^c@X~Et$R0`DgfA#&r#q<#cE)1nH2|Q41!O^Sc=W=vwXc|&jX*eWK$bwb~;hZ zlE4^}6a|A#jU zuY&z=#ompdqBP%8)tn#Qh4F@8plm&upMaU`?``Yn2%7s$jR(w~Wazek7i;ENG<=9DnV28Ro5iW=Ofd-!{fZW8l z#Qu6Iwusy7%NK3&vY1qYJ)iGPlD$=L!|}RkG>0}MDj&aeHzXqwS4uq4K zRVZ*#3gLL;jXe_4jcabY+vhg&V$AuT_2ckwKb^q3dX1*vFA)Lg?hZube)blqY3Zd2 z&Ysz9I1dda!&C-`kLz(=b8Ag4NBg0^o=;yuM23E7!alG4ZJTWF_EP3h#@aHf<#y6r7oY5tM1qi7hI_8|~^*o$vE+0M#4+|@^MciIWnvqvoMaU0M z&Qznjwb1T!Xxt_V50nuFd$jys0oe}OWZAonWS!_X(UMos)sjghqB7Lz%eJEtY_Wi0 zT0FIo-Q9CxHB+CW1)FZ(%m<>7>^)~07SoN6Ax~g<^i9ax--9^*@48mf(5~1+d8e}1 z3*z?{7QTeAzY}1>@QVr5DSn{2jYEkN{og%S>BXix3N;bNQUbnYeH`h3{Gv!erLVl0 z(dYgZL$41kD$gyi+OZ^^(_*LA+AipYdGmi7;{Wuaa5e3$d|TQxE&ellSGg!AgHk{Bsk{xHP|6T`(_SrNgE7_%B<-Oseuob*fQ@I zyf{H&TiF~%*iKd}hKb*fFKh4Yd}|mQYCV(wQ~#@E`Hlg^3Xi35Z&I08iYTrGw|c;K1u>mNH#$3t^Sp@y;{c$ zj1026cNb^~5$V5GJ6##LGp|oJep}6mausb`@dkyjD;W~VO{6m^Zn8-&^~ylNZWUA2 z|JJXJhB@lzIVUW_QQX4&{gA+GDJ7>fJwM-`GYQyt{?6cU&s|eFRK3BfhLJ^DQ1K~I zl!NkJx%-o1{}+4j8P#Ohu8X3mpnwR{i&1GxReBGobP?%QqEtf+y@VP>dQ}j30Rg25 z(jr2rq4y>oq!S{&C4dkiiRXFOK4*=!zrFW5Ywh!$GtQ6oBV%M_JW1wL=A8F^-Pd*9 zhvEXztjWe;8g-(H_kWOG@gHSj{3nhxtIlTLwrNP@wy@F>eD^}_oYF${mC&n}F*h$# zC2OxVeGMW0y|7s5oGoz{<_PqEqTgO_W(3U$met4#CY3YD}x4pn>yQBhwGv@TA?VUjff z>DU$Z8x!Y-44>(elp~@@!NBYYigoxyb+s9?@GN^V2?Xf`ZL0AMvBFG7#jBxIbxBv| zMZWac;>e6LX8$0|E}FB}3H0K*R}B5^lX&lmd(>imcfCR7IfqVT;qBSdO3)FVvjjd;avGA3?>s zFcLa>QfJFPa6{@$jwvR+cBZ&Z{?K~a$kRMn!U0v-8PwzND4XT|ygm{JeecjC?IcIN z;qIb%N{5AXT_Tt4?kTh5tOG4kMYVwm62`GiJX2%EeZ4#mS3{msUvzx#$$+>xRGlU# zsV*6jN%Qh2)jE9<%`eu&`WkaRM%^3{I^&#Fy@J`*~ZMl`+zJM@jO6l z2XzJ_>5*$g1Qrl-Sc3>hLR3syb)Qehj{U@|oyWc&dh`+!89vg6A9Osf?9yB8_Zm?% z9f3#>$Io6ON3Q_3I_-@eEu^m%NfZXMx=_#3>_v-9X5?ID3tGM~)$zjVRz-s-X?z-T zgYB6;pvDZbagLIKdItUpKxcZ4O{)jMDC^q%C+$#FC;P~O=Nf`^~hliUT zmqaXY2p;6y3Hk^p@Ed(~p(5?(0nh%$GX}ukY^U%H>awU@*%-CLzOykam|Ij>ekj(I zebi7$PCaOdzx3|xAcoO2

$f|-d@nz2W% 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 H-{<}hg~L3_ diff --git a/doc/pictures/005 iot manager.jpeg b/doc/pictures/005 iot manager.jpeg deleted file mode 100644 index b8e621dfbb7a85cbf79b15a96e097d8a9253d677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35513 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 GP5&>na)Ji{ diff --git a/doc/pictures/006 iot manager.jpeg b/doc/pictures/006 iot manager.jpeg deleted file mode 100644 index 6734aec89f76d046f57121e080cdf3f326d049c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48160 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

x?Uc%(IFf4&yCPbPw1G5q}a^jdO+nokE`%EhVZ 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 Lksk^EyZpZZpzVp# From e0d0e30e93f4f44a5195cb2744b06ce740833ae0 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 20 Aug 2020 03:12:04 +0300 Subject: [PATCH 11/96] Continue making web interface --- data/setn.device.json | 1 + include/DeviceList.h | 9 +++++++++ include/Global.h | 1 + src/DeviceList.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ src/Global.cpp | 1 + src/Timers.cpp | 8 ++++---- src/Web.cpp | 18 +++++++++++++----- src/main.cpp | 3 +++ 8 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 include/DeviceList.h create mode 100644 src/DeviceList.cpp diff --git a/data/setn.device.json b/data/setn.device.json index b6e813be..e400db6c 100644 --- a/data/setn.device.json +++ b/data/setn.device.json @@ -50,6 +50,7 @@ ], "state": "conf.csv", "style": "width:100%;", + "action": "/set?delete", "class": "btn btn-block btn-default" }, { diff --git a/include/DeviceList.h b/include/DeviceList.h new file mode 100644 index 00000000..4096fdf6 --- /dev/null +++ b/include/DeviceList.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include "Global.h" + +extern void addElement(String name); +extern void delAllElement(); +extern void delElement(); +extern void do_delElement(); \ No newline at end of file diff --git a/include/Global.h b/include/Global.h index d8fee323..921ab1fb 100644 --- a/include/Global.h +++ b/include/Global.h @@ -111,6 +111,7 @@ extern boolean updateFlag; extern boolean mqttParamsChanged; extern boolean udp_data_parse; extern boolean mqtt_send_settings_to_udp; +extern boolean delElementFlag; /* * Запрос на скарнирование шины diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp new file mode 100644 index 00000000..a65c292b --- /dev/null +++ b/src/DeviceList.cpp @@ -0,0 +1,41 @@ +#include "DeviceList.h" + +static const char* firstLine PROGMEM = "Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; + +void addElement(String name) { + String item = readFile("items/" + name + ".txt", 1024); + item.replace("\r\n", ""); + item.replace("\r", ""); + item.replace("\n", ""); + addFile("conf.csv", "\n" + item); +} + +void delAllElement() { + removeFile("conf.csv"); + addFile("conf.csv", String(firstLine)); +} + +void do_delElement() { + if (delElementFlag) { + delElementFlag = false; + delElement(); + } +} + +void delElement() { + File configFile = LittleFS.open("/conf.csv", "r"); + if (!configFile) { + return; + } + configFile.seek(0, SeekSet); //поставим курсор в начало файла + String finalConf; + while (configFile.position() != configFile.size()) { + String item = configFile.readStringUntil('\n'); + if (selectToMarker(item, ";") == "0") { + finalConf += "\n" + item; + } + } + removeFile("conf.csv"); + addFile("conf.csv", String(firstLine) + "\n" + finalConf); + configFile.close(); +} diff --git a/src/Global.cpp b/src/Global.cpp index 05b51345..4d6178e7 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -82,3 +82,4 @@ boolean mqtt_send_settings_to_udp = false; BusScanner_t busToScan; boolean busScanFlag = false; boolean fsCheckFlag = false; +boolean delElementFlag = false; \ No newline at end of file diff --git a/src/Timers.cpp b/src/Timers.cpp index dbf451ba..aa6bd002 100644 --- a/src/Timers.cpp +++ b/src/Timers.cpp @@ -48,10 +48,10 @@ void timerStart_() { void addTimer(String number, String time) { String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, String new_timer = number + ":" + time; - int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить - if (psn1 != -1) { //если он есть - int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой - String timer = tmp.substring(psn1, psn2); //1:60 выделяем таймер который надо заменить + int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить + if (psn1 != -1) { //если он есть + int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой + String timer = tmp.substring(psn1, psn2); //1:60 выделяем таймер который надо заменить ///tmp.replace(timer, new_timer); //заменяем таймер на новый (во всей стороке) tmp.replace(timer + ",", ""); tmp += new_timer + ","; diff --git a/src/Web.cpp b/src/Web.cpp index 69f322fd..5cc4c119 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -1,3 +1,4 @@ +#include "DeviceList.h" #include "Global.h" #include "Init.h" @@ -40,13 +41,20 @@ void web_init() { //-------------------------------------------------------------------------------- if (request->hasArg("element")) { String name = request->getParam("element")->value(); - String item = readFile("items/" + name + ".txt", 1024); - item.replace("\r\n", ""); - item.replace("\r", ""); - item.replace("\n", ""); - addFile("conf.csv", "\n" + item); + addElement(name); request->redirect("/?setn.device"); } + + if (request->hasArg("cleanconf")) { + delAllElement(); + request->redirect("/?setn.device"); + } + + if (request->hasArg("delete")) { + delElementFlag = true; + request->redirect("/?setn.device"); + } + //-------------------------------------------------------------------------------- if (request->hasArg("devinit")) { Device_init(); diff --git a/src/main.cpp b/src/main.cpp index 9b2eeaf2..03d3ad39 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,6 +5,7 @@ #include "Bus/BusScannerFactory.h" #include "Utils/Timings.h" #include "Class/Switch.h" +#include "DeviceList.h" void not_async_actions(); @@ -124,6 +125,8 @@ void not_async_actions() { #endif do_scan_bus(); + + do_delElement(); } String getURL(const String& urls) { From 0485feeabe931f6d3a8ba23ad3405150cd77038c Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 21 Aug 2020 02:34:38 +0300 Subject: [PATCH 12/96] web interface constructor --- data/conf.csv | 2 +- data/css/build.css.gz | Bin 15178 -> 15958 bytes data/index.htm.gz | Bin 1444 -> 2008 bytes data/index.json.gz | Bin 0 -> 725 bytes data/items/button-in.txt | 2 +- data/items/button-out-i.txt | 2 +- data/items/button-out.txt | 2 +- data/items/pwm-out.txt | 2 +- data/js/build.chart.js.gz | Bin 12758 -> 12758 bytes data/js/function.js.gz | Bin 17521 -> 19968 bytes data/setn.device.json | 6 +- doc/1.txt | 566 ++++++++++++++++++++++++++++++++++++ doc/2.txt | 85 ++++++ doc/3.txt | 32 ++ doc/orders.xlsm | Bin 0 -> 21287 bytes include/Consts.h | 2 +- include/DeviceList.h | 3 +- include/Global.h | 3 + src/Cmd.cpp | 9 +- src/DeviceList.cpp | 47 ++- src/Global.cpp | 3 + src/Init.cpp | 1 + src/Web.cpp | 21 +- 23 files changed, 760 insertions(+), 28 deletions(-) create mode 100644 data/index.json.gz create mode 100644 doc/1.txt create mode 100644 doc/2.txt create mode 100644 doc/3.txt create mode 100644 doc/orders.xlsm diff --git a/data/conf.csv b/data/conf.csv index 40b35ae1..2d2f8d1d 100644 --- a/data/conf.csv +++ b/data/conf.csv @@ -1 +1 @@ -Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета \ No newline at end of file +Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета \ No newline at end of file diff --git a/data/css/build.css.gz b/data/css/build.css.gz index 4bf6e06001ba59fb28f775adfad194fffa985f28..b62ceaf0eb9497581ba5f66f2c28377154594560 100644 GIT binary patch delta 15964 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ÙsAI$QaN=Uym*@a6mj!J?P?8kS@+ZR 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 E0O(?Z-~a#s diff --git a/data/index.htm.gz b/data/index.htm.gz index 139f0040889174476a6bea5be844dae04d7ea073..073ff4ab3b6a4ee662c584f6498d1ff3a03a8752 100644 GIT binary patch literal 2008 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 PF3kT2-j(9{2V4OF<@%y0 literal 17521 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 M1Nbs_X6-rw00Qs^$p8QV diff --git a/data/setn.device.json b/data/setn.device.json index e400db6c..e494cab8 100644 --- a/data/setn.device.json +++ b/data/setn.device.json @@ -40,7 +40,6 @@ { "type": "csv", "title": [ - "checkbox", "html", "text", "text", @@ -50,12 +49,9 @@ ], "state": "conf.csv", "style": "width:100%;", - "action": "/set?delete", + "action": "/set?save", "class": "btn btn-block btn-default" }, - { - "type": "hr" - }, { "type": "link", "title": "Удалить все", diff --git a/doc/1.txt b/doc/1.txt new file mode 100644 index 00000000..d08be432 --- /dev/null +++ b/doc/1.txt @@ -0,0 +1,566 @@ +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + +## Возможности + + - Объединение различных по типу и назначению устройств: управление, получение данных, и настройка параметров - всё в одном приложении + + - Взаимодействие с устройствами осуществляется через "облачный" сервис с использованием протокола mqtt, позволит контролировать их из любой точки Мира (при наличии доступа в Интернет) + + - Поддержка нескольких профилей и их переключение "на лету", дает возможность объединить устройства в группы + + +Настройка (после "прошивки") производится через веб-интерфейс, чтобы получить к нему доступ необходимо соединиться с WiFi AP устройства и набрать в адресной строке браузера http://192.168.4.1. +Далее выбрать типовой шаблон автоматизации, произвести настройку под свои требования и задачи. +Основные разделы интерфейса: конфигурация и сценарии. +В окне конфигурации задаются "объекты", "элементы управления" устройства (dashboard) - им устройство будет представлено в приложении компаньоне проекта. В окне сценариев задаются реакции на события и изменения в параметрах работы системы. + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + +## Команды, назначение и применение + +Команды служат для настройки и управления устройством и его взаимодействия + +**`buttonSet 1 1`** Изменит состояние "кнопки" №1, установит его в значение 1 + +**`pinSet 13 0`** Установит GPIO 13 состояние 0 + +**`pinChange 13`** Состояние GPIO 13 будет изменено на противоположное + +**`pwmSet 1 500`** Настройка pwm №1 будет использовано значение 500 + +**`timeSet 1 08-00-00`** Установит для элемента ввода времени - inputTime значение 08:00:00 + +**`digitSet 1 56`** Элемент №1 (для цифровых параметров) отобразит число 56 + +**`stepperSet 1 100 1`** Шаговый двигатель №1 - вращение 100 "шагов" по часовой стрелке (для движения в обратную сторону используются отрицательные значения параметра) + +**`servoSet 1 180`** Сервопривод №1 принять положение 180° + +**`timerStart 1 60 sec`** Установить для таймера №1 обратный отсчёт в 60 секунд + +**`timerStop 1`** Остановить таймер №1 + +**`textSet 1 Привет`** Установить для элемента текстовое поле №1 - "привет" + +**`push Внимание Протечка`** Отправить push-уведомление с темой "внимание" и содержанием "протечка" + +**`firmwareUpdate`** Обновить прошивку устройства "по воздуху" + +**`firmwareVersion Версия прошивки Системные 1`** Узнать версию прошивки устройстве + +## Сценарии + +Элементарный блок в сценарии состоит из набора команд и триггера - условия для их выполнения + +**temp > 60** +digitSet 1 60 +stepperSet 1 100 1 +textSet 1 Перегрев +**end** + +Условие: когда температура превысит 60° +Запустит: команда шаговому двигателю, в приложение отправить сообщение и цифровое значение температуры. + +В сценарии может быть несколько блоков, при необходимости из приложения есть возможность "выключать" часть из них. +Неактивные блоки сценария будут проигнорированы. + +Для взаимодействия устройств между собой предусмотрены команды mqtt и http + +**temp > 60** +mqtt 154348-134 digitSet_1_56 +mqtt 154348-136 stepperSet _1_100_1 +http 192.168.1.10 textSet_1_Перегрев +**end** + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 1.1 Объект "кнопка" + +(эти строки мы пишем в "конфигурации устройства") + +### a) кнопка управляющая выходом (пином). Пины нумеруются по системе нумирации gpio для esp контроллеров. + +`button 1 13 кухня освещение 0 1` + +**"button"** это объект создающий кнопку в приложении +**"1"** это номер этой кнопки (необходимый для ее аутентификации) +**"13"** это номер пина которым будет управлять данная кнопка +**"кухня"** это название кнопки в приложении +**"освещение"** это название вкладки в приложении на которой появится данная кнопка +**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1) +**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта + + +### б) виртуальная кнопка - кнопка реакцию на которую можно задать в сценариях: + +`button 1 na запустить таймеры 0 1` + +**"button"** это объект создающий кнопку в приложении +**"1"** это номер этой кнопки (необходимый для ее аутентификации) +**"na"** абривиатура not available означающая что эта кнопка виртуальная и что пин не установлен +**"запустить"** это название кнопки в приложении +**"таймеры"** это название вкладки в приложении на которой появится данная кнопка +**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1) +**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта + +### в) кнопка включающая и выключающая все сценарии: + +`button 1 scenario запустить таймеры 0 1` + +**"button"** это объект создающий кнопку в приложении +**"1"** это номер этой кнопки (необходимый для ее аутентификации) +**"scenario"** слово означающее что эта кнопка для управления сценариями +**"запустить"** это название кнопки в приложении +**"таймеры"** это название вкладки в приложении на которой появится данная кнопка +**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1) +**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта + + +### г) кнопка включающая выключающая определенные блоки сценариев: + +`button 1 line1,line3, Включить#отправку#push Оповещение 0 1` + +**"button"** это объект создающий кнопку в приложении +**"1"** это номер этой кнопки (необходимый для ее аутентификации) +**"line1,line3,"** это блоки сценариев нумирация сверху вниз. Блоком считается выражение от начала до слова end +**"Включить#отправку#push"** это название кнопки в приложении +**"Оповещение"** это название вкладки в приложении на которой появится данная кнопка +**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1) +**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта + +## 1.2 Команды управления объектом "кнопка" + +(эти строки мы пишем в "сценариях") + + ### а) Команда включения выключения кнопки по ее номеру + +`buttonSet 1 1` + +**"buttonSet"** команда управления объектом button +**"1"** номер кнопки которой будем управлять +**"1"** состояние включено, 0 - выключено + +### б) Команда изменения состояния кнопки на противоположное + +`buttonChange 1` + +**"buttonChange"** команда управления объектом button +**"1"** номер кнопки которой будем управлять + +## 1.3 Вызов событий объектом "кнопока" + +(эти строки мы пишем в "сценариях") + +объект button может быть равен либо 0 либо 1 + +`button1 = 1` +`button2 = 0` + +Пример использования: + +`button1 = 1` +`buttonSet 2 1` +`buttonSet 3 0` +`end` + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 2.1 Объект "физическая кнопка" + +`switch 1 0 10` + +**switch** это объект создающий физическую кнопку +**1** номер кнопки +**0** пин кнопки (при подключении необходим подтягивающий резистор) +**10** задержка для избавления от дребезга с мили секундах + +## 2.2 Вызов событий объектом "физическая кнопка" + +`switch1` может быть равна нулю или единицы, ноль - событие отбрасывания кнопки, единица - событие нажатия + +`switch1 = 1` +`buttonChange 1` +`end` + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 3.1 Объект "широтноимпульсная модуляция" + +`pwm 1 12 яркость освещение 1023 1` + +**"pwm"** это объект создающий управление шим в приложении в виде ползунка +**"1"** это номер этого объекта +**"12"** это номер пина на котором будет генерироваться шим заданной в приложении величены +**"Яркость"** это название кнопки в приложении +**"Оповещение"** это название вкладки в приложении на которой появится данная кнопка +**"1023"** это начальное значение шим сигнала и ползунка (изменяется от 0 до 1023) +**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта + +## 3.2 Команда управления объектом "широтноимпульсная модуляция" + +`pwmSet 1 500` + +**"pwmSet"** команда управления объектом +**"1"** номер объекта, которым будем управлять +**"500"** значение которое установится после выполнения команды (от 0 до 1023) + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 4.1 Объект "окно ввода времени" + +`inputTime time1 Во#сколько#включить? Таймеры 20-30-00 1` + +**inputTime** это объект создающий окно ввода в приложении +**time1** переменная в которую будет записано время введенное в окно +**Во#сколько#включить?** это название окна в приложении +**Таймеры** это название вкладки в приложении +**20-30-00** начальное значение времени после загрузки устройства +**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +## 4.2 Управление объектом "окно ввода времени" + +`timeSet 1 08-00-00` + +**"timeSet"** команда управления объектом +**"1"** номер объекта, которым будем управлять в данном случае окном ввода с `time1` +**"08-00-00"** время которое хотим установить + +В окно ввода можно вводить время в приложении но если необходимо изменить время автоматически +по какому нибудь событию то можно использовать команду выше - **timeSet**. + +## 4.3 Вызов событий объектом "окно ввода времени" + +`timenow = time1` +`buttonSet 1 1` +`end` + +`timenow` всегда хранит в себе текущее время, и поэтому исходя из данного сценария кнопка номер 1 включится в то время которое будет введено в окно ввода `time1` + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 5.1 Объект "окно ввода цифры" + +`inputDigit digit1 Через#сколько#секунд#выключить? Таймеры 5 2` + +**inputDigit** это объект создающий окно ввода в приложении +**digit1** переменная в которую будет записана цифра, введенная в окно +**Через#сколько#секунд#выключить?** это название окна в приложении +**Таймеры** это название вкладки в приложении +**5** цифра по умолчанию, после загрузки модуля +**2** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +## 5.2 Управление объектом "окно ввода цифры": + +`digitSet 1 56` + +**"digitSet"** команда управления объектом +**"1"** номер объекта, которым будем управлять в данном случае окном ввода с `digit1` +**"56"** цифра которую хотим установить + +В окно ввода можно вводить цифры в приложении, но если необходимо изменить цифру автоматически +по какому нибудь событию, то можно использовать команду выше - **digitSet**. + +## 5.3 Вызов событий объектом "окно ввода цифры" + +`dallas > digit1` +`buttonSet 1 0` +`end` + +`button1 = 1` +`timerStart 1 digit1 sec` +`end` + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 6.1 Объект "dallas" (сенсор температуры ds18b20) + +`dallas temp1 2 123456 Водонагреватель,#t°C Термостат any-data 1` + +**dallas** это объект чтения датчика температуры +**2** пин датчика температуры +**Водонагреватель,#t°C** это название виджета в приложении +**Датчики** название вкладки в приложении +**any-data** или **progress-round** или **progress-line** три разных варианта виджета отображения +**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +## 6.2 Вызов событий объектом "dallas" + +В сценариях dallas можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=): + +`dallas > digit1` +`buttonSet 1 0` +`end` + +Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=): + +`dallas > 60` +`buttonSet 1 0` +`end` + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 7.1 Объект "analog" (аналоговый вход контроллера) + +`analog adc 0 Аналоговый#вход,#% Датчики progress-round 310 620 1 100 1` + +**analog** это объект чтения аналогового входа +**adc** это переменная +**0** пин аналогового входа (для esp8266 всегда 0, для esp32 пока что не доделал читаться будет всегда пин 34) +**Аналоговый#вход,#%** это название виджета в приложении +**Датчики** название вкладки в приложении +**any-data** или **progress-round** или **progress-line** три разных варианта виджета отображения +**310** начальная величина читаемого диапазона +**620** конечная величина читаемого диапазона +**1** начальная величина выводимого диапазона +**100** конечная величина выводимого диапазона +**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +## 7.2 Вызов событий объектом "analog" + +В сценариях analog можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=): + +`analog > digit1` +`buttonSet 1 0` +`end` + +Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=): + +`analog > 50` +`buttonSet 1 0` +`end` + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 8.1 Объект "level" (ультразвуковой дальномер JSN-SR04T, HC-SR04, HY-SRF05) + +`level Вода#в#баке,#% Датчики any-data 125 20 1` + +**level** это объект чтения датчика расстояния +**Вода#в#баке** это название виджета в приложении +**Датчики** название вкладки в приложении +**any-data** или **progress-round** или **progress-line** три разных варианта отображения виджета +**125** расстояние от датчика до дна бака в сантиметрах +**20** расстояние от датчика до поверхности воды, когда бак полный, в сантиметрах +**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +Подключать дальномер нужно: + +| | trig | echo | +| :-: | :-: | :-: | +| wemos | D5 | D6 | +| esp | 14 | 12 | + +## 8.2 Вызов событий объектом "level" + +В сценариях level можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=): + +`level > digit1` +`buttonSet 1 0` +`end` + +Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=): + +`level > 95` +`buttonSet 1 0` +`end` + + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 9.1 Объект "dht" (Сенсоры DHT11, DHT22, DHT33, DHT44, AM2302, RHT03) + +dhtT DHT11 2 Температура#DHT,#t°C Датчики any-data 1 +dhtH DHT11 2 Влажность#DHT,#% Датчики any-data 2 +dhtComfort Степень#комфорта: Датчики 3 +dhtPerception Восприятие: Датчики 4 +dhtDewpoint Точка#росы: Датчики 5 + +**dhtT** или **dhtH** температура или влажность +**DHT11** или **DHT22** чтение DHT11 или DHT22, DHT33, DHT44, AM2302, RHT03 соответственно +**2** пин датчика +**Температура#DHT,#t°C** это название виджета в приложении +**Датчики** название вкладки в приложении +**any-data** или **progress-round** или **progress-line** три разных варианта отображения виджета +**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +## 9.2 Вызов событий объектом "dhtT" или "dhtH" + +В сценариях "dhtT" или "dhtH" можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=): + +`dhtT > digit1` +`buttonSet 1 0` +`end` + +`dhtH > digit1` +`buttonSet 1 0` +`end` + +Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=): + +`dhtT > 50` +`buttonSet 1 0` +`end` + +`dhtH < 40` +`buttonSet 1 0` +`end` + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 10.1 Объект "stepper" (Драйвер шагового двигателя A4988) + +stepper 1 12 4 +stepper 2 13 5 + +**stepper** объект создающий шаговый двигатель +**1** номер шаговика +**12** номер пина количества шагов +**4** номер пина направления + +## 10.2 управление объектом "stepper" + +`stepperSet 1 200 1` + +**stepperSet** команда управления шаговым двигателем +**1** номер шагового двигателя (их может быть не более двух) +**200** количество шагов (обратное направление отрицательное значение параметра) +**1** интервал между шагами (мс) + +`button1 = 1` +`stepperSet 1 200 1` +`end` +`button1 = 0` +`stepperSet 1 -200 1` +`end` + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 11.1 Объект "обратный таймер" + +Прежде чем читать этот раздел запустите пресет №3 на устройстве. +Нажав на кнопку "Выберите во что вы хотите превратить esp" + +Можно использовать цифры из окон ввода: + +`timerStart 1 digit1 sec` + +Можно писать цифры прям в объект: + +`timerStart 1 10 sec` + +Можно установить часы минуты или секунды: + +`timerStart 1 10 sec` +`timerStart 1 10 min` +`timerStart 1 10 hours` + +Используем это объект в сценариях вот так: + +`button1 = 1` +`timerStart 1 digit1 sec` +`end` + +Смысл в том что при нажатии на кнопку один запуститься обратный отчет, на величину digit1 секунд. Если напишем например: + +`dallas < 60` +`timerStart 1 digit1 sec` +`end` + +то такой же отчет запустится когда значение температуры вырастит больше 60 градусов. Таким образом обратный отчет можно запустить реакцией на любое событие. Итак теперь обратный отчет запущен, обратный таймер уменьшается, и нам надо назначить действие на тот момент когда он обнулится. Для этого я придумал выражение: `timer1 = 0` + +Используем его и в общем получаем вот такой сценарий: + +`button1 = 1` +`timerStart 1 digit1 sec` +`end` +`timer1 = 0` +`buttonSet 1 0` +`end` + +Когда таймер закончит отсчёт, кнопка станет "неактивной". Используйте преет №3, как пример подобного сценария +Например: + +`dallas < 60` +`buttonSet 1 0` +`buttonSet 2 0` +`pwmSet 1 1023` +`mqtt 2653450020 buttonChange_1` +`mqtt 2653450020 pinSet_13_1` +`http 192.168.1.32 pinSet_14_1` +`end` + +Вот что может произойти на разных устройствах по одному событию повышения температуры... + + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 12 Журнал (лог) данных + + +`logging analog 1 100 slow Аналоговый#вход Датчики 7` + +**logging** объект для логирования +**analog** или **dhtT** или **dhtH** какой сенсор будем логировать, можно указать любой +**1** период между точками в минутах +**100** количество точек (старые точки будут удаляться по мере добавления новых) +**slow** или **fast** метод выгрузки графика в приложение, slow - выгружает график по одной точке (меньше расходуется оперативка, лучше использовать для esp8266), fast - выгрузка графика сразу (больше расход оперативки, подходит для esp32) +**Аналоговый#вход** название графика в приложении +**Датчики** название вкладки в приложении +**7** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) +## 13 Взаимодействие устройств между собой + +Устройства могут между собой обмениваться командами. Команды можно отправлять по http или по mqtt. +По событию на одном устройстве можно вызвать действие на другом. Например на esp01 стоит датчик температуры, реле стоит на esp02. + +Настройки esp01: + +`dhtT temp 2 dht11 Температура#DHT,#t°C Датчики any-data 1` + +`temp < 40` +`http 192.168.10.25 buttonSet_1_1` +`end` + +Настройки esp02: + +`button 1 13 Включить#реле Реле 0 1` + +И теперь когда температура датчика на esp01 станет меньше 40 градусов то на esp02 будет отправлена команда на включение кнопки: buttonSet_1_1 + +Если вы хотите отправить команду через mqtt то сценарий будет выглядеть следующим образом: + +`temp < 40` +`mqtt 12343442-12413131 buttonSet_1_1` +`end` + +где `12343442-12413131` id esp02 той на которую отправляем команду. Id можно взять в веб интерфейсе на странице конфигурация устройства. Или в списке устройств в сети. + +Теперь рассмотрим вариант внешнего управления esp с помощью get запросов. + +`http://192.168.88.239/cmd?command=buttonSet%201%201` + +Разберем эту строку. Сама команда в ней выглядит вот так: buttonSet%201%201. `%20` заменяют пробел. + +То есть что бы составить get запрос на изменение например pwm нужно: + +Взять команду `pwmSet 1 500` +Заменить в ней пробелы на `%20` получится так: `pwmSet%201%20500` +И добавить ее в конец строки `http://192.168.88.239/cmd?command=` где указывается ip адрес устройства + +В итоге получится http://192.168.88.239/cmd?command=pwmSet%201%20500 + + + + + + \ No newline at end of file diff --git a/doc/2.txt b/doc/2.txt new file mode 100644 index 00000000..529f22bb --- /dev/null +++ b/doc/2.txt @@ -0,0 +1,85 @@ +# В этой инструкции будет описано как с esp отправлять email и push + +# Часть 1. Привязать email и pushbullet к сайту pushingbox + +### 1. Необходимо перейти на сайт: [pushingbox](https://www.pushingbox.com/) +### 2. Войти с помощью google +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_1.png) +### 3. Перейти в мои сервисы и добавить новый сервис +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_2.png) +### 4. Нас интересуют два сервиса email и pushbullet +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_4%2B.png) +### 5. Выбираем сначало сервис для отправки email. В окно `Name of your email configuration` - вводим слово "email". В окно `Email address` - вводим ваш email адрес. жмем submit +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_5.png) +manager_modules_firmware/blob/master/push_instruction/Screenshot_6.png) +### 6.1 Привязываем pushbullet. Переходим на сайт [pushbullet.com](https://www.pushbullet.com/) +### 6.2 Входим с гуглом или фейсбуком +### 6.3 Идем в настройки +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_7.png) +### 6.4 Создаем токен +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_8.png) +### 6.5 Идем опять в сервисы и теперь выбираем сервис pushbullet [pushingbox.com/services](https://www.pushingbox.com/services.php) нажимаем add service +### Берем токен, и вставляем его в окно Access token. +### Окно Device token (optional) оставляем пустым. +### В окно Name of your Pushbullet configuration пишем слово "push". +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_6.png) + +### 7. Теперь наш email и pushbullet привязаны к pushingbox. Далее можно скачать приложение pushbullet на телефон и войти с гуглом или фейсбуком сответственно с пунктом 6.3 этой инструкции +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_9.png) + +# Часть 2. Создание сценариев отправки email + +### 8.1. Сценарий для отправки email. Заходим в My Scenarios: +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_10.png) + +### 8.2 Пишем слово email (это имя сценария отправки email) жмем add: +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_12.png) +### 8.3 Нажимаем add an action +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_14.png) +### 8.4 Выбираем наш email который мы зарегестрировали ранее и нажимаем Add an action with this service +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_11.png) +### 8.5 Делаем все как на скриншоте и жмем submit +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_15.png) +### 8.6 Возвращаемся на мои сценарии +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_17.png) +### 8.7 Вставляем токен в веб интерфейс esp +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_18.png) + +# Часть 3. Создание сценариев отправки push + +### 9.1. Сценарий для отправки push. Заходим в My Scenarios: +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_10.png) + +### 9.2 Пишем слово push (это имя сценария отправки email) жмем add: +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_19.png) +### 9.3 Нажимаем add an action +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_20.png) +### 9.4 Выбираем наш pushbullet который мы зарегестрировали ранее и нажимаем Add an action with this service +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_11.png) +### 9.5 Делаем все как на скриншоте и жмем submit +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_15.png) +### 9.6 Возвращаемся на мои сценарии +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_21.png) +### 9.7 Вставляем токен в веб интерфейс esp +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_18.png) + +# Часть 4. Итог + +При создании такой конфигурации как на картинке: + +`button 1 na Отправить#push Push 0 1` + + +`button1 = 1` +`push внимание кнопка#нажата` +`end` + +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_22.png) + +Если мы введем токен для email то будут приходить email +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_17.png) + +Если для push то будут приходить push в pushbullet +![](https://github.com/IoTManagerProject/Wiki/tree/master/pictures/push_instruction/Screenshot_21.png) + +Способ описанный в данной инструкции более сложный в настройке но зато очень надежный. \ No newline at end of file diff --git a/doc/3.txt b/doc/3.txt new file mode 100644 index 00000000..31226847 --- /dev/null +++ b/doc/3.txt @@ -0,0 +1,32 @@ +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + +### 1. Скачать архив из [релизов](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/releases) или из закрепленного сообщения группы телеграм с последней версией прошивки + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + + +### 2. Для ESP8266 c 4 и больше мб памяти (все сделать как на скриншотах) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp8266_1.png) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp8266_2.png) + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + +### 2. Для ESP8266 c 1 мб памяти (все сделать как на скриншотах) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp8266_1mb_1.png) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp8266_1mb_2.png) + +*** +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/1.png?raw=true) + +### 2. Для ESP32 (все сделать как на скриншотах) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp32_1.png) + +![](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/blob/master/pictures/esp32_2.png) \ No newline at end of file diff --git a/doc/orders.xlsm b/doc/orders.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..4a23ac94ad00840bd3a086137099746ba89e7367 GIT binary patch literal 21287 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 1)sCmd.readStr(buf); cmdStr = deleteBeforeDelimiter(cmdStr, "\n"); } } diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index a65c292b..68b05d3d 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -1,9 +1,13 @@ #include "DeviceList.h" -static const char* firstLine PROGMEM = "Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; +static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; void addElement(String name) { String item = readFile("items/" + name + ".txt", 1024); + + item.replace("id", "id" + String(getNewElementNumber("id.txt"))); + item.replace("order", String(getNewElementNumber("order.txt"))); + item.replace("\r\n", ""); item.replace("\r", ""); item.replace("\n", ""); @@ -13,29 +17,52 @@ void addElement(String name) { void delAllElement() { removeFile("conf.csv"); addFile("conf.csv", String(firstLine)); + removeFile("id.txt"); + removeFile("order.txt"); +} + + +int getNewElementNumber(String file) { + int number = readFile(file, 100).toInt(); + number++; + removeFile(file); + addFile(file, String(number)); + return number; } void do_delElement() { if (delElementFlag) { delElementFlag = false; - delElement(); + delElement(itemsFile, itemsLine); } } -void delElement() { - File configFile = LittleFS.open("/conf.csv", "r"); +void delElement(String _itemsFile, String _itemsLine) { + File configFile = LittleFS.open("/" + _itemsFile, "r"); if (!configFile) { return; } - configFile.seek(0, SeekSet); //поставим курсор в начало файла + configFile.seek(0, SeekSet); String finalConf; + int count = -1; while (configFile.position() != configFile.size()) { + count++; String item = configFile.readStringUntil('\n'); - if (selectToMarker(item, ";") == "0") { - finalConf += "\n" + item; + Serial.print(_itemsLine); + Serial.print(" "); + Serial.println(count); + if (count != _itemsLine.toInt()) { + if (count == 0) { + finalConf += item; + } else { + finalConf += "\n" + item; + } } } - removeFile("conf.csv"); - addFile("conf.csv", String(firstLine) + "\n" + finalConf); + removeFile(_itemsFile); + addFile(_itemsFile, finalConf); + Serial.println(finalConf); + itemsFile = ""; + itemsLine = ""; configFile.close(); -} +} \ No newline at end of file diff --git a/src/Global.cpp b/src/Global.cpp index 4d6178e7..89237a46 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -39,6 +39,9 @@ String all_widgets = ""; String scenario = ""; String order_loop = ""; +String itemsFile = ""; +String itemsLine = ""; + // Sensors String analog_value_names_list; int enter_to_analog_counter; diff --git a/src/Init.cpp b/src/Init.cpp index b5e79442..99c1d98b 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -62,6 +62,7 @@ void Device_init() { removeFile(String("layout.txt")); #endif + fileExecute(String(DEVICE_CONFIG_FILE)); //outcoming_date(); } diff --git a/src/Web.cpp b/src/Web.cpp index 5cc4c119..fe9942df 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -38,20 +38,22 @@ void web_init() { request->redirect("/?set.device"); } - //-------------------------------------------------------------------------------- + //==============================list of items===================================================== if (request->hasArg("element")) { String name = request->getParam("element")->value(); addElement(name); + Device_init(); request->redirect("/?setn.device"); } if (request->hasArg("cleanconf")) { delAllElement(); + Device_init(); request->redirect("/?setn.device"); } - if (request->hasArg("delete")) { - delElementFlag = true; + if (request->hasArg("save")) { + Device_init(); request->redirect("/?setn.device"); } @@ -235,6 +237,19 @@ void web_init() { } }); + //==============================list of items===================================================== + //server.on("/del", HTTP_GET, [](AsyncWebServerRequest* request) { + // if (request->hasArg("file")) { + // itemsFile = request->getParam("file")->value(); + // } + // if (request->hasArg("line")) { + // itemsLine = request->getParam("line")->value(); + // } + // delElementFlag = true; + // Device_init(); + // request->redirect("/?setn.device"); + //}); + /* * Check */ From 82b1fb68462990f2603a307dbee988f233d0f2aa Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 22 Aug 2020 13:31:25 +0300 Subject: [PATCH 13/96] changes --- data/config.json | 4 ++-- data/elements.json | 6 ++++++ data/index.json.gz | Bin 725 -> 0 bytes data/setn.device.json | 7 +++++++ src/DeviceList.cpp | 2 ++ 5 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 data/elements.json delete mode 100644 data/index.json.gz diff --git a/data/config.json b/data/config.json index 34c25c56..7aa21254 100644 --- a/data/config.json +++ b/data/config.json @@ -3,8 +3,8 @@ "chipID": "", "apssid": "IoTmanager", "appass": "", - "routerssid": "rise", - "routerpass": "hostel3333", + "routerssid": "VOLODYA", + "routerpass": "BELCHENKO", "timezone": 2, "ntp": "pool.ntp.org", "mqttServer": "91.204.228.124", diff --git a/data/elements.json b/data/elements.json new file mode 100644 index 00000000..70e72031 --- /dev/null +++ b/data/elements.json @@ -0,0 +1,6 @@ +{ + "id1": "id1", + "id2": "id2", + "id3": "id3", + "id4": "id4" +} \ No newline at end of file diff --git a/data/index.json.gz b/data/index.json.gz deleted file mode 100644 index 52c4df62720ac778efebec4b53e5f1077e5c2439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJCRV##$lX#OQ8*jAhG>K3oAS!);wl96ER8?w!04NJfAmJD6KkAIlhD&;Th}Sb? zpE+k{oQ)K*3O;w-QfTE?QiNDp+oQasmuyhau7^IiQe-s^2ZbvZtcJM&4@6a3<~aZ{UI?ayu|_JI^;{xLR0OLX-digb7n@%Le#>XZI@h8uIIA_ziJ1JQ!)N<>VeH@*jk(S#hT-K zY%Oesf>rH?TX9Ec<%z}uQPVb^{iCiS`ro08U4pcbUk@1mOd5O!B2KPcJve!42;*Te zjiN}N57Tcn8rha#7xg^T8fqSGd2T4?aG6mx{ObOg zzZ5*BPOt=m-k94&b|G(1&sy|1X@h~iAua+Xk=ld`1M_{H2zhGwqrwZEW|--Y7NN5o zn`t)s9*Mxa`+~@r;2hy;gy@@gUhg0R9_ZK5MZ$gX^dal6JcXNphiPK9P1FZ4I*AW; z#cD@&Mu_|hP`U|`4(=fgmi_|ur~ik2Wc;8Owy_z(tLK@9q`>LjAg#_34~s^e%Q_|x znR+Y`M6a0!4Y Date: Mon, 24 Aug 2020 13:56:12 +0300 Subject: [PATCH 14/96] callback --- data/elements.json | 6 ---- data/items/signs.json | 5 +++ data/setn.device.json | 56 ++++++++++++++++++++++++++++++- include/Class/AsyncActions.h | 29 ++++++++++++++++ include/DeviceList.h | 6 ++-- include/Global.h | 4 +++ include/main.h | 3 ++ src/Class/AsyncActions.cpp | 13 ++++++++ src/DeviceList.cpp | 33 +++++++++++++++++-- src/Global.cpp | 6 +++- src/Web.cpp | 6 ++++ src/main.cpp | 64 ++++++++++++++++++------------------ 12 files changed, 187 insertions(+), 44 deletions(-) delete mode 100644 data/elements.json create mode 100644 data/items/signs.json create mode 100644 include/Class/AsyncActions.h create mode 100644 include/main.h create mode 100644 src/Class/AsyncActions.cpp diff --git a/data/elements.json b/data/elements.json deleted file mode 100644 index 70e72031..00000000 --- a/data/elements.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id1": "id1", - "id2": "id2", - "id3": "id3", - "id4": "id4" -} \ No newline at end of file diff --git a/data/items/signs.json b/data/items/signs.json new file mode 100644 index 00000000..7d140d4b --- /dev/null +++ b/data/items/signs.json @@ -0,0 +1,5 @@ +{ + "more":">", + "less":"<", + "eq":"=" +} \ No newline at end of file diff --git a/data/setn.device.json b/data/setn.device.json index 026beade..b3931aee 100644 --- a/data/setn.device.json +++ b/data/setn.device.json @@ -58,12 +58,66 @@ "action": "/set?cleanconf", "class": "btn btn-block btn-default" }, + { + "type": "hr" + }, + { + "type": "h4", + "title": "Если", + "style": "width:25%;float:left;" + }, { "type": "select", "name": "id-arg", "action": "/set?id=[[id-arg]]", "state": "en", - "title": "elements.json" + "title": "items/elements.json", + "style": "width:25%;float:left" + }, + { + "type": "select", + "name": "id-arg2", + "action": "/set?id=[[id-arg2]]", + "state": "en", + "title": "items/signs.json", + "style": "width:25%;float:left" + }, + { + "type": "input", + "title": "", + "name": "fsi-arg", + "pattern": "", + "state": "{{fsi}}", + "style": "width:25%;float:left" + }, + { + "type": "hr" + }, + { + "type": "h4", + "title": "То", + "style": "width:25%;float:left;" + }, + { + "type": "select", + "name": "id-arg3", + "action": "/set?id=[[id-arg3]]", + "state": "en", + "title": "items/elements.json", + "style": "width:25%;float:left" + }, + { + "type": "h4", + "title": "=", + "style": "width:25%;float:left;" + }, + { + "type": "input", + "title": "", + "name": "fsi-arg", + "pattern": "", + "state": "{{fsi}}", + "style": "width:25%;float:left" } ] } \ No newline at end of file diff --git a/include/Class/AsyncActions.h b/include/Class/AsyncActions.h new file mode 100644 index 00000000..19f7fc61 --- /dev/null +++ b/include/Class/AsyncActions.h @@ -0,0 +1,29 @@ +#pragma once + +#include + +#include + +// Декларируем тип - сигнатуру метода , который мы готовы принять в данном случае это +// должен быть метод без результата и без параметров. +// Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack + +//а как вызывать callback и когда их много? когда нужно вызывать например 10 разных из класса? +// + +typedef std::function AsyncActionCb; //метод без результата и параметров + +class AsyncActions { + private: + long count; + AsyncActionCb _cb; + + public: + AsyncActions(); + void loop(); + void setCallback(AsyncActionCb cb) { //передаем внутрь класса функцию любую void функцию без агрументов + _cb = cb; + } +}; + +extern AsyncActions* async; \ No newline at end of file diff --git a/include/DeviceList.h b/include/DeviceList.h index 124f55d2..1d6be8a7 100644 --- a/include/DeviceList.h +++ b/include/DeviceList.h @@ -6,5 +6,7 @@ extern void addElement(String name); extern void delAllElement(); extern int getNewElementNumber(String file); -extern void delElement(String itemsFile, String itemsLine); -extern void do_delElement(); \ No newline at end of file +extern void do_getJsonListFromCsv(); +extern String getJsonListFromCsv(String csvFile,int colum); +extern void do_delElement(); +extern void delElement(String itemsFile, String itemsLine); \ No newline at end of file diff --git a/include/Global.h b/include/Global.h index 0f951e05..06437aef 100644 --- a/include/Global.h +++ b/include/Global.h @@ -115,6 +115,10 @@ extern boolean mqttParamsChanged; extern boolean udp_data_parse; extern boolean mqtt_send_settings_to_udp; extern boolean delElementFlag; +extern boolean getJsonListFromCsvFlag; + +extern String csvFile; +extern int colum; /* * Запрос на скарнирование шины diff --git a/include/main.h b/include/main.h new file mode 100644 index 00000000..0d48dfc5 --- /dev/null +++ b/include/main.h @@ -0,0 +1,3 @@ +#pragma once + +//void myCallback; \ No newline at end of file diff --git a/src/Class/AsyncActions.cpp b/src/Class/AsyncActions.cpp new file mode 100644 index 00000000..c629a841 --- /dev/null +++ b/src/Class/AsyncActions.cpp @@ -0,0 +1,13 @@ +#include "Class/AsyncActions.h" + +AsyncActions::AsyncActions(){}; + +void AsyncActions::loop() { + count++; + if (count > 5000) { + if(_cb) _cb; //что означает эта запись? это и есть вызов callback? + count = 0; + } +} + +AsyncActions* async; \ No newline at end of file diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index 56e6d4b5..60410aa8 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -4,7 +4,7 @@ static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет; void addElement(String name) { String item = readFile("items/" + name + ".txt", 1024); - + item.replace("id", "id" + String(getNewElementNumber("id.txt"))); item.replace("order", String(getNewElementNumber("order.txt"))); @@ -21,7 +21,6 @@ void delAllElement() { removeFile("order.txt"); } - int getNewElementNumber(String file) { int number = readFile(file, 100).toInt(); number++; @@ -30,7 +29,37 @@ int getNewElementNumber(String file) { return number; } +void do_getJsonListFromCsv() { + if (getJsonListFromCsvFlag) { + getJsonListFromCsvFlag = false; + removeFile("items/elements.json"); + addFile("items/elements.json", getJsonListFromCsv("conf.csv", 1)); + } +} +String getJsonListFromCsv(String csvFile, int colum) { + File configFile = LittleFS.open("/" + csvFile, "r"); + if (!configFile) { + return "error"; + } + configFile.seek(0, SeekSet); + + String outJson = "{}"; + + int count = -1; + + while (configFile.position() != configFile.size()) { + count++; + String item = configFile.readStringUntil('\n'); + if (count > 0) { + String line = selectFromMarkerToMarker(item, ";", colum); + jsonWriteStr(outJson, line, line); + } + } + configFile.close(); + csvFile = ""; + return outJson; +} void do_delElement() { if (delElementFlag) { diff --git a/src/Global.cpp b/src/Global.cpp index 89237a46..04a4041f 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -85,4 +85,8 @@ boolean mqtt_send_settings_to_udp = false; BusScanner_t busToScan; boolean busScanFlag = false; boolean fsCheckFlag = false; -boolean delElementFlag = false; \ No newline at end of file +boolean delElementFlag = false; +boolean getJsonListFromCsvFlag = false; + +String csvFile = ""; +int colum; \ No newline at end of file diff --git a/src/Web.cpp b/src/Web.cpp index fe9942df..8d27006b 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -42,21 +42,27 @@ void web_init() { if (request->hasArg("element")) { String name = request->getParam("element")->value(); addElement(name); + getJsonListFromCsvFlag = true; Device_init(); request->redirect("/?setn.device"); } if (request->hasArg("cleanconf")) { delAllElement(); + removeFile("items/elements.json"); Device_init(); request->redirect("/?setn.device"); } if (request->hasArg("save")) { Device_init(); + getJsonListFromCsvFlag = true; request->redirect("/?setn.device"); } + + + //-------------------------------------------------------------------------------- if (request->hasArg("devinit")) { Device_init(); diff --git a/src/main.cpp b/src/main.cpp index 03d3ad39..57e88e5e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,11 +1,12 @@ -#include "Global.h" -#include "Init.h" -#include "Cmd.h" -#include "HttpServer.h" #include "Bus/BusScannerFactory.h" -#include "Utils/Timings.h" #include "Class/Switch.h" +#include "Cmd.h" #include "DeviceList.h" +#include "Global.h" +#include "HttpServer.h" +#include "Init.h" +#include "Utils/Timings.h" +#include "Class/AsyncActions.h" void not_async_actions(); @@ -67,49 +68,54 @@ void setup() { pm.info("Broadcast UDP"); udp_init(); #endif - ts.add( - TEST, 1000 * 60, [&](void*) { - pm.info(printMemoryStatus()); - }, - nullptr, true); + + ts.add(TEST, 1000 * 60, [&](void*) { pm.info(printMemoryStatus()); }, nullptr, true); just_load = false; - initialized = true; + + async = new AsyncActions(); + + //async->setCallback([&](void*) { +// +// + //}); + + async->setCallback(myCallback); // + + + } void loop() { if (!initialized) { return; } - timeNow->loop(); - #ifdef OTA_UPDATES_ENABLED ArduinoOTA.handle(); #endif #ifdef WS_enable ws.cleanupClients(); #endif - not_async_actions(); - - MqttClient::loop(); - - loopCmd(); - - mySwitch->loop(); - - loopScenario(); - #ifdef UDP_ENABLED loopUdp(); #endif - + timeNow->loop(); + async->loop(); + not_async_actions(); + MqttClient::loop(); + loopCmd(); + mySwitch->loop(); + loopScenario(); loopSerial(); - ts.update(); } void not_async_actions() { +#ifdef UDP_ENABLED + do_udp_data_parse(); + do_mqtt_send_settings_to_udp(); +#endif if (mqttParamsChanged) { MqttClient::reconnect(); mqttParamsChanged = false; @@ -118,15 +124,9 @@ void not_async_actions() { getLastVersion(); do_update(); - -#ifdef UDP_ENABLED - do_udp_data_parse(); - do_mqtt_send_settings_to_udp(); -#endif - do_scan_bus(); - do_delElement(); + do_getJsonListFromCsv(); } String getURL(const String& urls) { From ce7c550410c7440299a8144d38f892d8e33f6c04 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 24 Aug 2020 15:09:43 +0300 Subject: [PATCH 15/96] working example of callback with date passing inside and outside --- include/Class/AsyncActions.h | 14 +++++++++----- src/Class/AsyncActions.cpp | 21 ++++++++++++++++++++- src/main.cpp | 21 ++++++++++++++------- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/include/Class/AsyncActions.h b/include/Class/AsyncActions.h index 19f7fc61..fe81b186 100644 --- a/include/Class/AsyncActions.h +++ b/include/Class/AsyncActions.h @@ -1,5 +1,5 @@ #pragma once - +#include #include #include @@ -8,22 +8,26 @@ // должен быть метод без результата и без параметров. // Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack -//а как вызывать callback и когда их много? когда нужно вызывать например 10 разных из класса? -// +typedef std::function AsyncActionCb; //метод без результата и параметров -typedef std::function AsyncActionCb; //метод без результата и параметров +typedef std::function AsyncParamActionCb; //метод без результата и параметров class AsyncActions { private: long count; AsyncActionCb _cb; + AsyncParamActionCb _pcb; public: AsyncActions(); void loop(); + void setCallback(AsyncActionCb cb) { //передаем внутрь класса функцию любую void функцию без агрументов _cb = cb; } -}; + void setCallback(AsyncParamActionCb cb) { //передаем внутрь класса функцию любую void функцию с аргументами + _pcb = cb; + } +}; extern AsyncActions* async; \ No newline at end of file diff --git a/src/Class/AsyncActions.cpp b/src/Class/AsyncActions.cpp index c629a841..13705f9f 100644 --- a/src/Class/AsyncActions.cpp +++ b/src/Class/AsyncActions.cpp @@ -5,9 +5,28 @@ AsyncActions::AsyncActions(){}; void AsyncActions::loop() { count++; if (count > 5000) { - if(_cb) _cb; //что означает эта запись? это и есть вызов callback? + // Проверяем что переменная содержит указатель - не пустая не null + // и непосредственно вызываем то, на что это указывает + // просто пишем имя - без () - это указатель на фунецию. + // () - вызываем функцию - с пустым набором параметров + + if (_cb != NULL) { + _cb(); + } + //или ровно тоже самое + //if (_cb) _cb(); + + if (_pcb) { + if (_pcb("SomeTextValue")) { + Serial.print("Got true!"); + } else { + Serial.print("Got false!"); + } + } + count = 0; } } + AsyncActions* async; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 57e88e5e..129e36a1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,5 @@ #include "Bus/BusScannerFactory.h" +#include "Class/AsyncActions.h" #include "Class/Switch.h" #include "Cmd.h" #include "DeviceList.h" @@ -6,7 +7,6 @@ #include "HttpServer.h" #include "Init.h" #include "Utils/Timings.h" -#include "Class/AsyncActions.h" void not_async_actions(); @@ -69,7 +69,8 @@ void setup() { udp_init(); #endif - ts.add(TEST, 1000 * 60, [&](void*) { pm.info(printMemoryStatus()); }, nullptr, true); + ts.add( + TEST, 1000 * 60, [&](void*) { pm.info(printMemoryStatus()); }, nullptr, true); just_load = false; initialized = true; @@ -77,14 +78,20 @@ void setup() { async = new AsyncActions(); //async->setCallback([&](void*) { -// -// + // + // //}); - async->setCallback(myCallback); // - - + async->setCallback([]() { + Serial.println("123"); + }); + async->setCallback([](const String str) { + Serial.println(str); + + return false; + }); + } void loop() { From c11983003bbb4c05704646a86eb618912e24879f Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 25 Aug 2020 01:55:43 +0300 Subject: [PATCH 16/96] working example of callback with date passing inside and outside for using --- include/Class/AsyncActions.h | 11 ++--------- src/Class/AsyncActions.cpp | 13 +++++++++++-- src/main.cpp | 8 +------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/include/Class/AsyncActions.h b/include/Class/AsyncActions.h index fe81b186..6d639752 100644 --- a/include/Class/AsyncActions.h +++ b/include/Class/AsyncActions.h @@ -1,7 +1,6 @@ #pragma once #include #include - #include // Декларируем тип - сигнатуру метода , который мы готовы принять в данном случае это @@ -21,13 +20,7 @@ class AsyncActions { public: AsyncActions(); void loop(); - - void setCallback(AsyncActionCb cb) { //передаем внутрь класса функцию любую void функцию без агрументов - _cb = cb; - } - - void setCallback(AsyncParamActionCb cb) { //передаем внутрь класса функцию любую void функцию с аргументами - _pcb = cb; - } + void setCallback(AsyncActionCb cb); + void setCallback(AsyncParamActionCb pcb); }; extern AsyncActions* async; \ No newline at end of file diff --git a/src/Class/AsyncActions.cpp b/src/Class/AsyncActions.cpp index 13705f9f..821152b0 100644 --- a/src/Class/AsyncActions.cpp +++ b/src/Class/AsyncActions.cpp @@ -5,6 +5,7 @@ AsyncActions::AsyncActions(){}; void AsyncActions::loop() { count++; if (count > 5000) { + // Проверяем что переменная содержит указатель - не пустая не null // и непосредственно вызываем то, на что это указывает // просто пишем имя - без () - это указатель на фунецию. @@ -18,9 +19,9 @@ void AsyncActions::loop() { if (_pcb) { if (_pcb("SomeTextValue")) { - Serial.print("Got true!"); + Serial.println("Got true!"); } else { - Serial.print("Got false!"); + Serial.println("Got false!"); } } @@ -28,5 +29,13 @@ void AsyncActions::loop() { } } +//передаем внутрь класса функцию любую void функцию без агрументов +void AsyncActions::setCallback(AsyncActionCb cb) { + _cb = cb; +} +//передаем внутрь класса функцию любую void функцию с аргументами +void AsyncActions::setCallback(AsyncParamActionCb pcb) { + _pcb = pcb; +} AsyncActions* async; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 129e36a1..78f0c39c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -77,19 +77,13 @@ void setup() { async = new AsyncActions(); - //async->setCallback([&](void*) { - // - // - //}); - async->setCallback([]() { Serial.println("123"); }); async->setCallback([](const String str) { Serial.println(str); - - return false; + return true; }); } From b1318de1dcab6f9efd2f5c793dfb43261a91547e Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 25 Aug 2020 15:45:06 +0300 Subject: [PATCH 17/96] call back test class --- .../Class/{AsyncActions.h => CallBackTest.h} | 10 ++++----- .../{AsyncActions.cpp => CallBackTest.cpp} | 22 +++++++++++++------ src/main.cpp | 6 ++--- 3 files changed, 23 insertions(+), 15 deletions(-) rename include/Class/{AsyncActions.h => CallBackTest.h} (80%) rename src/Class/{AsyncActions.cpp => CallBackTest.cpp} (74%) diff --git a/include/Class/AsyncActions.h b/include/Class/CallBackTest.h similarity index 80% rename from include/Class/AsyncActions.h rename to include/Class/CallBackTest.h index 6d639752..7b014ad2 100644 --- a/include/Class/AsyncActions.h +++ b/include/Class/CallBackTest.h @@ -7,20 +7,20 @@ // должен быть метод без результата и без параметров. // Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack -typedef std::function AsyncActionCb; //метод без результата и параметров - +typedef std::function AsyncActionCb; //метод без результата и параметров typedef std::function AsyncParamActionCb; //метод без результата и параметров -class AsyncActions { +class CallBackTest { private: long count; AsyncActionCb _cb; AsyncParamActionCb _pcb; + public: - AsyncActions(); + CallBackTest(); void loop(); void setCallback(AsyncActionCb cb); void setCallback(AsyncParamActionCb pcb); }; -extern AsyncActions* async; \ No newline at end of file +extern CallBackTest* CB; \ No newline at end of file diff --git a/src/Class/AsyncActions.cpp b/src/Class/CallBackTest.cpp similarity index 74% rename from src/Class/AsyncActions.cpp rename to src/Class/CallBackTest.cpp index 821152b0..30b7f7cf 100644 --- a/src/Class/AsyncActions.cpp +++ b/src/Class/CallBackTest.cpp @@ -1,11 +1,10 @@ -#include "Class/AsyncActions.h" +#include "Class/CallBackTest.h" -AsyncActions::AsyncActions(){}; +CallBackTest::CallBackTest(){}; -void AsyncActions::loop() { +void CallBackTest::loop() { count++; if (count > 5000) { - // Проверяем что переменная содержит указатель - не пустая не null // и непосредственно вызываем то, на что это указывает // просто пишем имя - без () - это указатель на фунецию. @@ -30,12 +29,21 @@ void AsyncActions::loop() { } //передаем внутрь класса функцию любую void функцию без агрументов -void AsyncActions::setCallback(AsyncActionCb cb) { +void CallBackTest::setCallback(AsyncActionCb cb) { _cb = cb; } //передаем внутрь класса функцию любую void функцию с аргументами -void AsyncActions::setCallback(AsyncParamActionCb pcb) { +void CallBackTest::setCallback(AsyncParamActionCb pcb) { _pcb = pcb; } -AsyncActions* async; \ No newline at end of file +CallBackTest* CB; + +//CB->setCallback([]() { +// Serial.println("123"); +//}); +// +//CB->setCallback([](const String str) { +// Serial.println(str); +// return true; +//}); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 78f0c39c..93605b1f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -75,13 +75,13 @@ void setup() { just_load = false; initialized = true; - async = new AsyncActions(); + CB = new CallBackTest(); - async->setCallback([]() { + CB->setCallback([]() { Serial.println("123"); }); - async->setCallback([](const String str) { + CB->setCallback([](const String str) { Serial.println(str); return true; }); From 532925756fb88f65d9cfeb5d1b06bedb83ec441e Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 25 Aug 2020 18:36:05 +0300 Subject: [PATCH 18/96] process to asinc --- data/set.device.json | 204 ++++++++++++--------------------------- data/set.deviceold.json | 143 +++++++++++++++++++++++++++ data/setn.device.json | 123 ----------------------- include/Class/NotAsinc.h | 31 ++++++ include/Consts.h | 5 + include/DeviceList.h | 8 +- include/Global.h | 2 +- src/Class/NotAsinc.cpp | 30 ++++++ src/Cmd.cpp | 3 +- src/DeviceList.cpp | 140 +++++++++++++-------------- src/MqttClient.cpp | 3 +- src/Upgrade.cpp | 18 ++-- src/Web.cpp | 32 +++--- src/main.cpp | 28 ++---- 14 files changed, 382 insertions(+), 388 deletions(-) create mode 100644 data/set.deviceold.json delete mode 100644 data/setn.device.json create mode 100644 include/Class/NotAsinc.h create mode 100644 src/Class/NotAsinc.cpp diff --git a/data/set.device.json b/data/set.device.json index 340d21b7..cf059244 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -1,143 +1,65 @@ { - "configs": [ - "/config.setup.json", - "/config.option.json", - "/config.live.json", - "/lang/lang.ru.json" - ], - "class": "col-sm-offset-1 col-sm-10", - "content": [ - { - "type": "h5", - "title": "{{name}}", - "class": "alert-default" - }, - { - "type": "link", - "title": "{{ButMainPage}}", - "action": "/", - "class": "btn btn-block btn-default" - }, - { - "type": "hr" - }, - { - "type": "h4", - "title": "Device ID: {{chipID}}" - }, - { - "type": "h4", - "title": "IP address: {{ip}}" - }, - { - "type": "h4", - "title": "Time: {{time}}" - }, - { - "type": "h4", - "title": "Uptime: {{uptime}}" - }, - { - "type": "h4", - "title": "Build version: {{firmware_version}}" - }, - { - "type": "h4", - "title": "LittleFS version: 2.3.5" - }, - { - "type": "hr" - }, - { - "type": "dropdown", - "name": "help-url", - "class": "btn btn-default", - "style": "display:inline", - "title": { - "#": "{{SetDevPreset}}", - "/set?preset=001": "1.Вкл. выкл. локального реле", - "/set?preset=002": "2.Вкл. выкл. локального реле в определенное время", - "/set?preset=003": "3.Вкл. выкл. локального реле на определенный период времени", - "/set?preset=004": "4.Вкл. выкл. нескольких локальных реле кнопкой в приложении", - "/set?preset=005": "5.Вкл. выкл. локального реле физической кнопкой и кнопкой в приложении параллельно (для выключателя света)", - "/set?preset=006": "6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)", - "/set?preset=007": "7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)", - "/set?preset=008": "8.Широтно импульсная модуляция", - "/set?preset=009": "9.Сенсор DHT11 (темп, влажность) и логгирование", - "/set?preset=010": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 (темп, влажность) и логгирование", - "/set?preset=011": "11.Аналоговый сенсор и логгирование", - "/set?preset=012": "12.Cенсор bmp280 (темп, давление) и логгирование", - "/set?preset=013": "13.Cенсор bme280 (темп, давление, влажность, высота) и логгирование", - "/set?preset=014": "14.Сенсор DS18B20 (темп) и логгирование", - "/set?preset=015": "15.Термостат на DS18B20 с переключением в ручной режим и логгированием", - "/set?preset=016": "16.Котроль уровня в баке (датчик расстояния) на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование", - "/set?preset=017": "17.Датчик движения включающий свет", - "/set?preset=018": "18.Охранный датчик движения", - "/set?preset=019": "19.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", - "/set?preset=020": "20.Система управления сервоприводами", - "/set?preset=021": "21.Модуль uart (serial). Двухстороняя связь с устройством через uart. Получение данных и отправка команд", - "/set?preset=100": "22.Настройки по умолчанию" - } - }, - { - "type": "h2", - "title": "{{SetDevConf}}" - }, - { - "type": "file", - "state": "dev_conf.txt", - "style": "width:100%;height:350px", - "title": "Сохранить", - "action": "/set?devinit", - "class": "btn btn-block btn-default" - }, - - { - "type": "h2", - "title": "Сценарии" - }, - { - "type": "checkbox", - "name": "scen", - "title": "Включить сценарии", - "action": "/set?scen=[[scen]]", - "state": "{{scen}}" - }, - { - "type": "file", - "state": "dev_scen.txt", - "style": "width:100%;height:350px", - "title": "Сохранить", - "action": "/set?sceninit", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Инструкция к системе автоматизации", - "action": "https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/wiki/Instruction", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Очистить логи сенсоров", - "action": "/set?cleanlog", - "class": "btn btn-block btn-default" - }, - { - "type": "hr" - }, - { - "type": "h3", - "name": "my-block", - "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", - "class": "hidden" - }, - { - "type": "button", - "title": "Обновить прошивку устройства", - "action": "/check", - "response": "[[my-block]]", - "class": "btn btn-block btn-default" - } - ] + "configs": [ + "/config.setup.json", + "/config.option.json", + "/config.live.json", + "/lang/lang.ru.json" + ], + "class": "col-sm-offset-1 col-sm-10", + "content": [ + { + "type": "h5", + "title": "{{name}}", + "class": "alert-default" + }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "dropdown", + "name": "help-url", + "class": "btn btn-default", + "style": "display:inline", + "title": { + "#": "Выберите элемент из списка", + "/set?addItem=button-out": "1.Кнопка управляющая пином", + "/set?addItem=button-out-i": "2.Кнопка управляющая пином с инверсией", + "/set?addItem=pwm-out": "3.Широтно импульсная подуляция", + "/set?addItem=button-in": "4.Физическая кнопка" + } + }, + { + "type": "hr" + }, + { + "type": "csv", + "title": [ + "html", + "text", + "text", + "text", + "text", + "text" + ], + "state": "conf.csv", + "style": "width:100%;", + "action": "/set?saveItems", + "class": "btn btn-block btn-default" + }, + { + "type": "link", + "title": "Удалить все", + "action": "/set?delAllItems", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + } + ] } \ No newline at end of file diff --git a/data/set.deviceold.json b/data/set.deviceold.json new file mode 100644 index 00000000..340d21b7 --- /dev/null +++ b/data/set.deviceold.json @@ -0,0 +1,143 @@ +{ + "configs": [ + "/config.setup.json", + "/config.option.json", + "/config.live.json", + "/lang/lang.ru.json" + ], + "class": "col-sm-offset-1 col-sm-10", + "content": [ + { + "type": "h5", + "title": "{{name}}", + "class": "alert-default" + }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "h4", + "title": "Device ID: {{chipID}}" + }, + { + "type": "h4", + "title": "IP address: {{ip}}" + }, + { + "type": "h4", + "title": "Time: {{time}}" + }, + { + "type": "h4", + "title": "Uptime: {{uptime}}" + }, + { + "type": "h4", + "title": "Build version: {{firmware_version}}" + }, + { + "type": "h4", + "title": "LittleFS version: 2.3.5" + }, + { + "type": "hr" + }, + { + "type": "dropdown", + "name": "help-url", + "class": "btn btn-default", + "style": "display:inline", + "title": { + "#": "{{SetDevPreset}}", + "/set?preset=001": "1.Вкл. выкл. локального реле", + "/set?preset=002": "2.Вкл. выкл. локального реле в определенное время", + "/set?preset=003": "3.Вкл. выкл. локального реле на определенный период времени", + "/set?preset=004": "4.Вкл. выкл. нескольких локальных реле кнопкой в приложении", + "/set?preset=005": "5.Вкл. выкл. локального реле физической кнопкой и кнопкой в приложении параллельно (для выключателя света)", + "/set?preset=006": "6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)", + "/set?preset=007": "7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)", + "/set?preset=008": "8.Широтно импульсная модуляция", + "/set?preset=009": "9.Сенсор DHT11 (темп, влажность) и логгирование", + "/set?preset=010": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 (темп, влажность) и логгирование", + "/set?preset=011": "11.Аналоговый сенсор и логгирование", + "/set?preset=012": "12.Cенсор bmp280 (темп, давление) и логгирование", + "/set?preset=013": "13.Cенсор bme280 (темп, давление, влажность, высота) и логгирование", + "/set?preset=014": "14.Сенсор DS18B20 (темп) и логгирование", + "/set?preset=015": "15.Термостат на DS18B20 с переключением в ручной режим и логгированием", + "/set?preset=016": "16.Котроль уровня в баке (датчик расстояния) на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование", + "/set?preset=017": "17.Датчик движения включающий свет", + "/set?preset=018": "18.Охранный датчик движения", + "/set?preset=019": "19.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", + "/set?preset=020": "20.Система управления сервоприводами", + "/set?preset=021": "21.Модуль uart (serial). Двухстороняя связь с устройством через uart. Получение данных и отправка команд", + "/set?preset=100": "22.Настройки по умолчанию" + } + }, + { + "type": "h2", + "title": "{{SetDevConf}}" + }, + { + "type": "file", + "state": "dev_conf.txt", + "style": "width:100%;height:350px", + "title": "Сохранить", + "action": "/set?devinit", + "class": "btn btn-block btn-default" + }, + + { + "type": "h2", + "title": "Сценарии" + }, + { + "type": "checkbox", + "name": "scen", + "title": "Включить сценарии", + "action": "/set?scen=[[scen]]", + "state": "{{scen}}" + }, + { + "type": "file", + "state": "dev_scen.txt", + "style": "width:100%;height:350px", + "title": "Сохранить", + "action": "/set?sceninit", + "class": "btn btn-block btn-default" + }, + { + "type": "link", + "title": "Инструкция к системе автоматизации", + "action": "https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/wiki/Instruction", + "class": "btn btn-block btn-default" + }, + { + "type": "link", + "title": "Очистить логи сенсоров", + "action": "/set?cleanlog", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "h3", + "name": "my-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", + "title": "Обновить прошивку устройства", + "action": "/check", + "response": "[[my-block]]", + "class": "btn btn-block btn-default" + } + ] +} \ No newline at end of file diff --git a/data/setn.device.json b/data/setn.device.json deleted file mode 100644 index b3931aee..00000000 --- a/data/setn.device.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "configs": [ - "/config.setup.json", - "/config.option.json", - "/config.live.json", - "/lang/lang.ru.json" - ], - "class": "col-sm-offset-1 col-sm-10", - "content": [ - { - "type": "h5", - "title": "{{name}}", - "class": "alert-default" - }, - { - "type": "link", - "title": "{{ButMainPage}}", - "action": "/", - "class": "btn btn-block btn-default" - }, - { - "type": "hr" - }, - { - "type": "dropdown", - "name": "help-url", - "class": "btn btn-default", - "style": "display:inline", - "title": { - "#": "Выберите элемент из списка", - "/set?element=button-out": "1.Кнопка управляющая пином", - "/set?element=button-out-i": "2.Кнопка управляющая пином с инверсией", - "/set?element=pwm-out": "3.Широтно импульсная подуляция", - "/set?element=button-in": "4.Физическая кнопка" - } - }, - { - "type": "hr" - }, - { - "type": "csv", - "title": [ - "html", - "text", - "text", - "text", - "text", - "text" - ], - "state": "conf.csv", - "style": "width:100%;", - "action": "/set?save", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Удалить все", - "action": "/set?cleanconf", - "class": "btn btn-block btn-default" - }, - { - "type": "hr" - }, - { - "type": "h4", - "title": "Если", - "style": "width:25%;float:left;" - }, - { - "type": "select", - "name": "id-arg", - "action": "/set?id=[[id-arg]]", - "state": "en", - "title": "items/elements.json", - "style": "width:25%;float:left" - }, - { - "type": "select", - "name": "id-arg2", - "action": "/set?id=[[id-arg2]]", - "state": "en", - "title": "items/signs.json", - "style": "width:25%;float:left" - }, - { - "type": "input", - "title": "", - "name": "fsi-arg", - "pattern": "", - "state": "{{fsi}}", - "style": "width:25%;float:left" - }, - { - "type": "hr" - }, - { - "type": "h4", - "title": "То", - "style": "width:25%;float:left;" - }, - { - "type": "select", - "name": "id-arg3", - "action": "/set?id=[[id-arg3]]", - "state": "en", - "title": "items/elements.json", - "style": "width:25%;float:left" - }, - { - "type": "h4", - "title": "=", - "style": "width:25%;float:left;" - }, - { - "type": "input", - "title": "", - "name": "fsi-arg", - "pattern": "", - "state": "{{fsi}}", - "style": "width:25%;float:left" - } - ] -} \ No newline at end of file diff --git a/include/Class/NotAsinc.h b/include/Class/NotAsinc.h new file mode 100644 index 00000000..73d45196 --- /dev/null +++ b/include/Class/NotAsinc.h @@ -0,0 +1,31 @@ +#pragma once +#include +#include + +#include + +typedef std::function NotAsincCb; + +struct NotAsincItem { + bool test; + NotAsincCb cb; + void * cb_arg; + volatile bool is_used = false; +}; + +class NotAsinc { + private: + uint8_t size; + uint8_t task = 0; + NotAsincItem* items = NULL; + void handle(NotAsincCb f, void* arg); + + public: + NotAsinc(uint8_t size); + ~NotAsinc(); + + void add(uint8_t i, NotAsincCb, void* arg); + void make(uint8_t task); + void loop(); +}; +extern NotAsinc* myNotAsincActions; \ No newline at end of file diff --git a/include/Consts.h b/include/Consts.h index 0f8fd7e0..f468114e 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -84,6 +84,11 @@ enum TimerTask_t { WIFI_SCAN, UDP_DB, TEST }; +enum notAsincActions { + ZERO, + do_UPGRADE, +}; + enum ErrorType_t { ET_NONE, ET_FUNCTION, diff --git a/include/DeviceList.h b/include/DeviceList.h index 1d6be8a7..44bd7801 100644 --- a/include/DeviceList.h +++ b/include/DeviceList.h @@ -3,10 +3,6 @@ #include #include "Global.h" -extern void addElement(String name); -extern void delAllElement(); +extern void addItem(String name); +extern void delAllItems(); extern int getNewElementNumber(String file); -extern void do_getJsonListFromCsv(); -extern String getJsonListFromCsv(String csvFile,int colum); -extern void do_delElement(); -extern void delElement(String itemsFile, String itemsLine); \ No newline at end of file diff --git a/include/Global.h b/include/Global.h index 06437aef..2047d21a 100644 --- a/include/Global.h +++ b/include/Global.h @@ -211,7 +211,7 @@ extern void timerStop_(); extern void delTimer(String number); extern int readTimer(int number); -extern void initUpdater(); +extern void upgradeInit(); // widget extern void createWidgetByType(String widget_name, String page_name, String page_number, String file, String topic); diff --git a/src/Class/NotAsinc.cpp b/src/Class/NotAsinc.cpp new file mode 100644 index 00000000..f1c8f5f9 --- /dev/null +++ b/src/Class/NotAsinc.cpp @@ -0,0 +1,30 @@ +#include "Class/NotAsinc.h" + +NotAsinc::NotAsinc(uint8_t size) { + this->items = new NotAsincItem[size]; + this->size = size; +} + +NotAsinc::~NotAsinc() {} + +void NotAsinc::add(uint8_t i, NotAsincCb f, void* arg) { + this->items[i].cb = f; + this->items[i].cb_arg = arg; + this->items[i].is_used = true; +} + +void NotAsinc::loop() { + if (this->items[task].is_used) { + handle(this->items[task].cb, this->items[task].cb_arg); + task = 0; + } +} + +void NotAsinc::make(uint8_t task) { + this->task = task; +} + +void NotAsinc::handle(NotAsincCb f, void* arg) { + f(arg); +} +NotAsinc* myNotAsincActions; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index b158d0aa..ca4a1329 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -6,6 +6,7 @@ #include "Class/Pwm.h" #include "Class/Switch.h" //----------------------------- +#include "Class/NotAsinc.h" #include "Global.h" #include "Module/Terminal.h" #include "Servo/Servos.h" @@ -439,7 +440,7 @@ void httpOrderSend() { } void firmwareUpdate() { - updateFlag = true; + myNotAsincActions->make(do_UPGRADE); } void firmwareVersion() { diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index 60410aa8..b3411920 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -2,19 +2,17 @@ static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; -void addElement(String name) { +void addItem(String name) { String item = readFile("items/" + name + ".txt", 1024); - item.replace("id", "id" + String(getNewElementNumber("id.txt"))); item.replace("order", String(getNewElementNumber("order.txt"))); - item.replace("\r\n", ""); item.replace("\r", ""); item.replace("\n", ""); addFile("conf.csv", "\n" + item); } -void delAllElement() { +void delAllItems() { removeFile("conf.csv"); addFile("conf.csv", String(firstLine)); removeFile("id.txt"); @@ -29,71 +27,73 @@ int getNewElementNumber(String file) { return number; } -void do_getJsonListFromCsv() { - if (getJsonListFromCsvFlag) { - getJsonListFromCsvFlag = false; - removeFile("items/elements.json"); - addFile("items/elements.json", getJsonListFromCsv("conf.csv", 1)); - } -} -String getJsonListFromCsv(String csvFile, int colum) { - File configFile = LittleFS.open("/" + csvFile, "r"); - if (!configFile) { - return "error"; - } - configFile.seek(0, SeekSet); - String outJson = "{}"; - - int count = -1; - - while (configFile.position() != configFile.size()) { - count++; - String item = configFile.readStringUntil('\n'); - if (count > 0) { - String line = selectFromMarkerToMarker(item, ";", colum); - jsonWriteStr(outJson, line, line); - } - } - configFile.close(); - csvFile = ""; - return outJson; -} - -void do_delElement() { - if (delElementFlag) { - delElementFlag = false; - delElement(itemsFile, itemsLine); - } -} - -void delElement(String _itemsFile, String _itemsLine) { - File configFile = LittleFS.open("/" + _itemsFile, "r"); - if (!configFile) { - return; - } - configFile.seek(0, SeekSet); - String finalConf; - int count = -1; - while (configFile.position() != configFile.size()) { - count++; - String item = configFile.readStringUntil('\n'); - Serial.print(_itemsLine); - Serial.print(" "); - Serial.println(count); - if (count != _itemsLine.toInt()) { - if (count == 0) { - finalConf += item; - } else { - finalConf += "\n" + item; - } - } - } - removeFile(_itemsFile); - addFile(_itemsFile, finalConf); - Serial.println(finalConf); - itemsFile = ""; - itemsLine = ""; - configFile.close(); -} \ No newline at end of file +//void do_getJsonListFromCsv() { +// if (getJsonListFromCsvFlag) { +// getJsonListFromCsvFlag = false; +// removeFile("items/items.json"); +// addFile("items/items.json", getJsonListFromCsv("conf.csv", 1)); +// } +//} +// +//String getJsonListFromCsv(String csvFile, int colum) { +// File configFile = LittleFS.open("/" + csvFile, "r"); +// if (!configFile) { +// return "error"; +// } +// configFile.seek(0, SeekSet); +// +// String outJson = "{}"; +// +// int count = -1; +// +// while (configFile.position() != configFile.size()) { +// count++; +// String item = configFile.readStringUntil('\n'); +// if (count > 0) { +// String line = selectFromMarkerToMarker(item, ";", colum); +// jsonWriteStr(outJson, line, line); +// } +// } +// configFile.close(); +// csvFile = ""; +// return outJson; +//} +// +//void do_delElement() { +// if (delElementFlag) { +// delElementFlag = false; +// delElement(itemsFile, itemsLine); +// } +//} +// +//void delElement(String _itemsFile, String _itemsLine) { +// File configFile = LittleFS.open("/" + _itemsFile, "r"); +// if (!configFile) { +// return; +// } +// configFile.seek(0, SeekSet); +// String finalConf; +// int count = -1; +// while (configFile.position() != configFile.size()) { +// count++; +// String item = configFile.readStringUntil('\n'); +// Serial.print(_itemsLine); +// Serial.print(" "); +// Serial.println(count); +// if (count != _itemsLine.toInt()) { +// if (count == 0) { +// finalConf += item; +// } else { +// finalConf += "\n" + item; +// } +// } +// } +// removeFile(_itemsFile); +// addFile(_itemsFile, finalConf); +// Serial.println(finalConf); +// itemsFile = ""; +// itemsLine = ""; +// configFile.close(); +//} \ No newline at end of file diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 9841fefe..5137f324 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -2,6 +2,7 @@ #include "Global.h" #include "Init.h" #include +#include "Class/NotAsinc.h" static const char* MODULE = "Mqtt"; @@ -151,7 +152,7 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { } else if (topicStr.indexOf("update")) { if (payloadStr == "1") { - updateFlag = true; + myNotAsincActions->make(do_UPGRADE); } } else if (topicStr.indexOf("devc")) { diff --git a/src/Upgrade.cpp b/src/Upgrade.cpp index 0ebfbc6c..2f517372 100644 --- a/src/Upgrade.cpp +++ b/src/Upgrade.cpp @@ -1,5 +1,5 @@ #include "Upgrade.h" - +#include "Class/NotAsinc.h" #include "Global.h" #include "ESP8266.h" @@ -27,7 +27,14 @@ void getLastVersion() { } } -void initUpdater() { +void upgradeInit() { + + myNotAsincActions->add( + do_UPGRADE, [&](void*) { + upgrade_firmware(); + }, + nullptr); + if (isNetworkActive()) { getLastVersion(); if (lastVersion.length()) { @@ -78,10 +85,3 @@ void upgrade_firmware() { pm.error("on firmware"); } } - -void do_update() { - if (updateFlag) { - updateFlag = false; - upgrade_firmware(); - } -} \ No newline at end of file diff --git a/src/Web.cpp b/src/Web.cpp index 8d27006b..25a21dd9 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -1,6 +1,7 @@ #include "DeviceList.h" #include "Global.h" #include "Init.h" +#include "Class/NotAsinc.h" static const char* MODULE = "Web"; @@ -26,6 +27,8 @@ void web_init() { }); server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) { + + //==============================presets=========================================================================================================== uint8_t preset; if (parseRequestForPreset(request, preset)) { pm.info("activate #" + String(preset, DEC)); @@ -38,37 +41,30 @@ void web_init() { request->redirect("/?set.device"); } - //==============================list of items===================================================== - if (request->hasArg("element")) { - String name = request->getParam("element")->value(); - addElement(name); - getJsonListFromCsvFlag = true; + //==============================list of items==================================================================================================== + if (request->hasArg("addItem")) { + String name = request->getParam("addItem")->value(); + addItem(name); Device_init(); request->redirect("/?setn.device"); } - if (request->hasArg("cleanconf")) { - delAllElement(); - removeFile("items/elements.json"); + if (request->hasArg("delAllItems")) { + delAllItems(); Device_init(); request->redirect("/?setn.device"); } - if (request->hasArg("save")) { + if (request->hasArg("saveItems")) { Device_init(); - getJsonListFromCsvFlag = true; request->redirect("/?setn.device"); } - - - - //-------------------------------------------------------------------------------- if (request->hasArg("devinit")) { Device_init(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("scen")) { bool value = request->getParam("scen")->value().toInt(); jsonWriteBool(configSetupJson, "scen", value); @@ -76,12 +72,12 @@ void web_init() { loadScenario(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("sceninit")) { loadScenario(); request->send(200); } - //-------------------------------------------------------------------------------- + #ifdef LOGGING_ENABLED if (request->hasArg("cleanlog")) { clean_log_date(); @@ -295,7 +291,7 @@ void web_init() { * Upgrade */ server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest* request) { - updateFlag = true; + myNotAsincActions->make(do_UPGRADE);; request->send(200, "text/html"); }); } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 93605b1f..4ac7524d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ #include "Bus/BusScannerFactory.h" -#include "Class/AsyncActions.h" +#include "Class/CallBackTest.h" +#include "Class/NotAsinc.h" #include "Class/Switch.h" #include "Cmd.h" #include "DeviceList.h" @@ -56,7 +57,7 @@ void setup() { telemetry_init(); pm.info("Updater"); - initUpdater(); + upgradeInit(); pm.info("HttpServer"); HttpServer::init(); @@ -70,22 +71,15 @@ void setup() { #endif ts.add( - TEST, 1000 * 60, [&](void*) { pm.info(printMemoryStatus()); }, nullptr, true); + TEST, 1000 * 60, [&](void*) { + pm.info(printMemoryStatus()); + }, + nullptr, true); just_load = false; initialized = true; - CB = new CallBackTest(); - - CB->setCallback([]() { - Serial.println("123"); - }); - - CB->setCallback([](const String str) { - Serial.println(str); - return true; - }); - + myNotAsincActions = new NotAsinc(5); } void loop() { @@ -102,7 +96,7 @@ void loop() { loopUdp(); #endif timeNow->loop(); - async->loop(); + myNotAsincActions->loop(); not_async_actions(); MqttClient::loop(); loopCmd(); @@ -124,10 +118,8 @@ void not_async_actions() { getLastVersion(); - do_update(); + do_scan_bus(); - do_delElement(); - do_getJsonListFromCsv(); } String getURL(const String& urls) { From 7f7bad305c38af2e6439d22791e865ea2458b6d2 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Tue, 25 Aug 2020 19:25:54 +0300 Subject: [PATCH 19/96] great changes --- include/Consts.h | 5 ++++ include/Global.h | 4 ++-- include/Upgrade.h | 7 ++++-- include/udp_.h | 9 +++++++ src/MqttClient.cpp | 19 ++++++++------- src/Upgrade.cpp | 50 ++++++++++++++++++++------------------- src/Web.cpp | 14 +++++------ src/bus.cpp | 18 ++++++++++++++ src/main.cpp | 32 ++++--------------------- src/{udp.cpp => udp_.cpp} | 39 +++++++++++++++--------------- 10 files changed, 108 insertions(+), 89 deletions(-) create mode 100644 include/udp_.h create mode 100644 src/bus.cpp rename src/{udp.cpp => udp_.cpp} (88%) diff --git a/include/Consts.h b/include/Consts.h index f468114e..a7d05935 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -87,6 +87,11 @@ enum TimerTask_t { WIFI_SCAN, enum notAsincActions { ZERO, do_UPGRADE, + do_GETLASTVERSION, + do_UDPDATAPARSE, + do_MQTTUDP, + do_BUSSCAN, + do_MQTTPARAMSCHANGED, }; enum ErrorType_t { diff --git a/include/Global.h b/include/Global.h index 2047d21a..8b3cb440 100644 --- a/include/Global.h +++ b/include/Global.h @@ -153,7 +153,7 @@ extern void setConfigParam(const char* param, const String& value); extern String getURL(const String& urls); extern void do_fscheck(); -extern void do_scan_bus(); +extern void doBusScan(); extern void servo_(); extern void clock_init(); @@ -223,7 +223,7 @@ extern void createChart(String widget_name, String page_name, String page_number extern void pushControl(); // UDP -extern void udp_init(); +extern void udpInit(); extern void do_udp_data_parse(); extern void do_mqtt_send_settings_to_udp(); diff --git a/include/Upgrade.h b/include/Upgrade.h index e031a765..4d21f53b 100644 --- a/include/Upgrade.h +++ b/include/Upgrade.h @@ -1,5 +1,8 @@ #pragma once -void getLastVersion(); +#include -void do_update(); \ No newline at end of file +const String getAvailableUrl(const char* mcu); +void getLastVersion(); +void upgradeInit(); +void upgrade_firmware(); \ No newline at end of file diff --git a/include/udp_.h b/include/udp_.h new file mode 100644 index 00000000..6583878c --- /dev/null +++ b/include/udp_.h @@ -0,0 +1,9 @@ +#pragma once + +extern void udpInit(); +extern bool isUdpEnabled(); +extern void loopUdp(); +extern void handleUdp_esp32(); +extern void do_udp_data_parse(); +extern void add_dev_in_list(String filename, String id, String dev_name, String ip); +extern void send_mqtt_to_udp(); \ No newline at end of file diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 5137f324..168f7cd0 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -1,8 +1,10 @@ #include "MqttClient.h" + +#include + +#include "Class/NotAsinc.h" #include "Global.h" #include "Init.h" -#include -#include "Class/NotAsinc.h" static const char* MODULE = "Mqtt"; @@ -18,6 +20,13 @@ String mqttPrefix; String mqttRootDevice; void init() { + + myNotAsincActions->add( + do_MQTTPARAMSCHANGED, [&](void*) { + reconnect(); + }, + nullptr); + mqtt.setCallback(handleSubscribedUpdates); ts.add( @@ -133,7 +142,6 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { #endif } else if (topicStr.indexOf("control")) { - //iotTeam/12882830-1458415/light 1 String key = selectFromMarkerToMarker(topicStr, "/", 3); @@ -144,27 +152,22 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { order_loop += ","; } else if (topicStr.indexOf("order")) { - payloadStr.replace("_", " "); order_loop += payloadStr; order_loop += ","; } else if (topicStr.indexOf("update")) { - if (payloadStr == "1") { myNotAsincActions->make(do_UPGRADE); } } else if (topicStr.indexOf("devc")) { - writeFile(String(DEVICE_CONFIG_FILE), payloadStr); Device_init(); } else if (topicStr.indexOf("devs")) { - writeFile(String(DEVICE_SCENARIO_FILE), payloadStr); loadScenario(); - } } diff --git a/src/Upgrade.cpp b/src/Upgrade.cpp index 2f517372..effac97c 100644 --- a/src/Upgrade.cpp +++ b/src/Upgrade.cpp @@ -1,37 +1,22 @@ #include "Upgrade.h" + #include "Class/NotAsinc.h" -#include "Global.h" #include "ESP8266.h" +#include "Global.h" static const char* MODULE = "Update"; - static const char* check_update_url PROGMEM = "http://91.204.228.124:1100/update/%s/version.txt"; -const String getAvailableUrl(const char* mcu) { - char buf[128]; - sprintf_P(buf, check_update_url, mcu); - return buf; -} - -void getLastVersion() { - if (checkUpdatesFlag) { - String url; -#ifdef ESP8266 - url = getAvailableUrl("esp8266"); -#else - url = getAvailableUrl("esp32"); -#endif - lastVersion = getURL(url); - jsonWriteStr(configSetupJson, "last_version", lastVersion); - checkUpdatesFlag = false; - } -} - void upgradeInit() { - myNotAsincActions->add( do_UPGRADE, [&](void*) { - upgrade_firmware(); + upgrade_firmware(); + }, + nullptr); + + myNotAsincActions->add( + do_GETLASTVERSION, [&](void*) { + getLastVersion(); }, nullptr); @@ -43,6 +28,23 @@ void upgradeInit() { }; } +const String getAvailableUrl(const char* mcu) { + char buf[128]; + sprintf_P(buf, check_update_url, mcu); + return buf; +} + +void getLastVersion() { + String url; +#ifdef ESP8266 + url = getAvailableUrl("esp8266"); +#else + url = getAvailableUrl("esp32"); +#endif + lastVersion = getURL(url); + jsonWriteStr(configSetupJson, "last_version", lastVersion); +} + void upgrade_firmware() { String scanerioBackup, configBackup, setupBackup; diff --git a/src/Web.cpp b/src/Web.cpp index 25a21dd9..baa1a20b 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -167,37 +167,37 @@ void web_init() { if (request->hasArg("mqttServer")) { jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value()); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } if (request->hasArg("mqttPort")) { int port = (request->getParam("mqttPort")->value()).toInt(); jsonWriteInt(configSetupJson, "mqttPort", port); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } if (request->hasArg("mqttPrefix")) { jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value()); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } if (request->hasArg("mqttUser")) { jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value()); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } if (request->hasArg("mqttPass")) { jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value()); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } //-------------------------------------------------------------------------------- if (request->hasArg("mqttsend")) { - mqtt_send_settings_to_udp = true; + myNotAsincActions->make(do_MQTTUDP); request->send(200); } @@ -256,7 +256,7 @@ void web_init() { * Check */ server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) { - checkUpdatesFlag = true; + myNotAsincActions->make(do_GETLASTVERSION); pm.info("firmware version: " + lastVersion); if (!FLASH_4MB) { diff --git a/src/bus.cpp b/src/bus.cpp new file mode 100644 index 00000000..8e210398 --- /dev/null +++ b/src/bus.cpp @@ -0,0 +1,18 @@ +#include "Bus/BusScannerFactory.h" +#include "Class/NotAsinc.h" +#include "Global.h" + +void busInit() { + myNotAsincActions->add( + do_BUSSCAN, [&](void*) { + doBusScan(); + }, + nullptr); +} + +void doBusScan() { + String res = ""; + BusScanner* scanner = BusScannerFactory::get(configSetupJson, busToScan, res); + scanner->scan(); + jsonWriteStr(configLiveJson, String(scanner->tag()), res); +} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 4ac7524d..f6e2f00c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,4 @@ -#include "Bus/BusScannerFactory.h" + #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/Switch.h" @@ -67,7 +67,7 @@ void setup() { #ifdef UDP_ENABLED pm.info("Broadcast UDP"); - udp_init(); + udpInit(); #endif ts.add( @@ -96,31 +96,17 @@ void loop() { loopUdp(); #endif timeNow->loop(); - myNotAsincActions->loop(); - not_async_actions(); MqttClient::loop(); loopCmd(); mySwitch->loop(); loopScenario(); loopSerial(); + + myNotAsincActions->loop(); ts.update(); } -void not_async_actions() { -#ifdef UDP_ENABLED - do_udp_data_parse(); - do_mqtt_send_settings_to_udp(); -#endif - if (mqttParamsChanged) { - MqttClient::reconnect(); - mqttParamsChanged = false; - } - getLastVersion(); - - - do_scan_bus(); -} String getURL(const String& urls) { String res = ""; @@ -205,12 +191,4 @@ void clock_init() { nullptr, true); } -void do_scan_bus() { - if (busScanFlag) { - String res = ""; - BusScanner* scanner = BusScannerFactory::get(configSetupJson, busToScan, res); - scanner->scan(); - jsonWriteStr(configLiveJson, String(scanner->tag()), res); - busScanFlag = false; - } -} + diff --git a/src/udp.cpp b/src/udp_.cpp similarity index 88% rename from src/udp.cpp rename to src/udp_.cpp index 2f7ba644..a94d49b0 100644 --- a/src/udp.cpp +++ b/src/udp_.cpp @@ -1,3 +1,6 @@ +#include "Class/NotAsinc.h" +#include "udp.h" +#include "udp_.h" #include "Global.h" static const char* MODULE = "Udp"; @@ -16,13 +19,21 @@ int udp_period; boolean udp_busy = false; unsigned int udp_port = 4210; -//TODO Помомему тут ошибка в define'ах -void handleUdp_esp32(); - -void add_dev_in_list(String fileName, String id, String dev_name, String ip); #ifdef UDP_ENABLED -void udp_init() { +void udpInit() { + myNotAsincActions->add( + do_UDPDATAPARSE, [&](void*) { + do_udp_data_parse(); + }, + nullptr); + + myNotAsincActions->add( + do_MQTTUDP, [&](void*) { + send_mqtt_to_udp(); + }, + nullptr); + removeFile("dev.csv"); addFileLn("dev.csv", "device id;device name;ip address"); @@ -82,7 +93,7 @@ void loopUdp() { } received = String(udp_packet); if (received.indexOf("iotm;") >= 0 || received.indexOf("mqttServer") >= 0) { - udp_data_parse = true; + myNotAsincActions->make(do_UDPDATAPARSE); } #endif ; @@ -96,10 +107,10 @@ void handleUdp_esp32() { remote_ip = packet.remoteIP().toString(); if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (received.indexOf("iotm;") >= 0) { - udp_data_parse = true; + myNotAsincActions->make(do_UDPDATAPARSE); } if (received.indexOf("mqttServer") >= 0) { - udp_data_parse = true; + myNotAsincActions->make(do_UDPDATAPARSE); } } }); @@ -108,9 +119,6 @@ void handleUdp_esp32() { } void do_udp_data_parse() { - if (!udp_data_parse) { - return; - } if (received.indexOf("mqttServer") >= 0) { pm.info("received setting"); jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received, "mqttServer")); @@ -119,12 +127,11 @@ void do_udp_data_parse() { jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received, "mqttUser")); jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received, "mqttPass")); saveConfig(); - mqttParamsChanged = true; + myNotAsincActions->make(do_MQTTPARAMSCHANGED); } if (received.indexOf("iotm;") >= 0) { add_dev_in_list("dev.csv", selectFromMarkerToMarker(received, ";", 1), selectFromMarkerToMarker(received, ";", 2), received); } - udp_data_parse = false; } void add_dev_in_list(String filename, String id, String dev_name, String ip) { @@ -157,10 +164,4 @@ void send_mqtt_to_udp() { udp_busy = false; } -void do_mqtt_send_settings_to_udp() { - if (mqtt_send_settings_to_udp) { - mqtt_send_settings_to_udp = false; - send_mqtt_to_udp(); - } -} #endif \ No newline at end of file From abbfcec92cc0a0a1dacb67b5268d39a7968f34e8 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 26 Aug 2020 01:03:45 +0300 Subject: [PATCH 20/96] Working version with NotAsinc class --- data/set.device.json | 74 +++++++++++++++++++++++++++++++++++++++++ include/Cmd.h | 3 +- include/Consts.h | 3 +- include/Global.h | 2 ++ include/Module/Runner.h | 2 +- src/Cmd.cpp | 22 ++++++++++-- src/MqttClient.cpp | 2 ++ src/Scenario.cpp | 2 +- src/Web.cpp | 31 ++++++++--------- src/main.cpp | 10 +++--- 10 files changed, 123 insertions(+), 28 deletions(-) diff --git a/data/set.device.json b/data/set.device.json index cf059244..6dc2932b 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -21,6 +21,33 @@ { "type": "hr" }, + { + "type": "h4", + "title": "Device ID: {{chipID}}" + }, + { + "type": "h4", + "title": "IP address: {{ip}}" + }, + { + "type": "h4", + "title": "Time: {{time}}" + }, + { + "type": "h4", + "title": "Uptime: {{uptime}}" + }, + { + "type": "h4", + "title": "Build version: {{firmware_version}}" + }, + { + "type": "h4", + "title": "LittleFS version: 2.3.5" + }, + { + "type": "hr" + }, { "type": "dropdown", "name": "help-url", @@ -52,14 +79,61 @@ "action": "/set?saveItems", "class": "btn btn-block btn-default" }, + { + "type": "hr" + }, { "type": "link", "title": "Удалить все", "action": "/set?delAllItems", "class": "btn btn-block btn-default" }, + { + "type": "h2", + "title": "Сценарии" + }, + { + "type": "checkbox", + "name": "scen", + "title": "Включить сценарии", + "action": "/set?scen=[[scen]]", + "state": "{{scen}}" + }, + { + "type": "file", + "state": "dev_scen.txt", + "style": "width:100%;height:350px", + "title": "Сохранить", + "action": "/set?sceninit", + "class": "btn btn-block btn-default" + }, + { + "type": "link", + "title": "Инструкция к системе автоматизации", + "action": "https://github.com/IoTManagerProject/IoTManager/wiki", + "class": "btn btn-block btn-default" + }, + { + "type": "link", + "title": "Очистить логи сенсоров", + "action": "/set?cleanlog", + "class": "btn btn-block btn-default" + }, { "type": "hr" + }, + { + "type": "h3", + "name": "my-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", + "title": "Обновить прошивку устройства", + "action": "/check", + "response": "[[my-block]]", + "class": "btn btn-block btn-default" } ] } \ No newline at end of file diff --git a/include/Cmd.h b/include/Cmd.h index a536a0e5..70bf975e 100644 --- a/include/Cmd.h +++ b/include/Cmd.h @@ -42,4 +42,5 @@ extern void firmwareUpdate(); extern void loadScenario(); extern void fileExecute(const String& filename); -extern void stringExecute(String& cmdStr); \ No newline at end of file +extern void csvExecute(String& cmdStr); +extern void spaceExecute(String& cmdStr); \ No newline at end of file diff --git a/include/Consts.h b/include/Consts.h index a7d05935..bab4e689 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -85,13 +85,14 @@ enum TimerTask_t { WIFI_SCAN, TEST }; enum notAsincActions { - ZERO, + do_ZERO, do_UPGRADE, do_GETLASTVERSION, do_UDPDATAPARSE, do_MQTTUDP, do_BUSSCAN, do_MQTTPARAMSCHANGED, + do_LAST, }; enum ErrorType_t { diff --git a/include/Global.h b/include/Global.h index 8b3cb440..e0317b4e 100644 --- a/include/Global.h +++ b/include/Global.h @@ -47,6 +47,8 @@ extern Clock* timeNow; extern TickerScheduler ts; + + extern WiFiClient espClient; extern PubSubClient mqtt; diff --git a/include/Module/Runner.h b/include/Module/Runner.h index 3d15c421..6d6c97ec 100644 --- a/include/Module/Runner.h +++ b/include/Module/Runner.h @@ -12,6 +12,6 @@ class CmdRunner : public Runner { public: void run(const char* cmd, Print* out) override { String cmdStr{cmd}; - stringExecute(cmdStr); + csvExecute(cmdStr); } }; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index ca4a1329..1a436d9f 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -128,6 +128,12 @@ void buttonOut() { void buttonOutSet() { String key = sCmd.order(); String state = sCmd.next(); + + Serial.println("=="); + Serial.println(key); + Serial.println(state); + Serial.println("=="); + String pin = jsonReadStr(configOptionJson, key + "_pin"); String inv = jsonReadStr(configOptionJson, key + "_inv"); if (inv == "") { @@ -461,11 +467,10 @@ void addCommandLoop(const String &cmdStr) { void fileExecute(const String &filename) { String cmdStr = readFile(filename, 2048); - stringExecute(cmdStr); + csvExecute(cmdStr); } -void stringExecute(String &cmdStr) { - cmdStr.replace("x;",""); +void csvExecute(String &cmdStr) { cmdStr.replace(";"," "); cmdStr += "\r\n"; cmdStr.replace("\r\n", "\n"); @@ -479,6 +484,17 @@ void stringExecute(String &cmdStr) { } } +void spaceExecute(String &cmdStr) { + cmdStr += "\r\n"; + cmdStr.replace("\r\n", "\n"); + cmdStr.replace("\r", "\n"); + while (cmdStr.length()) { + String buf = selectToMarker(cmdStr, "\n"); + sCmd.readStr(buf); + cmdStr = deleteBeforeDelimiter(cmdStr, "\n"); + } +} + void loopCmd() { if (order_loop.length()) { String tmp = selectToMarker(order_loop, ","); //выделяем первую команду rel 5 1, diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 168f7cd0..9e6c1b32 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -122,6 +122,7 @@ boolean connect() { void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { String topicStr = String(topic); + pm.info(topicStr); String payloadStr; @@ -142,6 +143,7 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { #endif } else if (topicStr.indexOf("control")) { + //iotTeam/12882830-1458415/light 1 String key = selectFromMarkerToMarker(topicStr, "/", 3); diff --git a/src/Scenario.cpp b/src/Scenario.cpp index c7304422..51ff5875 100644 --- a/src/Scenario.cpp +++ b/src/Scenario.cpp @@ -62,7 +62,7 @@ void loopScenario() { block = deleteBeforeDelimiter(block, "\n"); pm.info("do: " + block); // выполняем все команды - stringExecute(block); + spaceExecute(block); } } } diff --git a/src/Web.cpp b/src/Web.cpp index baa1a20b..8cf71556 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -29,37 +29,38 @@ void web_init() { server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) { //==============================presets=========================================================================================================== - uint8_t preset; - if (parseRequestForPreset(request, preset)) { - pm.info("activate #" + String(preset, DEC)); - String configFile = DEVICE_CONFIG_FILE; - String scenarioFile = DEVICE_SCENARIO_FILE; - copyFile(getConfigFile(preset, CT_CONFIG), configFile); - copyFile(getConfigFile(preset, CT_SCENARIO), scenarioFile); - Device_init(); - loadScenario(); - request->redirect("/?set.device"); - } + //uint8_t preset; + //if (parseRequestForPreset(request, preset)) { + // pm.info("activate #" + String(preset, DEC)); + // String configFile = DEVICE_CONFIG_FILE; + // String scenarioFile = DEVICE_SCENARIO_FILE; + // copyFile(getConfigFile(preset, CT_CONFIG), configFile); + // copyFile(getConfigFile(preset, CT_SCENARIO), scenarioFile); + // Device_init(); + // loadScenario(); + // request->redirect("/?set.device"); + //} - //==============================list of items==================================================================================================== + //==============================set.device.json==================================================================================================== if (request->hasArg("addItem")) { String name = request->getParam("addItem")->value(); addItem(name); Device_init(); - request->redirect("/?setn.device"); + request->redirect("/?set.device"); } if (request->hasArg("delAllItems")) { delAllItems(); Device_init(); - request->redirect("/?setn.device"); + request->redirect("/?set.device"); } if (request->hasArg("saveItems")) { Device_init(); - request->redirect("/?setn.device"); + request->redirect("/?set.device"); } + //==============================init==================================================================================================== if (request->hasArg("devinit")) { Device_init(); request->send(200); diff --git a/src/main.cpp b/src/main.cpp index f6e2f00c..9994f67a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,6 +27,8 @@ void setup() { setChipId(); + myNotAsincActions = new NotAsinc(do_LAST); + pm.info("FS"); fileSystemInit(); @@ -51,9 +53,7 @@ void setup() { pm.info("Uptime"); uptime_init(); - if (!TELEMETRY_UPDATE_INTERVAL) { - pm.info("Telemetry: Disabled"); - } + pm.info("telemetry"); telemetry_init(); pm.info("Updater"); @@ -78,8 +78,6 @@ void setup() { just_load = false; initialized = true; - - myNotAsincActions = new NotAsinc(5); } void loop() { @@ -97,9 +95,9 @@ void loop() { #endif timeNow->loop(); MqttClient::loop(); - loopCmd(); mySwitch->loop(); loopScenario(); + loopCmd(); loopSerial(); myNotAsincActions->loop(); From e3f3ae76649301d0098de235658712a20eb09e17 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 26 Aug 2020 01:47:16 +0300 Subject: [PATCH 21/96] add iputs for time and value --- data/items/input-digit.txt | 1 + data/items/input-time.txt | 1 + data/set.device.json | 7 ++++--- src/Cmd.cpp | 5 +++-- 4 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 data/items/input-digit.txt create mode 100644 data/items/input-time.txt diff --git a/data/items/input-digit.txt b/data/items/input-digit.txt new file mode 100644 index 00000000..932b28d5 --- /dev/null +++ b/data/items/input-digit.txt @@ -0,0 +1 @@ +input-digit;id;inputDigit;Ввод;Введите.цифру;order;st[60] \ No newline at end of file diff --git a/data/items/input-time.txt b/data/items/input-time.txt new file mode 100644 index 00000000..ad394ae6 --- /dev/null +++ b/data/items/input-time.txt @@ -0,0 +1 @@ +input-time;id;inputTime;Ввод;Введите.время;order;st[10-00-00] \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index 6dc2932b..e906a530 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -56,9 +56,10 @@ "title": { "#": "Выберите элемент из списка", "/set?addItem=button-out": "1.Кнопка управляющая пином", - "/set?addItem=button-out-i": "2.Кнопка управляющая пином с инверсией", - "/set?addItem=pwm-out": "3.Широтно импульсная подуляция", - "/set?addItem=button-in": "4.Физическая кнопка" + "/set?addItem=pwm-out": "2.Широтно импульсная подуляция", + "/set?addItem=button-in": "3.Физическая кнопка", + "/set?addItem=input-digit": "4.Окно ввода цифровых значений", + "/set?addItem=input-time": "5.Окно ввода времени" } }, { diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 1a436d9f..11b35bec 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -232,8 +232,9 @@ void handle_time_init() { nullptr, true); } -//===================================================================================================================================== -//=========================================Добавление текстового виджета============================================================ +//===============================================Модуль вывода текста============================================ +//output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение] +//=============================================================================================================== void text() { String number = sCmd.next(); String widget_name = sCmd.next(); From 90e6822d3bdc8f9542b70e5999c44fcf4a54d4d5 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:44:19 +0300 Subject: [PATCH 22/96] working wersion with elements --- data/dev_conf.txt | 12 ---- data/dev_scen.txt | 13 ---- data/items/button-in.txt | 2 +- data/items/button-out-i.txt | 2 +- data/items/button-out.txt | 2 +- data/items/pwm-out.txt | 2 +- data/{conf.csv => s.conf.csv} | 0 data/s.scen.txt | 1 + data/set.device.json | 8 +-- include/Clock.h | 8 ++- include/Consts.h | 15 +++-- include/{DeviceList.h => ItemsList.h} | 3 +- include/Utils/JsonUtils.h | 4 +- include/Utils/PrintMessage.h | 2 + include/Utils/SysUtils.h | 8 ++- include/Utils/WebUtils.h | 76 ++--------------------- include/Web.h | 6 ++ src/{DeviceList.cpp => ItemsList.cpp} | 36 ++++++++--- src/Utils/JsonUtils.cpp | 6 ++ src/Utils/SysUtils.cpp | 51 +++++++++++++++- src/Utils/WebUtils.cpp | 88 +++++++++++++++++++++++++++ src/Web.cpp | 30 ++++++--- src/main.cpp | 75 +++-------------------- 23 files changed, 247 insertions(+), 203 deletions(-) delete mode 100644 data/dev_conf.txt delete mode 100644 data/dev_scen.txt rename data/{conf.csv => s.conf.csv} (100%) create mode 100644 data/s.scen.txt rename include/{DeviceList.h => ItemsList.h} (60%) create mode 100644 include/Web.h rename src/{DeviceList.cpp => ItemsList.cpp} (73%) create mode 100644 src/Utils/WebUtils.cpp diff --git a/data/dev_conf.txt b/data/dev_conf.txt deleted file mode 100644 index 2c5bb9ae..00000000 --- a/data/dev_conf.txt +++ /dev/null @@ -1,12 +0,0 @@ -button 1 na Включить#все Реле 0 1 -button 2 13 Прихожая Реле 0 2 -button 3 14 Кухня Реле 0 3 -pwm 1 3 Яркость#коредор: Реле 1023 4 -pwm 2 4 Яркость#ванная: Реле 510 5 -analog adc 0 Аналоговый#вход Датчики fillgauge 1 1023 1 1023 6 -logging adc 1 100 Аналоговый#вход Датчики 7 - -//Это демо конфигурация. В ней показано как связать кнопки c помощью сценариев -//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2 -//Так же продемонстрированна система логгирования данных строкой logging -//1 - это интервал между точками в минутах, 100 это количество точек diff --git a/data/dev_scen.txt b/data/dev_scen.txt deleted file mode 100644 index 4927ac1e..00000000 --- a/data/dev_scen.txt +++ /dev/null @@ -1,13 +0,0 @@ -button1 = 1 -buttonSet 2 1 -buttonSet 3 1 -pwmSet 2 1024 -end -button1 = 0 -buttonSet 2 0 -buttonSet 3 0 -pwmSet 2 0 -end -adc > 50 -buttonSet 2 1 -end \ No newline at end of file diff --git a/data/items/button-in.txt b/data/items/button-in.txt index 5b6c3d66..ada34b20 100644 --- a/data/items/button-in.txt +++ b/data/items/button-in.txt @@ -1 +1 @@ -button-in;id;toggle;Кнопки;Освещение;order;pin[2];db[20] \ No newline at end of file +button-in;id;toggle;Кнопки;Освещение;order;pin;db[20] \ No newline at end of file diff --git a/data/items/button-out-i.txt b/data/items/button-out-i.txt index 31098078..c24ec540 100644 --- a/data/items/button-out-i.txt +++ b/data/items/button-out-i.txt @@ -1 +1 @@ -button-out;id;toggle;Кнопки;Освещение;order;pin[12];inv[1];st[1] \ No newline at end of file +button-out;id;toggle;Кнопки;Освещение;order;pin;inv[1];st[1] \ No newline at end of file diff --git a/data/items/button-out.txt b/data/items/button-out.txt index bc0b4148..d2a213fe 100644 --- a/data/items/button-out.txt +++ b/data/items/button-out.txt @@ -1 +1 @@ -button-out;id;toggle;Кнопки;Освещение;order;pin[12];st[0] \ No newline at end of file +button-out;id;toggle;Кнопки;Освещение;order;pin;st[0] \ No newline at end of file diff --git a/data/items/pwm-out.txt b/data/items/pwm-out.txt index cdb96ec0..b3ecac6e 100644 --- a/data/items/pwm-out.txt +++ b/data/items/pwm-out.txt @@ -1 +1 @@ -pwm-out;id;range;Ползунки;Яркость;order;pin[12];st[500] \ No newline at end of file +pwm-out;id;range;Ползунки;Яркость;order;pin;st[500] \ No newline at end of file diff --git a/data/conf.csv b/data/s.conf.csv similarity index 100% rename from data/conf.csv rename to data/s.conf.csv diff --git a/data/s.scen.txt b/data/s.scen.txt new file mode 100644 index 00000000..ab0c0141 --- /dev/null +++ b/data/s.scen.txt @@ -0,0 +1 @@ +// \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index e906a530..260af361 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -43,7 +43,7 @@ }, { "type": "h4", - "title": "LittleFS version: 2.3.5" + "title": "LittleFS version: 2.4.0" }, { "type": "hr" @@ -56,7 +56,7 @@ "title": { "#": "Выберите элемент из списка", "/set?addItem=button-out": "1.Кнопка управляющая пином", - "/set?addItem=pwm-out": "2.Широтно импульсная подуляция", + "/set?addItem=pwm-out": "2.Широтно импульсная модуляция(pwm)", "/set?addItem=button-in": "3.Физическая кнопка", "/set?addItem=input-digit": "4.Окно ввода цифровых значений", "/set?addItem=input-time": "5.Окно ввода времени" @@ -75,7 +75,7 @@ "text", "text" ], - "state": "conf.csv", + "state": "s.conf.csv", "style": "width:100%;", "action": "/set?saveItems", "class": "btn btn-block btn-default" @@ -102,7 +102,7 @@ }, { "type": "file", - "state": "dev_scen.txt", + "state": "s.scen.txt", "style": "width:100%;height:350px", "title": "Сохранить", "action": "/set?sceninit", diff --git a/include/Clock.h b/include/Clock.h index 743a61cc..53685c1f 100644 --- a/include/Clock.h +++ b/include/Clock.h @@ -2,6 +2,8 @@ #include "Utils/TimeUtils.h" #include "Utils/PrintMessage.h" +#include "Global.h" +#include "Clock.h" #ifdef ESP8266 #include "sntp.h" @@ -69,7 +71,7 @@ class Clock { void startSync() { if (!_configured) { - pm.info("sync to: " + _ntp + " timezone: " + String(_timezone)); + //pm.info("sync to: " + _ntp + " timezone: " + String(_timezone)); setupSntp(); _configured = true; // лучше не ждать, проверим в следующий раз @@ -77,9 +79,9 @@ class Clock { } _hasSynced = hasTimeSynced(); if (_hasSynced) { - pm.info("synced " + getDateDotFormated() + " " + getTime()); + //pm.info("synced " + getDateDotFormated() + " " + getTime()); } else { - pm.error("failed to obtain"); + //pm.error("failed to obtain"); } } diff --git a/include/Consts.h b/include/Consts.h index bab4e689..cf398039 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -2,16 +2,18 @@ /* * Main consts */ -#define FIRMWARE_VERSION "2.3.5" +#define FIRMWARE_VERSION "2.4.0" #define NUM_BUTTONS 6 #define LED_PIN 2 #define FLASH_4MB true + #define MQTT_RECONNECT_INTERVAL 20000 #define TELEMETRY_UPDATE_INTERVAL 7200000 -#define DEVICE_CONFIG_FILE "conf.csv" -#define DEVICE_SCENARIO_FILE "dev_scen.txt" +#define DEVICE_CONFIG_FILE "s.conf.csv" +#define DEVICE_SCENARIO_FILE "s.scen.txt" + #define DEFAULT_PRESET 100 #define DEFAULT_SCENARIO 100 @@ -26,17 +28,22 @@ //#define MDNS_ENABLED //#define WEBSOCKET_ENABLED //#define LAYOUT_IN_RAM -#define UDP_ENABLED +//#define UDP_ENABLED /* * Sensor */ #define TANK_LEVEL_SAMPLES 10 #define LEVEL_ENABLED + #define ANALOG_ENABLED + + #define DALLAS_ENABLED #define DHT_ENABLED + #define BMP_ENABLED + #define BME_ENABLED /* diff --git a/include/DeviceList.h b/include/ItemsList.h similarity index 60% rename from include/DeviceList.h rename to include/ItemsList.h index 44bd7801..a72f2d12 100644 --- a/include/DeviceList.h +++ b/include/ItemsList.h @@ -5,4 +5,5 @@ extern void addItem(String name); extern void delAllItems(); -extern int getNewElementNumber(String file); +extern uint8_t getNewElementNumber(String file); +extern uint8_t getFreePin(); diff --git a/include/Utils/JsonUtils.h b/include/Utils/JsonUtils.h index f759361c..c244a14e 100644 --- a/include/Utils/JsonUtils.h +++ b/include/Utils/JsonUtils.h @@ -14,4 +14,6 @@ String jsonWriteInt(String& json, String name, int value); String jsonWriteFloat(String& json, String name, float value); -String jsonWriteBool(String& json, String name, boolean value); \ No newline at end of file +String jsonWriteBool(String& json, String name, boolean value); + +void saveConfig(); \ No newline at end of file diff --git a/include/Utils/PrintMessage.h b/include/Utils/PrintMessage.h index d6425544..833342b6 100644 --- a/include/Utils/PrintMessage.h +++ b/include/Utils/PrintMessage.h @@ -4,6 +4,8 @@ #include "Utils\StringUtils.h" #include "Utils\TimeUtils.h" #include "Errors.h" +#include "Global.h" + #define pm PrintMessage(MODULE) diff --git a/include/Utils/SysUtils.h b/include/Utils/SysUtils.h index 6e40c358..1686e51f 100644 --- a/include/Utils/SysUtils.h +++ b/include/Utils/SysUtils.h @@ -1,13 +1,17 @@ #pragma once - #include +#include "Global.h" const String getChipId(); +void setLedStatus(LedStatus_t status); + const String getUniqueId(const String& name); const String printMemoryStatus(); const String getHeapStats(); -const String getMacAddress(); \ No newline at end of file +const String getMacAddress(); + +void setChipId(); \ No newline at end of file diff --git a/include/Utils/WebUtils.h b/include/Utils/WebUtils.h index fe8caec4..5479314c 100644 --- a/include/Utils/WebUtils.h +++ b/include/Utils/WebUtils.h @@ -1,73 +1,7 @@ #pragma once +#include "HttpServer.h" +#include -#include "ESPAsyncWebServer.h" - -const String getMethodName(AsyncWebServerRequest* request) { - String res = F("UNKNOWN"); - if (request->method() == HTTP_GET) - res = F("GET"); - else if (request->method() == HTTP_POST) - res = F("POST"); - else if (request->method() == HTTP_DELETE) - res = F("DELETE"); - else if (request->method() == HTTP_PUT) - res = F("PUT"); - else if (request->method() == HTTP_PATCH) - res = F("PATCH"); - else if (request->method() == HTTP_HEAD) - res = F("HEAD"); - else if (request->method() == HTTP_OPTIONS) - res = F("OPTIONS"); - return res; -} - -const String getRequestInfo(AsyncWebServerRequest* request) { - String res = getMethodName(request); - res += ' '; - res += "http://"; - res += request->host(); - res += request->url(); - res += '\n'; - if (request->contentLength()) { - res += "content-type: "; - res += request->contentType(); - res += " content-lenght: "; - res += prettyBytes(request->contentLength()); - res += '\n'; - } - - if (request->headers()) { - res += "headers:\n"; - for (size_t i = 0; i < request->headers(); i++) { - AsyncWebHeader* h = request->getHeader(i); - res += h->name(); - res += '='; - res += h->value(); - res += '\n'; - } - } - - if (request->params()) { - res += "params:\n"; - for (size_t i = 0; i < request->params(); i++) { - AsyncWebParameter* p = request->getParam(i); - if (p->isFile()) { - res += "FILE"; - } else if (p->isPost()) { - res += "POST"; - } else { - res += "GET"; - } - res += ' '; - res += p->name(); - res += ':'; - res += p->value(); - if (p->isFile()) { - res += " size:"; - res += p->size(); - } - res += '\n'; - } - } - return res; -} +extern String getURL(const String& urls); +extern const String getMethodName(AsyncWebServerRequest* request); +extern const String getRequestInfo(AsyncWebServerRequest* request); \ No newline at end of file diff --git a/include/Web.h b/include/Web.h new file mode 100644 index 00000000..a80a08d2 --- /dev/null +++ b/include/Web.h @@ -0,0 +1,6 @@ +#pragma once +#include "Arduino.h" + + +void web_init(); +void setConfigParam(const char* param, const String& value); diff --git a/src/DeviceList.cpp b/src/ItemsList.cpp similarity index 73% rename from src/DeviceList.cpp rename to src/ItemsList.cpp index b3411920..73d5071e 100644 --- a/src/DeviceList.cpp +++ b/src/ItemsList.cpp @@ -1,39 +1,57 @@ -#include "DeviceList.h" +#include "ItemsList.h" static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; void addItem(String name) { String item = readFile("items/" + name + ".txt", 1024); - item.replace("id", "id" + String(getNewElementNumber("id.txt"))); + + item.replace("id", name + String(getNewElementNumber("id.txt"))); item.replace("order", String(getNewElementNumber("order.txt"))); + item.replace("pin", "pin[" + String(getFreePin()) + "]"); + item.replace("\r\n", ""); item.replace("\r", ""); item.replace("\n", ""); - addFile("conf.csv", "\n" + item); + addFile(DEVICE_CONFIG_FILE, "\n" + item); } void delAllItems() { - removeFile("conf.csv"); - addFile("conf.csv", String(firstLine)); + removeFile(DEVICE_CONFIG_FILE); + addFile(DEVICE_CONFIG_FILE, String(firstLine)); removeFile("id.txt"); removeFile("order.txt"); + removeFile("pins.txt"); } -int getNewElementNumber(String file) { - int number = readFile(file, 100).toInt(); +uint8_t getNewElementNumber(String file) { + uint8_t number = readFile(file, 100).toInt(); number++; removeFile(file); addFile(file, String(number)); return number; } - +uint8_t getFreePin() { + #ifdef ESP8266 + uint8_t pins[] = {0, 12, 13, 14, 15, 16, 1, 2, 3, 4, 5}; + #endif + #ifdef ESP32 + uint8_t pins[] = {0, 12, 13, 14, 15, 16, 1, 2, 3, 4, 5}; + #endif + uint8_t array_sz = sizeof(pins) / sizeof(pins[0]); + uint8_t i = getNewElementNumber("pins.txt"); + if (i < array_sz) { + return pins[i]; + } else { + return 0; + } +} //void do_getJsonListFromCsv() { // if (getJsonListFromCsvFlag) { // getJsonListFromCsvFlag = false; // removeFile("items/items.json"); -// addFile("items/items.json", getJsonListFromCsv("conf.csv", 1)); +// addFile("items/items.json", getJsonListFromCsv(DEVICE_CONFIG_FILE, 1)); // } //} // diff --git a/src/Utils/JsonUtils.cpp b/src/Utils/JsonUtils.cpp index 8bc3de8f..04b4b926 100644 --- a/src/Utils/JsonUtils.cpp +++ b/src/Utils/JsonUtils.cpp @@ -1,4 +1,6 @@ #include "Utils\JsonUtils.h" +#include "Utils/FileUtils.h" +#include "Global.h" #include @@ -49,4 +51,8 @@ String jsonWriteFloat(String& json, String name, float value) { json = ""; root.printTo(json); return json; +} + +void saveConfig() { + writeFile(String("config.json"), configSetupJson); } \ No newline at end of file diff --git a/src/Utils/SysUtils.cpp b/src/Utils/SysUtils.cpp index d4eb5039..d5c957d6 100644 --- a/src/Utils/SysUtils.cpp +++ b/src/Utils/SysUtils.cpp @@ -1,7 +1,9 @@ #include "Utils/SysUtils.h" - +#include "Utils/PrintMessage.h" #include "Global.h" +static const char* MODULE = "Main"; + const String getUniqueId(const char* name) { return String(name) + getMacAddress(); } @@ -20,6 +22,11 @@ const String getChipId() { return res; } +void setChipId() { + chipId = getChipId(); + pm.info("id: " + chipId); +} + #ifdef ESP8266 static uint32_t total_memory = 52864; #else @@ -69,6 +76,48 @@ const String getMacAddress() { return String(buf); } + +#ifdef ESP8266 +void setLedStatus(LedStatus_t status) { + pinMode(LED_PIN, OUTPUT); + switch (status) { + case LED_OFF: + noTone(LED_PIN); + digitalWrite(LED_PIN, HIGH); + break; + case LED_ON: + noTone(LED_PIN); + digitalWrite(LED_PIN, LOW); + break; + case LED_SLOW: + tone(LED_PIN, 1); + break; + case LED_FAST: + tone(LED_PIN, 20); + break; + default: + break; + } +} +#else +void setLedStatus(LedStatus_t status) { + pinMode(LED_PIN, OUTPUT); + switch (status) { + case LED_OFF: + digitalWrite(LED_PIN, HIGH); + break; + case LED_ON: + digitalWrite(LED_PIN, LOW); + break; + case LED_SLOW: + break; + case LED_FAST: + break; + default: + break; + } +} +#endif //=================================================================== /* void web_print (String text) { diff --git a/src/Utils/WebUtils.cpp b/src/Utils/WebUtils.cpp new file mode 100644 index 00000000..dc87a06c --- /dev/null +++ b/src/Utils/WebUtils.cpp @@ -0,0 +1,88 @@ +#include "Utils\WebUtils.h" +#include "ESPAsyncWebServer.h" + +String getURL(const String& urls) { + String res = ""; + HTTPClient http; + http.begin(urls); + int httpCode = http.GET(); + if (httpCode == HTTP_CODE_OK) { + res = http.getString(); + } else { + res = "error"; + } + http.end(); + return res; +} + + + +const String getMethodName(AsyncWebServerRequest* request) { + String res = F("UNKNOWN"); + if (request->method() == HTTP_GET) + res = F("GET"); + else if (request->method() == HTTP_POST) + res = F("POST"); + else if (request->method() == HTTP_DELETE) + res = F("DELETE"); + else if (request->method() == HTTP_PUT) + res = F("PUT"); + else if (request->method() == HTTP_PATCH) + res = F("PATCH"); + else if (request->method() == HTTP_HEAD) + res = F("HEAD"); + else if (request->method() == HTTP_OPTIONS) + res = F("OPTIONS"); + return res; +} + +const String getRequestInfo(AsyncWebServerRequest* request) { + String res = getMethodName(request); + res += ' '; + res += "http://"; + res += request->host(); + res += request->url(); + res += '\n'; + if (request->contentLength()) { + res += "content-type: "; + res += request->contentType(); + res += " content-lenght: "; + res += prettyBytes(request->contentLength()); + res += '\n'; + } + + if (request->headers()) { + res += "headers:\n"; + for (size_t i = 0; i < request->headers(); i++) { + AsyncWebHeader* h = request->getHeader(i); + res += h->name(); + res += '='; + res += h->value(); + res += '\n'; + } + } + + if (request->params()) { + res += "params:\n"; + for (size_t i = 0; i < request->params(); i++) { + AsyncWebParameter* p = request->getParam(i); + if (p->isFile()) { + res += "FILE"; + } else if (p->isPost()) { + res += "POST"; + } else { + res += "GET"; + } + res += ' '; + res += p->name(); + res += ':'; + res += p->value(); + if (p->isFile()) { + res += " size:"; + res += p->size(); + } + res += '\n'; + } + } + return res; +} diff --git a/src/Web.cpp b/src/Web.cpp index 8cf71556..b312d64f 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -1,4 +1,5 @@ -#include "DeviceList.h" +#include "Web.h" +#include "ItemsList.h" #include "Global.h" #include "Init.h" #include "Class/NotAsinc.h" @@ -93,17 +94,17 @@ void web_init() { loadScenario(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("updatelist")) { removeFile("/dev.csv"); addFileLn("dev.csv", "device id;device name;ip address"); request->redirect("/?set.udp"); } - //-------------------------------------------------------------------------------- + if (request->hasArg("updatepage")) { request->redirect("/?set.udp"); } - //-------------------------------------------------------------------------------- + if (request->hasArg("devname")) { jsonWriteStr(configSetupJson, "name", request->getParam("devname")->value()); saveConfig(); @@ -115,34 +116,37 @@ void web_init() { saveConfig(); request->send(200); } + if (request->hasArg("routerpass")) { jsonWriteStr(configSetupJson, "routerpass", request->getParam("routerpass")->value()); saveConfig(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("apssid")) { jsonWriteStr(configSetupJson, "apssid", request->getParam("apssid")->value()); saveConfig(); request->send(200, "text/text", "OK"); } + if (request->hasArg("appass")) { jsonWriteStr(configSetupJson, "appass", request->getParam("appass")->value()); saveConfig(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("weblogin")) { jsonWriteStr(configSetupJson, "weblogin", request->getParam("weblogin")->value()); saveConfig(); request->send(200); } + if (request->hasArg("webpass")) { jsonWriteStr(configSetupJson, "webpass", request->getParam("webpass")->value()); saveConfig(); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("timezone")) { String timezoneStr = request->getParam("timezone")->value(); jsonWriteStr(configSetupJson, "timezone", timezoneStr); @@ -150,6 +154,7 @@ void web_init() { timeNow->setTimezone(timezoneStr.toInt()); request->send(200); } + if (request->hasArg("ntp")) { String ntpStr = request->getParam("ntp")->value(); jsonWriteStr(configSetupJson, "ntp", ntpStr); @@ -157,7 +162,7 @@ void web_init() { timeNow->setNtpPool(ntpStr); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("blink")) { bool value = request->getParam("blink")->value().toInt(); jsonWriteBool(configSetupJson, "blink", value); @@ -196,13 +201,12 @@ void web_init() { myNotAsincActions->make(do_MQTTPARAMSCHANGED); request->send(200); } - //-------------------------------------------------------------------------------- + if (request->hasArg("mqttsend")) { myNotAsincActions->make(do_MQTTUDP); request->send(200); } - //-------------------------------------------------------------------------------- if (request->hasArg("mqttcheck")) { String buf = "" + MqttClient::getStateStr(); @@ -295,4 +299,10 @@ void web_init() { myNotAsincActions->make(do_UPGRADE);; request->send(200, "text/html"); }); +} + +void setConfigParam(const char* param, const String& value) { + pm.info("set " + String(param) + ": " + value); + jsonWriteStr(configSetupJson, param, value); + saveConfig(); } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 9994f67a..be59f86e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,9 +3,9 @@ #include "Class/NotAsinc.h" #include "Class/Switch.h" #include "Cmd.h" -#include "DeviceList.h" +#include "ItemsList.h" #include "Global.h" -#include "HttpServer.h" +#include "Utils\WebUtils.h" #include "Init.h" #include "Utils/Timings.h" @@ -106,76 +106,15 @@ void loop() { -String getURL(const String& urls) { - String res = ""; - HTTPClient http; - http.begin(urls); - int httpCode = http.GET(); - if (httpCode == HTTP_CODE_OK) { - res = http.getString(); - } else { - res = "error"; - } - http.end(); - return res; -} -void setChipId() { - chipId = getChipId(); - pm.info("id: " + chipId); -} -void saveConfig() { - writeFile(String("config.json"), configSetupJson); -} -void setConfigParam(const char* param, const String& value) { - pm.info("set " + String(param) + ": " + value); - jsonWriteStr(configSetupJson, param, value); - saveConfig(); -} -#ifdef ESP8266 -void setLedStatus(LedStatus_t status) { - pinMode(LED_PIN, OUTPUT); - switch (status) { - case LED_OFF: - noTone(LED_PIN); - digitalWrite(LED_PIN, HIGH); - break; - case LED_ON: - noTone(LED_PIN); - digitalWrite(LED_PIN, LOW); - break; - case LED_SLOW: - tone(LED_PIN, 1); - break; - case LED_FAST: - tone(LED_PIN, 20); - break; - default: - break; - } -} -#else -void setLedStatus(LedStatus_t status) { - pinMode(LED_PIN, OUTPUT); - switch (status) { - case LED_OFF: - digitalWrite(LED_PIN, HIGH); - break; - case LED_ON: - digitalWrite(LED_PIN, LOW); - break; - case LED_SLOW: - break; - case LED_FAST: - break; - default: - break; - } -} -#endif + + + + + void clock_init() { timeNow = new Clock(); From ffc5e6c89484ca17b3efff0861375f5f604dd149 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 26 Aug 2020 16:39:42 +0300 Subject: [PATCH 23/96] output text module added --- data/items/button-out-np.txt | 1 + .../{button-out.txt => button-out-p.txt} | 0 data/items/input-digit.txt | 2 +- data/items/input-time.txt | 2 +- data/items/output-text.txt | 1 + data/set.device.json | 12 ++-- include/Class/CallBackTest.h | 2 +- include/Class/LineParsing.h | 9 ++- include/Class/OutputModule.h | 24 ++++++++ include/Cmd.h | 4 +- src/Class/CallBackTest.cpp | 2 +- src/Class/OutputModule.cpp | 2 + src/Cmd.cpp | 60 ++++++++++++------- 13 files changed, 83 insertions(+), 38 deletions(-) create mode 100644 data/items/button-out-np.txt rename data/items/{button-out.txt => button-out-p.txt} (100%) create mode 100644 data/items/output-text.txt create mode 100644 include/Class/OutputModule.h create mode 100644 src/Class/OutputModule.cpp diff --git a/data/items/button-out-np.txt b/data/items/button-out-np.txt new file mode 100644 index 00000000..5fa21dd1 --- /dev/null +++ b/data/items/button-out-np.txt @@ -0,0 +1 @@ +button-out;id;toggle;Кнопки;Освещение;order;st[0] \ No newline at end of file diff --git a/data/items/button-out.txt b/data/items/button-out-p.txt similarity index 100% rename from data/items/button-out.txt rename to data/items/button-out-p.txt diff --git a/data/items/input-digit.txt b/data/items/input-digit.txt index 932b28d5..8c3fbbe0 100644 --- a/data/items/input-digit.txt +++ b/data/items/input-digit.txt @@ -1 +1 @@ -input-digit;id;inputDigit;Ввод;Введите.цифру;order;st[60] \ No newline at end of file +input-digit;id;inputDigit;Ввод;Введите#цифру;order;st[60] \ No newline at end of file diff --git a/data/items/input-time.txt b/data/items/input-time.txt index ad394ae6..821e29c3 100644 --- a/data/items/input-time.txt +++ b/data/items/input-time.txt @@ -1 +1 @@ -input-time;id;inputTime;Ввод;Введите.время;order;st[10-00-00] \ No newline at end of file +input-time;id;inputTime;Ввод;Введите#время;order;st[10-00-00] \ No newline at end of file diff --git a/data/items/output-text.txt b/data/items/output-text.txt new file mode 100644 index 00000000..fbe97423 --- /dev/null +++ b/data/items/output-text.txt @@ -0,0 +1 @@ +output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено#движение] \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index 260af361..533ff559 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -55,11 +55,13 @@ "style": "display:inline", "title": { "#": "Выберите элемент из списка", - "/set?addItem=button-out": "1.Кнопка управляющая пином", - "/set?addItem=pwm-out": "2.Широтно импульсная модуляция(pwm)", - "/set?addItem=button-in": "3.Физическая кнопка", - "/set?addItem=input-digit": "4.Окно ввода цифровых значений", - "/set?addItem=input-time": "5.Окно ввода времени" + "/set?addItem=button-out-p": "1.Кнопка управляющая пином", + "/set?addItem=button-out-np": "2.Кнопка не привязанная к пину", + "/set?addItem=pwm-out": "3.Широтно импульсная модуляция(pwm)", + "/set?addItem=button-in": "4.Физическая кнопка", + "/set?addItem=input-digit": "5.Окно ввода цифровых значений", + "/set?addItem=input-time": "6.Окно ввода времени", + "/set?addItem=output-text": "7.Окно вывода любого текста, предупреждения, цифры" } }, { diff --git a/include/Class/CallBackTest.h b/include/Class/CallBackTest.h index 7b014ad2..6632bfe0 100644 --- a/include/Class/CallBackTest.h +++ b/include/Class/CallBackTest.h @@ -23,4 +23,4 @@ class CallBackTest { void setCallback(AsyncActionCb cb); void setCallback(AsyncParamActionCb pcb); }; -extern CallBackTest* CB; \ No newline at end of file +//extern CallBackTest* CB; \ No newline at end of file diff --git a/include/Class/LineParsing.h b/include/Class/LineParsing.h index 53481c9f..2d84a385 100644 --- a/include/Class/LineParsing.h +++ b/include/Class/LineParsing.h @@ -66,10 +66,11 @@ class LineParsing { } } } + _page.replace("#", " "); - _descr.replace("#", " "); - _page.replace(".", " "); - _descr.replace(".", " "); + + _descr.replace("#", " "); + createWidgetClass(_descr, _page, _order, _file, _key); } @@ -124,8 +125,6 @@ class LineParsing { if (!loadWidgetClass(filename, buf)) { return; } - descr.replace("#", " "); - page.replace("#", " "); jsonWriteStr(buf, "page", page); jsonWriteStr(buf, "order", order); diff --git a/include/Class/OutputModule.h b/include/Class/OutputModule.h new file mode 100644 index 00000000..7e4adc68 --- /dev/null +++ b/include/Class/OutputModule.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include "Class/LineParsing.h" +#include "Global.h" + +class OutputModule : public LineParsing { + public: + OutputModule() : LineParsing(){}; + + void OutputModuleStateSetDefault() { + if (_state != "") { + OutputModuleChange(_key, _state); + } + } + + void OutputModuleChange(String key, String state) { + state.replace("#", " "); + eventGen(key, ""); + jsonWriteStr(configLiveJson, key, state); + MqttClient::publishStatus(key, state); + } +}; +extern OutputModule* myText; \ No newline at end of file diff --git a/include/Cmd.h b/include/Cmd.h index 70bf975e..9ef6054d 100644 --- a/include/Cmd.h +++ b/include/Cmd.h @@ -19,8 +19,8 @@ extern void inputDigitSet(); extern void inputTime(); extern void inputTimeSet(); -extern void text(); -extern void textSet(); +extern void textOut(); +extern void textOutSet(); extern void handle_time_init(); extern void stepper(); diff --git a/src/Class/CallBackTest.cpp b/src/Class/CallBackTest.cpp index 30b7f7cf..55252e5e 100644 --- a/src/Class/CallBackTest.cpp +++ b/src/Class/CallBackTest.cpp @@ -37,7 +37,7 @@ void CallBackTest::setCallback(AsyncActionCb cb) { void CallBackTest::setCallback(AsyncParamActionCb pcb) { _pcb = pcb; } -CallBackTest* CB; +//CallBackTest* CB; //CB->setCallback([]() { // Serial.println("123"); diff --git a/src/Class/OutputModule.cpp b/src/Class/OutputModule.cpp new file mode 100644 index 00000000..d0496426 --- /dev/null +++ b/src/Class/OutputModule.cpp @@ -0,0 +1,2 @@ +#include "Class/OutputModule.h" +OutputModule* myText; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 11b35bec..1d0eb782 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -5,6 +5,7 @@ #include "Class/LineParsing.h" #include "Class/Pwm.h" #include "Class/Switch.h" +#include "Class/OutputModule.h" //----------------------------- #include "Class/NotAsinc.h" #include "Global.h" @@ -32,9 +33,8 @@ void cmd_init() { sCmd.addCommand("button-in", buttonIn); sCmd.addCommand("input-digit", inputDigit); sCmd.addCommand("input-time", inputTime); + sCmd.addCommand("output-text", textOut); - sCmd.addCommand("text", text); - sCmd.addCommand("textSet", textSet); @@ -235,29 +235,45 @@ void handle_time_init() { //===============================================Модуль вывода текста============================================ //output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение] //=============================================================================================================== -void text() { - String number = sCmd.next(); - String widget_name = sCmd.next(); - String page_name = sCmd.next(); - String page_number = sCmd.next(); - - createWidget(widget_name, page_name, page_number, "anydata", "text" + number); +void textOut() { + myText = new OutputModule(); + myText->update(); + String key = myText->gkey(); + sCmd.addCommand(key.c_str(), textOutSet); + myText->OutputModuleStateSetDefault(); + myText->clear(); } -void textSet() { - String number = sCmd.next(); - String text = sCmd.next(); - text.replace("_", " "); - - if (text.indexOf("-time") >= 0) { - text.replace("-time", ""); - text.replace("#", " "); - text = text + " " + timeNow->getDateTimeDotFormated(); - } - - jsonWriteStr(configLiveJson, "text" + number, text); - MqttClient::publishStatus("text" + number, text); +void textOutSet() { + String key = sCmd.order(); + String state = sCmd.next(); + myText->OutputModuleChange(key, state); } + + +//void text() { +// String number = sCmd.next(); +// String widget_name = sCmd.next(); +// String page_name = sCmd.next(); +// String page_number = sCmd.next(); +// +// createWidget(widget_name, page_name, page_number, "anydata", "text" + number); +//} +// +//void textSet() { +// String number = sCmd.next(); +// String text = sCmd.next(); +// text.replace("_", " "); +// +// if (text.indexOf("-time") >= 0) { +// text.replace("-time", ""); +// text.replace("#", " "); +// text = text + " " + timeNow->getDateTimeDotFormated(); +// } +// +// jsonWriteStr(configLiveJson, "text" + number, text); +// MqttClient::publishStatus("text" + number, text); +//} //===================================================================================================================================== //=========================================Модуль шагового мотора====================================================================== #ifdef STEPPER_ENABLED From f16d3365756f9e35c0314e2d9b7dad8b8e1383c6 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 26 Aug 2020 20:07:08 +0300 Subject: [PATCH 24/96] changes --- data/widgets/alarm.json | 6 ++++++ {data => doc}/conf/c001.txt | 0 {data => doc}/conf/c002.txt | 0 {data => doc}/conf/c003.txt | 0 {data => doc}/conf/c004.txt | 0 {data => doc}/conf/c005.txt | 0 {data => doc}/conf/c006.txt | 0 {data => doc}/conf/c007.txt | 0 {data => doc}/conf/c008.txt | 0 {data => doc}/conf/c009.txt | 0 {data => doc}/conf/c010.txt | 0 {data => doc}/conf/c011.txt | 0 {data => doc}/conf/c012.txt | 0 {data => doc}/conf/c013.txt | 0 {data => doc}/conf/c014.txt | 0 {data => doc}/conf/c015.txt | 0 {data => doc}/conf/c016.txt | 0 {data => doc}/conf/c017.txt | 0 {data => doc}/conf/c018.txt | 0 {data => doc}/conf/c019.txt | 0 {data => doc}/conf/c020.txt | 0 {data => doc}/conf/c021.txt | 0 {data => doc}/conf/c100.txt | 0 {data => doc}/conf/s001.txt | 0 {data => doc}/conf/s002.txt | 0 {data => doc}/conf/s003.txt | 0 {data => doc}/conf/s004.txt | 0 {data => doc}/conf/s005.txt | 0 {data => doc}/conf/s006.txt | 0 {data => doc}/conf/s007.txt | 0 {data => doc}/conf/s008.txt | 0 {data => doc}/conf/s009.txt | 0 {data => doc}/conf/s010.txt | 0 {data => doc}/conf/s011.txt | 0 {data => doc}/conf/s012.txt | 0 {data => doc}/conf/s013.txt | 0 {data => doc}/conf/s014.txt | 0 {data => doc}/conf/s015.txt | 0 {data => doc}/conf/s016.txt | 0 {data => doc}/conf/s017.txt | 0 {data => doc}/conf/s018.txt | 0 {data => doc}/conf/s019.txt | 0 {data => doc}/conf/s020.txt | 0 {data => doc}/conf/s021.txt | 0 {data => doc}/conf/s100.txt | 0 include/Utils/StringUtils.h | 2 ++ src/Cmd.cpp | 3 +++ src/ItemsList.cpp | 4 ++-- src/Utils/StringUtils.cpp | 1 - 49 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 data/widgets/alarm.json rename {data => doc}/conf/c001.txt (100%) rename {data => doc}/conf/c002.txt (100%) rename {data => doc}/conf/c003.txt (100%) rename {data => doc}/conf/c004.txt (100%) rename {data => doc}/conf/c005.txt (100%) rename {data => doc}/conf/c006.txt (100%) rename {data => doc}/conf/c007.txt (100%) rename {data => doc}/conf/c008.txt (100%) rename {data => doc}/conf/c009.txt (100%) rename {data => doc}/conf/c010.txt (100%) rename {data => doc}/conf/c011.txt (100%) rename {data => doc}/conf/c012.txt (100%) rename {data => doc}/conf/c013.txt (100%) rename {data => doc}/conf/c014.txt (100%) rename {data => doc}/conf/c015.txt (100%) rename {data => doc}/conf/c016.txt (100%) rename {data => doc}/conf/c017.txt (100%) rename {data => doc}/conf/c018.txt (100%) rename {data => doc}/conf/c019.txt (100%) rename {data => doc}/conf/c020.txt (100%) rename {data => doc}/conf/c021.txt (100%) rename {data => doc}/conf/c100.txt (100%) rename {data => doc}/conf/s001.txt (100%) rename {data => doc}/conf/s002.txt (100%) rename {data => doc}/conf/s003.txt (100%) rename {data => doc}/conf/s004.txt (100%) rename {data => doc}/conf/s005.txt (100%) rename {data => doc}/conf/s006.txt (100%) rename {data => doc}/conf/s007.txt (100%) rename {data => doc}/conf/s008.txt (100%) rename {data => doc}/conf/s009.txt (100%) rename {data => doc}/conf/s010.txt (100%) rename {data => doc}/conf/s011.txt (100%) rename {data => doc}/conf/s012.txt (100%) rename {data => doc}/conf/s013.txt (100%) rename {data => doc}/conf/s014.txt (100%) rename {data => doc}/conf/s015.txt (100%) rename {data => doc}/conf/s016.txt (100%) rename {data => doc}/conf/s017.txt (100%) rename {data => doc}/conf/s018.txt (100%) rename {data => doc}/conf/s019.txt (100%) rename {data => doc}/conf/s020.txt (100%) rename {data => doc}/conf/s021.txt (100%) rename {data => doc}/conf/s100.txt (100%) diff --git a/data/widgets/alarm.json b/data/widgets/alarm.json new file mode 100644 index 00000000..e0e636c3 --- /dev/null +++ b/data/widgets/alarm.json @@ -0,0 +1,6 @@ +{ + "widget": "anydata", + "icon": "body", + "color": "red", + "descrColor": "red" +} \ No newline at end of file diff --git a/data/conf/c001.txt b/doc/conf/c001.txt similarity index 100% rename from data/conf/c001.txt rename to doc/conf/c001.txt diff --git a/data/conf/c002.txt b/doc/conf/c002.txt similarity index 100% rename from data/conf/c002.txt rename to doc/conf/c002.txt diff --git a/data/conf/c003.txt b/doc/conf/c003.txt similarity index 100% rename from data/conf/c003.txt rename to doc/conf/c003.txt diff --git a/data/conf/c004.txt b/doc/conf/c004.txt similarity index 100% rename from data/conf/c004.txt rename to doc/conf/c004.txt diff --git a/data/conf/c005.txt b/doc/conf/c005.txt similarity index 100% rename from data/conf/c005.txt rename to doc/conf/c005.txt diff --git a/data/conf/c006.txt b/doc/conf/c006.txt similarity index 100% rename from data/conf/c006.txt rename to doc/conf/c006.txt diff --git a/data/conf/c007.txt b/doc/conf/c007.txt similarity index 100% rename from data/conf/c007.txt rename to doc/conf/c007.txt diff --git a/data/conf/c008.txt b/doc/conf/c008.txt similarity index 100% rename from data/conf/c008.txt rename to doc/conf/c008.txt diff --git a/data/conf/c009.txt b/doc/conf/c009.txt similarity index 100% rename from data/conf/c009.txt rename to doc/conf/c009.txt diff --git a/data/conf/c010.txt b/doc/conf/c010.txt similarity index 100% rename from data/conf/c010.txt rename to doc/conf/c010.txt diff --git a/data/conf/c011.txt b/doc/conf/c011.txt similarity index 100% rename from data/conf/c011.txt rename to doc/conf/c011.txt diff --git a/data/conf/c012.txt b/doc/conf/c012.txt similarity index 100% rename from data/conf/c012.txt rename to doc/conf/c012.txt diff --git a/data/conf/c013.txt b/doc/conf/c013.txt similarity index 100% rename from data/conf/c013.txt rename to doc/conf/c013.txt diff --git a/data/conf/c014.txt b/doc/conf/c014.txt similarity index 100% rename from data/conf/c014.txt rename to doc/conf/c014.txt diff --git a/data/conf/c015.txt b/doc/conf/c015.txt similarity index 100% rename from data/conf/c015.txt rename to doc/conf/c015.txt diff --git a/data/conf/c016.txt b/doc/conf/c016.txt similarity index 100% rename from data/conf/c016.txt rename to doc/conf/c016.txt diff --git a/data/conf/c017.txt b/doc/conf/c017.txt similarity index 100% rename from data/conf/c017.txt rename to doc/conf/c017.txt diff --git a/data/conf/c018.txt b/doc/conf/c018.txt similarity index 100% rename from data/conf/c018.txt rename to doc/conf/c018.txt diff --git a/data/conf/c019.txt b/doc/conf/c019.txt similarity index 100% rename from data/conf/c019.txt rename to doc/conf/c019.txt diff --git a/data/conf/c020.txt b/doc/conf/c020.txt similarity index 100% rename from data/conf/c020.txt rename to doc/conf/c020.txt diff --git a/data/conf/c021.txt b/doc/conf/c021.txt similarity index 100% rename from data/conf/c021.txt rename to doc/conf/c021.txt diff --git a/data/conf/c100.txt b/doc/conf/c100.txt similarity index 100% rename from data/conf/c100.txt rename to doc/conf/c100.txt diff --git a/data/conf/s001.txt b/doc/conf/s001.txt similarity index 100% rename from data/conf/s001.txt rename to doc/conf/s001.txt diff --git a/data/conf/s002.txt b/doc/conf/s002.txt similarity index 100% rename from data/conf/s002.txt rename to doc/conf/s002.txt diff --git a/data/conf/s003.txt b/doc/conf/s003.txt similarity index 100% rename from data/conf/s003.txt rename to doc/conf/s003.txt diff --git a/data/conf/s004.txt b/doc/conf/s004.txt similarity index 100% rename from data/conf/s004.txt rename to doc/conf/s004.txt diff --git a/data/conf/s005.txt b/doc/conf/s005.txt similarity index 100% rename from data/conf/s005.txt rename to doc/conf/s005.txt diff --git a/data/conf/s006.txt b/doc/conf/s006.txt similarity index 100% rename from data/conf/s006.txt rename to doc/conf/s006.txt diff --git a/data/conf/s007.txt b/doc/conf/s007.txt similarity index 100% rename from data/conf/s007.txt rename to doc/conf/s007.txt diff --git a/data/conf/s008.txt b/doc/conf/s008.txt similarity index 100% rename from data/conf/s008.txt rename to doc/conf/s008.txt diff --git a/data/conf/s009.txt b/doc/conf/s009.txt similarity index 100% rename from data/conf/s009.txt rename to doc/conf/s009.txt diff --git a/data/conf/s010.txt b/doc/conf/s010.txt similarity index 100% rename from data/conf/s010.txt rename to doc/conf/s010.txt diff --git a/data/conf/s011.txt b/doc/conf/s011.txt similarity index 100% rename from data/conf/s011.txt rename to doc/conf/s011.txt diff --git a/data/conf/s012.txt b/doc/conf/s012.txt similarity index 100% rename from data/conf/s012.txt rename to doc/conf/s012.txt diff --git a/data/conf/s013.txt b/doc/conf/s013.txt similarity index 100% rename from data/conf/s013.txt rename to doc/conf/s013.txt diff --git a/data/conf/s014.txt b/doc/conf/s014.txt similarity index 100% rename from data/conf/s014.txt rename to doc/conf/s014.txt diff --git a/data/conf/s015.txt b/doc/conf/s015.txt similarity index 100% rename from data/conf/s015.txt rename to doc/conf/s015.txt diff --git a/data/conf/s016.txt b/doc/conf/s016.txt similarity index 100% rename from data/conf/s016.txt rename to doc/conf/s016.txt diff --git a/data/conf/s017.txt b/doc/conf/s017.txt similarity index 100% rename from data/conf/s017.txt rename to doc/conf/s017.txt diff --git a/data/conf/s018.txt b/doc/conf/s018.txt similarity index 100% rename from data/conf/s018.txt rename to doc/conf/s018.txt diff --git a/data/conf/s019.txt b/doc/conf/s019.txt similarity index 100% rename from data/conf/s019.txt rename to doc/conf/s019.txt diff --git a/data/conf/s020.txt b/doc/conf/s020.txt similarity index 100% rename from data/conf/s020.txt rename to doc/conf/s020.txt diff --git a/data/conf/s021.txt b/doc/conf/s021.txt similarity index 100% rename from data/conf/s021.txt rename to doc/conf/s021.txt diff --git a/data/conf/s100.txt b/doc/conf/s100.txt similarity index 100% rename from data/conf/s100.txt rename to doc/conf/s100.txt diff --git a/include/Utils/StringUtils.h b/include/Utils/StringUtils.h index 260beaa9..3c23ee4a 100644 --- a/include/Utils/StringUtils.h +++ b/include/Utils/StringUtils.h @@ -18,6 +18,8 @@ String deleteBeforeDelimiter(String str, String found); String deleteBeforeDelimiterTo(String str, String found); +String deleteToMarkerLast(String str, String found); + String selectFromMarkerToMarker(String str, String found, int number); size_t itemsCount(String str, const String& separator); diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 1d0eb782..2e14c994 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -31,10 +31,13 @@ void cmd_init() { sCmd.addCommand("button-out", buttonOut); sCmd.addCommand("pwm-out", pwmOut); sCmd.addCommand("button-in", buttonIn); + sCmd.addCommand("input-digit", inputDigit); sCmd.addCommand("input-time", inputTime); sCmd.addCommand("output-text", textOut); + + diff --git a/src/ItemsList.cpp b/src/ItemsList.cpp index 73d5071e..6861d85f 100644 --- a/src/ItemsList.cpp +++ b/src/ItemsList.cpp @@ -1,14 +1,14 @@ #include "ItemsList.h" +#include "Utils\StringUtils.h" static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; void addItem(String name) { String item = readFile("items/" + name + ".txt", 1024); - + name = deleteToMarkerLast(name, "-"); item.replace("id", name + String(getNewElementNumber("id.txt"))); item.replace("order", String(getNewElementNumber("order.txt"))); item.replace("pin", "pin[" + String(getFreePin()) + "]"); - item.replace("\r\n", ""); item.replace("\r", ""); item.replace("\n", ""); diff --git a/src/Utils/StringUtils.cpp b/src/Utils/StringUtils.cpp index 64ee047d..7c043f0e 100644 --- a/src/Utils/StringUtils.cpp +++ b/src/Utils/StringUtils.cpp @@ -1,5 +1,4 @@ #include "Utils\StringUtils.h" - #include "Consts.h" String selectToMarkerLast(String str, String found) { From 74a7c8f528f2a7004bf4d344544b3b1e796e2ead Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 27 Aug 2020 00:58:41 +0300 Subject: [PATCH 25/96] some changes --- doc/orders.xlsm | Bin 21287 -> 34607 bytes include/Class/Sensor.h | 26 ++++++++++++++++++++++++++ platformio.ini | 6 +++++- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 include/Class/Sensor.h diff --git a/doc/orders.xlsm b/doc/orders.xlsm index 4a23ac94ad00840bd3a086137099746ba89e7367..6589c1f8405fde99da4054aab1225ca2e6369854 100644 GIT binary patch literal 34607 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 literal 21287 zcmeFZ1#l%hvnFV_-DbC$vCYiP%*@Qp>^4)Ism;vH*ydwqW~MeXGaQfaz3=UNFE-}i zjg6hz*@!t2lCq>ys`N>jQe~=+f;1R7DhL!56bQQum?Fr3`eA<3KWyktoDAJ9?aZD3 zonWNT5hE0D;*)yhubya)*Sf^tF6|qVC^!O_41$Klbbbxky*6U8R!w!35S@GJ zmDD5oMD=M&squ1cGr=9rHNx)^7RPgyK~GA$sZCa#h~5Z5rF-?ad7rd8N;IJAyTuQS0^%>5#u*#ZnNU~IUB<7s!Jj%tMMHwCp# zo!(~Ecmq+hzJfF)6r_=5&{t3p5J)f(5QYCMDBbOyteq`PO=$J}#e(>lE&2A$XIKnuQp!b*VVdo$qhSey_|MYM3c>#%qY7)BKyL818U zEb09=RMWl&=sFx5${2Vr@o}DB+sfF|r>(ZX=<-?pIP}W`COYa4S?hOks zHDmUnu?S<&XD=QF?Q6norvrWMD--WPGX#QU6N1PZef#Qzp~wmX_uJP6GxD+LbDQ73 zFR@$p`1l!sjd!K?_V!jSI(!U$bx8Hd_Vet;sqGU7;Heex?WfZr^oDMnxeL2C@P7AC z^F1BG;?&Mm##+WgS9Z?Qm>m$<_+jkvVb~tKrI$T8$40Oi`|;urQ4bYg64{Xf%A`botn-XW-r7IY2VhTXC>Tk*^j=zTYS8Mmu}`0Zm(YM z?2j2AQ@*?(ABP9j4}`(zA@{OpZYZzy;U4Zd%^QONyE*P!d;8tywZatJo4LoAMKX_e zNgz9Zu}w4Oo1sh%rxjoc(g~8Y3$QR&*Yq(c%ql+Ff!}tsIm0%Q=k)^iqwtb_Y3cTL z@gZ-8uft}Go8gjYZrKJ^pY4X8xy3kR-sX07Z|~bWH)OqKL-ffS_xkwjt)&Z(_5`1w z4xR4>E&JBNNvrJXrDV4HDWq5V^OWn%?%WnabI&CcM|@8moScaRRS+{)=Ge9ngbx;+ z2}5F!1cWh`jLDTKgff;+Q()hHfDdPzo0rS&oW%uC$AgFUtLG2)9?$wE)7aDcF8)V8 zeBk^1z`+lDs<+eY7(2AXfD{>Z17hP6A&CL{<6Qc#Cszkj$oFmI2O@5wH@=Rg_?I%)cfrQ(yApkBAj*O zMAcnIkJav6gON};OB2J6vDBpc4e?Z^`W^AqrTPQ1I5-9Bdp@7J4G(Ou+1#P#aS^sK z1#EACnPU~a^}SNGA(omne~ml|dFEnHD*WhCvq*&HO(#WT<|?fw;^tTfWsSAFt*!81l_GET^*YgolVZYQG{hF%3PdiNHsh-D*{$Iz}} z&0iY&jXiUgAQg?W!B@2q=9aTyCDJuz&6@uQKid@5jwFlZnI@PiTSbn5F-rNw4j=^GO4sWYKm@{#t^aR7b zFkucGPz1%n4Jzu%inz}2e^0ZM_I~{p_NOzdef8HcnoGRyGPpc!_)=)%66RX^a&??K z)^BW&EX9hrL-#7NOnLLQ^v35nM?yEp&UYtY+bikW)iMsy*R}Kq*ene4?c62;$1mR& z3Sw25)J9C!QZ^5Ww0))ZP1cInx*K!CIVR}mswGF(B(JCVQQe}Yk_+PROTj&Q%{Dp- z$(~x23dD-kh{cN@G>lxPoV-*jv6CvrNKerr8BcwFF9?tdCq@0mm!yjqqMmfl)?jT) z4R>^`!x|0-JBVl~S7lHjGf%u|7Td8G?-L+sccn5#V}-TYj#-*>Mh7dn2<#vwEU;Eg z%55~^bC1&aIH^IZw8UmeVKz&xI|Grr8PgS3OnG$#1E%cJwt_lYt_GxmW50RS-#F+4 z9$q@sN^^?TO1p|a9FAf+tfCp9*H!}QHO*vute(aqcWz*K@UASgGaBLv#bE7&Lar98 zBw0PbYA`2=Rmu8lM;NS_WK5a%D#VoMEt9-gO3{u-N>M)pZ)Q5&Ty|70dEe0pg9+38 zf8oPTF6{OfpAiWsrt!&GU0+VWoNUaNK#1uew?}yg{M|ou7tR~)k4aXMkzWuD^X7- zs?T7BaJX;M@?b*3izO!?LY$D-gmYw3S`ZgA$d%55x6FwpMW0c~j3p=+vc`#(EgPaV zVLO`@MM2)Du9dWBq7rfUcbLbQ(+g!2%@`T>Wa`LDQuv;hF7`bv{GAdHN*%JTvj!}uez_2ut_mvuZZ=yCH5=N@`MK0xI z?9a~#hzsLIyRaMk&uNpQ{OUX?l;>GS4 zv=$ZB4Rj+_Q7$bDE5e5#i1Wew546X**UPk6Y~vrg&{19C+mw0WiRBB%=TxQ}O0B0O zM9^K~wRWXgvHN+gMPF14h;zi|O3EZk@Zm)h|0@^p^1rxDT2Ra`m*s{qmMVU;qC(U{ zwN!Dbr|<-2#GsQRyrdK4ClJ{gq=0~PAHS?9G}>)2scy>{P}L@YGxp1jiC zN2k0@N~dL3>yg@rm8*|rFjuJFbPhAG2}%M~YOzUezmi6GWYpKN;~rUPY^8LZ z*Xxm9cFecuEW4j6xjKK!7_;nVkB6oEPLb&kOEkSt+@khmQ^jRfo6BxS>-36z!Br~i zaSNBir)$I7cFN~TI`Q;MtZlB2}xpiz=bndFim(8!%P$8^*P z!}TdMqBqrx1;yoa${xn2jsU66c;y-;da(s6kLH$hixRy64bo_g8bz-m$(XnUx&K3# z9JH@-5=L-m6mk=4ejAp%Y&^S=s_2+gyQpEgNnRtaxTsYb373*nbt;Z`PSPnYtceeh z3ZcR(GqG8iNS?U1(3hmJxA~@cC?&M%=)Iz%>e<&lL*-x-KRH5eZ_H;^&h-ge+;fZG z{@#doMf{wD)>g{fq3rAAdx~1XR&dM<7xv%cUzJ)M_ox$lAA<54!&S~FYb%Nu-QoH= zdto9zwmd`S_BjatrP32R)+ufCm18a7IgpUJBM-AT-=E5O1CS2;Lh=v+|@{Ok=JyDzn7MsWJ}$A>C!5qyE=VE z{_I)}@++6K?iUsE8s!(ayn=rdmOZL&i#^!~W5Az&fUy7P1E~`WxMBd-B>g9I6P75! zKD9}L`i4|jl~q;;6{q4znbf3;Q*}IS(w!=k!iWMXaZ*&X zTapgPZeKEun~Ax;I>^p)dhD;k#H5!`mXU0cJLps?otD3JcJO%Um+RrIwSv|;6`$ZB z>K8PNl$3eiPPzdeKZS1rGSMCb^Aw(Z;<5eKMU8HmWTQb!ud+3Z?kE+O>z(Y}HeN5k zfNZoXL0y!bi)&#<6D4U8x+7etWkS-(`-yu=K;?%BzkjF zk{Y{-Q(?SuQfBF%3aL32r}{{+)C(0>smZ^sjHP>#QpJC5EjGaLr$G@;{KxhrNQeGA z5U4UKj$kCos5-64wL$W9x^^SzpKf}an^(~Fwe_BOBP;@*<@2hzU{7%?y>8L+RUZ!w znokV)dCo#Z->+&3Kp%*^eZiMwL0*vz_`jTq`@ci|Tc*fzEYvHKAwSWX_|NySS^}g8 z;$GjsGvf^Skq9}eFY0pamsdptewZ`yfOm>og1<9U@omD6dtyG5@Z+BB&m`iwr}{IAJnrfIOrnlw zCNWpBgt?6^%;CtFDnb*==xkQezcM zoO{>89QQn`Aj<MMBN9h|m7c9*!%HnyfsJM&Jxg)v@2s_)=+PjK26*B+t`}k|19tk#&`>6Wag3+k`+a1Y#*D zxD`kM_W!5k75Uqr*r&dn>rnnZ1iw*&k5v9utT#cwrv%`Y_`4z))I7)+R(}C_LWTbs zWY|0i5v#uhJfRZU|ElE9)awwzQ!M{Af!`iKaNO@L@8eDR<8z)J0(TLBB@l>ZpdwZv zao7Td|F4nZ*aG+p8r+J^P@ z?b@#Mjg3EjYm@Inm)3W^MtatldP94%%Xjr-!xGUx=| z4G>;sue_*F`MZYW*6@sNYv#21`gynS=D?TLLt}&Hf?!GCE7d0>)@;n4{V~?dk5270 z=-RT&{pybC*|kn%B1PWMi_7SC<$g@x?oeNSO7+!iY$Cu5cx!cCyW!Tp#eYyifZ&DD z5c+%*oAHrVv)0(vtg$(Msoqc$`qB7Nt5KcYkg+fau{5?amGNrtHHN_cX^Bq3Sjs2? zI@i6Owtmm~K={k$5Oo_iLi_2Qp*{RpE(hX&yf^>J<)H6mYV)5R4|IQBM^8z^^fDkq zY@_@LW$;Q^3=U&C7yD^fgl`~Gj9`OLay_$_5uLx?yFWhV-KWorz}$cn%)v>WxA&Ey ze)M?c8}j6aBLEB?MJu|Yfy6KmN)}Kq$6`Fn?wILqf>o#3n;O3bi?kpCLF}GwBjHGQCZU`IUk(0|*riV%f z0KZ=TF0Z+mtTLBGn7HahRz0D_Eu%&fJ)c1eZqY#Y8|H9vYkA@Btf%+YVqPq72u--m z_UwWQM!_zK;Dth@0!eS-)r2Rl5tR?5+_3x1_r%0%0b^7t5m0f%3o~L)%B0Msi#~(| z0m*Jq)^tpNG&tYoFul-7c;%bOc^@8*j$w9Qaoh#^Os!GWK}?^qq{TfA~52LR4a zDI&}AIU*fTR3z18@Hek@P7l5H^(O7v#6()>w$bByQ|rlU4@rIMr@1YatIOR9jKAQM z6nJF=`GgMeFX2P^X9~GknA)1s{~iDBu$oZUwqIpH1%7=+NZwjnhXMsxp+!A6oGYxe zoFa2Xu8BceDc1dX$0bKRTvVe@fYXFSw29LF)ra{}M8n#}!j zWUA`y-Vx6W+rL-AV`giuD{IT{9oyQ!+;Hn*gKgPU4%UA8(enwX>#gZZFDM7jVT*+i zJJ;&y@hU-b+m4L3V{5yF*V|yrhFlP~Mv#*9tdqde@5EMaGyA)vTvrF2y+X1gXA)n6 zv1?);Kj#*uzg#tyJj9-IfH5l7I)tLrcHue*Ed#bT^uSfb0%H!+L$w#{0qvY6USK6& zz~#%26R7^5vjFe>r;6!*5jn|5Wg*@fsY8E^GVH~*-wx2?o^U_t{7}*^lvPS?aRI_a zR&(JXqI4>o+oiU6>BbMVu~cQdnUlFn0`+lgK+Wnel+?#877@=jdQ-@T$XCB-mJ%4) ztP`#vB)~UMB{&|6G{zw{#xoB!G{n^A^FT|_2!Vx0;38oZF{3=HFC}MsJafi9Htpx% zTG(@RXy#~<#ae$$Vw$GrL%9!NOx}C*Wm>ua5@Ya+)zN-$52$~D<0)r8d>)kvi$IH7 zC@K!o%sYcl7Vx*o$EV7x1bgRam+lE(CyG;J0H{3YAcb@0k|_VSD-Ng+$=HQ>7$RkF z=GWV+w2ODd-BpN@NH5c>h=Qx`MADJFDIfyK7l=FLiUYyQ1fBzwAsC2+vJ0?~>`>iN z1}0rq2?hd|vVF&=i9}t+8R>6fs)x+ELI~0=m#D2NeukR3hgZMWD;>__S`zjg(LVUf zZW`>vH{3v8wmpygc1m{uzGKdt_04w}S{Va&0};L$w;xNaug}3?r-2YNmMVf1NYhsA+fxtci zc}jzod?!n-WtwU9_rQmdBQRpdc!h8iQL2>YWlK*%r4kCIMvCd;l*9Z8BKCTkm9E;i zg30lCj>kTti@mNSAC!ba^w=lh~BrkKAp;3{|Vb147-0JRIQka8`jkkz5`7cYGQD1UPL zCiO7kbW8BublI`*9@C=-s{jFWw^q|P;(9I$)>;$TQ5~BY#E-(fMjPHGW|yJ7Ui|e7 z_9v=uIsnDpCylJ~+ov?GLHPyBQfb!!KfX|Ft1s7z-njg|0ZUKq+veBAI&7-Wt}hQj zJ(J7JI6(hFO(QTr!tl*0Ur&`WLe1<1dFOJTGhKW85;=6R)ly{5%W%8#m+T&?OX%Zz zIv&58v<|PjaWvTb_n0&-LKslrK!jo_f+}UGScjReJ=uw!!=#Qs^NfSMJ@Pl6>9yp% z`-hfGdlQIhReEMmtqLe4w{Wtzgid{H%spM5X4zBzeInUA;=QvPvW_p7-Xf>r5=}-9 ztxSUL%*5SBqhHvcD1ae|yJE!*@xS`dIQvAmtnmFz4d%`0QJlhaWu}n8LQ*#*#Qa3o zg7;E4oLZnRQJ;O`!#qN$(vOc0D`PC*R4QLGY>K%AR~4IDIHj?@(D(;oPqic5<~FnI^&Ch zLnHGqZccxw^H@hw|N72~Gy|+fC%EFnyVa{pgj!VLUm1^d#GYmX#+RJ7$pB(?wH0pWfBd8@*v$7h@+UEKakEV&}a3qHG9t29P#Yn|%-KYzi4fBu~+i<$PYF=!npng@% z93x}VXv!gOX&U-uUxZ&2(Ol58p=JEG1K1Y6q#kAN*XEpNzR;mCk(X{ZOMf%SM+pF+ zk`el9GVoQMd#kkJCokL)T#sSu8maIL#qRME@@LC!CJEA-s`#dP2@$4fYS$QH)nlG_arFJ zlUvw_K8$=9X4uV9M2y@4Eb46K+|ESvE0Rk=#IhQjKe{dKxfx~Sg@lQiI#I#JVDao0MO-ZcKfc z3_pTjKz!`OVw(k{zvZgJc=oZZ(*>`&T}DEZwfNoar(=tj@3lmuP4y;WSm=Mh?C|-~ z4DysEINhtu@0gK*j{|%Ik#_y z2>=KvU<*(3X{b?pHvfF~4poAhoVYo)o3OvN`YHNm2kAJV4=vWSbzd=)HhR;v+;Wmk zl%TrQ=E%xcLhrN{w_JO-^Yu2Y#u5$T&u<@xQO6qEAlC+P#>LirYH3Ady^h{a<_My# zidSMJKY~lEI8yLScdnbkpq?w;t!0~0rI1Ht;RYPBB<(9!t7!(o-BlVJEAFim}mftLG2YoXK5i%d=i82 zf{>aV3Mc%QOBv9-26y(5kC4GumIvaYG3G5jfIW;N`zPLV!T1w`es21sk;cMm^+Hn6 z3ej2c5HOFA+GB>}{UQXbj;DLMflB5nv1`bJ(#;E3&%k~!Iln!atn0v7ncJ0tGT*I2 zIrm%pU^r;Eit=103c9-E)P+bon4!dblrP>#?VHLj$lm-ogC#>s^OCCdnwApoC zsuz;)VlL0M?NoO6u4bqO&IDBX%57;ne_ws85q=Me-zvyFRv%G~-Tbg#Bopp*RG58% zY_>*u-h?giZ7$ziZUQ#W8vSO<PA@0s`hUYcOv%s>fH*p37Eg+KD)GewBl#1fg; z!C*7}Gl0!@L>Q?2GK|SFLI#ouGDT4}-(>p6_lSg)bR(c;i~?pjX4pkh zJ%4M#iiI)!`mQsz0Rgk>C+WWw$5jia_={NdlmUVh2|2dmNvLN~ zA|5GEgic8{cMF~~AspojD}nbH`(67;!|l(~(F8fvGj}k#R)@lTg)&E1SYf0|Z@aI8 zD(pRHo99RnVexT<)|kW=V33{3^P9SHn$f9Ip52eu$CvMWg`pxnNK)z^?!3Q#-?f(u zA;TV2z?ysT>GVqxDg&7MB;VP7C^Myv5`3X8-->sT8q^vxQTR4`e|oMa+!wXU)Qx-q zxzg!=!P{kLKn;h!0^#2Ig0&121m9$eQIQlrYKu;M^JZ2s$0VYHNmEa$a?f6i29aUY ziEl*Kl+;7E2DpU3kg=f-5^eIj)N^$N(>AQl9O>DPmNA1M*7j6LSPF}*(~?x5Q%Bje zW#B({r~Gz5Pkkp-7!yBKrYQBhjk0vT>g=L0(iUO3Op9hKQzy?&7L@vhdMdMZ2QRHb za9>ek4pj|Y(kHgi`4lJXL9?-BdOIztw_NW@YG6 zN?(=vXOrS$T}j+6>^Y&X)9ZFJ`3VwjcOsufYM0@4W^wL8Uc&Pm?rAfEIRDIk$;pI^ z$EaBx!9E5>%<+yIK(QXmoIx{Ts)4$yP$nfV<;Ur!UH@%uexNVLzL@xB3L@KcRoQGt zLK)$i5~`8wv&fPV2b-(7_+-R=e*@6;zKg<}hknX#R}uXsPSx zshiyoFlU|t=e8MlRsl)UO#6X66>eF#0;~qtda6#b`Bc@dRIbM4<=P{v#<9z?#(0}G zj!9g&bhigke47a|c!Il6NTsH^fp2QxyRNZ9ZWgk4ICa3!i2{o!1Od{bY*mI;S?bAB z)*2-SZCsv*I@J5cdyNQG&jly}+Me+zXU&zeI5OyU=g}Xs)IYVkN00#Q!R_Pec1c4P zw+!4?Y0~jZ9@4TC%$P5)N_NvPN^5LRO}-@!q(d8Xfp2l0O=Bjuf(e^l%N)U(A%siZ zoTB&iqG)Yy?=6vWnku^_i#RRo->7Xz0n72)ztN@c9*KFcr2YDY1DMm1sG!Ge=-t*( z4}R#`G@35%L>2-4{(cj1RJGsyd=q#e`B#bo;UC5Dm)*w5-roA}!?p?f_8AO_-TXbB zU^iYyrL%q%h3V3|NJfv_`=h+_J+@4hs=NudbOY z0*hk)J}g>1&&pn%e9pLG0jDEUk-Q9dAu%~dre522H?iSl8mWz=+E_heGxgfZmAC%X zXzb9;%*iSDVl2Ijh5?q#2D8nZHTMS}w`adXntja&(BFuMfYfTzJqe~chFuKK=wU0| zX7eHSvEj#(dxoq42rrxW7g4|j3 zc@$DlPdZWJUC!yyOTK>A<4n3`_WrhjlvKB^XMZ!=z$c$KFQ(Z_#z%tul38n9=@iBg ziGVydQKBnBotV zanBDm)H*RIem!GS@1xxl`o9KVJGknijbk{mW`4 zCf|)mbQzxU1x-k{O;BRvI|XDaR{{aD7m=6N(K#b638gGGx~Ax@CUA3(B#oZW70+g- zEnbEu-+|~0OT_H#UfmCEUfr$8ZpKtpD<;fHJgz#4>H~TWuvhMC3LK0l5L@#(G^XC*v*$b^0JzM$y7}BiUZ`;{9~qNX-09 z<_8&%^@}noY8<=5mCw>kXNP}%5f-;cK}ZzmSHJoC7vf0e2u^>Q1`Gcs;;^5H{{#2m z5EuQDwfY<4Y3{IWi5G(v`>a1YJV26Qze-1fFFNeQg6T!LQ23)nE!n$gjzPJ=(f}6ZbNNqS&u=A*5_qCye^_5895;?HP z(DCVb1^){U4I)g_#m~;R{!4S;U)Ivk^Zsr|hMxvgD^p_^IwMQFa~)W3m4Vie$rZ>9 zQXDqMSwtiRP(}mfNjtU?G3bd-p>FVBxk|FuY$IQ&Gi;VO3=s2RHLSHOu4fk4w1Q8n z7FX43`F3yy!sH3jKN1&*B#7^^^e)}Xj)aceJclIq z6I#%i4_?uqLR1534k;K4Cm)JY7zLC$66Q>#`Okf^^k%u24}53v2Bs+|>apbI=k6y#+lwr9~sm7zK# z9GQ5ODx0wCJv4I77X=tB!bR*6Al8oAv7M$8oi-VWEje$GPdw2>Ri&rc#a9i+CIt0? zyq&7_E=nlPLJp4be6VIe|MpwM4|B%>Iz|YNO^_WYR@P%lKjwb!td~W$=l1bJl9Vbe_vn%kPuJc){jw0 zbh?z&!x!VlHOx~4tT)<1Br}wQpbmTn{LTjK2Yo)4VEv)!6QZvO$V{L{h=nMPc%{Iv zmZtBkNYqFbh!sc}M2jFJNYSL-q5@3t9N8eJh?l}T5iM{t;Xn9yz{19mbi)V_0g&%{ zB2absb)a=fNMbqxgyCU?FNp796hi`j^u33wyM z6<+69f*h-!h$Q-(3nV}w7mB?Bg|mKDa?d{!4j>+L^)E5f)RmF++c}{S&c#tEj*$4y z5%Ok{NJ6o(4l*e+YTciM@-puz8$WOY0cUv4DpZ>K?v0k-QqzX=!FCHmm|Y^U&=;hM zyl6v8rhaliam)pXCt;F4j)glFS>AJC4@cbWwiIdO8zF^*2O>>+3_TUZ5vB)bSH}%fNLygQ154Tmmp%&+n@jAMx>0q1&z)`ah`|7H3wjOyxc92wsHaJJi z(e^P6rs(Nnv*hCfzPjItBfBXM$Vsnu92mws5Qj*Tt_i}yxvr8wgY|)_qK3m5n3xdD z&wMo!C_Kamktafebw?m0EYvvzc$?NDfXPaU4hxUjm9D9%+Pan7 zi5s(0oTNcSB1r8cTXvSWMcuF2s?$e`vLxRN_5bYrh!1QVFJ+pg3?uH)? zc3!E@y;oeXI23=u3)&d1SMZaF33ztWCs}WRrovdQ>@*1u;Oz2wdLS$&N9m5l(Iw(8`iKO;b7R%XQ#`5Bj$}J0onI%rF;nV; zQWkRx=xHI*pHc}`)}2rZ)fJs!q%Gn)X};VmCnmycbY4J;!fZW(BBRl9{plIndU6!( zgI>)AkuUZc5#^S}T%iZ)njqoUw`~L{QcYSaIxt70^!D)8_wumv^l7uLh=A&==wi-BOb&=L>R{2g|i$yzbhP%Ns`(ZZw zL7&F@?x!)kdM~Kb=VXw@X(;}_UR#Pj!em;_q`oPd*(%GE#sgn_DA}x# zeHLGR@=ge0J@V_f5tdY~^}Begw35@&B>5Jw;Wa@OUZX?04f#fKweg>U>#XUSwNFxm zhmN%p$2`f6P%$%f7zsquVxCP@_{0EhGG4X#83dc)Y-WI{)G6PMqz%Gtt@cn!#~S4e z>2L6fq6Lvw6iH>i3n(UA!F99gQDwO26mF73xiwPjR~uA5dA@HHrZ>nQW$QH7D6K0$ zoJ=tL$bWdA@CVOzh2N=%|4>W!MYQZ=Ds&T|*g$&o<)Qw7E>!d_pu@8^R`YO^aUh}I zK&ZXy>*)A`$8T3iuze?l=fgUCIU%?ecJ~MOj$}5}X&TKWpBnNVRAwtZXfxt?0oTPT ziSvm+V4ot>ZbV8yS=9a3x9;dA7}sP$+z=ZfgH9LYfY+CaT^~|DW>UUhfO#C;k{mzB z$PSA9h-xpn*>GbqsrP_!*E17K==BnZ)DTkQ))2`hzo#YpgSJ;Z08I8fByd3xF?#GC zs_ZAZb1pxEEopsfeb_e^4&fCMaxG&(s}h%By>tF(IQ-Q*OYyIggJCL4FbS>MDN#6W ze*`LoHP=5(x*9XV)S4|IBJ5V&)@E)30^HW$ z=~@u9NNH(|)A};)f}L8TLn95ot&jEH8iJro{tVsDX!DFcy1`$%b_)!ZJ`NK^=JrRY zNa!cN;_~cRX1(_0e_QyG`dU~$0twuh=u#fzw=}W!e^qpt3b@^~2gR$v6?fJUWF?n; zG`7AN>TJi_;i$xmx-fIWIu?~s&x3dqD5Esvqlq)kRT_8To{sy;Q1jcH{~)N;K=;v@ zxwt{=_|;L4dT@P?5c?EEx@tb3^3> z=_<7B&D-<5@S8X6vob@L#oE!GdBfdlqS0W&FPf}{^+tP|idNnT>Q#xbCN1?I0V3RU z^)JE}^C4cn&>3iNfA~m|FAyjr$g5qtuYvGh@URepbw6!;)FdV8F6Do+{WJDM2fAvSLNUdsAns0xlpxL8{q?YBbQST z9W&GI)Vmg>Kn_>8t5Pzs$g4LgQ&OBMs@%XlVW&?}r@Nv?Bc$yX0VMf9_);L%R3iE) zDz?-PGO-`S-aS&)dIKifm{<}SsD#_;p{Nh3z6sy>6q$!qpo;hPvgcJ1c^s3YXGjPj&*ewPJG0*a%mm}pX~@*Ab=@tV9+;y&9*Gr<`5sh;T+JG{@2G)(&4{nxyA#Qf zO%vWu8c}lF+gi4s0cS#-`F%>ZXv+lCERox^o+_Ie^N&&iv|b8+cMCV>xq7i0Ffsm5 zVYm$l7!Rd;uR9#-Yi)p07rlO;RXc)mR>BStJ^@Qj8VBx9N4|Oc6rz=Lg5IZHnJjX< zF#JabM1cp^FL3%AY5wk+j-Vp`{wE^SXVgVOwq7es&GL&BSurzt#CJ3}f&;hE!5U1k z_yQJs_Xgj{+EmUm-vY%I8z9}0xD{biO=9z(pW!ccn5`H-BIl`6?b(cq8FxJPzd{Gg z=r^`9;B~!eyUu-zKweh$bFjf(~OyeL0-D`@HR zu6!I&cJ{FaznVql#EsOB*dA~$+Y^eoM8pTT%2Kp{B|h_kx#QVCgv3s0Co-*cMAknM zrY+EZdJWxAj+7%beRH&hm?P#Ll5($kcPX$Qz8th1`GmVehyQW8-UaESrQ`!Dh(3TJ zs14-}eQnyWj%bo|CVVE&6ZS;4V=YkrbsGmt%X21w`+I*g5&|*4pf}_-#SX|0WB+d0 zB~i8jPxur5&TAL}p>Nm|QXo1pzu+6{H9=SjA|#SL@we~35a}UXK zVfw_rK~J526O-$1X$`*VKi&EENm zy?wpr+NlZa`o1YJU4L^K=0^y`x#kaJrz8;4@%12|(#O@fS@QuhrM>dmFFlWSc1&(1 z$(~(I*0NI!?Hith_{OGl`O{0~^v#d$;F2+^bCG=8rv0QWFb)~Mi)QxSq4)VZg4iP+ zGJthY8TKB~mVrI>Ua5+8eRowEozyQ?Z--9@S+fK~?QAybpzNYwGobj9ooY}0X z9@-;Bk&4>qj1A$J)=UfSW({#QGDoL$0^9C=%>}s^gL1R&f|&P*xuh;Bs;S^xI4IBU>Pd&p5VN- z#A&tl*m~Ehss6x|R+u4Rxxw9&=cxOTcMV!{;#R(pi^;0X>eX27Nu;lPKXC23@V4GY zl``h{zJK6*@lJ-q4La_&(^OtUBD+=zd$|xiFpP0(f!M>XG)2?#EbgWewV^FSKs8IIRq%_z|U=y9ef)1rT=#DZo`txFw+kZqiOsagxJ`*DE1v@lLQX*ujOn z)f>7Cbbqp^>+3Q*f8(Dmp2BIqe!_z&11!C}-AbGC*atGyabABvBr$j+S;Ikjo&wu_ zPP51iJcG`pl^p@TvXc1@Pipm?N+Sf@{Lp1%9k0`B<{-JDmaJv!)7lu22T6EX$l6IA zQV4}L1-cX3QO%%rMc$2;CImycBFjGSji{ls#~1t%9j&4V+7(|HPo2IOiVgV`LdbUt zNX3?T0%ki=0$GSNRxXtblP!vD&)6GshWY4c_3w|MY$rhy#Lv>Pt(&UFV(a1c^MM8D z=D5$lmbelN&}s6py~1Kf0GKyM-XO+}$v>{-tpg(GvdWTMZt<_1nfTQVU(hus2Xzws z-DK*d*qO=VOUj}?E?ssnhnkez!J>k!-U>PA;!jvl_}S$ZCnn^i{uuid8^wAuCT=|q ziAVdvHpLd&zdcxS#49P8`I!cZ`_=n zS~DTYrQMpr4$A9B@>*{@XWqOH^CMg2HT-^>sBl|>kuj5>)lHJqZ) zf%ByS$$4-5Fs4cCdqhANmd*Ga`d76S^hrahzBXYqit!)%&8SQ@oh(LEtVYm>!)eE2 zVn+)DD#kfX7Vf-5t1omDTAJZT7-PnVSXg<@k;96I{;{fghxy59+8G5Jp_yrRCML9g z)H1Rds)??OeC@}pC-x@&l;$P4Sb1JGds<~JRcch#-kCmrRBd#TQ-lZ5!@K*~Sb4j6 zPP(n!xppdDFxm9KnCJ2sT?MEk=%UMPPt?3JOfN* zyKS2xTsN*K+}&dX6^GisFQe@0JWdk@w?yGN7lhcykyH3xHv1V%n@jZ{_basJ8{RV0 z9~Z!d^H5;@M__C;DjvXht(Qpfk;ld6pijT8m-&tNHIxmj#!F|~E64k;$3tJcen;%L z#oExzZM`h%==m5Bd~g739C_=xzc!wmXcp*iK{Yb?}Tq!khn-=1glr+ z6I?)N@s;+nNPCG(vn*mfPIQL}xjhd#cIX6u+4JZp?AZ^X?HM*;K%(+e3nn546l3+- zuUe;zYB=@0C!Hp3q`zv5EyPs8 zr!EgOap}{@2kX+Ol>8|7`r3y+qvvPgK#vg2rjP0b-^DYNXE*3@&~Ax! z<*Q4Wp@e!qQ#yPH5GsbVSi!dA{$5*PuD@U914>f0RbyIPy;)Q&wKPJK&oWG`N^U8c|vT4 z(z-#%Ggz~UZDi5XNrvio>Nx3FCun9oyI>)Y0pt}fltK+9l(nLp%6X#ik_fCgd^D5E z{2(EsSz}FQR!Xkr)mp!?Y0R;s`D#Z+mBP#OIh%d58^i{l8K&Iz$R}~f{Y*O=jIDX{ ze!f^`Wrh4gQOAk9@Tge*(lU-IBk~#;esyNS?-J0+?SI?NYx*Km~ zM>}D55`^QO)~@SB2&HavZKuqwR5G-A^%P;A6m04Tk7N$DrIQ|p#3lreQ4e1cX_U?o zx6e#xXX&~*T)e4DUL(te|M4tSM`kSGo1Hd!Jvk7IQKb zW(br+I=kUDVn2g-aB-r%jh9jW-Y(lcmjT*+-tc2Hf#zu#^eS;7Pj&;-p#o^dQj7yw zsD6Qnty^uljaWsOFL)G?_NnUX+0c0a#CD5bE6{9W!H!)Y+-C=X`XQeGnQXFZn>zQVUv!5t|%(3)e|&>#=Zt7)B&NK}c~`NwX*M zB%i5Sy(X?Iqxo{5T64vZ5LEJ$!QrxTY4>eq2`t zJe8|w=d9^EKNzjel#dSRGV>{1#4XYBS?OE4;itjogw!l>iXFIl(Zd2dpE}$4X{x;( z8GSmfw4HYrim@Q|8dnmWon&4{TD9pk8n?Q)%4f)$GGW4-F~i7&cB&C)M1~W0W6vv{ zXlLMBee4b{evu#F;w|E>JU=I|#*n7xta?;!`+6R#jkYxDRkkZOT~SWm#OmsAd0J1D zv-_{9)ClL*ba!-Y8ht+g)~)H`iC620dQ@>9!9M@3D6(tL9%zR7?zm#3q7d z1ObQ){oCwbz^;N=LTpB~8I-$(VJ6u~Ua_H?77a`b<9y==kTIr&9&2@b_pgL~MP3AD;jzC9F~M76?M2L;%uvcIrp9$e zb!lR#S7z*0d|!iBK)LO z-reSJ(PzxHDS|^Xy-7^9NSV9jattwO6O_)1*V+^}CDkCUR>~lh24Ak(GKtM1-0<5U zom9j1$R*oA_0CBFqgfsUA3tHCDTuuM!*K=cL0r%Owfm!;HQ#(I!^~A^A};~g3;?sM zO3s!~xe66l4DQ-Bmtq&OsLg)7b8w>a3|5fdi-KL>Oeb11CC4s$=c#kYh1KrKr#z~q z{S8(uXOS@%A<~zAkyk#j?MiT1hPvow!|iQ_HAmA!bu7E-(f7|xwm#YO_fnl4GqvSm z$1{rwF?6!}+Fxk_>mwdjf;gI2+Byt;UHG~k*<0!jPf1_9>W6=6ZQbgy1?#e^Ges6F%l$o6L}-MGZ$8 z(y`5z9a=$tlF%Ucx{Cq#(}5sHTeYazZx64I;g54 z?MOuf`Q)p~_cUDo+lqdDKkIhcCut7%muqYO>G@Y#EcM(|ys&)M+*x0ZmsPzkniDUv zbkEG~cI#61>sv~OTebdXPxrhvH?Jsocj=_ElK)OkU*0=CnY^6I_)pHE`;SiC2e$l| z-`YF%m+;mJKZOHo4jR2`pJ^1P^LU@xBHj2;HJg)n?q8WS`||Vr75Rl%LVxe!?aP{e z_-@eK%z}#5%z0b)ZB%@)_Uo@JZ$-^k+ut(2A^ytWBr|A#h2!c|bM^erXS@@+<)y3a zmt88H|3_kJZ{Wgf_j-0rJ-9C**tP0t+n()hO3eE*>Xl5UEHGQ`u}fn9mmfY$%afZs z3(8eOUgxY@k-MhUYHkFV+J~+B*{cf7EMEVy+j{V2kaVo>s(Aialds-e#ua|x>E~-# zSL??0zgqLv!X)91QGBqgbF6c-bwK#_7daoyuL<4p>)8~kpWS;**ed}zH20qO=#-~_ zUoU>YJu>)hfl2P_((6`#zv^whb^X$cFl(88)3VABghsDjC3p4ui-HwdbJKtS{PD#q z{{F9!8#kBy^_g?~;ksq-Z?*fkm^@!~zi!`#ETb+*wwsp|6>bPS?b~9Qzp6A$lf`}Q z;*DM_^AGUP4z>64&6+yt*Y}S#TYdYg{;aCq5yKnW6`i|aPR)_ob4tI4a{Vs2vNLP- z6gN?Oy|X$uCvJYRE9X_n@{iV!{((0$2ozuZH(v%gd6|H3T?J^e7dX3_n_7~Xl30?+ z_>w{FKf_V6TdC>`l%!^S47r_<`eNIU`nMaLze(2>H_G0-1T*wzbb$zzp-!)607hdn#-H&quU#eqKpxUP*jNWkG6jENBVJ))3%2bOWBhO@EsgUOyPLt36TT(U-*6 za@(0++civ_5z(C|aMR@H?~7$o3XxsQBEBbi+dZ9>ytOB) zvb$<`%k5e9i&L-Od83kas`lk%Bk>8IY3_xG|4rJV*qNOE_TbcY632|M{C0Zp&&smY z@nQRvomK7YC(W?go%4QiONN%{!NC3#hA-M<%pX@>+S7XKz9QGko2;K%CP~JJ|9bG{ zsm+op0pFLm2ujKr{E^qc;_Ui;@@gNsxu1(m9u(>8KYyrY!|~kmEVE00clebL2Ag+m zwwNJ2*{W&nPql+a3lbh&F3yd9w&$mMdw+9g@zHG|j@s3KcCQIy{yCLv=EDck*S;*- zzK1{kO8c_D6VY0m?>JWYWw9)K9xQ#fqF47Hc!}Y(?PoW40q64BSV2+A$RxsmIKdD3 zKswL~ey9ML1F)Xwhi(e;9y3%^yn*%tO+ngMhB(R&-4x_qTFNL6*(Zr^3fA3e=msM1 zTLLXtK!8KQK6UHvoBUCuqwC0_4bp4ZzsIfo{SM zq(xw$HJ}I(s}3;%z9JM|EAlcT&?+$mDAR_ACTz_Zx@P1RF`$)32#~J}){JA_5xP0Z zOG!XQDgr#zLs?COt`WJEMvXe)hGEQgC+OOdOD|M=&-sA0!wPnEjmUWgHO{~KVlC +#include "Class/LineParsing.h" +#include "Global.h" + +class Sensor : public LineParsing { + public: + Sensor() : LineParsing(){}; + + void SensorInit() { + if (_pin != "") { + pinMode(_pin.toInt(), INPUT); + } + } + + void SensorRead(String key, String pin, String state) { + int pinInt = pin.toInt(); + analogWrite(pinInt, state.toInt()); + eventGen(key, ""); + jsonWriteInt(configLiveJson, key, state.toInt()); + MqttClient::publishStatus(key, state); + } +}; + +//extern Sensor* mySensor; \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 4ee2b7d1..c190c5f2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -28,7 +28,6 @@ lib_deps_internal = [env:esp32] framework = arduino board = esp32dev -board_build.filesystem = littlefs platform = https://github.com/platformio/platform-espressif32.git lib_deps = ${common_env_data.lib_deps_external} @@ -37,7 +36,9 @@ lib_deps = ESP32Servo LITTLEFS monitor_filters = esp32_exception_decoder +upload_speed = 921600 monitor_speed = 115200 +board_build.filesystem = littlefs [env:esp8266_01_1m] framework = arduino @@ -51,8 +52,10 @@ lib_deps = ESPAsyncUDP EspSoftwareSerial monitor_filters = esp8266_exception_decoder +upload_speed = 921600 monitor_speed = 115200 board_build.filesystem = littlefs +board_build.f_cpu = 160000000L [env:esp8266] framework = arduino @@ -65,6 +68,7 @@ lib_deps = ESPAsyncUDP EspSoftwareSerial monitor_filters = esp8266_exception_decoder +upload_speed = 921600 monitor_speed = 115200 board_build.filesystem = littlefs board_build.f_cpu = 160000000L From c473f616b63830e10413f40c1497795b07290c57 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 28 Aug 2020 02:49:26 +0300 Subject: [PATCH 26/96] add analog sensor --- data/items/analog-adc.txt | 1 + data/set.device.json | 3 +- doc/orders.xlsm | Bin 34607 -> 34601 bytes include/Class/Sensor.h | 26 ---- include/Class/SensorAnalog.h | 35 +++++ include/Cmd.h | 51 ++++++- include/Global.h | 46 +----- include/Sensors.h | 3 + src/Class/SensorAnalog.cpp | 2 + src/Cmd.cpp | 23 ++- src/Global.cpp | 7 + src/Init.cpp | 21 ++- src/Sensors.cpp | 278 +++++++++++++++++++---------------- src/main.cpp | 2 +- 14 files changed, 286 insertions(+), 212 deletions(-) create mode 100644 data/items/analog-adc.txt delete mode 100644 include/Class/Sensor.h create mode 100644 include/Class/SensorAnalog.h create mode 100644 include/Sensors.h create mode 100644 src/Class/SensorAnalog.cpp diff --git a/data/items/analog-adc.txt b/data/items/analog-adc.txt new file mode 100644 index 00000000..3a7d70c6 --- /dev/null +++ b/data/items/analog-adc.txt @@ -0,0 +1 @@ +analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin[0];map[1,100,1,100];c[0] \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index 533ff559..c8ad7722 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -61,7 +61,8 @@ "/set?addItem=button-in": "4.Физическая кнопка", "/set?addItem=input-digit": "5.Окно ввода цифровых значений", "/set?addItem=input-time": "6.Окно ввода времени", - "/set?addItem=output-text": "7.Окно вывода любого текста, предупреждения, цифры" + "/set?addItem=output-text": "7.Окно вывода любого текста, предупреждения, цифры", + "/set?addItem=analog-adc": "8.Аналоговый сенсор" } }, { diff --git a/doc/orders.xlsm b/doc/orders.xlsm index 6589c1f8405fde99da4054aab1225ca2e6369854..d86f040e6bfb2575aad032207dc44582d1bbabd0 100644 GIT binary patch delta 22009 zcmc$^1yo&ImNiV!1OkNM?oMz?g4`g%9Rk6F1q&WL;XrVgOK=InJ-EBOySux~h3~?9 zRqws3>i+xtyQ{x34zSL?d#^dy+;gvU7~>WM!)67;{(6oC2v{E-K8AyVfkA?SL5Kcv z{KVp5X=A2mX=%pnX#Oenorc^rE0$|g$=$QdS}Kcb&$sZ(k7pSk<+L%gh<*BX+|}v(lxS*CsFcxfZ!9nEuVsj8d*s!0NCN29QX`%{L(TP7~->3oy(Av zXUj(98`|v)=HkQh#k_kq6^3ccfC08;;Sw=k@GT*#M@fx};^R5c�UgelD)Tm_RM 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

DUi3a;J^%`4 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 delta 21993 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 Ig8%>k00-TIAOHXW diff --git a/include/Class/Sensor.h b/include/Class/Sensor.h deleted file mode 100644 index 4ef408e1..00000000 --- a/include/Class/Sensor.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include -#include "Class/LineParsing.h" -#include "Global.h" - -class Sensor : public LineParsing { - public: - Sensor() : LineParsing(){}; - - void SensorInit() { - if (_pin != "") { - pinMode(_pin.toInt(), INPUT); - } - } - - void SensorRead(String key, String pin, String state) { - int pinInt = pin.toInt(); - analogWrite(pinInt, state.toInt()); - eventGen(key, ""); - jsonWriteInt(configLiveJson, key, state.toInt()); - MqttClient::publishStatus(key, state); - } -}; - -//extern Sensor* mySensor; \ No newline at end of file diff --git a/include/Class/SensorAnalog.h b/include/Class/SensorAnalog.h new file mode 100644 index 00000000..6e94a978 --- /dev/null +++ b/include/Class/SensorAnalog.h @@ -0,0 +1,35 @@ +#pragma once + +#include + +#include "Class/LineParsing.h" +#include "Global.h" + +class SensorAnalog : public LineParsing { + public: + SensorAnalog() : LineParsing(){}; + + void SensorAnalogInit() { + //if (_pin != "") { + // pinMode(_pin.toInt(), INPUT); + //} + } + + int SensorAnalogRead(String key, String pin) { + int pinInt = pin.toInt(); + int value; +#ifdef ESP32 + value = analogRead(pinInt); +#endif +#ifdef ESP8266 + pinInt = pinInt; + value = analogRead(A0); +#endif + + eventGen(key, ""); + jsonWriteInt(configLiveJson, key, value); + MqttClient::publishStatus(key, String(value)); + return value; + } +}; +extern SensorAnalog* mySensorAnalog; \ No newline at end of file diff --git a/include/Cmd.h b/include/Cmd.h index 9ef6054d..70883c34 100644 --- a/include/Cmd.h +++ b/include/Cmd.h @@ -1,5 +1,4 @@ #pragma once - #include extern void cmd_init(); @@ -22,6 +21,56 @@ extern void inputTimeSet(); extern void textOut(); extern void textOutSet(); +extern void analogAdc(); +extern void analogReading(); + + + + + + + + + +extern void sensorsInit(); + +extern void levelPr(); +extern void ultrasonicCm(); +extern void ultrasonic_reading(); + + +extern void analog_reading1(); +extern void analog_reading2(); +extern void dallas_reading(); +extern void dhtT_reading(); + +extern void dallas(); + +extern void bmp280T(); +extern void bmp280P(); +extern void bmp280T_reading(); +extern void bmp280P_reading(); + +extern void bme280T(); +extern void bme280P(); +extern void bme280H(); +extern void bme280A(); + +extern void bme280T_reading(); +extern void bme280P_reading(); +extern void bme280H_reading(); +extern void bme280A_reading(); + +extern void dhtT(); +extern void dhtH(); +extern void dhtP(); +extern void dhtC(); +extern void dhtD(); +extern void dhtH_reading(); +extern void dhtP_reading(); +extern void dhtC_reading(); +extern void dhtD_reading(); + extern void handle_time_init(); extern void stepper(); extern void stepperSet(); diff --git a/include/Global.h b/include/Global.h index e0317b4e..41fa5dc9 100644 --- a/include/Global.h +++ b/include/Global.h @@ -71,10 +71,12 @@ extern Bounce* buttons; extern boolean just_load; +// Json extern String configSetupJson; //все настройки extern String configLiveJson; //все данные с датчиков (связан с mqtt) extern String configOptionJson; //для трансфера +// Mqtt extern String chipId; extern String prex; extern String all_widgets; @@ -84,6 +86,12 @@ extern String order_loop; extern String itemsFile; extern String itemsLine; +// Sensors +extern String sensorReadingMap; + + + + extern String analog_value_names_list; extern int enter_to_analog_counter; @@ -165,45 +173,7 @@ extern void setLedStatus(LedStatus_t); extern void eventGen(String event_name, String number); extern String add_set(String param_name); -//Sensors -extern void sensors_init(); -extern void levelPr(); -extern void ultrasonicCm(); -extern void ultrasonic_reading(); - -extern void analog(); -extern void analog_reading1(); -extern void analog_reading2(); -extern void dallas_reading(); -extern void dhtT_reading(); - -extern void dallas(); - -extern void bmp280T(); -extern void bmp280P(); -extern void bmp280T_reading(); -extern void bmp280P_reading(); - -extern void bme280T(); -extern void bme280P(); -extern void bme280H(); -extern void bme280A(); - -extern void bme280T_reading(); -extern void bme280P_reading(); -extern void bme280H_reading(); -extern void bme280A_reading(); - -extern void dhtT(); -extern void dhtH(); -extern void dhtP(); -extern void dhtC(); -extern void dhtD(); -extern void dhtH_reading(); -extern void dhtP_reading(); -extern void dhtC_reading(); -extern void dhtD_reading(); //Timers extern void Timer_countdown_init(); diff --git a/include/Sensors.h b/include/Sensors.h new file mode 100644 index 00000000..45dcbb04 --- /dev/null +++ b/include/Sensors.h @@ -0,0 +1,3 @@ +#pragma once + + diff --git a/src/Class/SensorAnalog.cpp b/src/Class/SensorAnalog.cpp new file mode 100644 index 00000000..e1963f5a --- /dev/null +++ b/src/Class/SensorAnalog.cpp @@ -0,0 +1,2 @@ +#include "Class/SensorAnalog.h" +SensorAnalog* mySensorAnalog; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 2e14c994..528403ac 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -3,9 +3,9 @@ #include "Class/Button.h" #include "Class/Input.h" #include "Class/LineParsing.h" +#include "Class/OutputModule.h" #include "Class/Pwm.h" #include "Class/Switch.h" -#include "Class/OutputModule.h" //----------------------------- #include "Class/NotAsinc.h" #include "Global.h" @@ -36,7 +36,12 @@ void cmd_init() { sCmd.addCommand("input-time", inputTime); sCmd.addCommand("output-text", textOut); - +#ifdef ANALOG_ENABLED + sCmd.addCommand("analog-adc", analogAdc); +#endif + + + @@ -45,11 +50,6 @@ void cmd_init() { sCmd.addCommand("timerStart", timerStart_); sCmd.addCommand("timerStop", timerStop_); - - -#ifdef ANALOG_ENABLED - sCmd.addCommand("analog", analog); -#endif #ifdef LEVEL_ENABLED sCmd.addCommand("levelPr", levelPr); sCmd.addCommand("ultrasonicCm", ultrasonicCm); @@ -253,7 +253,6 @@ void textOutSet() { myText->OutputModuleChange(key, state); } - //void text() { // String number = sCmd.next(); // String widget_name = sCmd.next(); @@ -490,8 +489,8 @@ void fileExecute(const String &filename) { csvExecute(cmdStr); } -void csvExecute(String &cmdStr) { - cmdStr.replace(";"," "); +void csvExecute(String &cmdStr) { + cmdStr.replace(";", " "); cmdStr += "\r\n"; cmdStr.replace("\r\n", "\n"); cmdStr.replace("\r", "\n"); @@ -499,12 +498,12 @@ void csvExecute(String &cmdStr) { while (cmdStr.length()) { String buf = selectToMarker(cmdStr, "\n"); count++; - if (count > 1)sCmd.readStr(buf); + if (count > 1) sCmd.readStr(buf); cmdStr = deleteBeforeDelimiter(cmdStr, "\n"); } } -void spaceExecute(String &cmdStr) { +void spaceExecute(String &cmdStr) { cmdStr += "\r\n"; cmdStr.replace("\r\n", "\n"); cmdStr.replace("\r", "\n"); diff --git a/src/Global.cpp b/src/Global.cpp index 04a4041f..aa11740f 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -43,6 +43,13 @@ String itemsFile = ""; String itemsLine = ""; // Sensors +String sensorReadingMap; + + + + + + String analog_value_names_list; int enter_to_analog_counter; diff --git a/src/Init.cpp b/src/Init.cpp index 99c1d98b..bbaa6f60 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -23,31 +23,36 @@ void all_init() { } void Device_init() { - logging_value_names_list = ""; - enter_to_logging_counter = LOG1 - 1; + sensorReadingMap = ""; + + + + + + logging_value_names_list = ""; + + + + + + enter_to_logging_counter = LOG1 - 1; analog_value_names_list = ""; enter_to_analog_counter = 0; - dallas_value_name = ""; enter_to_dallas_counter = 0; - levelPr_value_name = ""; ultrasonicCm_value_name = ""; - dhtT_value_name = ""; dhtH_value_name = ""; - bmp280T_value_name = ""; bmp280P_value_name = ""; - bme280T_value_name = ""; bme280P_value_name = ""; bme280H_value_name = ""; bme280A_value_name = ""; int array_sz = sizeof(sensors_reading_map) / sizeof(sensors_reading_map[0]); - for (int i = 0; i < array_sz; i++) { sensors_reading_map[i] = 0; } diff --git a/src/Sensors.cpp b/src/Sensors.cpp index a23b5d3e..e617d608 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -1,3 +1,5 @@ +#include "Class/SensorAnalog.h" +#include "Cmd.h" #include "Global.h" GMedian<10, int> medianFilter; @@ -17,67 +19,161 @@ const String comfortStr(ComfortState value); void bmp280T_reading(); -void sensors_init() { +void sensorsInit() { ts.add( - SENSORS, 1000, [&](void *) { - static int counter; - counter++; - -#ifdef LEVEL_ENABLED - if (sensors_reading_map[0] == 1) - ultrasonic_reading(); -#endif - - if (counter > 10) { - counter = 0; - -#ifdef ANALOG_ENABLED - if (sensors_reading_map[1] == 1) - analog_reading1(); - if (sensors_reading_map[2] == 1) - analog_reading2(); -#endif - -#ifdef DALLAS_ENABLED - if (sensors_reading_map[3] == 1) - dallas_reading(); -#endif - -#ifdef DHT_ENABLED - if (sensors_reading_map[4] == 1) - dhtT_reading(); - if (sensors_reading_map[5] == 1) - dhtH_reading(); - if (sensors_reading_map[6] == 1) - dhtP_reading(); - if (sensors_reading_map[7] == 1) - dhtC_reading(); - if (sensors_reading_map[8] == 1) - dhtD_reading(); -#endif - -#ifdef BMP_ENABLED - if (sensors_reading_map[9] == 1) - bmp280T_reading(); - if (sensors_reading_map[10] == 1) - bmp280P_reading(); -#endif - -#ifdef BME_ENABLED - if (sensors_reading_map[11] == 1) - bme280T_reading(); - if (sensors_reading_map[12] == 1) - bme280P_reading(); - if (sensors_reading_map[13] == 1) - bme280H_reading(); - if (sensors_reading_map[14] == 1) - bme280A_reading(); -#endif + SENSORS, 10000, [&](void *) { + String buf = sensorReadingMap; + while (buf.length()) { + String tmp = selectToMarker(buf, ","); + sCmd.readStr(tmp); + buf = deleteBeforeDelimiter(buf, ","); } }, nullptr, true); } +// static int counter; +// counter++; +// +//#ifdef LEVEL_ENABLED +// if (sensors_reading_map[0] == 1) +// ultrasonic_reading(); +//#endif +// +// if (counter > 10) { +// counter = 0; +// +//#ifdef ANALOG_ENABLED +// if (sensors_reading_map[1] == 1) +// //analog_reading1(); +// if (sensors_reading_map[2] == 1) +// //analog_reading2(); +//#endif +// +//#ifdef DALLAS_ENABLED +// if (sensors_reading_map[3] == 1) +// dallas_reading(); +//#endif +// +//#ifdef DHT_ENABLED +// if (sensors_reading_map[4] == 1) +// dhtT_reading(); +// if (sensors_reading_map[5] == 1) +// dhtH_reading(); +// if (sensors_reading_map[6] == 1) +// dhtP_reading(); +// if (sensors_reading_map[7] == 1) +// dhtC_reading(); +// if (sensors_reading_map[8] == 1) +// dhtD_reading(); +//#endif +// +//#ifdef BMP_ENABLED +// if (sensors_reading_map[9] == 1) +// bmp280T_reading(); +// if (sensors_reading_map[10] == 1) +// bmp280P_reading(); +//#endif +// +//#ifdef BME_ENABLED +// if (sensors_reading_map[11] == 1) +// bme280T_reading(); +// if (sensors_reading_map[12] == 1) +// bme280P_reading(); +// if (sensors_reading_map[13] == 1) +// bme280H_reading(); +// if (sensors_reading_map[14] == 1) +// bme280A_reading(); +//#endif +// } + +//==============================================Модуль аналогового сенсора=========================================================================================== +//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin[0];map[1,100,1,100];c[0] +//=================================================================================================================================================================== +#ifdef ANALOG_ENABLED +void analogAdc() { + mySensorAnalog = new SensorAnalog(); + mySensorAnalog->update(); + String key = mySensorAnalog->gkey(); + String pin = mySensorAnalog->gpin(); + sCmd.addCommand(key.c_str(), analogReading); + sensorReadingMap += key + ","; + jsonWriteStr(configOptionJson, key + "_pin", pin); + mySensorAnalog->clear(); +} + +void analogReading() { + String key = sCmd.order(); + String pin = jsonReadStr(configOptionJson, key + "_pin"); + mySensorAnalog->SensorAnalogRead(key, pin); +} + +//analog adc 0 Аналоговый#вход,#% Датчики any-data 1 1023 1 100 1 +//void analog() { +// String value_name = sCmd.next(); +// String pin = sCmd.next(); +// String widget_name = sCmd.next(); +// String page_name = sCmd.next(); +// String type = sCmd.next(); +// String analog_start = sCmd.next(); +// String analog_end = sCmd.next(); +// String analog_start_out = sCmd.next(); +// String analog_end_out = sCmd.next(); +// String page_number = sCmd.next(); +// analog_value_names_list += value_name + ","; +// enter_to_analog_counter++; +// jsonWriteStr(configOptionJson, value_name + "_st", analog_start); +// jsonWriteStr(configOptionJson, value_name + "_end", analog_end); +// jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out); +// jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out); +// createWidgetByType(widget_name, page_name, page_number, type, value_name); +// if (enter_to_analog_counter == 1) { +// sensors_reading_map[1] = 1; +// } +// if (enter_to_analog_counter == 2) { +// sensors_reading_map[2] = 1; +// } +//} +// +//void analog_reading1() { +// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 0); +//#ifdef ESP32 +// int analog_in = analogRead(34); +//#endif +//#ifdef ESP8266 +// int analog_in = analogRead(A0); +//#endif +// int analog = map(analog_in, +// jsonReadInt(configOptionJson, value_name + "_st"), +// jsonReadInt(configOptionJson, value_name + "_end"), +// jsonReadInt(configOptionJson, value_name + "_st_out"), +// jsonReadInt(configOptionJson, value_name + "_end_out")); +// jsonWriteInt(configLiveJson, value_name, analog); +// eventGen(value_name, ""); +// MqttClient::publishStatus(value_name, String(analog)); +// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); +//} +// +//void analog_reading2() { +// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 1); +//#ifdef ESP32 +// int analog_in = analogRead(35); +//#endif +//#ifdef ESP8266 +// int analog_in = analogRead(A0); +//#endif +// int analog = map(analog_in, +// jsonReadInt(configOptionJson, value_name + "_st"), +// jsonReadInt(configOptionJson, value_name + "_end"), +// jsonReadInt(configOptionJson, value_name + "_st_out"), +// jsonReadInt(configOptionJson, value_name + "_end_out")); +// jsonWriteInt(configLiveJson, value_name, analog); +// eventGen(value_name, ""); +// MqttClient::publishStatus(value_name, String(analog)); +// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); +//} +#endif + //========================================================================================================================================= //=========================================Модуль измерения уровня в баке================================================================== #ifdef LEVEL_ENABLED @@ -161,74 +257,6 @@ void ultrasonic_reading() { } #endif //========================================================================================================================================= -//=========================================Модуль аналогового сенсора====================================================================== -#ifdef ANALOG_ENABLED -//analog adc 0 Аналоговый#вход,#% Датчики any-data 1 1023 1 100 1 -void analog() { - String value_name = sCmd.next(); - String pin = sCmd.next(); - String widget_name = sCmd.next(); - String page_name = sCmd.next(); - String type = sCmd.next(); - String analog_start = sCmd.next(); - String analog_end = sCmd.next(); - String analog_start_out = sCmd.next(); - String analog_end_out = sCmd.next(); - String page_number = sCmd.next(); - analog_value_names_list += value_name + ","; - enter_to_analog_counter++; - jsonWriteStr(configOptionJson, value_name + "_st", analog_start); - jsonWriteStr(configOptionJson, value_name + "_end", analog_end); - jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out); - jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out); - createWidgetByType(widget_name, page_name, page_number, type, value_name); - if (enter_to_analog_counter == 1) { - sensors_reading_map[1] = 1; - } - if (enter_to_analog_counter == 2) { - sensors_reading_map[2] = 1; - } -} - -void analog_reading1() { - String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 0); -#ifdef ESP32 - int analog_in = analogRead(34); -#endif -#ifdef ESP8266 - int analog_in = analogRead(A0); -#endif - int analog = map(analog_in, - jsonReadInt(configOptionJson, value_name + "_st"), - jsonReadInt(configOptionJson, value_name + "_end"), - jsonReadInt(configOptionJson, value_name + "_st_out"), - jsonReadInt(configOptionJson, value_name + "_end_out")); - jsonWriteInt(configLiveJson, value_name, analog); - eventGen(value_name, ""); - MqttClient::publishStatus(value_name, String(analog)); - Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); -} - -void analog_reading2() { - String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 1); -#ifdef ESP32 - int analog_in = analogRead(35); -#endif -#ifdef ESP8266 - int analog_in = analogRead(A0); -#endif - int analog = map(analog_in, - jsonReadInt(configOptionJson, value_name + "_st"), - jsonReadInt(configOptionJson, value_name + "_end"), - jsonReadInt(configOptionJson, value_name + "_st_out"), - jsonReadInt(configOptionJson, value_name + "_end_out")); - jsonWriteInt(configLiveJson, value_name, analog); - eventGen(value_name, ""); - MqttClient::publishStatus(value_name, String(analog)); - Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); -} -#endif -//========================================================================================================================================= //=========================================Модуль температурного сенсора ds18b20=========================================================== #ifdef DALLAS_ENABLED //dallas temp1 2 1 Температура Датчики anydata 1 @@ -242,7 +270,7 @@ void dallas() { String page_name = sCmd.next(); String type = sCmd.next(); String page_number = sCmd.next(); - oneWire = new OneWire((uint8_t) pin.toInt()); + oneWire = new OneWire((uint8_t)pin.toInt()); sensors.setOneWire(oneWire); sensors.begin(); sensors.setResolution(12); @@ -256,7 +284,7 @@ void dallas_reading() { byte num = sensors.getDS18Count(); String dallas_value_name_tmp_buf = dallas_value_name; sensors.requestTemperatures(); - for (byte i = 0; i < num; i++) { + for (byte i = 0; i < num; i++) { temp = sensors.getTempCByIndex(i); String buf = selectToMarker(dallas_value_name_tmp_buf, ";"); dallas_value_name_tmp_buf = deleteBeforeDelimiter(dallas_value_name_tmp_buf, ";"); diff --git a/src/main.cpp b/src/main.cpp index be59f86e..c77ad247 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,7 +42,7 @@ void setup() { cmd_init(); pm.info("Sensors"); - sensors_init(); + sensorsInit(); pm.info("Init"); all_init(); From 0c1a1940d237e6ac2456360fd3e35043421412f3 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 28 Aug 2020 03:25:13 +0300 Subject: [PATCH 27/96] progress of sensors --- data/items/analog-adc.txt | 2 +- include/Class/SensorAnalog.h | 5 ++++- include/Class/SensorConverting.h | 20 ++++++++++++++++++++ include/ItemsList.h | 3 ++- src/ItemsList.cpp | 23 +++++++++++++++++------ 5 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 include/Class/SensorConverting.h diff --git a/data/items/analog-adc.txt b/data/items/analog-adc.txt index 3a7d70c6..bcbe6528 100644 --- a/data/items/analog-adc.txt +++ b/data/items/analog-adc.txt @@ -1 +1 @@ -analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin[0];map[1,100,1,100];c[0] \ No newline at end of file +analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,100,1,100];c[0] \ No newline at end of file diff --git a/include/Class/SensorAnalog.h b/include/Class/SensorAnalog.h index 6e94a978..27f157be 100644 --- a/include/Class/SensorAnalog.h +++ b/include/Class/SensorAnalog.h @@ -3,9 +3,10 @@ #include #include "Class/LineParsing.h" +#include "Class/SensorConverting.h" #include "Global.h" -class SensorAnalog : public LineParsing { +class SensorAnalog : public LineParsing public SensorConverting { public: SensorAnalog() : LineParsing(){}; @@ -29,6 +30,8 @@ class SensorAnalog : public LineParsing { eventGen(key, ""); jsonWriteInt(configLiveJson, key, value); MqttClient::publishStatus(key, String(value)); + + Serial.println("[I] sensor '" + key + "' data: " + String(value)); return value; } }; diff --git a/include/Class/SensorConverting.h b/include/Class/SensorConverting.h new file mode 100644 index 00000000..2c1beb5e --- /dev/null +++ b/include/Class/SensorConverting.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#include "Class/LineParsing.h" +#include "Global.h" + +class SensorConverting : public LineParsing { + public: + SensorConverting() : LineParsing(){}; + + void SensorConvertingInit() { + + + + } + + +}; +extern SensorConverting* mySensorConverting; \ No newline at end of file diff --git a/include/ItemsList.h b/include/ItemsList.h index a72f2d12..d973ff60 100644 --- a/include/ItemsList.h +++ b/include/ItemsList.h @@ -6,4 +6,5 @@ extern void addItem(String name); extern void delAllItems(); extern uint8_t getNewElementNumber(String file); -extern uint8_t getFreePin(); +extern uint8_t getFreePinAll(); +extern uint8_t getFreePinAnalog(); diff --git a/src/ItemsList.cpp b/src/ItemsList.cpp index 6861d85f..dcb194f7 100644 --- a/src/ItemsList.cpp +++ b/src/ItemsList.cpp @@ -1,4 +1,5 @@ #include "ItemsList.h" + #include "Utils\StringUtils.h" static const char* firstLine PROGMEM = "Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета"; @@ -8,7 +9,11 @@ void addItem(String name) { name = deleteToMarkerLast(name, "-"); item.replace("id", name + String(getNewElementNumber("id.txt"))); item.replace("order", String(getNewElementNumber("order.txt"))); - item.replace("pin", "pin[" + String(getFreePin()) + "]"); + if (item.indexOf("pin-adc") != -1) { + item.replace("pin-adc", "pin[" + String(getFreePinAnalog()) + "]"); + } else if (item.indexOf("pin") != -1) { + item.replace("pin", "pin[" + String(getFreePinAll()) + "]"); + } item.replace("\r\n", ""); item.replace("\r", ""); item.replace("\n", ""); @@ -31,13 +36,13 @@ uint8_t getNewElementNumber(String file) { return number; } -uint8_t getFreePin() { - #ifdef ESP8266 +uint8_t getFreePinAll() { +#ifdef ESP8266 uint8_t pins[] = {0, 12, 13, 14, 15, 16, 1, 2, 3, 4, 5}; - #endif - #ifdef ESP32 +#endif +#ifdef ESP32 uint8_t pins[] = {0, 12, 13, 14, 15, 16, 1, 2, 3, 4, 5}; - #endif +#endif uint8_t array_sz = sizeof(pins) / sizeof(pins[0]); uint8_t i = getNewElementNumber("pins.txt"); if (i < array_sz) { @@ -47,6 +52,12 @@ uint8_t getFreePin() { } } +uint8_t getFreePinAnalog() { +#ifdef ESP8266 + return 0; +#endif +} + //void do_getJsonListFromCsv() { // if (getJsonListFromCsvFlag) { // getJsonListFromCsvFlag = false; From eb6c06c8e9d7b1ec490e63fc3644955446db6289 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 28 Aug 2020 03:58:54 +0300 Subject: [PATCH 28/96] not working version --- include/Class/SensorAnalog.h | 15 ++++++++++----- include/Class/SensorConverting.h | 25 +++++++++++++++++++------ 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/include/Class/SensorAnalog.h b/include/Class/SensorAnalog.h index 27f157be..0152d8f6 100644 --- a/include/Class/SensorAnalog.h +++ b/include/Class/SensorAnalog.h @@ -6,9 +6,11 @@ #include "Class/SensorConverting.h" #include "Global.h" -class SensorAnalog : public LineParsing public SensorConverting { +class SensorAnalog : public LineParsing, + public SensorConverting { public: - SensorAnalog() : LineParsing(){}; + SensorAnalog() : LineParsing(), + SensorConverting(){}; void SensorAnalogInit() { //if (_pin != "") { @@ -26,12 +28,15 @@ class SensorAnalog : public LineParsing public SensorConverting { pinInt = pinInt; value = analogRead(A0); #endif + float valueFl; + //float valueFl = this->mapping(value); + // valueFl = this->correction(valueFl); eventGen(key, ""); - jsonWriteInt(configLiveJson, key, value); - MqttClient::publishStatus(key, String(value)); + jsonWriteFloat(configLiveJson, key, valueFl); + MqttClient::publishStatus(key, String(valueFl)); - Serial.println("[I] sensor '" + key + "' data: " + String(value)); + Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); return value; } }; diff --git a/include/Class/SensorConverting.h b/include/Class/SensorConverting.h index 2c1beb5e..bb04f897 100644 --- a/include/Class/SensorConverting.h +++ b/include/Class/SensorConverting.h @@ -9,12 +9,25 @@ class SensorConverting : public LineParsing { public: SensorConverting() : LineParsing(){}; - void SensorConvertingInit() { - - - + int mapping(int input) { + if (_map != "") { + _map.replace("map[", ""); + _map.replace("]", ""); + input = map(input, + selectFromMarkerToMarker(_map, ",", 0).toInt(), + selectFromMarkerToMarker(_map, ",", 1).toInt(), + selectFromMarkerToMarker(_map, ",", 2).toInt(), + selectFromMarkerToMarker(_map, ",", 3).toInt()); + } + return input; } - + float correction(float input) { + _c.replace("c[", ""); + _c.replace("]", ""); + float coef = _c.toFloat(); + input = input * coef; + return input; + } }; -extern SensorConverting* mySensorConverting; \ No newline at end of file +//extern SensorConverting* mySensorConverting; \ No newline at end of file From 3ab75bcea602144f12b68d694df68f3a6a91bcdf Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 28 Aug 2020 04:58:38 +0300 Subject: [PATCH 29/96] progress --- include/Class/LineParsing.h | 32 ++++++++++++++++++++++++++++---- include/Class/SensorAnalog.h | 22 +++++++++------------- include/Class/SensorConverting.h | 19 ++++++++++--------- src/Class/LineParsing.cpp | 1 + src/Sensors.cpp | 2 ++ 5 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 src/Class/LineParsing.cpp diff --git a/include/Class/LineParsing.h b/include/Class/LineParsing.h index 2d84a385..006282b1 100644 --- a/include/Class/LineParsing.h +++ b/include/Class/LineParsing.h @@ -3,6 +3,7 @@ #include #include "Global.h" +#include "Utils/JsonUtils.h" class LineParsing { protected: @@ -49,7 +50,7 @@ class LineParsing { if (i == 5) _order = sCmd.next(); } - for (int i = 1; i < 6; i++) { + for (int i = 1; i < 10; i++) { String arg = sCmd.next(); if (arg != "") { if (arg.indexOf("pin[") != -1) { @@ -64,16 +65,24 @@ class LineParsing { if (arg.indexOf("db[") != -1) { _db = extractInner(arg); } + if (arg.indexOf("map[") != -1) { + _map = extractInner(arg); + } + if (arg.indexOf("c[") != -1) { + _c = extractInner(arg); + } } } _page.replace("#", " "); - _descr.replace("#", " "); + _descr.replace("#", " "); createWidgetClass(_descr, _page, _order, _file, _key); } + //jsonWriteStr(configOptionJson, _key + "_pin", _pin); + String gkey() { return _key; } @@ -90,14 +99,20 @@ class LineParsing { return _order; } String gpin() { - return _pin; + return _pin; // } String ginv() { - return _inv; + return _inv; // } String gstate() { return _state; } + String gmap() { + return _map; + } + String gc() { + return _c; + } void clear() { _key = ""; @@ -150,4 +165,13 @@ class LineParsing { const String getWidgetFileClass(const String& name) { return "/widgets/" + name + ".json"; } + + //String jsonWriteStr1(String& json, String name, String value) { + // DynamicJsonBuffer jsonBuffer; + // JsonObject& root = jsonBuffer.parseObject(json); + // root[name] = value; + // json = ""; + // root.printTo(json); + // return json; + //} }; diff --git a/include/Class/SensorAnalog.h b/include/Class/SensorAnalog.h index 0152d8f6..b4e69761 100644 --- a/include/Class/SensorAnalog.h +++ b/include/Class/SensorAnalog.h @@ -6,16 +6,11 @@ #include "Class/SensorConverting.h" #include "Global.h" -class SensorAnalog : public LineParsing, - public SensorConverting { +class SensorAnalog : public SensorConverting { public: - SensorAnalog() : LineParsing(), - SensorConverting(){}; + SensorAnalog() : SensorConverting(){}; - void SensorAnalogInit() { - //if (_pin != "") { - // pinMode(_pin.toInt(), INPUT); - //} + void SensorAnalogInit(String key) { } int SensorAnalogRead(String key, String pin) { @@ -28,15 +23,16 @@ class SensorAnalog : public LineParsing, pinInt = pinInt; value = analogRead(A0); #endif - float valueFl; //float valueFl = this->mapping(value); // valueFl = this->correction(valueFl); - eventGen(key, ""); - jsonWriteFloat(configLiveJson, key, valueFl); - MqttClient::publishStatus(key, String(valueFl)); + value = this->mapping(key, value); - Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); + eventGen(key, ""); + jsonWriteFloat(configLiveJson, key, value); + MqttClient::publishStatus(key, String(value)); + + Serial.println("[I] sensor '" + key + "' data: " + String(value)); return value; } }; diff --git a/include/Class/SensorConverting.h b/include/Class/SensorConverting.h index bb04f897..a324d281 100644 --- a/include/Class/SensorConverting.h +++ b/include/Class/SensorConverting.h @@ -9,20 +9,21 @@ class SensorConverting : public LineParsing { public: SensorConverting() : LineParsing(){}; - int mapping(int input) { - if (_map != "") { - _map.replace("map[", ""); - _map.replace("]", ""); + int mapping(String key, int input) { + String map_ = jsonReadStr(configOptionJson, key + "_map"); + if (map_ != "") { + map_.replace("map[", ""); + map_.replace("]", ""); input = map(input, - selectFromMarkerToMarker(_map, ",", 0).toInt(), - selectFromMarkerToMarker(_map, ",", 1).toInt(), - selectFromMarkerToMarker(_map, ",", 2).toInt(), - selectFromMarkerToMarker(_map, ",", 3).toInt()); + selectFromMarkerToMarker(map_, ",", 0).toInt(), + selectFromMarkerToMarker(map_, ",", 1).toInt(), + selectFromMarkerToMarker(map_, ",", 2).toInt(), + selectFromMarkerToMarker(map_, ",", 3).toInt()); } return input; } - float correction(float input) { + float correction(String key, float input) { _c.replace("c[", ""); _c.replace("]", ""); float coef = _c.toFloat(); diff --git a/src/Class/LineParsing.cpp b/src/Class/LineParsing.cpp new file mode 100644 index 00000000..d44476ef --- /dev/null +++ b/src/Class/LineParsing.cpp @@ -0,0 +1 @@ +#include "Class/LineParsing.h" \ No newline at end of file diff --git a/src/Sensors.cpp b/src/Sensors.cpp index e617d608..2dec60e1 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -99,12 +99,14 @@ void analogAdc() { sCmd.addCommand(key.c_str(), analogReading); sensorReadingMap += key + ","; jsonWriteStr(configOptionJson, key + "_pin", pin); + jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap()); mySensorAnalog->clear(); } void analogReading() { String key = sCmd.order(); String pin = jsonReadStr(configOptionJson, key + "_pin"); + mySensorAnalog->SensorAnalogRead(key, pin); } From 21e7297035a6a5ade40509ed4a55243c44cfb0d1 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 28 Aug 2020 23:18:18 +0300 Subject: [PATCH 30/96] SSDP added --- data/items/analog-adc.txt | 2 +- include/Class/SensorAnalog.h | 12 +- include/Class/SensorConverting.h | 14 +- include/Cmd.h | 3 + include/Global.h | 1 + include/SSDP.h | 5 + src/SSDP.cpp | 50 ++++++ src/Sensors.cpp | 284 ++++++++++--------------------- src/main.cpp | 4 + 9 files changed, 161 insertions(+), 214 deletions(-) create mode 100644 include/SSDP.h create mode 100644 src/SSDP.cpp diff --git a/data/items/analog-adc.txt b/data/items/analog-adc.txt index bcbe6528..ad72b7f9 100644 --- a/data/items/analog-adc.txt +++ b/data/items/analog-adc.txt @@ -1 +1 @@ -analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,100,1,100];c[0] \ No newline at end of file +analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,1024];c[1] \ No newline at end of file diff --git a/include/Class/SensorAnalog.h b/include/Class/SensorAnalog.h index b4e69761..918086f0 100644 --- a/include/Class/SensorAnalog.h +++ b/include/Class/SensorAnalog.h @@ -1,7 +1,5 @@ #pragma once - #include - #include "Class/LineParsing.h" #include "Class/SensorConverting.h" #include "Global.h" @@ -23,16 +21,14 @@ class SensorAnalog : public SensorConverting { pinInt = pinInt; value = analogRead(A0); #endif - //float valueFl = this->mapping(value); - // valueFl = this->correction(valueFl); - value = this->mapping(key, value); + float valueFl = this->correction(key, value); eventGen(key, ""); - jsonWriteFloat(configLiveJson, key, value); - MqttClient::publishStatus(key, String(value)); + jsonWriteStr(configLiveJson, key, String(valueFl)); + MqttClient::publishStatus(key, String(valueFl)); - Serial.println("[I] sensor '" + key + "' data: " + String(value)); + Serial.println("[I] sensor '" + key + "' data: " + String(valueFl)); return value; } }; diff --git a/include/Class/SensorConverting.h b/include/Class/SensorConverting.h index a324d281..d5d8d8ce 100644 --- a/include/Class/SensorConverting.h +++ b/include/Class/SensorConverting.h @@ -12,8 +12,6 @@ class SensorConverting : public LineParsing { int mapping(String key, int input) { String map_ = jsonReadStr(configOptionJson, key + "_map"); if (map_ != "") { - map_.replace("map[", ""); - map_.replace("]", ""); input = map(input, selectFromMarkerToMarker(map_, ",", 0).toInt(), selectFromMarkerToMarker(map_, ",", 1).toInt(), @@ -24,11 +22,11 @@ class SensorConverting : public LineParsing { } float correction(String key, float input) { - _c.replace("c[", ""); - _c.replace("]", ""); - float coef = _c.toFloat(); - input = input * coef; + String corr = jsonReadStr(configOptionJson, key + "_с"); + if (corr != "") { + float coef = corr.toFloat(); + input = input * coef; + } return input; } -}; -//extern SensorConverting* mySensorConverting; \ No newline at end of file +}; \ No newline at end of file diff --git a/include/Cmd.h b/include/Cmd.h index 70883c34..3c49565a 100644 --- a/include/Cmd.h +++ b/include/Cmd.h @@ -24,6 +24,9 @@ extern void textOutSet(); extern void analogAdc(); extern void analogReading(); +extern void ultrasonicCm(); +extern void ultrasonicReading(); + diff --git a/include/Global.h b/include/Global.h index 41fa5dc9..d93a5be9 100644 --- a/include/Global.h +++ b/include/Global.h @@ -38,6 +38,7 @@ #include #include + #ifdef WEBSOCKET_ENABLED extern AsyncWebSocket ws; //extern AsyncEventSource events; diff --git a/include/SSDP.h b/include/SSDP.h new file mode 100644 index 00000000..3174142a --- /dev/null +++ b/include/SSDP.h @@ -0,0 +1,5 @@ +#pragma once + +extern void SsdpInit(); +extern String xmlNode(String tags, String data); +extern String decToHex(uint32_t decValue, byte desiredStringLength); \ No newline at end of file diff --git a/src/SSDP.cpp b/src/SSDP.cpp new file mode 100644 index 00000000..26c67000 --- /dev/null +++ b/src/SSDP.cpp @@ -0,0 +1,50 @@ +#include +#include + +#include "Global.h" + +void SsdpInit() { + server.on("/description.xml", HTTP_GET, [](AsyncWebServerRequest* request) { + String ssdpSend = ""; + String ssdpHeder = xmlNode("major", "1"); + ssdpHeder += xmlNode("minor", "0"); + ssdpHeder = xmlNode("specVersion", ssdpHeder); + ssdpHeder += xmlNode("URLBase", "http://" + WiFi.localIP().toString()); + String ssdpDescription = xmlNode("deviceType", "upnp:rootdevice"); + ssdpDescription += xmlNode("friendlyName", jsonReadStr(configSetupJson, "name")); + ssdpDescription += xmlNode("presentationURL", "/"); + ssdpDescription += xmlNode("serialNumber", getChipId()); +#ifdef ESP8266 + ssdpDescription += xmlNode("modelName", "ESP8266"); +#endif +#ifdef ESP32 + ssdpDescription += xmlNode("modelName", "ESP32"); +#endif + ssdpDescription += xmlNode("modelNumber", getChipId()); + ssdpDescription += xmlNode("modelURL", "https://github.com/IoTManagerProject/IoTManager/wiki"); + ssdpDescription += xmlNode("manufacturer", "Borisenko Dmitry"); + ssdpDescription += xmlNode("manufacturerURL", "https://github.com/IoTManagerProject/IoTManager"); + ssdpDescription += xmlNode("UDN", "uuid:38323636-4558-4dda-9188-cda0e6" + decToHex(ESP.getChipId(), 6)); + ssdpDescription = xmlNode("device", ssdpDescription); + ssdpHeder += ssdpDescription; + ssdpSend += ssdpHeder; + ssdpSend += ""; + Serial.println("->!!!SSDP Get request received"); + request->send(200, "text/xml", ssdpSend); + }); + //Если версия 2.0.0 закаментируйте следующую строчку + SSDP.setDeviceType("upnp:rootdevice"); + SSDP.setSchemaURL("description.xml"); + SSDP.begin(); +} + +String xmlNode(String tags, String data) { + String temp = "<" + tags + ">" + data + ""; + return temp; +} + +String decToHex(uint32_t decValue, byte desiredStringLength) { + String hexString = String(decValue, HEX); + while (hexString.length() < desiredStringLength) hexString = "0" + hexString; + return hexString; +} \ No newline at end of file diff --git a/src/Sensors.cpp b/src/Sensors.cpp index 2dec60e1..d49c5f93 100644 --- a/src/Sensors.cpp +++ b/src/Sensors.cpp @@ -21,7 +21,7 @@ void bmp280T_reading(); void sensorsInit() { ts.add( - SENSORS, 10000, [&](void *) { + SENSORS, 15000, [&](void *) { String buf = sensorReadingMap; while (buf.length()) { String tmp = selectToMarker(buf, ","); @@ -32,65 +32,10 @@ void sensorsInit() { nullptr, true); } -// static int counter; -// counter++; -// -//#ifdef LEVEL_ENABLED -// if (sensors_reading_map[0] == 1) -// ultrasonic_reading(); -//#endif -// -// if (counter > 10) { -// counter = 0; -// -//#ifdef ANALOG_ENABLED -// if (sensors_reading_map[1] == 1) -// //analog_reading1(); -// if (sensors_reading_map[2] == 1) -// //analog_reading2(); -//#endif -// -//#ifdef DALLAS_ENABLED -// if (sensors_reading_map[3] == 1) -// dallas_reading(); -//#endif -// -//#ifdef DHT_ENABLED -// if (sensors_reading_map[4] == 1) -// dhtT_reading(); -// if (sensors_reading_map[5] == 1) -// dhtH_reading(); -// if (sensors_reading_map[6] == 1) -// dhtP_reading(); -// if (sensors_reading_map[7] == 1) -// dhtC_reading(); -// if (sensors_reading_map[8] == 1) -// dhtD_reading(); -//#endif -// -//#ifdef BMP_ENABLED -// if (sensors_reading_map[9] == 1) -// bmp280T_reading(); -// if (sensors_reading_map[10] == 1) -// bmp280P_reading(); -//#endif -// -//#ifdef BME_ENABLED -// if (sensors_reading_map[11] == 1) -// bme280T_reading(); -// if (sensors_reading_map[12] == 1) -// bme280P_reading(); -// if (sensors_reading_map[13] == 1) -// bme280H_reading(); -// if (sensors_reading_map[14] == 1) -// bme280A_reading(); -//#endif -// } - -//==============================================Модуль аналогового сенсора=========================================================================================== -//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin[0];map[1,100,1,100];c[0] -//=================================================================================================================================================================== #ifdef ANALOG_ENABLED +//==============================================Модуль аналогового сенсора=========================================================================================== +//analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,100];c[1] +//=================================================================================================================================================================== void analogAdc() { mySensorAnalog = new SensorAnalog(); mySensorAnalog->update(); @@ -100,162 +45,107 @@ void analogAdc() { sensorReadingMap += key + ","; jsonWriteStr(configOptionJson, key + "_pin", pin); jsonWriteStr(configOptionJson, key + "_map", mySensorAnalog->gmap()); + jsonWriteStr(configOptionJson, key + "_с", mySensorAnalog->gc()); mySensorAnalog->clear(); } void analogReading() { String key = sCmd.order(); String pin = jsonReadStr(configOptionJson, key + "_pin"); - mySensorAnalog->SensorAnalogRead(key, pin); } +#endif -//analog adc 0 Аналоговый#вход,#% Датчики any-data 1 1023 1 100 1 -//void analog() { +#ifdef LEVEL_ENABLED +//=========================================Модуль ультрозвукового дальномера================================================================== +//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin;map[1,100,1,100];c[1] +//========================================================================================================================================= +void ultrasonicCm() { + + +} + +void ultrasonicReading() { + + +} + +void levelPr() { // String value_name = sCmd.next(); -// String pin = sCmd.next(); +// String trig = sCmd.next(); +// String echo = sCmd.next(); // String widget_name = sCmd.next(); // String page_name = sCmd.next(); // String type = sCmd.next(); -// String analog_start = sCmd.next(); -// String analog_end = sCmd.next(); -// String analog_start_out = sCmd.next(); -// String analog_end_out = sCmd.next(); +// String empty_level = sCmd.next(); +// String full_level = sCmd.next(); // String page_number = sCmd.next(); -// analog_value_names_list += value_name + ","; -// enter_to_analog_counter++; -// jsonWriteStr(configOptionJson, value_name + "_st", analog_start); -// jsonWriteStr(configOptionJson, value_name + "_end", analog_end); -// jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out); -// jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out); +// levelPr_value_name = value_name; +// jsonWriteStr(configOptionJson, "e_lev", empty_level); +// jsonWriteStr(configOptionJson, "f_lev", full_level); +// jsonWriteStr(configOptionJson, "trig", trig); +// jsonWriteStr(configOptionJson, "echo", echo); +// pinMode(trig.toInt(), OUTPUT); +// pinMode(echo.toInt(), INPUT); // createWidgetByType(widget_name, page_name, page_number, type, value_name); -// if (enter_to_analog_counter == 1) { -// sensors_reading_map[1] = 1; -// } -// if (enter_to_analog_counter == 2) { -// sensors_reading_map[2] = 1; -// } +// sensors_reading_map[0] = 1; +} +////ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1 +//void ultrasonicCm() { +// String value_name = sCmd.next(); +// String trig = sCmd.next(); +// String echo = sCmd.next(); +// String widget_name = sCmd.next(); +// String page_name = sCmd.next(); +// String type = sCmd.next(); +// String empty_level = sCmd.next(); +// String full_level = sCmd.next(); +// String page_number = sCmd.next(); +// ultrasonicCm_value_name = value_name; +// jsonWriteStr(configOptionJson, "trig", trig); +// jsonWriteStr(configOptionJson, "echo", echo); +// pinMode(trig.toInt(), OUTPUT); +// pinMode(echo.toInt(), INPUT); +// createWidgetByType(widget_name, page_name, page_number, type, value_name); +// sensors_reading_map[0] = 1; //} // -//void analog_reading1() { -// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 0); -//#ifdef ESP32 -// int analog_in = analogRead(34); -//#endif -//#ifdef ESP8266 -// int analog_in = analogRead(A0); -//#endif -// int analog = map(analog_in, -// jsonReadInt(configOptionJson, value_name + "_st"), -// jsonReadInt(configOptionJson, value_name + "_end"), -// jsonReadInt(configOptionJson, value_name + "_st_out"), -// jsonReadInt(configOptionJson, value_name + "_end_out")); -// jsonWriteInt(configLiveJson, value_name, analog); -// eventGen(value_name, ""); -// MqttClient::publishStatus(value_name, String(analog)); -// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); -//} -// -//void analog_reading2() { -// String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 1); -//#ifdef ESP32 -// int analog_in = analogRead(35); -//#endif -//#ifdef ESP8266 -// int analog_in = analogRead(A0); -//#endif -// int analog = map(analog_in, -// jsonReadInt(configOptionJson, value_name + "_st"), -// jsonReadInt(configOptionJson, value_name + "_end"), -// jsonReadInt(configOptionJson, value_name + "_st_out"), -// jsonReadInt(configOptionJson, value_name + "_end_out")); -// jsonWriteInt(configLiveJson, value_name, analog); -// eventGen(value_name, ""); -// MqttClient::publishStatus(value_name, String(analog)); -// Serial.println("[I] sensor '" + value_name + "' data: " + String(analog)); -//} -#endif - -//========================================================================================================================================= -//=========================================Модуль измерения уровня в баке================================================================== -#ifdef LEVEL_ENABLED -//levelPr p 14 12 Вода#в#баке,#% Датчики fillgauge 125 20 1 -void levelPr() { - String value_name = sCmd.next(); - String trig = sCmd.next(); - String echo = sCmd.next(); - String widget_name = sCmd.next(); - String page_name = sCmd.next(); - String type = sCmd.next(); - String empty_level = sCmd.next(); - String full_level = sCmd.next(); - String page_number = sCmd.next(); - levelPr_value_name = value_name; - jsonWriteStr(configOptionJson, "e_lev", empty_level); - jsonWriteStr(configOptionJson, "f_lev", full_level); - jsonWriteStr(configOptionJson, "trig", trig); - jsonWriteStr(configOptionJson, "echo", echo); - pinMode(trig.toInt(), OUTPUT); - pinMode(echo.toInt(), INPUT); - createWidgetByType(widget_name, page_name, page_number, type, value_name); - sensors_reading_map[0] = 1; -} -//ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1 -void ultrasonicCm() { - String value_name = sCmd.next(); - String trig = sCmd.next(); - String echo = sCmd.next(); - String widget_name = sCmd.next(); - String page_name = sCmd.next(); - String type = sCmd.next(); - String empty_level = sCmd.next(); - String full_level = sCmd.next(); - String page_number = sCmd.next(); - ultrasonicCm_value_name = value_name; - jsonWriteStr(configOptionJson, "trig", trig); - jsonWriteStr(configOptionJson, "echo", echo); - pinMode(trig.toInt(), OUTPUT); - pinMode(echo.toInt(), INPUT); - createWidgetByType(widget_name, page_name, page_number, type, value_name); - sensors_reading_map[0] = 1; -} - void ultrasonic_reading() { - long duration_; - int distance_cm; - int level; - static int counter; - int trig = jsonReadInt(configOptionJson, "trig"); - int echo = jsonReadInt(configOptionJson, "echo"); - digitalWrite(trig, LOW); - delayMicroseconds(2); - digitalWrite(trig, HIGH); - delayMicroseconds(10); - digitalWrite(trig, LOW); - duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m - distance_cm = duration_ / 29 / 2; - distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром - counter++; - if (counter > TANK_LEVEL_SAMPLES) { - counter = 0; - level = map(distance_cm, - jsonReadInt(configOptionJson, "e_lev"), - jsonReadInt(configOptionJson, "f_lev"), 0, 100); - - jsonWriteInt(configLiveJson, levelPr_value_name, level); - eventGen(levelPr_value_name, ""); - - MqttClient::publishStatus(levelPr_value_name, String(level)); - - Serial.println("[I] sensor '" + levelPr_value_name + "' data: " + String(level)); - - jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm); - eventGen(ultrasonicCm_value_name, ""); - - MqttClient::publishStatus(ultrasonicCm_value_name, String(distance_cm)); - - Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm)); - } +// long duration_; +// int distance_cm; +// int level; +// static int counter; +// int trig = jsonReadInt(configOptionJson, "trig"); +// int echo = jsonReadInt(configOptionJson, "echo"); +// digitalWrite(trig, LOW); +// delayMicroseconds(2); +// digitalWrite(trig, HIGH); +// delayMicroseconds(10); +// digitalWrite(trig, LOW); +// duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m +// distance_cm = duration_ / 29 / 2; +// distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром +// counter++; +// if (counter > TANK_LEVEL_SAMPLES) { +// counter = 0; +// level = map(distance_cm, +// jsonReadInt(configOptionJson, "e_lev"), +// jsonReadInt(configOptionJson, "f_lev"), 0, 100); +// +// jsonWriteInt(configLiveJson, levelPr_value_name, level); +// eventGen(levelPr_value_name, ""); +// +// MqttClient::publishStatus(levelPr_value_name, String(level)); +// +// Serial.println("[I] sensor '" + levelPr_value_name + "' data: " + String(level)); +// +// jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm); +// eventGen(ultrasonicCm_value_name, ""); +// +// MqttClient::publishStatus(ultrasonicCm_value_name, String(distance_cm)); +// +// Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm)); +// } } #endif //========================================================================================================================================= diff --git a/src/main.cpp b/src/main.cpp index c77ad247..97f15ff5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,6 +8,7 @@ #include "Utils\WebUtils.h" #include "Init.h" #include "Utils/Timings.h" +#include void not_async_actions(); @@ -70,6 +71,9 @@ void setup() { udpInit(); #endif + pm.info("Ssdp Init"); + SsdpInit(); + ts.add( TEST, 1000 * 60, [&](void*) { pm.info(printMemoryStatus()); From 8219cf327148bf43860c8fd2fe934deb4f15589e Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 15:15:38 +0300 Subject: [PATCH 31/96] ssdp fixed --- include/SSDP.h | 1 + src/SSDP.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/SSDP.h b/include/SSDP.h index 3174142a..12b6f6e1 100644 --- a/include/SSDP.h +++ b/include/SSDP.h @@ -1,4 +1,5 @@ #pragma once +#include extern void SsdpInit(); extern String xmlNode(String tags, String data); diff --git a/src/SSDP.cpp b/src/SSDP.cpp index 26c67000..f3d47a8a 100644 --- a/src/SSDP.cpp +++ b/src/SSDP.cpp @@ -1,4 +1,4 @@ -#include +//#include #include #include "Global.h" @@ -33,9 +33,9 @@ void SsdpInit() { request->send(200, "text/xml", ssdpSend); }); //Если версия 2.0.0 закаментируйте следующую строчку - SSDP.setDeviceType("upnp:rootdevice"); - SSDP.setSchemaURL("description.xml"); - SSDP.begin(); + //SSDP.setDeviceType("upnp:rootdevice"); + //SSDP.setSchemaURL("description.xml"); + //SSDP.begin(); } String xmlNode(String tags, String data) { From b1ca2ad51130fa1d20ae8d4678d7b6f36cf3887c Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 15:25:28 +0300 Subject: [PATCH 32/96] ssdp --- src/SSDP.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/SSDP.cpp b/src/SSDP.cpp index f3d47a8a..0b044e4b 100644 --- a/src/SSDP.cpp +++ b/src/SSDP.cpp @@ -1,6 +1,11 @@ -//#include -#include +#ifdef ESP8266 + #include +#endif +#ifdef ESP32 + #include +#endif +#include #include "Global.h" void SsdpInit() { @@ -33,9 +38,9 @@ void SsdpInit() { request->send(200, "text/xml", ssdpSend); }); //Если версия 2.0.0 закаментируйте следующую строчку - //SSDP.setDeviceType("upnp:rootdevice"); - //SSDP.setSchemaURL("description.xml"); - //SSDP.begin(); + SSDP.setDeviceType("upnp:rootdevice"); + SSDP.setSchemaURL("description.xml"); + SSDP.begin(); } String xmlNode(String tags, String data) { From 25d58d34718426f30b48a9c47a15c71f18bbe09f Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 20:17:39 +0300 Subject: [PATCH 33/96] Scenario class --- include/Class/ScenarioClass.h | 111 ++++++++++++++++++++++++++++++++++ include/Global.h | 7 ++- src/Class/ScenarioClass.cpp | 2 + src/Cmd.cpp | 10 +-- src/Global.cpp | 7 ++- src/MqttClient.cpp | 12 ++-- src/Scenario.cpp | 110 +++++++++++++++++---------------- src/main.cpp | 5 +- 8 files changed, 194 insertions(+), 70 deletions(-) create mode 100644 include/Class/ScenarioClass.h create mode 100644 src/Class/ScenarioClass.cpp diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h new file mode 100644 index 00000000..754ddd96 --- /dev/null +++ b/include/Class/ScenarioClass.h @@ -0,0 +1,111 @@ +#pragma once +#include + +#include "Cmd.h" +#include "Global.h" + +class Scenario { + protected: + String _scenarioTmp; + + String _condition; + String _conditionParam; + String _conditionSign; + String _conditionValue; + + String _scenBlok; + + String _event; + String _eventParam; + String _eventValue; + + public: + Scenario() : _scenarioTmp{""}, + + _condition{""}, + _conditionParam{""}, + _conditionSign{""}, + _conditionValue{""}, + + _scenBlok{""}, + + _event{""}, + _eventParam{""}, + _eventValue{""} + + {}; + + void load(String& scenario) { + _scenarioTmp = scenario; + } + + void calculate() { + _scenarioTmp += "\n"; + _scenarioTmp.replace("\r\n", "\n"); + _scenarioTmp.replace("\r", "\n"); + + _scenBlok = selectToMarker(_scenarioTmp, "end"); + _condition = selectToMarker(_scenBlok, "\n"); + _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); + _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); + _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); + _eventValue = jsonReadStr(configLiveJson, _conditionParam); + } + + void delOneScenBlock() { + _scenarioTmp = deleteBeforeDelimiter(_scenarioTmp, "end\n"); + //Serial.println(_scenarioTmp); + } + + void delOneEvent() { + eventBuf = deleteBeforeDelimiter(eventBuf, ","); + } + + bool checkIncommingEvent() { + bool ret = false; + if (_conditionParam == _eventParam) ret = true; + return ret; + } + + bool compare() { + boolean flag = false; + + if (_conditionSign == "=") { + flag = _eventParam == _conditionValue; + } else if (_conditionSign == "!=") { + flag = _eventParam != _conditionValue; + } else if (_conditionSign == "<") { + flag = _eventParam.toInt() < _conditionValue.toInt(); + } else if (_conditionSign == ">") { + flag = _eventParam.toInt() > _conditionValue.toInt(); + } else if (_conditionSign == ">=") { + flag = _eventParam.toInt() >= _conditionValue.toInt(); + } else if (_conditionSign == "<=") { + flag = _eventParam.toInt() <= _conditionValue.toInt(); + } + + return flag; + } + + void loop() { + this->load(scenario); //после этого мы получили все сценарии + //Serial.println("loaded"); + + while (_scenarioTmp.length()) { + + this->calculate(); //получаем данные для первого блока + + if (this->checkIncommingEvent()) { + if (this->compare()) { + _scenBlok = deleteBeforeDelimiter(_scenBlok, "\n"); + spaceExecute(_scenBlok); + Serial.println(_scenBlok); + } + } + + this->delOneScenBlock(); //удалим использованный блок + } + this->delOneEvent(); + } +}; +extern Scenario* myScenario; \ No newline at end of file diff --git a/include/Global.h b/include/Global.h index d93a5be9..4911fdb2 100644 --- a/include/Global.h +++ b/include/Global.h @@ -80,9 +80,14 @@ extern String configOptionJson; //для трансфера // Mqtt extern String chipId; extern String prex; + extern String all_widgets; + extern String scenario; -extern String order_loop; + +//orders and events +extern String orderBuf; +extern String eventBuf; extern String itemsFile; extern String itemsLine; diff --git a/src/Class/ScenarioClass.cpp b/src/Class/ScenarioClass.cpp new file mode 100644 index 00000000..d066cc62 --- /dev/null +++ b/src/Class/ScenarioClass.cpp @@ -0,0 +1,2 @@ +#include "Class/ScenarioClass.h" +Scenario* myScenario; \ No newline at end of file diff --git a/src/Cmd.cpp b/src/Cmd.cpp index 528403ac..f82b5b95 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -478,9 +478,9 @@ void firmwareVersion() { } void addCommandLoop(const String &cmdStr) { - order_loop += cmdStr; + orderBuf += cmdStr; if (!cmdStr.endsWith(",")) { - order_loop += ","; + orderBuf += ","; } } @@ -515,11 +515,11 @@ void spaceExecute(String &cmdStr) { } void loopCmd() { - if (order_loop.length()) { - String tmp = selectToMarker(order_loop, ","); //выделяем первую команду rel 5 1, + if (orderBuf.length()) { + String tmp = selectToMarker(orderBuf, ","); //выделяем первую команду rel 5 1, pm.info("do: " + tmp); sCmd.readStr(tmp); //выполняем - order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем + orderBuf = deleteBeforeDelimiter(orderBuf, ","); //осекаем } } diff --git a/src/Global.cpp b/src/Global.cpp index aa11740f..5298c961 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -35,9 +35,14 @@ String configOptionJson = "{}"; // Mqtt String chipId = ""; String prex = ""; + String all_widgets = ""; + String scenario = ""; -String order_loop = ""; + +//orders and events +String orderBuf = ""; +String eventBuf = ""; String itemsFile = ""; String itemsLine = ""; diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 9e6c1b32..e9258605 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -148,15 +148,15 @@ void handleSubscribedUpdates(char* topic, uint8_t* payload, size_t length) { String key = selectFromMarkerToMarker(topicStr, "/", 3); - order_loop += key; - order_loop += " "; - order_loop += payloadStr; - order_loop += ","; + orderBuf += key; + orderBuf += " "; + orderBuf += payloadStr; + orderBuf += ","; } else if (topicStr.indexOf("order")) { payloadStr.replace("_", " "); - order_loop += payloadStr; - order_loop += ","; + orderBuf += payloadStr; + orderBuf += ","; } else if (topicStr.indexOf("update")) { if (payloadStr == "1") { diff --git a/src/Scenario.cpp b/src/Scenario.cpp index 51ff5875..06bf5fa8 100644 --- a/src/Scenario.cpp +++ b/src/Scenario.cpp @@ -1,88 +1,81 @@ -#include "Global.h" #include "Cmd.h" +#include "Global.h" +#include "Class/ScenarioClass.h" static const char* MODULE = "Scen"; boolean isScenarioEnabled() { - return jsonReadBool(configSetupJson, "scen") && jsonReadStr(configOptionJson, "scenario_status") != ""; + return jsonReadBool(configSetupJson, "scen") && eventBuf != ""; } void loopScenario() { if (!isScenarioEnabled()) { return; } - String str = scenario; - str += "\n"; - str.replace("\r\n", "\n"); - str.replace("\r", "\n"); + String scenarioTmp = scenario; + scenarioTmp += "\n"; + scenarioTmp.replace("\r\n", "\n"); + scenarioTmp.replace("\r", "\n"); - size_t i = 0; - while (str.length()) { - String block = selectToMarker(str, "end"); - if (!block.length()) { + while (scenarioTmp.length()) { + String scenBlok = selectToMarker(scenarioTmp, "end"); //выделяем первый сценарий + if (!scenBlok.length()) { return; } + + size_t i = 0; i++; if (scenario_line_status[i] == 1) { - //выделяем первую строку самого сценария button1 = 1 (условие) - String condition = selectToMarker(block, "\n"); - String param_name = selectFromMarkerToMarker(condition, " ", 0); - String order = jsonReadStr(configOptionJson, "scenario_status"); //читаем весь файл событий - String param = selectToMarker(order, ","); //читаем первое событие из файла событий - if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку - String sign = selectFromMarkerToMarker(condition, " ", 1); //читаем знак (=) - String value = selectFromMarkerToMarker(condition, " ", 2); //читаем значение (1) - if (value.indexOf("digit") != -1) { - // value = add_set(value); - value = jsonReadStr(configLiveJson, value); - } - if (value.indexOf("time") != -1) { - // value = add_set(value); - value = jsonReadStr(configLiveJson, value); - } - // если условие выполнилось, тогда начинаем выполнять комнады + String condition = selectToMarker(scenBlok, "\n"); //выделяем условие + + String conditionParam = selectFromMarkerToMarker(condition, " ", 0); //выделяем параметр условия + String order = eventBuf; + String eventParam = selectToMarker(order, ","); //выделяем параметр события + + if (conditionParam == eventParam) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку + + String conditionSign = selectFromMarkerToMarker(condition, " ", 1); //выделяем знак (=) + + String conditionValue = selectFromMarkerToMarker(condition, " ", 2); //выделяем значение (1) + boolean flag = false; - String param = jsonReadStr(configLiveJson, param_name); - if (sign == "=") { - flag = param == value; - } else if (sign == "!=") { - flag = param != value; - } else if (sign == "<") { - flag = param.toInt() < value.toInt(); - } else if (sign == ">") { - flag = param.toInt() > value.toInt(); - } else if (sign == ">=") { - flag = param.toInt() >= value.toInt(); - } else if (sign == "<=") { - flag = param.toInt() <= value.toInt(); + + String eventParam = jsonReadStr(configLiveJson, conditionParam); //получаем значение этого параметра события из json + + if (conditionSign == "=") { + flag = eventParam == conditionValue; + } else if (conditionSign == "!=") { + flag = eventParam != conditionValue; + } else if (conditionSign == "<") { + flag = eventParam.toInt() < conditionValue.toInt(); + } else if (conditionSign == ">") { + flag = eventParam.toInt() > conditionValue.toInt(); + } else if (conditionSign == ">=") { + flag = eventParam.toInt() >= conditionValue.toInt(); + } else if (conditionSign == "<=") { + flag = eventParam.toInt() <= conditionValue.toInt(); } if (flag) { - // удаляем строку самого сценария оставляя только команды - block = deleteBeforeDelimiter(block, "\n"); - pm.info("do: " + block); - // выполняем все команды - spaceExecute(block); + scenBlok = deleteBeforeDelimiter(scenBlok, "\n"); // удаляем строку самого сценария оставляя только команды + pm.info("do: " + scenBlok); + spaceExecute(scenBlok); // выполняем все команды } } } - str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий - //----------------------------------------------------------------------------------------------------------------------- + scenarioTmp = deleteBeforeDelimiter(scenarioTmp, "end\n"); //удаляем первый сценарий } - String tmp2 = jsonReadStr(configOptionJson, "scenario_status"); //читаем файл событий - tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие - jsonWriteStr(configOptionJson, "scenario_status", tmp2); //записываем обновленный файл событий + + String eventBufTmp = eventBuf; //читаем файл событий + eventBufTmp = deleteBeforeDelimiter(eventBufTmp, ","); //удаляем выполненное событие + eventBuf = eventBufTmp; //записываем обновленный файл событий } -// событие: имя + Set + номер -// button+Set+1 void eventGen(String event_name, String number) { if (!jsonReadBool(configSetupJson, "scen")) { return; } - // генерирование события - String tmp = jsonReadStr(configOptionJson, "scenario_status"); - jsonWriteStr(configOptionJson, "scenario_status", tmp + event_name + number + ","); + eventBuf = event_name + number + ","; } String add_set(String str) { @@ -96,4 +89,9 @@ String add_set(String str) { } } return str; -} \ No newline at end of file +} + +//button-out1 = 1 +//button-out2 1 +//button-out3 1 +//end \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 97f15ff5..a555c761 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,7 @@ #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/Switch.h" +#include "Class/ScenarioClass.h" #include "Cmd.h" #include "ItemsList.h" #include "Global.h" @@ -29,6 +30,7 @@ void setup() { setChipId(); myNotAsincActions = new NotAsinc(do_LAST); + myScenario = new Scenario(); pm.info("FS"); fileSystemInit(); @@ -100,7 +102,8 @@ void loop() { timeNow->loop(); MqttClient::loop(); mySwitch->loop(); - loopScenario(); + myScenario->loop(); + //loopScenario(); loopCmd(); loopSerial(); From 61f1ad64a16e95a690d1e6431412ca71e3d6af7c Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 22:14:35 +0300 Subject: [PATCH 34/96] Scenario class in working condition --- include/Class/ScenarioClass.h | 63 ++++++++++++++++++++--------------- src/Cmd.cpp | 8 +---- src/main.cpp | 31 ++++++----------- 3 files changed, 48 insertions(+), 54 deletions(-) diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h index 754ddd96..47bd0112 100644 --- a/include/Class/ScenarioClass.h +++ b/include/Class/ScenarioClass.h @@ -35,20 +35,31 @@ class Scenario { {}; - void load(String& scenario) { + void load() { _scenarioTmp = scenario; } + //button-out1 = 1 + //button-out2 1 + //button-out3 1 + //end + void calculate() { _scenarioTmp += "\n"; _scenarioTmp.replace("\r\n", "\n"); _scenarioTmp.replace("\r", "\n"); - _scenBlok = selectToMarker(_scenarioTmp, "end"); - _condition = selectToMarker(_scenBlok, "\n"); - _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); - _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); - _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); + _scenBlok = selectToMarker(_scenarioTmp, "end\n"); + + _condition = selectToMarker(_scenBlok, "\n"); //button-out1 = 1 + + _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); //button-out1 + _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); //= + _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); //1 + + if (!isDigitStr(_conditionValue)) _conditionValue = jsonReadStr(configLiveJson, _conditionValue); + + _eventParam = selectToMarker(eventBuf, ","); _eventValue = jsonReadStr(configLiveJson, _conditionParam); } @@ -61,48 +72,48 @@ class Scenario { eventBuf = deleteBeforeDelimiter(eventBuf, ","); } - bool checkIncommingEvent() { + bool isIncommingEventInScenario() { bool ret = false; - if (_conditionParam == _eventParam) ret = true; + if (_conditionParam == _eventParam) { + ret = true; + //Serial.println("true"); + } return ret; } - bool compare() { + bool isConditionSatisfied() { boolean flag = false; if (_conditionSign == "=") { - flag = _eventParam == _conditionValue; + flag = _eventValue == _conditionValue; } else if (_conditionSign == "!=") { - flag = _eventParam != _conditionValue; + flag = _eventValue != _conditionValue; } else if (_conditionSign == "<") { - flag = _eventParam.toInt() < _conditionValue.toInt(); + flag = _eventValue.toInt() < _conditionValue.toInt(); } else if (_conditionSign == ">") { - flag = _eventParam.toInt() > _conditionValue.toInt(); + flag = _eventValue.toInt() > _conditionValue.toInt(); } else if (_conditionSign == ">=") { - flag = _eventParam.toInt() >= _conditionValue.toInt(); + flag = _eventValue.toInt() >= _conditionValue.toInt(); } else if (_conditionSign == "<=") { - flag = _eventParam.toInt() <= _conditionValue.toInt(); + flag = _eventValue.toInt() <= _conditionValue.toInt(); } + if (flag) Serial.println("[I] Scenario event: " + _condition); + return flag; } void loop() { - this->load(scenario); //после этого мы получили все сценарии - //Serial.println("loaded"); - - while (_scenarioTmp.length()) { - - this->calculate(); //получаем данные для первого блока - - if (this->checkIncommingEvent()) { - if (this->compare()) { + this->load(); //после этого мы получили все сценарии + while (_scenarioTmp.length() > 1) { + this->calculate(); //получаем данные для первого блока + if (this->isIncommingEventInScenario()) { //если вошедшее событие есть в сценарии + if (this->isConditionSatisfied()) { //если вошедшее событие выполняет условие сценария _scenBlok = deleteBeforeDelimiter(_scenBlok, "\n"); + Serial.println("[>] Making: " + _scenBlok); spaceExecute(_scenBlok); - Serial.println(_scenBlok); } } - this->delOneScenBlock(); //удалим использованный блок } this->delOneEvent(); diff --git a/src/Cmd.cpp b/src/Cmd.cpp index f82b5b95..d631e1e8 100644 --- a/src/Cmd.cpp +++ b/src/Cmd.cpp @@ -131,12 +131,6 @@ void buttonOut() { void buttonOutSet() { String key = sCmd.order(); String state = sCmd.next(); - - Serial.println("=="); - Serial.println(key); - Serial.println(state); - Serial.println("=="); - String pin = jsonReadStr(configOptionJson, key + "_pin"); String inv = jsonReadStr(configOptionJson, key + "_inv"); if (inv == "") { @@ -230,7 +224,7 @@ void handle_time_init() { TIME, 1000, [&](void *) { jsonWriteStr(configLiveJson, "time", timeNow->getTime()); jsonWriteStr(configLiveJson, "timenow", timeNow->getTimeJson()); - eventGen("timenow", ""); + //eventGen("timenow", ""); }, nullptr, true); } diff --git a/src/main.cpp b/src/main.cpp index a555c761..6980f52b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,15 +1,16 @@ +#include + #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" -#include "Class/Switch.h" #include "Class/ScenarioClass.h" +#include "Class/Switch.h" #include "Cmd.h" -#include "ItemsList.h" #include "Global.h" -#include "Utils\WebUtils.h" #include "Init.h" +#include "ItemsList.h" #include "Utils/Timings.h" -#include +#include "Utils\WebUtils.h" void not_async_actions(); @@ -77,8 +78,10 @@ void setup() { SsdpInit(); ts.add( - TEST, 1000 * 60, [&](void*) { - pm.info(printMemoryStatus()); + TEST, 30000, [&](void*) { + //pm.info(printMemoryStatus()); + + //myScenario->loop(); }, nullptr, true); @@ -106,23 +109,11 @@ void loop() { //loopScenario(); loopCmd(); loopSerial(); - + myNotAsincActions->loop(); ts.update(); } - - - - - - - - - - - - void clock_init() { timeNow = new Clock(); timeNow->setNtpPool(jsonReadStr(configSetupJson, "ntp")); @@ -134,5 +125,3 @@ void clock_init() { }, nullptr, true); } - - From 490a2f1f5b2e4ea7119408acd56a9127686c2bff Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 23:02:19 +0300 Subject: [PATCH 35/96] optimization of scenario --- include/Class/ScenarioClass.h | 58 +++++++++++++++-------------------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h index 47bd0112..2576064b 100644 --- a/include/Class/ScenarioClass.h +++ b/include/Class/ScenarioClass.h @@ -39,48 +39,39 @@ class Scenario { _scenarioTmp = scenario; } - //button-out1 = 1 - //button-out2 1 - //button-out3 1 - //end - - void calculate() { - _scenarioTmp += "\n"; - _scenarioTmp.replace("\r\n", "\n"); - _scenarioTmp.replace("\r", "\n"); - + void calculate1() { _scenBlok = selectToMarker(_scenarioTmp, "end\n"); - - _condition = selectToMarker(_scenBlok, "\n"); //button-out1 = 1 - - _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); //button-out1 - _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); //= - _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); //1 - - if (!isDigitStr(_conditionValue)) _conditionValue = jsonReadStr(configLiveJson, _conditionValue); - + _condition = selectToMarker(_scenBlok, "\n"); + _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); _eventParam = selectToMarker(eventBuf, ","); - _eventValue = jsonReadStr(configLiveJson, _conditionParam); - } - - void delOneScenBlock() { - _scenarioTmp = deleteBeforeDelimiter(_scenarioTmp, "end\n"); - //Serial.println(_scenarioTmp); - } - - void delOneEvent() { - eventBuf = deleteBeforeDelimiter(eventBuf, ","); } bool isIncommingEventInScenario() { bool ret = false; if (_conditionParam == _eventParam) { ret = true; - //Serial.println("true"); } return ret; } + void calculate2() { + _scenarioTmp += "\n"; + _scenarioTmp.replace("\r\n", "\n"); + _scenarioTmp.replace("\r", "\n"); + _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); + _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); + if (!isDigitStr(_conditionValue)) _conditionValue = jsonReadStr(configLiveJson, _conditionValue); + _eventValue = jsonReadStr(configLiveJson, _conditionParam); + } + + void delOneScenBlock() { + _scenarioTmp = deleteBeforeDelimiter(_scenarioTmp, "end\n"); + } + + void delOneEvent() { + eventBuf = deleteBeforeDelimiter(eventBuf, ","); + } + bool isConditionSatisfied() { boolean flag = false; @@ -106,11 +97,12 @@ class Scenario { void loop() { this->load(); //после этого мы получили все сценарии while (_scenarioTmp.length() > 1) { - this->calculate(); //получаем данные для первого блока + this->calculate1(); if (this->isIncommingEventInScenario()) { //если вошедшее событие есть в сценарии - if (this->isConditionSatisfied()) { //если вошедшее событие выполняет условие сценария + this->calculate2(); + if (this->isConditionSatisfied()) { //если вошедшее событие выполняет условие сценария _scenBlok = deleteBeforeDelimiter(_scenBlok, "\n"); - Serial.println("[>] Making: " + _scenBlok); + //Serial.println(" [>] Making: " + _scenBlok); spaceExecute(_scenBlok); } } From 786468e0b9bb3787d541308fba69993c6920a6b5 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 23:30:04 +0300 Subject: [PATCH 36/96] optimization scenario --- include/Class/ScenarioClass.h | 20 +++++++++----------- src/main.cpp | 6 ++---- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h index 2576064b..ead99d5b 100644 --- a/include/Class/ScenarioClass.h +++ b/include/Class/ScenarioClass.h @@ -1,39 +1,30 @@ #pragma once #include - #include "Cmd.h" #include "Global.h" class Scenario { protected: String _scenarioTmp; - String _condition; String _conditionParam; String _conditionSign; String _conditionValue; - String _scenBlok; - String _event; String _eventParam; String _eventValue; public: Scenario() : _scenarioTmp{""}, - _condition{""}, _conditionParam{""}, _conditionSign{""}, _conditionValue{""}, - _scenBlok{""}, - _event{""}, _eventParam{""}, - _eventValue{""} - - {}; + _eventValue{""} {}; void load() { _scenarioTmp = scenario; @@ -95,9 +86,12 @@ class Scenario { } void loop() { + if (!this->isScenarioEnabled()) { + return; + } this->load(); //после этого мы получили все сценарии while (_scenarioTmp.length() > 1) { - this->calculate1(); + this->calculate1(); if (this->isIncommingEventInScenario()) { //если вошедшее событие есть в сценарии this->calculate2(); if (this->isConditionSatisfied()) { //если вошедшее событие выполняет условие сценария @@ -110,5 +104,9 @@ class Scenario { } this->delOneEvent(); } + + bool isScenarioEnabled() { + return jsonReadBool(configSetupJson, "scen") && eventBuf != ""; + } }; extern Scenario* myScenario; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 6980f52b..fbd877f1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -78,10 +78,8 @@ void setup() { SsdpInit(); ts.add( - TEST, 30000, [&](void*) { - //pm.info(printMemoryStatus()); - - //myScenario->loop(); + TEST, 1000 * 60, [&](void*) { + pm.info(printMemoryStatus()); }, nullptr, true); From 01248f41da466a292dfc089685502446166ae11e Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sat, 29 Aug 2020 23:33:45 +0300 Subject: [PATCH 37/96] esp32 --- platformio.ini | 2 +- src/main.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index c190c5f2..20597547 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [platformio] -default_envs = esp8266 +default_envs = esp32 [common_env_data] lib_deps_external = diff --git a/src/main.cpp b/src/main.cpp index fbd877f1..c8c68db9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,5 @@ #include - #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/ScenarioClass.h" From 86ee523182965adce56465fc4486197c603edd38 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sun, 30 Aug 2020 00:12:11 +0300 Subject: [PATCH 38/96] esp32 compiling version --- include/Consts.h | 6 +++++- include/FSEditor.h | 5 +++-- include/SSDP.h | 4 +++- include/Servo/Servos.h | 6 +++++- platformio.ini | 34 ++++++++++++++++++---------------- src/FSEditor.cpp | 3 ++- src/SSDP.cpp | 4 +++- src/Servo/Servs.cpp | 3 ++- src/Upgrade.cpp | 4 ++-- src/Utils/WiFiUtils.cpp | 2 +- src/WebServer.cpp | 2 ++ src/main.cpp | 4 +++- 12 files changed, 49 insertions(+), 28 deletions(-) diff --git a/include/Consts.h b/include/Consts.h index cf398039..ae6ec4b0 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -46,11 +46,15 @@ #define BME_ENABLED +//#define FSEditor + +//#define SSDP + /* * Gears */ #define STEPPER_ENABLED -#define SERVO_ENABLED +//#define SERVO_ENABLED /* * Other diff --git a/include/FSEditor.h b/include/FSEditor.h index 394fb0e2..72fefb9d 100644 --- a/include/FSEditor.h +++ b/include/FSEditor.h @@ -1,5 +1,5 @@ #pragma once - +#ifdef FSEditor #include #include @@ -25,4 +25,5 @@ class FSEditor : public AsyncWebHandler { virtual void handleRequest(AsyncWebServerRequest* request) override final; virtual void handleUpload(AsyncWebServerRequest* request, const String& filename, size_t index, uint8_t* data, size_t len, bool final) override final; virtual bool isRequestHandlerTrivial() override final { return false; } -}; \ No newline at end of file +}; +#endif \ No newline at end of file diff --git a/include/SSDP.h b/include/SSDP.h index 12b6f6e1..6eaff70c 100644 --- a/include/SSDP.h +++ b/include/SSDP.h @@ -1,6 +1,8 @@ #pragma once +#ifdef SSDP #include extern void SsdpInit(); extern String xmlNode(String tags, String data); -extern String decToHex(uint32_t decValue, byte desiredStringLength); \ No newline at end of file +extern String decToHex(uint32_t decValue, byte desiredStringLength); +#endif \ No newline at end of file diff --git a/include/Servo/Servos.h b/include/Servo/Servos.h index c4ac44dd..2ff3e1ec 100644 --- a/include/Servo/Servos.h +++ b/include/Servo/Servos.h @@ -1,6 +1,8 @@ #pragma once +#ifdef SERVO_ENABLED #include +#include #include struct Servo_t { @@ -22,4 +24,6 @@ class Servos { std::vector _items; }; -extern Servos myServo; \ No newline at end of file +extern Servos myServo; + +#endif \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 20597547..7e349997 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [platformio] -default_envs = esp32 +default_envs = esp8266 [common_env_data] lib_deps_external = @@ -25,21 +25,6 @@ lib_deps_internal = GyverFilters OneWire -[env:esp32] -framework = arduino -board = esp32dev -platform = https://github.com/platformio/platform-espressif32.git -lib_deps = - ${common_env_data.lib_deps_external} - ${common_env_data.lib_deps_internal} - AsyncTCP - ESP32Servo - LITTLEFS -monitor_filters = esp32_exception_decoder -upload_speed = 921600 -monitor_speed = 115200 -board_build.filesystem = littlefs - [env:esp8266_01_1m] framework = arduino board = esp01_1m @@ -73,6 +58,23 @@ monitor_speed = 115200 board_build.filesystem = littlefs board_build.f_cpu = 160000000L +[env:esp32] +framework = arduino +board = esp32dev +platform = https://github.com/platformio/platform-espressif32.git +build_flags = ${env.build_flags} -D=${PIOENV} +extra_scripts = ./tools/littlefsbuilder.py +lib_deps = + ${common_env_data.lib_deps_external} + ${common_env_data.lib_deps_internal} + AsyncTCP + ESP32Servo + LITTLEFS +monitor_filters = esp32_exception_decoder +upload_speed = 921600 +monitor_speed = 115200 +board_build.filesystem = littlefs + ; build_type = debug ; build_flags = ; -DDEBUG_ESP_CORE diff --git a/src/FSEditor.cpp b/src/FSEditor.cpp index bdaa5129..50a53639 100644 --- a/src/FSEditor.cpp +++ b/src/FSEditor.cpp @@ -1,5 +1,5 @@ +#ifdef FSEditor #include "FSEditor.h" - #ifdef ESP32 #include "LITTLEFS.h" #define LittleFS LITTLEFS @@ -324,3 +324,4 @@ void FSEditor::handleUpload(AsyncWebServerRequest *request, const String &filena } } } +#endif \ No newline at end of file diff --git a/src/SSDP.cpp b/src/SSDP.cpp index 0b044e4b..3f0d4544 100644 --- a/src/SSDP.cpp +++ b/src/SSDP.cpp @@ -1,3 +1,4 @@ +#ifdef SSDP #ifdef ESP8266 #include #endif @@ -52,4 +53,5 @@ String decToHex(uint32_t decValue, byte desiredStringLength) { String hexString = String(decValue, HEX); while (hexString.length() < desiredStringLength) hexString = "0" + hexString; return hexString; -} \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/src/Servo/Servs.cpp b/src/Servo/Servs.cpp index 96ebba91..8667baa0 100644 --- a/src/Servo/Servs.cpp +++ b/src/Servo/Servs.cpp @@ -1,5 +1,5 @@ +#ifdef SERVO_ENABLED #include "Servo/Servos.h" - Servos myServo; Servos::Servos(){}; @@ -38,3 +38,4 @@ Servo *Servos::get(uint8_t num) { size_t Servos::count() { return _items.size(); } +#endif diff --git a/src/Upgrade.cpp b/src/Upgrade.cpp index effac97c..5a38e5cf 100644 --- a/src/Upgrade.cpp +++ b/src/Upgrade.cpp @@ -59,7 +59,7 @@ void upgrade_firmware() { t_httpUpdate_return ret = ESPhttpUpdate.updateSpiffs(wifiClient, "http://91.204.228.124:1100/update/esp8266/esp32-esp8266_iot-manager_modules_firmware.spiffs.bin"); #else httpUpdate.rebootOnUpdate(false); - t_httpUpdate_return ret = httpUpdate.updateSpiffs(client_for_upgrade, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.spiffs.bin"); + t_httpUpdate_return ret = httpUpdate.updateSpiffs(wifiClient, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.spiffs.bin"); #endif if (ret == HTTP_UPDATE_OK) { writeFile(String(DEVICE_SCENARIO_FILE), scanerioBackup); @@ -78,7 +78,7 @@ void upgrade_firmware() { #ifdef ESP8266 ret = ESPhttpUpdate.update(wifiClient, "http://91.204.228.124:1100/update/esp8266/esp32-esp8266_iot-manager_modules_firmware.ino.bin"); #else - ret = httpUpdate.update(client_for_upgrade, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.ino.bin"); + ret = httpUpdate.update(wifiClient, "http://91.204.228.124:1100/update/esp32/esp32-esp8266_iot-manager_modules_firmware.ino.bin"); #endif if (ret == HTTP_UPDATE_OK) { pm.info("done! restart..."); diff --git a/src/Utils/WiFiUtils.cpp b/src/Utils/WiFiUtils.cpp index 950ec1f2..d28a8933 100644 --- a/src/Utils/WiFiUtils.cpp +++ b/src/Utils/WiFiUtils.cpp @@ -20,7 +20,7 @@ void startSTAMode() { bool keepConnecting = true; uint8_t tries = 20; - sint8_t connRes; + int8_t connRes; do { #ifdef ESP8266 connRes = WiFi.waitForConnectResult(1000); diff --git a/src/WebServer.cpp b/src/WebServer.cpp index cf4ef379..7b31056d 100644 --- a/src/WebServer.cpp +++ b/src/WebServer.cpp @@ -15,10 +15,12 @@ void initWS(); void init() { String login = jsonReadStr(configSetupJson, "weblogin"); String pass = jsonReadStr(configSetupJson, "webpass"); +#ifdef FSEditor #ifdef ESP32 server.addHandler(new FSEditor(LittleFS, login, pass)); #else server.addHandler(new FSEditor(login, pass)); +#endif #endif server.serveStatic("/css/", LittleFS, "/css/").setCacheControl("max-age=600"); diff --git a/src/main.cpp b/src/main.cpp index c8c68db9..745e16f2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ #include + #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/ScenarioClass.h" @@ -72,9 +73,10 @@ void setup() { pm.info("Broadcast UDP"); udpInit(); #endif - +#ifdef SSDP pm.info("Ssdp Init"); SsdpInit(); +#endif ts.add( TEST, 1000 * 60, [&](void*) { From 000576077488541fe87df2e4eb918bfffd5f890b Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sun, 30 Aug 2020 13:55:51 +0300 Subject: [PATCH 39/96] comments --- include/Class/ScenarioClass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h index ead99d5b..ac162f3a 100644 --- a/include/Class/ScenarioClass.h +++ b/include/Class/ScenarioClass.h @@ -91,7 +91,7 @@ class Scenario { } this->load(); //после этого мы получили все сценарии while (_scenarioTmp.length() > 1) { - this->calculate1(); + this->calculate1(); //расчет необходимый для ответа на следующий вопрос if (this->isIncommingEventInScenario()) { //если вошедшее событие есть в сценарии this->calculate2(); if (this->isConditionSatisfied()) { //если вошедшее событие выполняет условие сценария From 3816711f049a265225d2b574fc6eb5bc0babb337 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 31 Aug 2020 01:45:43 +0300 Subject: [PATCH 40/96] optimization --- include/Class/ScenarioClass.h | 5 +++-- src/main.cpp | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/Class/ScenarioClass.h b/include/Class/ScenarioClass.h index ac162f3a..a1499b55 100644 --- a/include/Class/ScenarioClass.h +++ b/include/Class/ScenarioClass.h @@ -33,13 +33,12 @@ class Scenario { void calculate1() { _scenBlok = selectToMarker(_scenarioTmp, "end\n"); _condition = selectToMarker(_scenBlok, "\n"); - _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); _eventParam = selectToMarker(eventBuf, ","); } bool isIncommingEventInScenario() { bool ret = false; - if (_conditionParam == _eventParam) { + if (_condition.indexOf(_eventParam) != -1) { ret = true; } return ret; @@ -49,6 +48,8 @@ class Scenario { _scenarioTmp += "\n"; _scenarioTmp.replace("\r\n", "\n"); _scenarioTmp.replace("\r", "\n"); + + _conditionParam = selectFromMarkerToMarker(_condition, " ", 0); _conditionSign = selectFromMarkerToMarker(_condition, " ", 1); _conditionValue = selectFromMarkerToMarker(_condition, " ", 2); if (!isDigitStr(_conditionValue)) _conditionValue = jsonReadStr(configLiveJson, _conditionValue); diff --git a/src/main.cpp b/src/main.cpp index 745e16f2..67f91d80 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -86,6 +86,23 @@ void setup() { just_load = false; initialized = true; + + String buf = "Geeks-for-Geeks"; + int buf_len = buf.length() + 1; + char char_array[buf_len]; + buf.toCharArray(char_array, buf_len); + char* token = strtok(char_array, "-"); + while (token != NULL) { + printf("%s\n", token); + token = strtok(NULL, "-"); + } + + //char str[] = "Geeks for Geeks"; + //char* token; + //char* rest = str; + //while ((token = strtok_r(rest, " ", &rest))) { + // printf("%s\n", token); + //} } void loop() { From e66b49ddc3e02e85806beb1cadd44ed850511d93 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 31 Aug 2020 01:55:03 +0300 Subject: [PATCH 41/96] test --- include/test.h | 4 ++++ src/main.cpp | 21 +++------------------ src/test.cpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 include/test.h create mode 100644 src/test.cpp diff --git a/include/test.h b/include/test.h new file mode 100644 index 00000000..4383e14d --- /dev/null +++ b/include/test.h @@ -0,0 +1,4 @@ +#pragma once + +void setupTest(); +void loopTest(); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 67f91d80..fdf97fcb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ #include - +#include "test.h" #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/ScenarioClass.h" @@ -87,22 +87,7 @@ void setup() { just_load = false; initialized = true; - String buf = "Geeks-for-Geeks"; - int buf_len = buf.length() + 1; - char char_array[buf_len]; - buf.toCharArray(char_array, buf_len); - char* token = strtok(char_array, "-"); - while (token != NULL) { - printf("%s\n", token); - token = strtok(NULL, "-"); - } - - //char str[] = "Geeks for Geeks"; - //char* token; - //char* rest = str; - //while ((token = strtok_r(rest, " ", &rest))) { - // printf("%s\n", token); - //} + setupTest(); } void loop() { @@ -122,7 +107,7 @@ void loop() { MqttClient::loop(); mySwitch->loop(); myScenario->loop(); - //loopScenario(); + loopTest(); loopCmd(); loopSerial(); diff --git a/src/test.cpp b/src/test.cpp new file mode 100644 index 00000000..57c88450 --- /dev/null +++ b/src/test.cpp @@ -0,0 +1,28 @@ +#include "Global.h" +#include "test.h" + +void setupTest() { + //пример выделения подстрок + String buf = "Geeks-for-Geeks"; + int buf_len = buf.length() + 1; + char char_array[buf_len]; + buf.toCharArray(char_array, buf_len); + + char* token = strtok(char_array, "-"); + + while (token != NULL) { + printf("%s\n", token); + token = strtok(NULL, "-"); + } + + //char str[] = "Geeks for Geeks"; + //char* token; + //char* rest = str; + //while ((token = strtok_r(rest, " ", &rest))) { + // printf("%s\n", token); + //} +} + +void loopTest() { + +} \ No newline at end of file From a9fc6f73f590bf7f38cc7300d0e9e20d2ff530c6 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 31 Aug 2020 02:13:02 +0300 Subject: [PATCH 42/96] test --- include/test.h | 3 ++- src/test.cpp | 16 +++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/test.h b/include/test.h index 4383e14d..6de4739a 100644 --- a/include/test.h +++ b/include/test.h @@ -1,4 +1,5 @@ #pragma once void setupTest(); -void loopTest(); \ No newline at end of file +void loopTest(); +//char stringToCharArray(String in); \ No newline at end of file diff --git a/src/test.cpp b/src/test.cpp index 57c88450..e810dec3 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -1,15 +1,14 @@ -#include "Global.h" #include "test.h" +#include "Global.h" + void setupTest() { //пример выделения подстрок String buf = "Geeks-for-Geeks"; int buf_len = buf.length() + 1; char char_array[buf_len]; buf.toCharArray(char_array, buf_len); - char* token = strtok(char_array, "-"); - while (token != NULL) { printf("%s\n", token); token = strtok(NULL, "-"); @@ -24,5 +23,12 @@ void setupTest() { } void loopTest() { - -} \ No newline at end of file +} + +//char stringToCharArray(int& i, String in) { +// int in_len = in.length() + 1; +// i = in_len; +// char char_array[in_len]; +// in.toCharArray(char_array, in_len); +// return char_array[in_len]; +//} \ No newline at end of file From a8e779901192176967cd5a89f2b66b228a7f30cc Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 2 Sep 2020 22:08:39 +0300 Subject: [PATCH 43/96] change --- data/config.json | 4 ++-- include/Consts.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/config.json b/data/config.json index 7aa21254..34c25c56 100644 --- a/data/config.json +++ b/data/config.json @@ -3,8 +3,8 @@ "chipID": "", "apssid": "IoTmanager", "appass": "", - "routerssid": "VOLODYA", - "routerpass": "BELCHENKO", + "routerssid": "rise", + "routerpass": "hostel3333", "timezone": 2, "ntp": "pool.ntp.org", "mqttServer": "91.204.228.124", diff --git a/include/Consts.h b/include/Consts.h index ae6ec4b0..22194c29 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -46,7 +46,7 @@ #define BME_ENABLED -//#define FSEditor +#define FSEditor //#define SSDP From 26383c0a19c4bdbedaa09ab36187d14daa6a5e24 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 2 Sep 2020 22:31:08 +0300 Subject: [PATCH 44/96] 123 --- .vscode/extensions.json | 7 ----- .vscode/settings.json | 66 ----------------------------------------- include/FSEditor.h | 5 ++-- src/FSEditor.cpp | 3 +- src/main.cpp | 4 +++ 5 files changed, 7 insertions(+), 78 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index e80666bf..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 03d0d454..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "terminal.integrated.env.windows": { - "PATH": "C:\\Users\\ytrikoz\\.platformio\\penv\\Scripts;C:\\Users\\ytrikoz\\.platformio\\penv;C:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Git\\cmd\\;c:\\android-studio\\jre\\jre\\bin\\;C:\\Program Files (x86)\\Microsoft SQL Server\\150\\DTS\\Binn\\;C:\\Front\\Shared\\;C:\\Program Files (x86)\\Plantronics\\Spokes3G\\;C:\\Program Files\\Microsoft SQL Server\\130\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\170\\Tools\\Binn\\;C:\\Program Files\\nodejs\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\Users\\ytrikoz\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\ytrikoz\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\ytrikoz\\AppData\\Roaming\\npm;C:\\MinGW\\bin;;C:\\Program Files (x86)\\West Wind Html Help Builder;C:\\Program Files (x86)\\Borland\\Delphi7\\Bin;C:\\Program Files (x86)\\Borland\\Delphi7\\Projects\\Bpl\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Git\\cmd\\;c:\\android-studio\\jre\\jre\\bin\\;C:\\Program Files (x86)\\Microsoft SQL Server\\150\\DTS\\Binn\\;C:\\Front\\Shared\\;C:\\Program Files (x86)\\Plantronics\\Spokes3G\\;C:\\Program Files\\Microsoft SQL Server\\130\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\170\\Tools\\Binn\\;C:\\Program Files\\nodejs\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\Users\\ytrikoz\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\ytrikoz\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\ytrikoz\\AppData\\Roaming\\npm;C:\\MinGW\\bin;;C:\\Program Files (x86)\\West Wind Html Help Builder", - "PLATFORMIO_CALLER": "vscode" - }, - "files.associations": { - "*.cpp": "cpp", - "functional": "cpp", - "*.tcc": "cpp", - "optional": "cpp", - "ratio": "cpp", - "system_error": "cpp", - "array": "cpp", - "regex": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "bitset": "cpp", - "chrono": "cpp", - "algorithm": "cpp", - "random": "cpp", - "atomic": "cpp", - "cctype": "cpp", - "cerrno": "cpp", - "cfloat": "cpp", - "climits": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "deque": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "string": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "iterator": "cpp", - "memory": "cpp", - "numeric": "cpp", - "fstream": "cpp", - "initializer_list": "cpp", - "ios": "cpp", - "iosfwd": "cpp", - "istream": "cpp", - "limits": "cpp", - "locale": "cpp", - "new": "cpp", - "ostream": "cpp", - "queue": "cpp", - "sstream": "cpp", - "stack": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "cinttypes": "cpp", - "cstdbool": "cpp", - "typeinfo": "cpp" - } -} \ No newline at end of file diff --git a/include/FSEditor.h b/include/FSEditor.h index 72fefb9d..394fb0e2 100644 --- a/include/FSEditor.h +++ b/include/FSEditor.h @@ -1,5 +1,5 @@ #pragma once -#ifdef FSEditor + #include #include @@ -25,5 +25,4 @@ class FSEditor : public AsyncWebHandler { virtual void handleRequest(AsyncWebServerRequest* request) override final; virtual void handleUpload(AsyncWebServerRequest* request, const String& filename, size_t index, uint8_t* data, size_t len, bool final) override final; virtual bool isRequestHandlerTrivial() override final { return false; } -}; -#endif \ No newline at end of file +}; \ No newline at end of file diff --git a/src/FSEditor.cpp b/src/FSEditor.cpp index 50a53639..bdaa5129 100644 --- a/src/FSEditor.cpp +++ b/src/FSEditor.cpp @@ -1,5 +1,5 @@ -#ifdef FSEditor #include "FSEditor.h" + #ifdef ESP32 #include "LITTLEFS.h" #define LittleFS LITTLEFS @@ -324,4 +324,3 @@ void FSEditor::handleUpload(AsyncWebServerRequest *request, const String &filena } } } -#endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index fdf97fcb..f5ecc388 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,10 @@ #include +<<<<<<< HEAD #include "test.h" +======= + +>>>>>>> parent of 01248f4... esp32 #include "Class/CallBackTest.h" #include "Class/NotAsinc.h" #include "Class/ScenarioClass.h" From 70096c71c87ce04832012a11ad5595738493eb44 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 2 Sep 2020 22:33:03 +0300 Subject: [PATCH 45/96] revert --- .gitignore | 7 - data/.exclude.files | 2 - data/config.json | 22 - data/css/build.css.gz | Bin 15958 -> 0 bytes data/edit.htm | 658 --- data/favicon.ico | Bin 1150 -> 0 bytes data/icon.jpeg | Bin 15396 -> 0 bytes data/index.htm.gz | Bin 2008 -> 0 bytes data/index.json | 69 - data/items/analog-adc.txt | 1 - data/items/button-in.txt | 1 - data/items/button-out-i.txt | 1 - data/items/button-out-np.txt | 1 - data/items/button-out-p.txt | 1 - data/items/input-digit.txt | 1 - data/items/input-time.txt | 1 - data/items/output-text.txt | 1 - data/items/pwm-out.txt | 1 - data/items/signs.json | 5 - data/js/build.chart.js.gz | Bin 12758 -> 0 bytes data/js/function.js.gz | Bin 19968 -> 0 bytes data/lang/lang.ru.json | 39 - data/s.conf.csv | 1 - data/s.scen.txt | 1 - data/set.device.json | 143 - data/set.deviceold.json | 143 - data/set.mqtt.json | 133 - data/set.push.json | 51 - data/set.udp.json | 96 - data/set.utilities.json | 39 - data/set.wifi.json | 185 - data/widgets/alarm.json | 6 - data/widgets/anydata.json | 5 - data/widgets/chart.json | 5 - data/widgets/fillgauge.json | 7 - data/widgets/inputDate.json | 6 - data/widgets/inputDigit.json | 5 - data/widgets/inputText.json | 6 - data/widgets/inputTime.json | 5 - data/widgets/progress-line.json | 12 - data/widgets/progress-round.json | 11 - data/widgets/range.json | 9 - data/widgets/select.json | 7 - data/widgets/toggle.json | 5 - doc/1.txt | 566 -- doc/2.txt | 85 - doc/3.txt | 32 - doc/conf/c001.txt | 3 - doc/conf/c002.txt | 6 - doc/conf/c003.txt | 4 - doc/conf/c004.txt | 3 - doc/conf/c005.txt | 4 - doc/conf/c006.txt | 6 - doc/conf/c007.txt | 6 - doc/conf/c008.txt | 6 - doc/conf/c009.txt | 7 - doc/conf/c010.txt | 7 - doc/conf/c011.txt | 8 - doc/conf/c012.txt | 6 - doc/conf/c013.txt | 9 - doc/conf/c014.txt | 7 - doc/conf/c015.txt | 12 - doc/conf/c016.txt | 12 - doc/conf/c017.txt | 11 - doc/conf/c018.txt | 12 - doc/conf/c019.txt | 17 - doc/conf/c020.txt | 17 - doc/conf/c021.txt | 7 - doc/conf/c100.txt | 12 - doc/conf/s001.txt | 1 - doc/conf/s002.txt | 6 - doc/conf/s003.txt | 6 - doc/conf/s004.txt | 8 - doc/conf/s005.txt | 3 - doc/conf/s006.txt | 8 - doc/conf/s007.txt | 4 - doc/conf/s008.txt | 1 - doc/conf/s009.txt | 1 - doc/conf/s010.txt | 1 - doc/conf/s011.txt | 1 - doc/conf/s012.txt | 1 - doc/conf/s013.txt | 1 - doc/conf/s014.txt | 1 - doc/conf/s015.txt | 6 - doc/conf/s016.txt | 6 - doc/conf/s017.txt | 7 - doc/conf/s018.txt | 10 - doc/conf/s019.txt | 12 - doc/conf/s020.txt | 12 - doc/conf/s021.txt | 6 - doc/conf/s100.txt | 13 - doc/orders.xlsm | Bin 34601 -> 0 bytes doc/pictures/001 iot manager.jpeg | Bin 21218 -> 0 bytes doc/pictures/002 iot manager.jpeg | Bin 29441 -> 0 bytes doc/pictures/003 iot manager.jpeg | Bin 32790 -> 0 bytes doc/pictures/007 iot manager.jpg | Bin 390182 -> 0 bytes include/Bus/BusScanner.h | 56 - include/Bus/BusScannerFactory.h | 18 - include/Bus/I2CScanner.h | 12 - include/Class/CallBackTest.h | 26 - include/Class/Input.h | 33 - include/Class/LineParsing.h | 177 - include/Class/NotAsinc.h | 31 - include/Class/OutputModule.h | 24 - include/Class/Pwm.h | 33 - include/Class/ScenarioClass.h | 113 - include/Class/SensorAnalog.h | 35 - include/Class/SensorConverting.h | 32 - include/Class/Switch.h | 56 - include/Class/button.h | 43 - include/Clock.h | 167 - include/Cmd.h | 98 - include/Consts.h | 138 - include/ESP32.h | 26 - include/ESP8266.h | 19 - include/Errors.h | 52 - include/FSEditor.h | 28 - include/Global.h | 221 - include/HttpServer.h | 9 - include/Init.h | 11 - include/ItemsList.h | 10 - include/Module/CharBuffer.h | 72 - include/Module/CircularBuffer.h | 86 - include/Module/CommandShell.h | 45 - include/Module/EditLine.h | 68 - include/Module/Module.h | 84 - include/Module/Runner.h | 17 - include/Module/Telnet.h | 51 - include/Module/Terminal.h | 186 - include/MqttClient.h | 27 - include/MqttDiscovery.h | 8 - include/SSDP.h | 8 - include/Sensors.h | 3 - include/Servo/Servos.h | 29 - include/Strings_.h | 139 - include/Upgrade.h | 8 - include/Utils/FileHelper.h | 55 - include/Utils/FileUtils.h | 67 - include/Utils/JsonUtils.h | 19 - include/Utils/PrintMessage.h | 33 - include/Utils/StringUtils.h | 29 - include/Utils/SysUtils.h | 17 - include/Utils/TimeUtils.h | 51 - include/Utils/Timings.h | 71 - include/Utils/WebUtils.h | 7 - include/Utils/WiFiUtils.h | 12 - include/Web.h | 6 - include/main.h | 3 - include/test.h | 5 - include/udp_.h | 9 - lib/ESP8266-StringCommand/StringCommand.cpp | 137 - lib/ESP8266-StringCommand/StringCommand.h | 77 - lib/ESP8266-StringCommand/keywords.txt | 23 - lib/ESP8266-StringCommand/readme.md | 5 - .../scripts/install-arduino-core-esp32.sh | 36 - .../scripts/install-arduino-core-esp8266.sh | 29 - .../.github/scripts/install-arduino-ide.sh | 228 - .../.github/scripts/install-platformio.sh | 140 - .../.github/scripts/on-push.sh | 71 - lib/ESPAsyncWebServer/.github/stale.yml | 31 - .../.github/workflows/push.yml | 34 - lib/ESPAsyncWebServer/.gitignore | 2 - lib/ESPAsyncWebServer/.travis.yml | 46 - lib/ESPAsyncWebServer/CMakeLists.txt | 17 - lib/ESPAsyncWebServer/README.md | 1521 ----- lib/ESPAsyncWebServer/_config.yml | 1 - lib/ESPAsyncWebServer/component.mk | 3 - .../examples/CaptivePortal/CaptivePortal.ino | 47 - .../ESP_AsyncFSBrowser/ESP_AsyncFSBrowser.ino | 221 - .../ESP_AsyncFSBrowser/data/.exclude.files | 2 - .../ESP_AsyncFSBrowser/data/ace.js.gz | Bin 98943 -> 0 bytes .../data/ext-searchbox.js.gz | Bin 3131 -> 0 bytes .../ESP_AsyncFSBrowser/data/favicon.ico | Bin 1150 -> 0 bytes .../ESP_AsyncFSBrowser/data/index.htm | 131 - .../ESP_AsyncFSBrowser/data/mode-css.js.gz | Bin 6102 -> 0 bytes .../ESP_AsyncFSBrowser/data/mode-html.js.gz | Bin 17037 -> 0 bytes .../data/mode-javascript.js.gz | Bin 6315 -> 0 bytes .../ESP_AsyncFSBrowser/data/worker-html.js.gz | Bin 50024 -> 0 bytes .../examples/regex_patterns/.test.build_flags | 1 - .../regex_patterns/regex_patterns.ino | 77 - .../examples/simple_server/simple_server.ino | 74 - lib/ESPAsyncWebServer/keywords.txt | 3 - lib/ESPAsyncWebServer/library.json | 33 - lib/ESPAsyncWebServer/library.properties | 9 - .../src/AsyncEventSource.cpp | 368 -- lib/ESPAsyncWebServer/src/AsyncEventSource.h | 133 - lib/ESPAsyncWebServer/src/AsyncJson.h | 252 - lib/ESPAsyncWebServer/src/AsyncWebSocket.cpp | 1303 ----- lib/ESPAsyncWebServer/src/AsyncWebSocket.h | 350 -- .../src/AsyncWebSynchronization.h | 87 - lib/ESPAsyncWebServer/src/ESPAsyncWebServer.h | 501 -- lib/ESPAsyncWebServer/src/SPIFFSEditor.cpp | 544 -- lib/ESPAsyncWebServer/src/SPIFFSEditor.h | 29 - lib/ESPAsyncWebServer/src/StringArray.h | 193 - .../src/WebAuthentication.cpp | 235 - lib/ESPAsyncWebServer/src/WebAuthentication.h | 34 - lib/ESPAsyncWebServer/src/WebHandlerImpl.h | 138 - lib/ESPAsyncWebServer/src/WebHandlers.cpp | 220 - lib/ESPAsyncWebServer/src/WebRequest.cpp | 1008 ---- lib/ESPAsyncWebServer/src/WebResponseImpl.h | 136 - lib/ESPAsyncWebServer/src/WebResponses.cpp | 699 --- lib/ESPAsyncWebServer/src/WebServer.cpp | 193 - lib/ESPAsyncWebServer/src/edit.htm | 627 --- .../examples/GFilterRA/GFilterRA.ino | 16 - .../GLinear_arrays/GLinear_arrays.ino | 32 - .../examples/GLinear_arrays/excel.jpg | Bin 48954 -> 0 bytes .../GLinear_running/GLinear_running.ino | 34 - .../alphabeta_example/alphabeta_example.ino | 24 - .../filters_comparsion/filters_comparsion.ino | 30 - .../kalman_example/kalman_example.ino | 31 - .../median3_example/median3_example.ino | 21 - .../median_example/median_example.ino | 23 - lib/GyverFilters/keywords.txt | 28 - lib/GyverFilters/library.properties | 9 - lib/GyverFilters/src/GyverFilters.h | 26 - lib/GyverFilters/src/filters/alfaBeta.h | 37 - lib/GyverFilters/src/filters/kalman.h | 38 - lib/GyverFilters/src/filters/linear.h | 30 - lib/GyverFilters/src/filters/median.h | 35 - lib/GyverFilters/src/filters/median3.h | 30 - .../src/filters/runningAverage.cpp | 43 - lib/GyverFilters/src/filters/runningAverage.h | 24 - lib/LITTLEFS/LICENSE | 339 -- lib/LITTLEFS/README.md | 59 - .../examples/LittleFS_test/LittleFS_test.ino | 182 - lib/LITTLEFS/library.json | 22 - lib/LITTLEFS/library.properties | 9 - lib/LITTLEFS/src/LITTLEFS.cpp | 106 - lib/LITTLEFS/src/LITTLEFS.h | 38 - lib/LITTLEFS/src/esp_littlefs.c | 1481 ----- lib/LITTLEFS/src/esp_littlefs.h | 114 - lib/LITTLEFS/src/lfs.c | 4913 ----------------- lib/LITTLEFS/src/lfs.h | 655 --- lib/LITTLEFS/src/lfs_util.c | 33 - lib/LITTLEFS/src/lfs_util.h | 234 - lib/LITTLEFS/src/littlefs_api.c | 58 - lib/LITTLEFS/src/littlefs_api.h | 106 - lib/README | 46 - lib/TickerScheduler/README.md | 81 - lib/TickerScheduler/TickerScheduler.cpp | 116 - lib/TickerScheduler/TickerScheduler.h | 91 - .../example/blink/blink/blink.ino | 29 - partitions_custom.csv | 6 - platformio.ini | 85 - src/Bus/I2CScanner.cpp | 26 - src/Class/Button.cpp | 2 - src/Class/CallBackTest.cpp | 49 - src/Class/Input.cpp | 2 - src/Class/LineParsing.cpp | 1 - src/Class/NotAsinc.cpp | 30 - src/Class/OutputModule.cpp | 2 - src/Class/Pwm.cpp | 2 - src/Class/ScenarioClass.cpp | 2 - src/Class/SensorAnalog.cpp | 2 - src/Class/Switch.cpp | 2 - src/Cmd.cpp | 524 -- src/FSEditor.cpp | 326 -- src/Global.cpp | 104 - src/Init.cpp | 128 - src/ItemsList.cpp | 128 - src/Logging.cpp | 153 - src/Module/Telnet.cpp | 86 - src/Module/Terminal.cpp | 320 -- src/MqttClient.cpp | 323 -- src/MqttDiscovery.cpp | 75 - src/PushingBox.cpp | 60 - src/SSDP.cpp | 57 - src/Scenario.cpp | 97 - src/Sensors.cpp | 571 -- src/Servo/Servs.cpp | 41 - src/Timers.cpp | 91 - src/Upgrade.cpp | 89 - src/Utils/FileUtils.cpp | 161 - src/Utils/JsonUtils.cpp | 58 - src/Utils/StringUtils.cpp | 136 - src/Utils/SysUtils.cpp | 236 - src/Utils/TimeUtils.cpp | 212 - src/Utils/WebUtils.cpp | 88 - src/Utils/WiFiUtils.cpp | 118 - src/Web.cpp | 308 -- src/WebServer.cpp | 203 - src/Widgets.cpp | 93 - src/bus.cpp | 18 - src/main.cpp | 132 - src/test.cpp | 34 - src/udp_.cpp | 167 - tools/littlefsbuilder.py | 2 - tools/mklittlefs.exe | Bin 982528 -> 0 bytes 288 files changed, 29977 deletions(-) delete mode 100644 .gitignore delete mode 100644 data/.exclude.files delete mode 100644 data/config.json delete mode 100644 data/css/build.css.gz delete mode 100644 data/edit.htm delete mode 100644 data/favicon.ico delete mode 100644 data/icon.jpeg delete mode 100644 data/index.htm.gz delete mode 100644 data/index.json delete mode 100644 data/items/analog-adc.txt delete mode 100644 data/items/button-in.txt delete mode 100644 data/items/button-out-i.txt delete mode 100644 data/items/button-out-np.txt delete mode 100644 data/items/button-out-p.txt delete mode 100644 data/items/input-digit.txt delete mode 100644 data/items/input-time.txt delete mode 100644 data/items/output-text.txt delete mode 100644 data/items/pwm-out.txt delete mode 100644 data/items/signs.json delete mode 100644 data/js/build.chart.js.gz delete mode 100644 data/js/function.js.gz delete mode 100644 data/lang/lang.ru.json delete mode 100644 data/s.conf.csv delete mode 100644 data/s.scen.txt delete mode 100644 data/set.device.json delete mode 100644 data/set.deviceold.json delete mode 100644 data/set.mqtt.json delete mode 100644 data/set.push.json delete mode 100644 data/set.udp.json delete mode 100644 data/set.utilities.json delete mode 100644 data/set.wifi.json delete mode 100644 data/widgets/alarm.json delete mode 100644 data/widgets/anydata.json delete mode 100644 data/widgets/chart.json delete mode 100644 data/widgets/fillgauge.json delete mode 100644 data/widgets/inputDate.json delete mode 100644 data/widgets/inputDigit.json delete mode 100644 data/widgets/inputText.json delete mode 100644 data/widgets/inputTime.json delete mode 100644 data/widgets/progress-line.json delete mode 100644 data/widgets/progress-round.json delete mode 100644 data/widgets/range.json delete mode 100644 data/widgets/select.json delete mode 100644 data/widgets/toggle.json delete mode 100644 doc/1.txt delete mode 100644 doc/2.txt delete mode 100644 doc/3.txt delete mode 100644 doc/conf/c001.txt delete mode 100644 doc/conf/c002.txt delete mode 100644 doc/conf/c003.txt delete mode 100644 doc/conf/c004.txt delete mode 100644 doc/conf/c005.txt delete mode 100644 doc/conf/c006.txt delete mode 100644 doc/conf/c007.txt delete mode 100644 doc/conf/c008.txt delete mode 100644 doc/conf/c009.txt delete mode 100644 doc/conf/c010.txt delete mode 100644 doc/conf/c011.txt delete mode 100644 doc/conf/c012.txt delete mode 100644 doc/conf/c013.txt delete mode 100644 doc/conf/c014.txt delete mode 100644 doc/conf/c015.txt delete mode 100644 doc/conf/c016.txt delete mode 100644 doc/conf/c017.txt delete mode 100644 doc/conf/c018.txt delete mode 100644 doc/conf/c019.txt delete mode 100644 doc/conf/c020.txt delete mode 100644 doc/conf/c021.txt delete mode 100644 doc/conf/c100.txt delete mode 100644 doc/conf/s001.txt delete mode 100644 doc/conf/s002.txt delete mode 100644 doc/conf/s003.txt delete mode 100644 doc/conf/s004.txt delete mode 100644 doc/conf/s005.txt delete mode 100644 doc/conf/s006.txt delete mode 100644 doc/conf/s007.txt delete mode 100644 doc/conf/s008.txt delete mode 100644 doc/conf/s009.txt delete mode 100644 doc/conf/s010.txt delete mode 100644 doc/conf/s011.txt delete mode 100644 doc/conf/s012.txt delete mode 100644 doc/conf/s013.txt delete mode 100644 doc/conf/s014.txt delete mode 100644 doc/conf/s015.txt delete mode 100644 doc/conf/s016.txt delete mode 100644 doc/conf/s017.txt delete mode 100644 doc/conf/s018.txt delete mode 100644 doc/conf/s019.txt delete mode 100644 doc/conf/s020.txt delete mode 100644 doc/conf/s021.txt delete mode 100644 doc/conf/s100.txt delete mode 100644 doc/orders.xlsm delete mode 100644 doc/pictures/001 iot manager.jpeg delete mode 100644 doc/pictures/002 iot manager.jpeg delete mode 100644 doc/pictures/003 iot manager.jpeg delete mode 100644 doc/pictures/007 iot manager.jpg delete mode 100644 include/Bus/BusScanner.h delete mode 100644 include/Bus/BusScannerFactory.h delete mode 100644 include/Bus/I2CScanner.h delete mode 100644 include/Class/CallBackTest.h delete mode 100644 include/Class/Input.h delete mode 100644 include/Class/LineParsing.h delete mode 100644 include/Class/NotAsinc.h delete mode 100644 include/Class/OutputModule.h delete mode 100644 include/Class/Pwm.h delete mode 100644 include/Class/ScenarioClass.h delete mode 100644 include/Class/SensorAnalog.h delete mode 100644 include/Class/SensorConverting.h delete mode 100644 include/Class/Switch.h delete mode 100644 include/Class/button.h delete mode 100644 include/Clock.h delete mode 100644 include/Cmd.h delete mode 100644 include/Consts.h delete mode 100644 include/ESP32.h delete mode 100644 include/ESP8266.h delete mode 100644 include/Errors.h delete mode 100644 include/FSEditor.h delete mode 100644 include/Global.h delete mode 100644 include/HttpServer.h delete mode 100644 include/Init.h delete mode 100644 include/ItemsList.h delete mode 100644 include/Module/CharBuffer.h delete mode 100644 include/Module/CircularBuffer.h delete mode 100644 include/Module/CommandShell.h delete mode 100644 include/Module/EditLine.h delete mode 100644 include/Module/Module.h delete mode 100644 include/Module/Runner.h delete mode 100644 include/Module/Telnet.h delete mode 100644 include/Module/Terminal.h delete mode 100644 include/MqttClient.h delete mode 100644 include/MqttDiscovery.h delete mode 100644 include/SSDP.h delete mode 100644 include/Sensors.h delete mode 100644 include/Servo/Servos.h delete mode 100644 include/Strings_.h delete mode 100644 include/Upgrade.h delete mode 100644 include/Utils/FileHelper.h delete mode 100644 include/Utils/FileUtils.h delete mode 100644 include/Utils/JsonUtils.h delete mode 100644 include/Utils/PrintMessage.h delete mode 100644 include/Utils/StringUtils.h delete mode 100644 include/Utils/SysUtils.h delete mode 100644 include/Utils/TimeUtils.h delete mode 100644 include/Utils/Timings.h delete mode 100644 include/Utils/WebUtils.h delete mode 100644 include/Utils/WiFiUtils.h delete mode 100644 include/Web.h delete mode 100644 include/main.h delete mode 100644 include/test.h delete mode 100644 include/udp_.h delete mode 100644 lib/ESP8266-StringCommand/StringCommand.cpp delete mode 100644 lib/ESP8266-StringCommand/StringCommand.h delete mode 100644 lib/ESP8266-StringCommand/keywords.txt delete mode 100644 lib/ESP8266-StringCommand/readme.md delete mode 100644 lib/ESPAsyncWebServer/.github/scripts/install-arduino-core-esp32.sh delete mode 100644 lib/ESPAsyncWebServer/.github/scripts/install-arduino-core-esp8266.sh delete mode 100644 lib/ESPAsyncWebServer/.github/scripts/install-arduino-ide.sh delete mode 100644 lib/ESPAsyncWebServer/.github/scripts/install-platformio.sh delete mode 100644 lib/ESPAsyncWebServer/.github/scripts/on-push.sh delete mode 100644 lib/ESPAsyncWebServer/.github/stale.yml delete mode 100644 lib/ESPAsyncWebServer/.github/workflows/push.yml delete mode 100644 lib/ESPAsyncWebServer/.gitignore delete mode 100644 lib/ESPAsyncWebServer/.travis.yml delete mode 100644 lib/ESPAsyncWebServer/CMakeLists.txt delete mode 100644 lib/ESPAsyncWebServer/README.md delete mode 100644 lib/ESPAsyncWebServer/_config.yml delete mode 100644 lib/ESPAsyncWebServer/component.mk delete mode 100644 lib/ESPAsyncWebServer/examples/CaptivePortal/CaptivePortal.ino delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/ESP_AsyncFSBrowser.ino delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/.exclude.files delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/ace.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/ext-searchbox.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/favicon.ico delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/index.htm delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/mode-css.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/mode-html.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/mode-javascript.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/ESP_AsyncFSBrowser/data/worker-html.js.gz delete mode 100644 lib/ESPAsyncWebServer/examples/regex_patterns/.test.build_flags delete mode 100644 lib/ESPAsyncWebServer/examples/regex_patterns/regex_patterns.ino delete mode 100644 lib/ESPAsyncWebServer/examples/simple_server/simple_server.ino delete mode 100644 lib/ESPAsyncWebServer/keywords.txt delete mode 100644 lib/ESPAsyncWebServer/library.json delete mode 100644 lib/ESPAsyncWebServer/library.properties delete mode 100644 lib/ESPAsyncWebServer/src/AsyncEventSource.cpp delete mode 100644 lib/ESPAsyncWebServer/src/AsyncEventSource.h delete mode 100644 lib/ESPAsyncWebServer/src/AsyncJson.h delete mode 100644 lib/ESPAsyncWebServer/src/AsyncWebSocket.cpp delete mode 100644 lib/ESPAsyncWebServer/src/AsyncWebSocket.h delete mode 100644 lib/ESPAsyncWebServer/src/AsyncWebSynchronization.h delete mode 100644 lib/ESPAsyncWebServer/src/ESPAsyncWebServer.h delete mode 100644 lib/ESPAsyncWebServer/src/SPIFFSEditor.cpp delete mode 100644 lib/ESPAsyncWebServer/src/SPIFFSEditor.h delete mode 100644 lib/ESPAsyncWebServer/src/StringArray.h delete mode 100644 lib/ESPAsyncWebServer/src/WebAuthentication.cpp delete mode 100644 lib/ESPAsyncWebServer/src/WebAuthentication.h delete mode 100644 lib/ESPAsyncWebServer/src/WebHandlerImpl.h delete mode 100644 lib/ESPAsyncWebServer/src/WebHandlers.cpp delete mode 100644 lib/ESPAsyncWebServer/src/WebRequest.cpp delete mode 100644 lib/ESPAsyncWebServer/src/WebResponseImpl.h delete mode 100644 lib/ESPAsyncWebServer/src/WebResponses.cpp delete mode 100644 lib/ESPAsyncWebServer/src/WebServer.cpp delete mode 100644 lib/ESPAsyncWebServer/src/edit.htm delete mode 100644 lib/GyverFilters/examples/GFilterRA/GFilterRA.ino delete mode 100644 lib/GyverFilters/examples/GLinear_arrays/GLinear_arrays.ino delete mode 100644 lib/GyverFilters/examples/GLinear_arrays/excel.jpg delete mode 100644 lib/GyverFilters/examples/GLinear_running/GLinear_running.ino delete mode 100644 lib/GyverFilters/examples/alphabeta_example/alphabeta_example.ino delete mode 100644 lib/GyverFilters/examples/filters_comparsion/filters_comparsion.ino delete mode 100644 lib/GyverFilters/examples/kalman_example/kalman_example.ino delete mode 100644 lib/GyverFilters/examples/median3_example/median3_example.ino delete mode 100644 lib/GyverFilters/examples/median_example/median_example.ino delete mode 100644 lib/GyverFilters/keywords.txt delete mode 100644 lib/GyverFilters/library.properties delete mode 100644 lib/GyverFilters/src/GyverFilters.h delete mode 100644 lib/GyverFilters/src/filters/alfaBeta.h delete mode 100644 lib/GyverFilters/src/filters/kalman.h delete mode 100644 lib/GyverFilters/src/filters/linear.h delete mode 100644 lib/GyverFilters/src/filters/median.h delete mode 100644 lib/GyverFilters/src/filters/median3.h delete mode 100644 lib/GyverFilters/src/filters/runningAverage.cpp delete mode 100644 lib/GyverFilters/src/filters/runningAverage.h delete mode 100644 lib/LITTLEFS/LICENSE delete mode 100644 lib/LITTLEFS/README.md delete mode 100644 lib/LITTLEFS/examples/LittleFS_test/LittleFS_test.ino delete mode 100644 lib/LITTLEFS/library.json delete mode 100644 lib/LITTLEFS/library.properties delete mode 100644 lib/LITTLEFS/src/LITTLEFS.cpp delete mode 100644 lib/LITTLEFS/src/LITTLEFS.h delete mode 100644 lib/LITTLEFS/src/esp_littlefs.c delete mode 100644 lib/LITTLEFS/src/esp_littlefs.h delete mode 100644 lib/LITTLEFS/src/lfs.c delete mode 100644 lib/LITTLEFS/src/lfs.h delete mode 100644 lib/LITTLEFS/src/lfs_util.c delete mode 100644 lib/LITTLEFS/src/lfs_util.h delete mode 100644 lib/LITTLEFS/src/littlefs_api.c delete mode 100644 lib/LITTLEFS/src/littlefs_api.h delete mode 100644 lib/README delete mode 100644 lib/TickerScheduler/README.md delete mode 100644 lib/TickerScheduler/TickerScheduler.cpp delete mode 100644 lib/TickerScheduler/TickerScheduler.h delete mode 100644 lib/TickerScheduler/example/blink/blink/blink.ino delete mode 100644 partitions_custom.csv delete mode 100644 platformio.ini delete mode 100644 src/Bus/I2CScanner.cpp delete mode 100644 src/Class/Button.cpp delete mode 100644 src/Class/CallBackTest.cpp delete mode 100644 src/Class/Input.cpp delete mode 100644 src/Class/LineParsing.cpp delete mode 100644 src/Class/NotAsinc.cpp delete mode 100644 src/Class/OutputModule.cpp delete mode 100644 src/Class/Pwm.cpp delete mode 100644 src/Class/ScenarioClass.cpp delete mode 100644 src/Class/SensorAnalog.cpp delete mode 100644 src/Class/Switch.cpp delete mode 100644 src/Cmd.cpp delete mode 100644 src/FSEditor.cpp delete mode 100644 src/Global.cpp delete mode 100644 src/Init.cpp delete mode 100644 src/ItemsList.cpp delete mode 100644 src/Logging.cpp delete mode 100644 src/Module/Telnet.cpp delete mode 100644 src/Module/Terminal.cpp delete mode 100644 src/MqttClient.cpp delete mode 100644 src/MqttDiscovery.cpp delete mode 100644 src/PushingBox.cpp delete mode 100644 src/SSDP.cpp delete mode 100644 src/Scenario.cpp delete mode 100644 src/Sensors.cpp delete mode 100644 src/Servo/Servs.cpp delete mode 100644 src/Timers.cpp delete mode 100644 src/Upgrade.cpp delete mode 100644 src/Utils/FileUtils.cpp delete mode 100644 src/Utils/JsonUtils.cpp delete mode 100644 src/Utils/StringUtils.cpp delete mode 100644 src/Utils/SysUtils.cpp delete mode 100644 src/Utils/TimeUtils.cpp delete mode 100644 src/Utils/WebUtils.cpp delete mode 100644 src/Utils/WiFiUtils.cpp delete mode 100644 src/Web.cpp delete mode 100644 src/WebServer.cpp delete mode 100644 src/Widgets.cpp delete mode 100644 src/bus.cpp delete mode 100644 src/main.cpp delete mode 100644 src/test.cpp delete mode 100644 src/udp_.cpp delete mode 100644 tools/littlefsbuilder.py delete mode 100644 tools/mklittlefs.exe diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 65469d13..00000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.pio -.vscode/.browse.c_cpp.db* -.vscode/c_cpp_properties.json -.vscode/launch.json -.vscode/ipch -lib/libraies-master - diff --git a/data/.exclude.files b/data/.exclude.files deleted file mode 100644 index 955397fa..00000000 --- a/data/.exclude.files +++ /dev/null @@ -1,2 +0,0 @@ -/*.js.gz -/.exclude.files diff --git a/data/config.json b/data/config.json deleted file mode 100644 index 34c25c56..00000000 --- a/data/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "IoTmanager", - "chipID": "", - "apssid": "IoTmanager", - "appass": "", - "routerssid": "rise", - "routerpass": "hostel3333", - "timezone": 2, - "ntp": "pool.ntp.org", - "mqttServer": "91.204.228.124", - "mqttPort": 1883, - "mqttPrefix": "/iotTeam", - "mqttUser": "test", - "mqttPass": "test", - "scen": "1", - "pushingboxid": "v7C133E426B0C69E", - "weblogin": "admin", - "webpass": "admin", - "udponoff": "1", - "blink": "1", - "oneWirePin": "2" -} \ No newline at end of file diff --git a/data/css/build.css.gz b/data/css/build.css.gz deleted file mode 100644 index b62ceaf0eb9497581ba5f66f2c28377154594560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15958 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 - - - - - FS Editor - - - - - - - -

-
-
-
- - - - - \ No newline at end of file diff --git a/data/favicon.ico b/data/favicon.ico deleted file mode 100644 index 50d908fa6d3f6f710e4d3d0f9fb3e96f3466895c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbW1Yfy|)7{^~TzWHLtjL$y0jv2QSq6~#f#7e|agTf3mXcR503wx_}tj&marGz54 zp)gY^BiC^Wt!lJL)4EK`ZoB)w`*UPujO#dO{?9q*dFKC|=ltiKBS`~9A3RtRc9^to zpd<~IBx$&Sa0$;>zZfJ*#D)y|ioUfl{G$21UOX;0e!u@0(cimd!FyIyLs@Dnw)M$W zWSOWx{+QQIZWQ^?xfEHZ;dm*z5s_q04`x?j0BPgKvU5^6+K2)!nO@P=>HF>Gt+(%B zS`fpYX+i7`3KW=(I$$E|zzOUL4n`BQ7we`LoQ~d~a(G-W%F@!wnmwMJj9}N) z(SkpLjNoZxhlZdHn?vR-3q@NUq7Ls5IUEljVVoa^IcW?9DWf>FbtKkpQ^;STLNg@@ zZFo3Fajx9xc(UhS;fmRb?ES7seNizvag(v72T+(cp2OQlaqFUi_wDUilh=s-LoqE} zj9Ik=!+Zml_!l@HxcX|4eLl`;)Er5f$w}QDO0q&J%?!o)@=0IZ+15t>s+HtKMq!DK zMIV)mdC3cISU=!b{PgyG;zY^@%8V+`<;QW#FpsO&^~gR?{~4b*+(aL-2wh}0`sjO< ztn1*K{++lZ3hwS6$}_fbsW6GEV;eY=7e&K)v(QN9O|zTEnl36W?HFQikQZa8B&man z%}%Ow-{W;F_&h$Ui%nFQr&3$7gR}b=b70L;a#XGCjkJ>)*2KPf%^XnsnFYwabXMQrEL_f5PBv&r}|(Ez1?y@ zzo)B%`?VIq-^ay6%P_`gurtI?x`1YOGuo(T@>KW9PdLG4i;a)(I{Ud_CVszy!(L1M zc@33E*HWaOOWx}3=;L%4mTNGt-AKvqMDA7<;Och%!2PyR6d#?h8hKb}<@)LERM}Qh nS(rdwxtgZir|Ejz_D}E8uPAsuE6M9Ip6+){~bRA#ZfP9 diff --git a/data/icon.jpeg b/data/icon.jpeg deleted file mode 100644 index abdd18c00ecd49330a896317621726204bdf4bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15396 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 diff --git a/data/index.htm.gz b/data/index.htm.gz deleted file mode 100644 index 073ff4ab3b6a4ee662c584f6498d1ff3a03a8752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2008 zcmV;}2PgO+iwFplsn=cr18Ht#Wq2-VbZr2=S>bZqHWL2tr$E`sNt%k3X1AaW(b1_>SjO13k3hW1U`N6Ed>EdWv?W!D)?_GKm!31W9Ye7o3P zAmc9%|8;Qs@8j1b(J6nqH+DZ{oB)mSmyEyg{k``vC5Ny8E^?4V@(wbp75O_XBydIA za21dr#ZAF!XYYh*7@{(r4|~1kav6v$;w-uh_+sxsWST~LNLV%#Z(;EhA?+uM$D#T^Oz^oh$B9Zpi(%&=v*JA2sDx5lJIw__b zlio;?4#``p7mRkv50s}2B;E6UyYv(^wemjvr(lcFGYf!B`x=pYByw+|r{PNX3~?h8 zB~&WVVWDUK3(sodEW5;2@z7I=kUAVHSEbx-hQ+{^NA0 zNU~g$7-k@el2PbgsNS?-JPwRS9bBky7lS_sgZ*H?KX~D-aCjwCnH5>2naDQX-*mSPmfp1^BxIdX@l=~{89Ku1+cRXpPIS>|yUgFzlW5_<#k>8Ek%peOY$%PWx zJ5agE6pYN^l4Y?ld4dZXlaN%4YIn#7^POM>l^d_!nlY(#t78Q}8l&rlj(cU!8c#)h zZ4t$6Vc}-5v>}A=cAS*RVwsEu6>ry(N)I7p_dEA%%X-fb_MZBvU#G1gZv8h=k{0RG-CRC*bfFq zQIFwYx>`i3)c~L@!@w|Hf%K}nCSQo${uC!42Bv3 zz#(n7R%;AgY~CDYFb4#H_Q#m)ea5CjI zySzU#`XgjW$l;g$KB_3A^}b5h1FEhkM?z0#jKf4-D-CIH$u1eDAH!?txq?XEo3UD? zCctwWsy671L>YKy!{a8V5@dc=@QRKutO}U6JOXkU# zWjWT|^+Y>G6;T8x8JBLbnQ!=Y|5*)|$(A)w*YlA1ZnDE_wPEWmZb_ESgCJ;)Of%5T z8C}vMDBuw{+xx-lcDZs|Xf3k)@y0ZpWAxq!SJ4I3;F@HM2#&G6P+^&5kr!$Uh5{<1 zBv8c^YZ#(#4={3b&TwgeXm!r|=OYtshZx)%lV7j(Rl8F4ZS^p0F%#ph&R4C#_$HX& z-~tt7@kC<31WHc~EE^GBv+Q;~AiAGdSj)cKBxM_9HO5aYJ$EurH`z7~>IT>QhU-`$=!PUpQlw#ImnQy=O`*z6eQXe<`JR3#`0A!iu z#tI=tdJ|yTEt{BN5-dF!qlt-U%5iS^uV zx{h~eW-7UK;+6Z+K}^vpcL*wN`26yiWAcP@h@2wYanH%#smPMpwRXEK?xrFx@VzWv z$zTWB{T*cgxP$E1JIFrYLH1AE%bFP6R=P`Vf7z8~7wWwTQiAg!l%L~O@7}N+-jGbe7&`U%XLO-u{}xl0%A7=B{xWTI^QPA zq%@L3?S!FF)q1$VYQ8I@=7_O9rKa^UM}-|CS1D{ScW|mmQ>O1%z+&&^fo)C*HYX&f z8__)OxeVc6rm}gUthYZb&k9}jB#qv_-n29h%8l;HZUvHa8bKmBp0`8q)Ov%M%t}~B zu0JahU#e@k z&e~41aVMswonh4JAu(<2XcrEyZ~5ZHjoo8=dwUp!O=JJWj7{1{hn+_twMfgNbfBf{D|KFcK{o;T6HTdZ#pPYXfbocv@v5Crh(nRtPJ7`(x5>!LX z>8n>BC08fR4cnOQ9(<{?x|X``k7wYaS qfZI0!E8UydcK^S-xc9ZYxXtST{B^h7IoT Manager" - }, - { - "type": "link", - "title": "Конфигурация устройства", - "action": "/?set.device", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Список других устройств в сети", - "action": "/?set.udp", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Конфигурация WIFI", - "action": "/?set.wifi", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Конфигурация MQTT", - "action": "/?set.mqtt", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Конфигурация push", - "action": "/?set.push", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Утилиты", - "action": "/?set.utilities", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Скачать приложение IoT Manager для android", - "action": "https://play.google.com/store/apps/details?id=ru.esp8266.iotmanager", - "class": "btn btn-block btn-default" - }, - { - "type": "link", - "title": "Скачать приложение IoT Manager для iphone", - "action": "https://apps.apple.com/ru/app/iot-manager/id1155934877", - "class": "btn btn-block btn-default" - } - ] -} diff --git a/data/items/analog-adc.txt b/data/items/analog-adc.txt deleted file mode 100644 index ad72b7f9..00000000 --- a/data/items/analog-adc.txt +++ /dev/null @@ -1 +0,0 @@ -analog-adc;id;anydata;Сенсоры;Аналоговый;order;pin-adc;map[1,1024,1,1024];c[1] \ No newline at end of file diff --git a/data/items/button-in.txt b/data/items/button-in.txt deleted file mode 100644 index ada34b20..00000000 --- a/data/items/button-in.txt +++ /dev/null @@ -1 +0,0 @@ -button-in;id;toggle;Кнопки;Освещение;order;pin;db[20] \ No newline at end of file diff --git a/data/items/button-out-i.txt b/data/items/button-out-i.txt deleted file mode 100644 index c24ec540..00000000 --- a/data/items/button-out-i.txt +++ /dev/null @@ -1 +0,0 @@ -button-out;id;toggle;Кнопки;Освещение;order;pin;inv[1];st[1] \ No newline at end of file diff --git a/data/items/button-out-np.txt b/data/items/button-out-np.txt deleted file mode 100644 index 5fa21dd1..00000000 --- a/data/items/button-out-np.txt +++ /dev/null @@ -1 +0,0 @@ -button-out;id;toggle;Кнопки;Освещение;order;st[0] \ No newline at end of file diff --git a/data/items/button-out-p.txt b/data/items/button-out-p.txt deleted file mode 100644 index d2a213fe..00000000 --- a/data/items/button-out-p.txt +++ /dev/null @@ -1 +0,0 @@ -button-out;id;toggle;Кнопки;Освещение;order;pin;st[0] \ No newline at end of file diff --git a/data/items/input-digit.txt b/data/items/input-digit.txt deleted file mode 100644 index 8c3fbbe0..00000000 --- a/data/items/input-digit.txt +++ /dev/null @@ -1 +0,0 @@ -input-digit;id;inputDigit;Ввод;Введите#цифру;order;st[60] \ No newline at end of file diff --git a/data/items/input-time.txt b/data/items/input-time.txt deleted file mode 100644 index 821e29c3..00000000 --- a/data/items/input-time.txt +++ /dev/null @@ -1 +0,0 @@ -input-time;id;inputTime;Ввод;Введите#время;order;st[10-00-00] \ No newline at end of file diff --git a/data/items/output-text.txt b/data/items/output-text.txt deleted file mode 100644 index fbe97423..00000000 --- a/data/items/output-text.txt +++ /dev/null @@ -1 +0,0 @@ -output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено#движение] \ No newline at end of file diff --git a/data/items/pwm-out.txt b/data/items/pwm-out.txt deleted file mode 100644 index b3ecac6e..00000000 --- a/data/items/pwm-out.txt +++ /dev/null @@ -1 +0,0 @@ -pwm-out;id;range;Ползунки;Яркость;order;pin;st[500] \ No newline at end of file diff --git a/data/items/signs.json b/data/items/signs.json deleted file mode 100644 index 7d140d4b..00000000 --- a/data/items/signs.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "more":">", - "less":"<", - "eq":"=" -} \ No newline at end of file diff --git a/data/js/build.chart.js.gz b/data/js/build.chart.js.gz deleted file mode 100644 index 654707fda2db9fad70fefdfef2ddaf11d08af5c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12758 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 z 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 literal 0 HcmV?d00001 From 0ebe3728482790a23ae18b911622651834f7e43b Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Wed, 19 Aug 2020 02:46:36 +0300 Subject: [PATCH 10/96] pic --- doc/pictures/004 iot manager.jpeg | Bin 62719 -> 0 bytes doc/pictures/005 iot manager.jpeg | Bin 35513 -> 0 bytes doc/pictures/006 iot manager.jpeg | Bin 48160 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/pictures/004 iot manager.jpeg delete mode 100644 doc/pictures/005 iot manager.jpeg delete mode 100644 doc/pictures/006 iot manager.jpeg diff --git a/doc/pictures/004 iot manager.jpeg b/doc/pictures/004 iot manager.jpeg deleted file mode 100644 index 95cf44d2d1d19184286540f95e790e6258b81288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62719 zcmeFZ2UJsE(>EFf1O$w9krJg#RjNt}h%^yt(n~}@nt(_P5{Q8GCh!LYlu)EMktQ|L z1w;fX5_%9(Y9bPjB!qi>-g4jjzUwW|cfWPlUF&-eY;v-5b~v+V_RQ?x%$(yd$IFm2 zH+2nkAv82J5G42mIbMMX=^#DsLm);*5J?CG!U%rG4xt6lXuzMp9mjJJZO924nm@n) ze9+R<{y9$4(b3W~oMd45(-@hUnHU*QF)}cmVm)<=nFTx;m`+1kSx)~s|MMk(hW{A_ z{<1JKF#fsX?>mm)LD(4S0#5ML(g;CLu+h-6(H!?dVBo#dgB1NC>Yopq6SQ>nC&61f z#SC81bOyYATG|uf&C=7+fmertpF`-_=-Dq^);h^y>ck-A$0;9?R>&xPy}p~vY@8sX zaPLth(IAV|2JJY2n#I@$UIs$2pmF1e=kaaNc{h%brl?CA4A-BW2k43QYaS0J^Vl# z-k8U|4V_S<#<8-?^8K*Q1CD$AG;1tat;I^0H~-4L7Lz-=(JvRYB(I)_$&DjiP+CWc z;jHs0y(0|86`B}07IO?a5q{O<;BoT)z}sU8&Wg&DXPj@X#H^TpRxh6=tw`(QQ;zk* zfSz=n?mL=Iv0E)} zqk75C!MZ{>25G+2uI5TDb)BXTwxMG*E>NycYN&f!Eu9YM26nYui8`fK_s1QUytpqh zSvWP_*rW3wQ*^u;vQenA>naKH)g=0M!y}g(F3)@{i&)Uq&?@S}f5N&gMI1vI;4aXo8j{4a9!w&P zP0e(*hQWk*x*i^j(rpXNPxI!k2=wy#So+bslBmga|E_#lEfUzphnK7@An<}sfh#g{ zrsF6DzhL1XSv&`kKQ|`kG3i&u?q~_qbl*+HXlb5Rv>Jys%=C`YQUs1(`gAFw^glTh zixHa&NZ)rn-CmZM40X@(bWKOA zax~ODshllSMMUnDdfSa$!3IuUk?DZ;IrlngpGeqSm*#vim!U6f8R9-(qu(J#2@-!_ z!y3Yu(~lvq%X;B}1kcuJ1yUKxvT-iF-mO9#y*eha!KNoVl@MP-KAl}q{@_9`SK5x) zOKUO4%OlU#umu{Y(A|7g24KvZD3_#h#ywn&coIu69(;_6s_T#=a))}2G7nhgJ}Ss( zchYgsLa3uEmLzHmhJ4J=KMB7$?r^ZJC;r40IELVZ0jCn6Oq-yVt<|`o(q{*6Y@9F3 z@%}0~n#R9)@4|gqQ<3@ACvq&pd<>UR|uwKmUpko7dMy1$r z&uSate9A|ygEFUrYOnvSW1R222FJ@szbWw@w+@h_J>=1qS4_r`EMKI0qPWiyPa%=?&eW*T1L=(Kg>?(a9Z|F z49dSe8Q?9uP+NBld9xFcUC(p5=gE-JtM8R$&aKnDudmj{Z<=>^U7e=#1CauDy|{sj zf{m=@xH`qnRv90m_uX?sXL^M{ePUQb2*O=E-S8?s*e@88%hbL)&pS9rwjPnYIMfSo zlRu#@X=HAawRyX#^;9)s-d>t9kwd~yv`;H?XEeapHFf~XhVE9SsseJPrv&K3wNOVTGfE zC(l7TuaB&ct4Ha}F-y05h8!EWy$}N!9yJ@H*ucO{pQAYObf;HIS+?ux;_}fzfudh? z=ic|7Uw-)Zho)c|0Y+uoCi1M-^}!ec*XmWm%VS8N%*kDQf)^0s(%3>Yi4bvZY0U7j z%(|bPr9NkolPyhK0k=WfOln+2nH@tSEl~Cd9N)XoC>25a>0hB(NITLUsY@ft#D1#6e@85FI74 zbK&({zMNDuFT+6$7sZ@-+si=B7;k(AnQo*37n^D_y6!d5d|Ts=yn?qQ11)U=guJ>u z32zbaJ%W;ge4mEP5nGbg7%DxcvmN=3Pu6_M7knMu>ZFlZ#faBW`gBv^KKb^(&Jg