From f7e459cab488a8de7f30e0ed7e1f351d9f24b634 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Mon, 19 Sep 2022 01:41:15 +0200 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=81=20=D0=BE=D0=BA=D1=80=D1=83=D0=B3=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_svelte/build/bundle.css.gz | Bin 5478 -> 5478 bytes data_svelte/build/bundle.js.gz | Bin 46048 -> 46163 bytes data_svelte/index.html | 2 +- include/EspFileSystem.h | 1 + src/EspFileSystem.cpp | 8 ++++++++ src/Main.cpp | 7 ++++++- src/PeriodicTasks.cpp | 3 ++- src/UpgradeFirm.cpp | 3 ++- src/modules/virtual/Logging/Loging.cpp | 2 +- 9 files changed, 21 insertions(+), 5 deletions(-) diff --git a/data_svelte/build/bundle.css.gz b/data_svelte/build/bundle.css.gz index a4f468ce99206ab99e10f8dd378735aa547d65c0..6b67d849ed318cd4687e43468c582d72eec9db6c 100644 GIT binary patch delta 15 WcmaE+^-PORzMF$XbInG!1W^DiO9bKo delta 15 WcmaE+^-PORzMF%?HgqFff+zqh5Coq9 diff --git a/data_svelte/build/bundle.js.gz b/data_svelte/build/bundle.js.gz index 4fd4d387525dd72111ccda3eedd466fa08109859..34de4408d5b9c1cd4558458248aed0930c7ca3ab 100644 GIT binary patch delta 13826 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 E03*)^V*mgE delta 13710 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 s%@19>_7U*62H - IoT Manager 4.3.0 + IoT Manager 4.3.1 diff --git a/include/EspFileSystem.h b/include/EspFileSystem.h index fbae8a7b..1906a6e2 100644 --- a/include/EspFileSystem.h +++ b/include/EspFileSystem.h @@ -45,3 +45,4 @@ extern const String getUniqueId(const char* name); extern uint32_t ESP_getChipId(void); extern uint32_t ESP_getFlashChipId(void); extern const String getMacAddress(); +extern const String getWebVersion(); diff --git a/src/EspFileSystem.cpp b/src/EspFileSystem.cpp index d7ec44ad..3065fea6 100644 --- a/src/EspFileSystem.cpp +++ b/src/EspFileSystem.cpp @@ -48,6 +48,14 @@ const String getUniqueId(const char* name) { return String(name) + getMacAddress(); } +const String getWebVersion() { + String text = readFile("/index.html", 2000); + text = selectFromMarkerToMarker(text, "title", 1); + text = selectFromMarkerToMarker(text, " ", 2); + text.replace("