From 855dbca1caabaa83da78ba248d9cbea8efd68634 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 20:31:07 +0100 Subject: [PATCH] Again too many improvements --- components/esp-gui-lib | 2 +- main/CMakeLists.txt | 2 - main/accessors/wifiapconfigaccessors.h | 2 + main/actions/multiaction.cpp | 0 main/actions/multiaction.h | 31 -------------- main/displays/menus/batterymenu.cpp | 3 +- .../boardcomputerhardwaresettingsmenu.cpp | 1 + .../menus/defaultmodesettingsmenu.cpp | 15 +++---- main/displays/menus/greenpassmenu.cpp | 3 ++ main/displays/menus/handbremssettingsmenu.cpp | 11 ++--- main/displays/menus/ledstripmenu.cpp | 1 + main/displays/menus/limitssettingsmenu.cpp | 9 +++-- .../displays/menus/lockscreensettingsmenu.cpp | 13 +++--- main/displays/menus/selectmodemenu.cpp | 9 +++-- .../menus/tempomatmodesettingsmenu.cpp | 9 +++-- main/displays/menus/wifiapsettingsmenu.cpp | 40 ++++++++++++++----- main/newsettings.h | 4 ++ main/texthelpers/wifiaptexthelpers.cpp | 24 ----------- main/texthelpers/wifiaptexthelpers.h | 24 ----------- main/wifi_bobbycar.cpp | 6 +-- main/wifi_bobbycar.h | 3 -- 21 files changed, 84 insertions(+), 128 deletions(-) delete mode 100644 main/actions/multiaction.cpp delete mode 100644 main/actions/multiaction.h diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 87b2d2b..a29efa4 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 87b2d2b42a3604426eef7b8d3db607a2a07505f5 +Subproject commit a29efa4e47dbf422be4f4fa22d52c62ff9089e6d diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 377d718..98f4f12 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -92,7 +92,6 @@ set(headers actions/ledstripblinkactions.h actions/loadsettingsaction.h actions/modesettingsaction.h - actions/multiaction.h actions/qraction.h actions/rebootaction.h actions/savesettingsaction.h @@ -323,7 +322,6 @@ set(sources actions/ledstripblinkactions.cpp actions/loadsettingsaction.cpp actions/modesettingsaction.cpp - actions/multiaction.cpp actions/qraction.cpp actions/rebootaction.cpp actions/savesettingsaction.cpp diff --git a/main/accessors/wifiapconfigaccessors.h b/main/accessors/wifiapconfigaccessors.h index cbcf8e5..607ae1c 100644 --- a/main/accessors/wifiapconfigaccessors.h +++ b/main/accessors/wifiapconfigaccessors.h @@ -8,5 +8,7 @@ struct WifiApEnabledAccessor : public NewSettingsAccessor { ConfigWrapper< //struct WifiApDisableWhenOnlineAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiDisableApWhenOnline; } }; struct WifiApNameAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApName; } }; struct WifiApKeyAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApKey; } }; +struct WifiApIpAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApIp; } }; +struct WifiApMaskAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApMask; } }; struct WifiApChannelAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApChannel; } }; struct WifiApAuthmodeAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApAuthmode; } }; diff --git a/main/actions/multiaction.cpp b/main/actions/multiaction.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/main/actions/multiaction.h b/main/actions/multiaction.h deleted file mode 100644 index 9b11353..0000000 --- a/main/actions/multiaction.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include "actioninterface.h" - -using namespace espgui; - -namespace { -template -class MultiAction; - -template -class MultiAction : public virtual ActionInterface -{ -public: - void triggered() override - { - T{}.triggered(); - } -}; - -template -class MultiAction : public virtual MultiAction -{ -public: - void triggered() override - { - T{}.triggered(); - MultiAction::triggered(); - } -}; -} diff --git a/main/displays/menus/batterymenu.cpp b/main/displays/menus/batterymenu.cpp index 2a64ed6..4851961 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/displays/menus/batterymenu.cpp @@ -2,13 +2,14 @@ // 3rdparty lib includes #include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" #include "mainmenu.h" #include "displays/calibratevoltagedisplay.h" #include "accessors/settingsaccessors.h" -#include "fmt/core.h" #include "battery.h" class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } }; diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp index 6b3a2c6..64e96e0 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp @@ -8,6 +8,7 @@ #include #include #include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index 6391b5c..faf0cfa 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -1,13 +1,14 @@ #include "defaultmodesettingsmenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/toggleboolaction.h" -#include "actions/switchscreenaction.h" -#include "actions/dummyaction.h" -#include "checkboxicon.h" -#include "icons/back.h" +#include +#include +#include +#include +#include +#include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/greenpassmenu.cpp b/main/displays/menus/greenpassmenu.cpp index edd8cff..821def5 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/displays/menus/greenpassmenu.cpp @@ -4,6 +4,9 @@ #include #include +// 3rdparty lib includes +#include + // local includes #include "actions/switchscreenaction.h" #include "actions/qraction.h" diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/displays/menus/handbremssettingsmenu.cpp index 2aee393..011f472 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/displays/menus/handbremssettingsmenu.cpp @@ -2,11 +2,12 @@ // 3rd party libs #include -#include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "changevaluedisplay.h" -#include "checkboxicon.h" -#include "icons/back.h" +#include +#include +#include +#include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/ledstripmenu.cpp b/main/displays/menus/ledstripmenu.cpp index 23ee4ae..3c3db7b 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/displays/menus/ledstripmenu.cpp @@ -10,6 +10,7 @@ #include #include #include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/limitssettingsmenu.cpp b/main/displays/menus/limitssettingsmenu.cpp index aa5d1a6..ad13e7d 100644 --- a/main/displays/menus/limitssettingsmenu.cpp +++ b/main/displays/menus/limitssettingsmenu.cpp @@ -1,10 +1,11 @@ #include "limitssettingsmenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/lockscreensettingsmenu.cpp b/main/displays/menus/lockscreensettingsmenu.cpp index 2c594dd..850b9b1 100644 --- a/main/displays/menus/lockscreensettingsmenu.cpp +++ b/main/displays/menus/lockscreensettingsmenu.cpp @@ -1,12 +1,13 @@ #include "lockscreensettingsmenu.h" // 3rdparty lib includes -#include "menuitem.h" -#include "actions/toggleboolaction.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" -#include "checkboxicon.h" -#include "changevaluedisplay.h" +#include +#include +#include +#include +#include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/selectmodemenu.cpp b/main/displays/menus/selectmodemenu.cpp index 6da3ad0..e6d4526 100644 --- a/main/displays/menus/selectmodemenu.cpp +++ b/main/displays/menus/selectmodemenu.cpp @@ -1,10 +1,13 @@ #include "selectmodemenu.h" +// 3rdparty lib includes +#include +#include +#include +#include + // local includes #include "utils.h" -#include "actions/multiaction.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" #include "globals.h" #include "modes/defaultmode.h" #include "modes/tempomatmode.h" diff --git a/main/displays/menus/tempomatmodesettingsmenu.cpp b/main/displays/menus/tempomatmodesettingsmenu.cpp index 0754106..472b52e 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.cpp +++ b/main/displays/menus/tempomatmodesettingsmenu.cpp @@ -1,10 +1,11 @@ #include "tempomatmodesettingsmenu.h" // 3rdparty lib includes -#include "changevaluedisplay.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" +#include +#include +#include +#include +#include // local includes #include "displays/bobbychangevaluedisplay.h" diff --git a/main/displays/menus/wifiapsettingsmenu.cpp b/main/displays/menus/wifiapsettingsmenu.cpp index 8701c00..614ebc4 100644 --- a/main/displays/menus/wifiapsettingsmenu.cpp +++ b/main/displays/menus/wifiapsettingsmenu.cpp @@ -12,9 +12,12 @@ #include #include #include +#include // local includes #include "displays/bobbychangevaluedisplay.h" +#include "changevaluedisplay.h" +#include "changevaluedisplay_wifi_auth_mode_t.h" #include "wifiapclientsmenu.h" #include "networksettingsmenu.h" #include "accessors/wifiapconfigaccessors.h" @@ -29,8 +32,18 @@ constexpr char TEXT_ENABLED[] = "Enabled"; constexpr char TEXT_DISABLEWHENONLINE[] = "Disable when online"; constexpr char TEXT_BACK[] = "Back"; -constexpr char TEXT_CHANNEL[] = "Channel"; -constexpr char TEXT_CHANNEL_FORMATTED[] = "Channel: &2"; +constexpr char TEXT_SSID[] = "AP SSID"; +constexpr char TEXT_SSID_FORMATTED[] = "&sssid: &2"; +constexpr char TEXT_KEY[] = "AP Key"; +constexpr char TEXT_KEY_FORMATTED[] = "&skey: &2"; +constexpr char TEXT_IP[] = "AP IP"; +constexpr char TEXT_IP_FORMATTED[] = "&sIP: &f&2"; +constexpr char TEXT_MASK[] = "AP Mask"; +constexpr char TEXT_MASK_FORMATTED[] = "&sMask: &f&2"; +constexpr char TEXT_CHANNEL[] = "AP Channel"; +constexpr char TEXT_CHANNEL_FORMATTED[] = "&sChannel: &f&2"; +constexpr char TEXT_AUTHMODE[] = "AP Authmode"; +constexpr char TEXT_AUTHMODE_FORMATTED[] = "&sAuthmode: &2"; class WifiApClientsAction : public virtual ActionInterface { @@ -45,21 +58,28 @@ using ApChannelChangeScreen = espgui::makeComponent< espgui::BackActionInterface>, espgui::SwitchScreenAction >; + +using ApAuthmodeChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + WifiApAuthmodeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; } // namespace WifiApSettingsMenu::WifiApSettingsMenu() { - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApEnabledAccessor>>(); //constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApDisableWhenOnlineAccessor>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); constructMenuItem, SwitchScreenAction>>(); - + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); } diff --git a/main/newsettings.h b/main/newsettings.h index ac8bdfb..4b417c1 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -104,6 +104,8 @@ public: ConfigWrapper wifiApEnabled {true, DoReset, {}, "wifiApEnabled" }; ConfigWrapper wifiApName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "wifiApName" }; ConfigWrapper wifiApKey {"Passwort_123", DoReset, StringOr>, "wifiApKey" }; + ConfigWrapper wifiApIp{wifi_stack::ip_address_t{10, 0, 0, 1},DoReset, {}, "wifiApIp" }; + ConfigWrapper wifiApMask{wifi_stack::ip_address_t{255, 255, 255, 0},DoReset, {}, "wifiApMask" }; ConfigWrapper wifiApChannel {1, DoReset, MinMaxValue, "wifiApChannel" }; ConfigWrapper wifiApAuthmode{WIFI_AUTH_WPA2_PSK, DoReset, {}, "wifiApAuthmode" }; @@ -270,6 +272,8 @@ public: x(wifiApEnabled) \ x(wifiApName) \ x(wifiApKey) \ + x(wifiApIp) \ + x(wifiApMask) \ x(wifiApChannel) \ x(wifiApAuthmode) \ \ diff --git a/main/texthelpers/wifiaptexthelpers.cpp b/main/texthelpers/wifiaptexthelpers.cpp index 61dc6bc..1d538b6 100644 --- a/main/texthelpers/wifiaptexthelpers.cpp +++ b/main/texthelpers/wifiaptexthelpers.cpp @@ -8,22 +8,8 @@ #include #include -// local includes -#include "newsettings.h" -#include "wifi_bobbycar.h" - using namespace espgui; -std::string WifiApNameText::text() const -{ - return fmt::format("&sssid: &f{}", richTextEscape(configs.wifiApName.value)); -} - -std::string WifiApKeyText::text() const -{ - return fmt::format("&skey: &f{}", richTextEscape(configs.wifiApKey.value)); -} - std::string WifiApMacText::text() const { std::string text = "&smac: &f"; @@ -35,16 +21,6 @@ std::string WifiApMacText::text() const return text; } -std::string WifiApIpText::text() const -{ - return fmt::format("&sip: &f{}", wifi_stack::toString(apIP)); -} - -std::string WifiApMaskText::text() const -{ - return fmt::format("&smask: &f{}", wifi_stack::toString(netMsk)); -} - std::string WifiApHostnameText::text() const { if (auto hostname = wifi_stack::get_hostname_for_interface(ESP_IF_WIFI_AP)) diff --git a/main/texthelpers/wifiaptexthelpers.h b/main/texthelpers/wifiaptexthelpers.h index b634d07..daaa9e3 100644 --- a/main/texthelpers/wifiaptexthelpers.h +++ b/main/texthelpers/wifiaptexthelpers.h @@ -3,36 +3,12 @@ // 3rdparty lib includes #include -class WifiApNameText : public virtual espgui::TextInterface -{ -public: - std::string text() const override; -}; - -class WifiApKeyText : public virtual espgui::TextInterface -{ -public: - std::string text() const override; -}; - class WifiApMacText : public virtual espgui::TextInterface { public: std::string text() const override; }; -class WifiApIpText : public virtual espgui::TextInterface -{ -public: - std::string text() const override; -}; - -class WifiApMaskText : public virtual espgui::TextInterface -{ -public: - std::string text() const override; -}; - class WifiApHostnameText : public virtual espgui::TextInterface { public: diff --git a/main/wifi_bobbycar.cpp b/main/wifi_bobbycar.cpp index 1e81d60..6124f37 100644 --- a/main/wifi_bobbycar.cpp +++ b/main/wifi_bobbycar.cpp @@ -131,9 +131,9 @@ std::optional createApConfig() .ssid = configs.wifiApName.value, .key = configs.wifiApKey.value, .static_ip = { - .ip = apIP, - .subnet = netMsk, - .gateway = apIP + .ip = configs.wifiApIp.value, + .subnet = configs.wifiApMask.value, + .gateway = configs.wifiApIp.value, }, .channel = configs.wifiApChannel.value, .authmode = configs.wifiApAuthmode.value, diff --git a/main/wifi_bobbycar.h b/main/wifi_bobbycar.h index 9bad512..f063f72 100644 --- a/main/wifi_bobbycar.h +++ b/main/wifi_bobbycar.h @@ -6,9 +6,6 @@ // 3rdparty lib includes #include -constexpr const wifi_stack::ip_address_t apIP{10, 0, 0, 1}; -constexpr const wifi_stack::ip_address_t netMsk{255, 255, 255, 0}; - void wifi_begin(); void wifi_update();