From c7fb30a8702e47bd8d53814d419a5343edf43492 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 05:42:08 +0100 Subject: [PATCH 1/3] Moved cloudUrl into newsettings --- main/cloud.cpp | 19 ++++++++++++++----- main/cloud.h | 12 ++++-------- main/newsettings.h | 16 ++++++++++------ main/presets.cpp | 3 --- main/stringsettings.h | 8 -------- 5 files changed, 28 insertions(+), 30 deletions(-) diff --git a/main/cloud.cpp b/main/cloud.cpp index c8f7ba8..850e651 100644 --- a/main/cloud.cpp +++ b/main/cloud.cpp @@ -6,6 +6,17 @@ // esp-idf includes #include +// 3rdparty lib includes +#include +#include +#include +#include + +// local includes +#include "globals.h" +#include "utils.h" +#include "newsettings.h" + using namespace std::chrono_literals; namespace { @@ -26,8 +37,7 @@ std::optional lastCloudSend; void initCloud() { if (settings.cloudSettings.cloudEnabled && - !stringSettings.cloudUrl.empty() && - esphttpdutils::urlverify(stringSettings.cloudUrl)) + !configs.cloudUrl.value.empty()) { createCloud(); if (!cloudClient) @@ -156,8 +166,7 @@ void cloudCollect() void cloudSend() { if (settings.cloudSettings.cloudEnabled && - !stringSettings.cloudUrl.empty() && - esphttpdutils::urlverify(stringSettings.cloudUrl)) + !configs.cloudUrl.value.empty()) { if (!cloudClient) { @@ -222,7 +231,7 @@ void createCloud() lastCreateTry = espchrono::millis_clock::now(); const esp_websocket_client_config_t config = { - .uri = stringSettings.cloudUrl.c_str(), + .uri = configs.cloudUrl.value.c_str(), }; cloudClient = espcpputils::websocket_client{&config}; diff --git a/main/cloud.h b/main/cloud.h index 20b72ea..a8f55ef 100644 --- a/main/cloud.h +++ b/main/cloud.h @@ -1,15 +1,11 @@ #pragma once +// system includes +#include + // 3rdparty lib includes #include -#include -#include -#include -#include - -// local includes -#include "globals.h" -#include "utils.h" +#include #ifdef FEATURE_CLOUD extern espcpputils::websocket_client cloudClient; diff --git a/main/newsettings.h b/main/newsettings.h index 2f6700a..5670cb6 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -86,7 +86,7 @@ public: ConfigWrapper wifiApEnabled {true, DoReset, {}, "wifiApEnabled" }; ConfigWrapper wifiApName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "wifiApName" }; - ConfigWrapper wifiApKey {"Passwort_123", DoReset, StringOr>, "wifiApKey" }; + ConfigWrapper wifiApKey {"Passwort_123", DoReset, StringOr>, "wifiApKey" }; ConfigWrapper wifiApChannel {1, DoReset, {}, "wifiApChannel" }; ConfigWrapper wifiApAuthmode{WIFI_AUTH_WPA2_PSK, DoReset, {}, "wifiApAuthmode" }; @@ -103,11 +103,13 @@ public: ConfigWrapper bluetoothName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "bluetoothName" }; ConfigWrapper reverseBeep {false, DoReset, {}, "reverseBeep" }; - ConfigWrapper reverseBeepFreq0 {3, DoReset, {}, "revBeepFreq0" }; - ConfigWrapper reverseBeepFreq1 {0, DoReset, {}, "revBeepFreq1" }; + ConfigWrapper reverseBeepFreq0 {3, DoReset, {}, "revBeepFreq0" }; + ConfigWrapper reverseBeepFreq1 {0, DoReset, {}, "revBeepFreq1" }; ConfigWrapper reverseBeepDuration0{500, DoReset, {}, "revBeepDur0" }; ConfigWrapper reverseBeepDuration1{500, DoReset, {}, "revBeepDur1" }; + ConfigWrapper cloudUrl {std::string{}, DoReset, StringOr, "cloudUrl" }; + #define NEW_SETTINGS(x) \ x(baseMacAddressOverride) \ x(hostname) \ @@ -241,7 +243,9 @@ public: x(reverseBeepFreq0) \ x(reverseBeepFreq1) \ x(reverseBeepDuration0) \ - //x(reverseBeepDuration1) + x(reverseBeepDuration1) \ + \ + //x(cloudUrl) template void callForEveryConfig(T &&callback) @@ -249,7 +253,7 @@ public: #define HELPER(x) callback(x); NEW_SETTINGS(HELPER) #undef HELPER - callback(reverseBeepDuration1); + callback(cloudUrl); } auto getAllConfigParams() @@ -258,7 +262,7 @@ public: #define HELPER(x) std::ref(x), NEW_SETTINGS(HELPER) #undef HELPER - std::ref(reverseBeepDuration1) + std::ref(cloudUrl) ); } }; diff --git a/main/presets.cpp b/main/presets.cpp index 63b7ea3..af47841 100644 --- a/main/presets.cpp +++ b/main/presets.cpp @@ -9,9 +9,6 @@ StringSettings makeDefaultStringSettings() #endif return { -#ifdef FEATURE_CLOUD - .cloudUrl = {}, -#endif #ifdef FEATURE_UDPCLOUD .udpCloudUrl = {}, #endif diff --git a/main/stringsettings.h b/main/stringsettings.h index ae33d57..ef8f372 100644 --- a/main/stringsettings.h +++ b/main/stringsettings.h @@ -6,10 +6,6 @@ struct StringSettings { -#ifdef FEATURE_CLOUD - std::string cloudUrl; -#endif - #ifdef FEATURE_UDPCLOUD std::string udpCloudUrl; #endif @@ -53,10 +49,6 @@ struct StringSettings template void StringSettings::executeForEveryCommonSetting(T &&callable) { -#ifdef FEATURE_CLOUD - callable("cloudUrl", cloudUrl); -#endif - #ifdef FEATURE_UDPCLOUD callable("udpUrl", udpCloudUrl); #endif From c025001d8633ba48a28d2fecc6f8401835d1930e Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 05:51:49 +0100 Subject: [PATCH 2/3] Moved udpCloudHost into newSettings --- main/newsettings.h | 8 +++++--- main/presets.cpp | 3 --- main/stringsettings.h | 8 -------- main/udpcloud.cpp | 5 +++-- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/main/newsettings.h b/main/newsettings.h index 5670cb6..c8c6ddf 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -109,6 +109,7 @@ public: ConfigWrapper reverseBeepDuration1{500, DoReset, {}, "revBeepDur1" }; ConfigWrapper cloudUrl {std::string{}, DoReset, StringOr, "cloudUrl" }; + ConfigWrapper udpCloudHost {std::string{}, DoReset, {}, "udpCloudHost" }; #define NEW_SETTINGS(x) \ x(baseMacAddressOverride) \ @@ -245,7 +246,8 @@ public: x(reverseBeepDuration0) \ x(reverseBeepDuration1) \ \ - //x(cloudUrl) + x(cloudUrl) \ + x(udpCloudHost) template void callForEveryConfig(T &&callback) @@ -253,7 +255,7 @@ public: #define HELPER(x) callback(x); NEW_SETTINGS(HELPER) #undef HELPER - callback(cloudUrl); + callback(udpCloudHost); } auto getAllConfigParams() @@ -262,7 +264,7 @@ public: #define HELPER(x) std::ref(x), NEW_SETTINGS(HELPER) #undef HELPER - std::ref(cloudUrl) + std::ref(udpCloudHost) ); } }; diff --git a/main/presets.cpp b/main/presets.cpp index af47841..30d06de 100644 --- a/main/presets.cpp +++ b/main/presets.cpp @@ -9,9 +9,6 @@ StringSettings makeDefaultStringSettings() #endif return { -#ifdef FEATURE_UDPCLOUD - .udpCloudUrl = {}, -#endif #ifdef FEATURE_OTA .otaUrl = {}, #endif diff --git a/main/stringsettings.h b/main/stringsettings.h index ef8f372..dd18d9f 100644 --- a/main/stringsettings.h +++ b/main/stringsettings.h @@ -6,10 +6,6 @@ struct StringSettings { -#ifdef FEATURE_UDPCLOUD - std::string udpCloudUrl; -#endif - #ifdef FEATURE_OTA std::string otaUrl; #endif @@ -49,10 +45,6 @@ struct StringSettings template void StringSettings::executeForEveryCommonSetting(T &&callable) { -#ifdef FEATURE_UDPCLOUD - callable("udpUrl", udpCloudUrl); -#endif - #ifdef FEATURE_OTA callable("otaUrl", otaUrl); #endif diff --git a/main/udpcloud.cpp b/main/udpcloud.cpp index 6452e24..8c13dea 100644 --- a/main/udpcloud.cpp +++ b/main/udpcloud.cpp @@ -19,6 +19,7 @@ #include "espchrono.h" #include "battery.h" #include "drivingstatistics.h" +#include "newsettings.h" #ifdef FEATURE_UDPCLOUD using namespace std::chrono_literals; @@ -315,7 +316,7 @@ void sendUdpCloudPacket() return; } - if (stringSettings.udpCloudUrl.empty()) + if (configs.udpCloudHost.value.empty()) { visualSendUdpPacket = false; return; @@ -329,7 +330,7 @@ void sendUdpCloudPacket() ip_addr_t udpCloudIp; - if (const auto res = dns_gethostbyname(stringSettings.udpCloudUrl.c_str(), &udpCloudIp, nullptr, nullptr); res != ERR_OK) + if (const auto res = dns_gethostbyname(configs.udpCloudHost.value.c_str(), &udpCloudIp, nullptr, nullptr); res != ERR_OK) { if (res == ERR_INPROGRESS) { From 1aa556dca19ba8075f806ba924af4c095d083e9a Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 06:00:48 +0100 Subject: [PATCH 3/3] Moved otaUrl into newSettings --- main/displays/menus/selectbuildservermenu.cpp | 3 ++- main/displays/menus/selectotabuildmenu.cpp | 5 ++--- main/displays/updatedisplay.cpp | 3 ++- main/newsettings.h | 8 +++++--- main/presets.cpp | 3 --- main/stringsettings.h | 8 -------- main/webserver_ota.cpp | 3 ++- 7 files changed, 13 insertions(+), 20 deletions(-) diff --git a/main/displays/menus/selectbuildservermenu.cpp b/main/displays/menus/selectbuildservermenu.cpp index 0f663bc..ad7955f 100644 --- a/main/displays/menus/selectbuildservermenu.cpp +++ b/main/displays/menus/selectbuildservermenu.cpp @@ -13,6 +13,7 @@ #include "buildserver.h" #include "displays/menus/otamenu.h" #include "utils.h" +#include "newsettings.h" #ifdef FEATURE_OTA @@ -34,7 +35,7 @@ public: stringSettings.otaServerUrl = m_buildserver_url; if (m_buildserver_url.substr(m_buildserver_url.length() - 4) == ".bin") { - stringSettings.otaUrl = m_buildserver_url; + configs.write_config(configs.otaUrl, m_buildserver_url); // mir egal ob es succeeded } saveSettings(); url_for_latest.clear(); diff --git a/main/displays/menus/selectotabuildmenu.cpp b/main/displays/menus/selectotabuildmenu.cpp index 00de071..88549e7 100644 --- a/main/displays/menus/selectotabuildmenu.cpp +++ b/main/displays/menus/selectotabuildmenu.cpp @@ -12,8 +12,8 @@ #include "actions/switchscreenaction.h" #include "icons/back.h" #include "displays/menus/otamenu.h" - #include "globals.h" +#include "newsettings.h" #ifdef FEATURE_OTA #define MESSAGE(text) constructMenuItem, DefaultFont, StaticColor, DummyAction>>() @@ -34,8 +34,7 @@ public: void triggered() override { - stringSettings.otaUrl = m_url; - saveSettings(); + configs.write_config(configs.otaUrl, m_url); // mir egal ob succeeded } int color() const override diff --git a/main/displays/updatedisplay.cpp b/main/displays/updatedisplay.cpp index 9a33d10..808a9c8 100644 --- a/main/displays/updatedisplay.cpp +++ b/main/displays/updatedisplay.cpp @@ -20,6 +20,7 @@ #include "texts.h" #include "ota.h" #include "displays/menus/otamenu.h" +#include "newsettings.h" #ifdef FEATURE_OTA void UpdateDisplay::initScreen() @@ -112,7 +113,7 @@ void UpdateDisplay::buttonPressed(espgui::Button button) espgui::switchScreen(); break; case Button::Right: - if (const auto result = triggerOta(stringSettings.otaUrl); !result) + if (const auto result = triggerOta(configs.otaUrl.value); !result) ESP_LOGE("BOBBY", "triggerOta() failed with %.*s", result.error().size(), result.error().data()); break; default:; diff --git a/main/newsettings.h b/main/newsettings.h index c8c6ddf..ecd4237 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -110,6 +110,7 @@ public: ConfigWrapper cloudUrl {std::string{}, DoReset, StringOr, "cloudUrl" }; ConfigWrapper udpCloudHost {std::string{}, DoReset, {}, "udpCloudHost" }; + ConfigWrapper otaUrl {std::string{}, DoReset, StringOr, "otaUrl" }; #define NEW_SETTINGS(x) \ x(baseMacAddressOverride) \ @@ -247,7 +248,8 @@ public: x(reverseBeepDuration1) \ \ x(cloudUrl) \ - x(udpCloudHost) + x(udpCloudHost) \ + // x(otaUrl) template void callForEveryConfig(T &&callback) @@ -255,7 +257,7 @@ public: #define HELPER(x) callback(x); NEW_SETTINGS(HELPER) #undef HELPER - callback(udpCloudHost); + callback(otaUrl); } auto getAllConfigParams() @@ -264,7 +266,7 @@ public: #define HELPER(x) std::ref(x), NEW_SETTINGS(HELPER) #undef HELPER - std::ref(udpCloudHost) + std::ref(otaUrl) ); } }; diff --git a/main/presets.cpp b/main/presets.cpp index 30d06de..ba6360d 100644 --- a/main/presets.cpp +++ b/main/presets.cpp @@ -9,9 +9,6 @@ StringSettings makeDefaultStringSettings() #endif return { -#ifdef FEATURE_OTA - .otaUrl = {}, -#endif #ifdef FEATURE_GARAGE .garageUrl = {}, #endif diff --git a/main/stringsettings.h b/main/stringsettings.h index dd18d9f..a37a8cf 100644 --- a/main/stringsettings.h +++ b/main/stringsettings.h @@ -6,10 +6,6 @@ struct StringSettings { -#ifdef FEATURE_OTA - std::string otaUrl; -#endif - #ifdef FEATURE_GARAGE std::string garageUrl; #endif @@ -45,10 +41,6 @@ struct StringSettings template void StringSettings::executeForEveryCommonSetting(T &&callable) { -#ifdef FEATURE_OTA - callable("otaUrl", otaUrl); -#endif - #ifdef FEATURE_GARAGE callable("garageUrl", garageUrl); #endif diff --git a/main/webserver_ota.cpp b/main/webserver_ota.cpp index e00a282..08f26f4 100644 --- a/main/webserver_ota.cpp +++ b/main/webserver_ota.cpp @@ -22,6 +22,7 @@ #endif #include "webserver_lock.h" #include "globals.h" +#include "newsettings.h" #if defined(FEATURE_WEBSERVER) && defined(FEATURE_OTA) using namespace std::chrono_literals; @@ -344,7 +345,7 @@ esp_err_t webserver_ota_handler(httpd_req_t *req) body += "Trigger Update"; } - body += fmt::format("", esphttpdutils::htmlentities(stringSettings.otaUrl)); + body += fmt::format("", esphttpdutils::htmlentities(configs.otaUrl.value)); { HtmlTag buttonTag{"button", "type=\"submit\"", body};