From 68e8c9ea4a21a6f0252fe13f34fcf721f5f20642 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 29 Dec 2021 22:54:44 +0100 Subject: [PATCH 1/6] Added string inputs for ap ssid and key --- components/esp-gui-lib | 2 +- main/accessors/wifiapconfigaccessors.h | 2 +- main/displays/menus/wifiapsettingsmenu.cpp | 21 +++++++++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/components/esp-gui-lib b/components/esp-gui-lib index ec002d6..c593315 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit ec002d60587626080f593b8551bfef582d9308f5 +Subproject commit c5933152e1b34e0c33e2db4a8b255f3306fe03fa diff --git a/main/accessors/wifiapconfigaccessors.h b/main/accessors/wifiapconfigaccessors.h index 607ae1c..c7d8b2c 100644 --- a/main/accessors/wifiapconfigaccessors.h +++ b/main/accessors/wifiapconfigaccessors.h @@ -6,7 +6,7 @@ struct WifiApEnabledAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApEnabled; } }; //struct WifiApDisableWhenOnlineAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiDisableApWhenOnline; } }; -struct WifiApNameAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiApName; } }; +struct WifiApSsidAccessor : 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; } }; diff --git a/main/displays/menus/wifiapsettingsmenu.cpp b/main/displays/menus/wifiapsettingsmenu.cpp index ecf91ff..1d7c1b0 100644 --- a/main/displays/menus/wifiapsettingsmenu.cpp +++ b/main/displays/menus/wifiapsettingsmenu.cpp @@ -17,6 +17,7 @@ // local includes #include "displays/bobbychangevaluedisplay.h" #include "changevaluedisplay.h" +#include "changevaluedisplay_string.h" #include "changevaluedisplay_wifi_auth_mode_t.h" #include "wifiapclientsmenu.h" #include "networksettingsmenu.h" @@ -51,6 +52,22 @@ public: void triggered() override; }; +using ApSsidChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + WifiApSsidAccessor, + espgui::ConfirmActionInterface>, + espgui::BackActionInterface> +>; + +using ApKeyChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + WifiApKeyAccessor, + espgui::ConfirmActionInterface>, + espgui::BackActionInterface> +>; + using ApChannelChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -72,8 +89,8 @@ WifiApSettingsMenu::WifiApSettingsMenu() { constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApEnabledAccessor>>(); //constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApDisableWhenOnlineAccessor>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); constructMenuItem>(); constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); From 81701b40963ba4ea2d6566b1c6df6899df2bc3c6 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 30 Dec 2021 00:00:31 +0100 Subject: [PATCH 2/6] String inputs in webserver implemented --- components/bobbycar-protocol | 2 +- main/bobbybuttons.cpp | 46 ++++-- main/can.cpp | 59 ++----- main/debuginputhandler.cpp | 196 ++++++++++++++--------- main/displays/lockscreen.cpp | 9 +- main/newsettings.h | 28 ++++ main/serialhandler.cpp | 121 -------------- main/webserver.cpp | 3 +- main/webserver_displaycontrol.cpp | 255 +++++++++++++++++++----------- main/webserver_displaycontrol.h | 1 + 10 files changed, 367 insertions(+), 353 deletions(-) delete mode 100644 main/serialhandler.cpp diff --git a/components/bobbycar-protocol b/components/bobbycar-protocol index a331746..9e256ac 160000 --- a/components/bobbycar-protocol +++ b/components/bobbycar-protocol @@ -1 +1 @@ -Subproject commit a331746edecef1cd14bd8ab6a109b3859c45cce8 +Subproject commit 9e256acdaad453ead91d3c49496bedc731b81b36 diff --git a/main/bobbybuttons.cpp b/main/bobbybuttons.cpp index 4ff256c..8a4b5cd 100644 --- a/main/bobbybuttons.cpp +++ b/main/bobbybuttons.cpp @@ -1,23 +1,39 @@ #include "bobbybuttons.h" +// local includes +#include "newsettings.h" + [[nodiscard]] std::optional translateRawButton(uint8_t button) { - switch (button) - { + // Invalid + if (button == INPUT_MAPPING_NONE) + return std::nullopt; + using espgui::Button; - case 0: return Button::Left; - case 1: return Button::Right; - case 2: return Button::Up; - case 3: return Button::Down; - case 4: return Button(BobbyButton::Profile0); - case 5: return Button(BobbyButton::Profile1); - case 6: return Button(BobbyButton::Profile2); - case 7: return Button(BobbyButton::Profile3); - case 8: return Button(BobbyButton::Left2); - case 9: return Button(BobbyButton::Right2); - case 10: return Button(BobbyButton::Up2); - case 11: return Button(BobbyButton::Down2); - } + if (configs.dpadMappingLeft.value == button) + return Button::Left; + if (configs.dpadMappingRight.value == button) + return Button::Right; + if (configs.dpadMappingUp.value == button) + return Button::Up; + if (configs.dpadMappingDown.value == button) + return Button::Down; + if (configs.dpadMappingProfile0.value == button) + return Button(BobbyButton::Profile0); + if (configs.dpadMappingProfile1.value == button) + return Button(BobbyButton::Profile1); + if (configs.dpadMappingProfile2.value == button) + return Button(BobbyButton::Profile2); + if (configs.dpadMappingProfile3.value == button) + return Button(BobbyButton::Profile3); + if (configs.dpadMappingLeft2.value == button) + return Button(BobbyButton::Left2); + if (configs.dpadMappingRight2.value == button) + return Button(BobbyButton::Right2); + if (configs.dpadMappingUp2.value == button) + return Button(BobbyButton::Up2); + if (configs.dpadMappingDown2.value == button) + return Button(BobbyButton::Down2); return std::nullopt; } diff --git a/main/can.cpp b/main/can.cpp index 8a152b6..075b302 100644 --- a/main/can.cpp +++ b/main/can.cpp @@ -13,12 +13,13 @@ // 3rdparty lib includes #include #include +#include // local includes #include "bobbycar-can.h" #include "globals.h" -#include "buttons.h" #include "newsettings.h" +#include "bobbybuttons.h" using namespace std::chrono_literals; @@ -29,7 +30,6 @@ constexpr const char * const TAG = "BOBBYCAN"; std::optional can_gas, can_brems; espchrono::millis_clock::time_point last_can_gas{}, last_can_brems{}; -CanButtonsState lastButtonsState; void initCan() { @@ -160,47 +160,22 @@ bool parseBoardcomputerCanMessage(const twai_message_t &message) switch (message.identifier) { using namespace bobbycar::protocol::can; - case Boardcomputer::Command::ButtonPress: - { - const auto canButtonBits = *((uint16_t*)message.data); - CanButtonsState newState { - .up = bool(canButtonBits & Boardcomputer::ButtonUp), - .down = bool(canButtonBits & Boardcomputer::ButtonDown), - .confirm = bool(canButtonBits & Boardcomputer::ButtonConfirm), - .back = bool(canButtonBits & Boardcomputer::ButtonBack), - .profile0 = bool(canButtonBits & Boardcomputer::ButtonProfile0), - .profile1 = bool(canButtonBits & Boardcomputer::ButtonProfile1), - .profile2 = bool(canButtonBits & Boardcomputer::ButtonProfile2), - .profile3 = bool(canButtonBits & Boardcomputer::ButtonProfile3), - }; - - if (lastButtonsState.up != newState.up) - InputDispatcher::upButton(newState.up); - - if (lastButtonsState.down != newState.down) - InputDispatcher::downButton(newState.down); - - if (lastButtonsState.confirm != newState.confirm) - InputDispatcher::confirmButton(newState.confirm); - - if (lastButtonsState.back != newState.back) - InputDispatcher::backButton(newState.back); - - if (lastButtonsState.profile0 != newState.profile0) - InputDispatcher::profileButton(0, newState.profile0); - - if (lastButtonsState.profile1 != newState.profile1) - InputDispatcher::profileButton(1, newState.profile1); - - if (lastButtonsState.profile2 != newState.profile2) - InputDispatcher::profileButton(2, newState.profile2); - - if (lastButtonsState.profile3 != newState.profile3) - InputDispatcher::profileButton(3, newState.profile3); - - lastButtonsState = newState; + case Boardcomputer::Command::RawButtonPressed: + if (espgui::currentDisplay) + espgui::currentDisplay->rawButtonPressed(*((const uint8_t*)message.data)); + break; + case Boardcomputer::Command::RawButtonReleased: + if (espgui::currentDisplay) + espgui::currentDisplay->rawButtonReleased(*((const uint8_t*)message.data)); + break; + case Boardcomputer::Command::ButtonPressed: + if (espgui::currentDisplay) + espgui::currentDisplay->rawButtonPressed(espgui::Button(*((const uint8_t*)message.data))); + break; + case Boardcomputer::Command::ButtonReleased: + if (espgui::currentDisplay) + espgui::currentDisplay->rawButtonPressed(espgui::Button(*((const uint8_t*)message.data))); break; - } case Boardcomputer::Command::RawGas: can_gas = *((int16_t*)message.data); last_can_gas = espchrono::millis_clock::now(); diff --git a/main/debuginputhandler.cpp b/main/debuginputhandler.cpp index 02c38c7..89bbeb9 100644 --- a/main/debuginputhandler.cpp +++ b/main/debuginputhandler.cpp @@ -10,12 +10,12 @@ // 3rdparty lib includes #include #include +#include // local includes #include "globals.h" #include "utils.h" -#include "screens.h" -#include "buttons.h" +#include "bobbybuttons.h" namespace { constexpr const char * const TAG = "DEBUG"; @@ -54,83 +54,127 @@ void handleDebugInput() for (char c : std::string_view{data, length}) { - switch (c) + if (consoleControlCharsReceived < 2) { - case 'i': - case 'I': - espgui::tft.init(); - break; - case 'p': - case 'P': - { - const auto firstPower = controllers.front.command.poweroff; - for (Controller &controller : controllers) - controller.command.poweroff = !firstPower; - break; + switch (c) + { + case '\x1b': + if (consoleControlCharsReceived == 0) + consoleControlCharsReceived = 1; + else + consoleControlCharsReceived = 0; + break; + case '\x5b': + if (consoleControlCharsReceived == 1) + consoleControlCharsReceived = 2; + else + consoleControlCharsReceived = 0; + break; + case 'i': + case 'I': + consoleControlCharsReceived = 0; + espgui::tft.init(); + break; + case 'p': + case 'P': + { + consoleControlCharsReceived = 0; + const auto firstPower = controllers.front.command.poweroff; + for (Controller &controller : controllers) + controller.command.poweroff = !firstPower; + break; + } + case 'l': + case 'L': + { + consoleControlCharsReceived = 0; + const auto firstLed = controllers.front.command.led; + for (Controller &controller : controllers) + controller.command.led = !firstLed; + break; + } + case 'r': + case 'R': + consoleControlCharsReceived = 0; + loadSettings(); + break; + case 's': + case 'S': + consoleControlCharsReceived = 0; + saveSettings(); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + consoleControlCharsReceived = 0; + for (Controller &controller : controllers) + controller.command.buzzer.freq = c-'0'; + break; + case 'z': + case 'Z': + consoleControlCharsReceived = 0; + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button(BobbyButton::Left2)); + espgui::currentDisplay->buttonReleased(espgui::Button(BobbyButton::Left2)); + } + break; + case 'u': + case 'U': + consoleControlCharsReceived = 0; + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button(BobbyButton::Right2)); + espgui::currentDisplay->buttonReleased(espgui::Button(BobbyButton::Right2)); + } + break; + default: + consoleControlCharsReceived = 0; + } } - case 'l': - case 'L': + else { - const auto firstLed = controllers.front.command.led; - for (Controller &controller : controllers) - controller.command.led = !firstLed; - break; - } - case 'r': - case 'R': - loadSettings(); - break; - case 's': - case 'S': - saveSettings(); - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - for (Controller &controller : controllers) - controller.command.buzzer.freq = c-'0'; - break; - case 'A': - InputDispatcher::rotate(-1); - break; - case 'B': - InputDispatcher::rotate(1); - break; - case 'C': - InputDispatcher::confirmButton(true); - InputDispatcher::confirmButton(false); - break; - case 'D': - InputDispatcher::backButton(true); - InputDispatcher::backButton(false); - break; - case 'z': - case 'Z': -#ifndef LEDSTRIP_WRONG_DIRECTION - InputDispatcher::blinkLeftButton(true); - InputDispatcher::blinkLeftButton(false); -#else - InputDispatcher::blinkRightButton(true); - InputDispatcher::blinkRightButton(false); -#endif - break; - case 'u': - case 'U': -#ifndef LEDSTRIP_WRONG_DIRECTION - InputDispatcher::blinkRightButton(true); - InputDispatcher::blinkRightButton(false); -#else - InputDispatcher::blinkLeftButton(true); - InputDispatcher::blinkLeftButton(false); -#endif - break; + consoleControlCharsReceived = 0; + switch (c) + { + case 'A': // Up arrow pressed + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button::Up); + espgui::currentDisplay->buttonReleased(espgui::Button::Up); + } + break; + case 'B': // Down arrow pressed + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button::Down); + espgui::currentDisplay->buttonReleased(espgui::Button::Down); + } + break; + case 'C': // Right arrow pressed + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button::Right); + espgui::currentDisplay->buttonReleased(espgui::Button::Right); + } + break; + case 'D': // Left arrow pressed + if (espgui::currentDisplay) + { + espgui::currentDisplay->buttonPressed(espgui::Button::Left); + espgui::currentDisplay->buttonReleased(espgui::Button::Left); + } + break; + default: + ESP_LOGI(TAG, "unknown control char received: %hhx", c); + } } } } diff --git a/main/displays/lockscreen.cpp b/main/displays/lockscreen.cpp index b0d5c9a..4c1d843 100644 --- a/main/displays/lockscreen.cpp +++ b/main/displays/lockscreen.cpp @@ -8,9 +8,9 @@ #include "globals.h" #include "utils.h" #include "texts.h" -#include "buttons.h" #include "displays/menus/mainmenu.h" #include "displays/calibratedisplay.h" +#include "bobbybuttons.h" void Lockscreen::start() { @@ -24,7 +24,6 @@ void Lockscreen::start() m_oldMode = currentMode; currentMode = &m_mode; - profileButtonDisabled = !settings.lockscreen.allowPresetSwitch; isLocked = true; if (settings.lockscreen.keepLockedAfterReboot && !settings.lockscreen.locked) { @@ -71,9 +70,6 @@ void Lockscreen::initScreen() void Lockscreen::update() { Base::update(); - - // just in case someone changes that settings somehow - profileButtonDisabled = !settings.lockscreen.allowPresetSwitch; } void Lockscreen::redraw() @@ -147,7 +143,6 @@ void Lockscreen::stop() currentMode = m_oldMode; } - profileButtonDisabled = false; isLocked = false; if (!(!gas || !brems || *gas > 200.f || *brems > 200.f)) { @@ -161,6 +156,8 @@ void Lockscreen::stop() void Lockscreen::buttonPressed(espgui::Button button) { + if (settings.lockscreen.allowPresetSwitch || + !cpputils::is_in(button, BobbyButton::Profile0, BobbyButton::Profile1, BobbyButton::Profile2, BobbyButton::Profile3)) Base::buttonPressed(button); switch (button) diff --git a/main/newsettings.h b/main/newsettings.h index 4b417c1..ccc0b3c 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -24,6 +24,8 @@ using namespace espconfig; std::string defaultHostname(); +constexpr const auto INPUT_MAPPING_NONE = std::numeric_limits::max(); + class WiFiConfig { public: @@ -126,6 +128,19 @@ public: ConfigWrapper dpadDebounce {25, DoReset, {}, "dpadDebounce" }; + ConfigWrapper dpadMappingLeft {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapLeft" }; + ConfigWrapper dpadMappingRight {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapRight" }; + ConfigWrapper dpadMappingUp {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapUp" }; + ConfigWrapper dpadMappingDown {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapDown" }; + ConfigWrapper dpadMappingProfile0{INPUT_MAPPING_NONE, DoReset, {}, "dpadMapProfile0" }; + ConfigWrapper dpadMappingProfile1{INPUT_MAPPING_NONE, DoReset, {}, "dpadMapProfile1" }; + ConfigWrapper dpadMappingProfile2{INPUT_MAPPING_NONE, DoReset, {}, "dpadMapProfile2" }; + ConfigWrapper dpadMappingProfile3{INPUT_MAPPING_NONE, DoReset, {}, "dpadMapProfile3" }; + ConfigWrapper dpadMappingLeft2 {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapLeft2" }; + ConfigWrapper dpadMappingRight2 {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapRight2" }; + ConfigWrapper dpadMappingUp2 {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapUp2" }; + ConfigWrapper dpadMappingDown2 {INPUT_MAPPING_NONE, DoReset, {}, "dpadMapDown2" }; + std::array wireless_door_configs { WirelessDoorsConfig { "door_id0", "door_token0" }, WirelessDoorsConfig { "door_id1", "door_token1" }, @@ -294,6 +309,19 @@ public: \ x(dpadDebounce) \ \ + x(dpadMappingLeft) \ + x(dpadMappingRight) \ + x(dpadMappingUp) \ + x(dpadMappingDown) \ + x(dpadMappingProfile0) \ + x(dpadMappingProfile1) \ + x(dpadMappingProfile2) \ + x(dpadMappingProfile3) \ + x(dpadMappingLeft2) \ + x(dpadMappingRight2) \ + x(dpadMappingUp2) \ + x(dpadMappingDown2) \ + \ x(wireless_door_configs[0].doorId) \ x(wireless_door_configs[0].doorToken) \ x(wireless_door_configs[1].doorId) \ diff --git a/main/serialhandler.cpp b/main/serialhandler.cpp deleted file mode 100644 index 7b499d1..0000000 --- a/main/serialhandler.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "serialhandler.h" - -// Arduino includes -#include - -// 3rdparty lib includes -#include - -// local includes -#include "globals.h" -#include "utils.h" -#include "screens.h" -#include "buttons.h" - -using namespace espgui; - -//wl_status_t last_status; -//IPAddress last_ip; - -void handleSerial() -{ - //const auto status = WiFi.status(); - //if (last_status != status) - //{ - //Serial.print("Status changed to: "); - //Serial.println(to_string(status).c_str()); - //last_status = status; - //} - - //const auto ip = WiFi.localIP(); - //if (last_ip != ip) - //{ - //Serial.print("IP changed to: "); - //Serial.println(to_string(ip).c_str()); - //last_ip = ip; - //} - - while(Serial.available()) - { - const auto c = Serial.read(); - - switch (c) - { - case 'i': - case 'I': - tft.init(); - break; - case 'p': - case 'P': - { - const auto firstPower = controllers.front.command.poweroff; - for (Controller &controller : controllers) - controller.command.poweroff = !firstPower; - break; - } - case 'l': - case 'L': - { - const auto firstLed = controllers.front.command.led; - for (Controller &controller : controllers) - controller.command.led = !firstLed; - break; - } - case 'r': - case 'R': - loadSettings(); - break; - case 's': - case 'S': - saveSettings(); - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - for (Controller &controller : controllers) - controller.command.buzzer.freq = c-'0'; - break; - case 'A': - InputDispatcher::rotate(-1); - break; - case 'B': - InputDispatcher::rotate(1); - break; - case 'C': - InputDispatcher::confirmButton(true); - InputDispatcher::confirmButton(false); - break; - case 'D': - InputDispatcher::backButton(true); - InputDispatcher::backButton(false); - break; - case 'z': - case 'Z': -#ifndef LEDSTRIP_WRONG_DIRECTION - InputDispatcher::blinkLeftButton(true); - InputDispatcher::blinkLeftButton(false); -#else - InputDispatcher::blinkRightButton(true); - InputDispatcher::blinkRightButton(false); -#endif - break; - case 'u': - case 'U': -#ifndef LEDSTRIP_WRONG_DIRECTION - InputDispatcher::blinkRightButton(true); - InputDispatcher::blinkRightButton(false); -#else - InputDispatcher::blinkLeftButton(true); - InputDispatcher::blinkLeftButton(false); -#endif - break; - } - } -} diff --git a/main/webserver.cpp b/main/webserver.cpp index 899722c..8798732 100644 --- a/main/webserver.cpp +++ b/main/webserver.cpp @@ -59,7 +59,7 @@ void initWebserver() { httpd_config_t httpConfig HTTPD_DEFAULT_CONFIG(); httpConfig.core_id = 1; - httpConfig.max_uri_handlers = 15; + httpConfig.max_uri_handlers = 16; httpConfig.stack_size = 8192; const auto result = httpd_start(&httpdHandle, &httpConfig); @@ -70,6 +70,7 @@ void initWebserver() for (const httpd_uri_t &uri : { httpd_uri_t { .uri = "/", .method = HTTP_GET, .handler = webserver_root_handler, .user_ctx = NULL }, + httpd_uri_t { .uri = "/triggerRawButton", .method = HTTP_GET, .handler = webserver_triggerRawButton_handler, .user_ctx = NULL }, httpd_uri_t { .uri = "/triggerButton", .method = HTTP_GET, .handler = webserver_triggerButton_handler, .user_ctx = NULL }, httpd_uri_t { .uri = "/triggerItem", .method = HTTP_GET, .handler = webserver_triggerItem_handler, .user_ctx = NULL }, httpd_uri_t { .uri = "/setValue", .method = HTTP_GET, .handler = webserver_setValue_handler, .user_ctx = NULL }, diff --git a/main/webserver_displaycontrol.cpp b/main/webserver_displaycontrol.cpp index f3ffc99..32227c7 100644 --- a/main/webserver_displaycontrol.cpp +++ b/main/webserver_displaycontrol.cpp @@ -15,13 +15,14 @@ #include #include #include +#include #include #include #include +#include // local includes -#include "buttons.h" -#include "globals.h" +#include "bobbybuttons.h" #include "webserver_lock.h" #include "newsettings.h" @@ -190,14 +191,48 @@ esp_err_t webserver_root_handler(httpd_req_t *req) { HtmlTag pTag{"p", body}; - body += "Up " - "Down " - "Confirm " - "Back " - "Profile0 " - "Profile1 " - "Profile2 " - "Profile3 "; + body += "Trigger raw button: " + "Button0 " + "Button1 " + "Button2 " + "Button3 " + "Button4 " + "Button5 " + "Button6 " + "Button7 " + "Button8 " + "Button9 " + "Button10 " + "Button11"; + } + + { + HtmlTag pTag{"p", body}; + body += fmt::format("Trigger button: " + "Left " + "Right " + "Up " + "Down " + "Profile0 " + "Profile1 " + "Profile2 " + "Profile3 " + "Left2 " + "Right2 " + "Up2 " + "Down2", + std::to_underlying(espgui::Button::Left), + std::to_underlying(espgui::Button::Right), + std::to_underlying(espgui::Button::Up), + std::to_underlying(espgui::Button::Down), + std::to_underlying(BobbyButton::Profile0), + std::to_underlying(BobbyButton::Profile1), + std::to_underlying(BobbyButton::Profile2), + std::to_underlying(BobbyButton::Profile3), + std::to_underlying(BobbyButton::Left2), + std::to_underlying(BobbyButton::Right2), + std::to_underlying(BobbyButton::Up2), + std::to_underlying(BobbyButton::Down2)); } if (auto currentDisplay = static_cast(espgui::currentDisplay.get())) @@ -228,6 +263,12 @@ esp_err_t webserver_root_handler(httpd_req_t *req) body += fmt::format("", changeValueDisplay->shownValue()); body += ""; } + else if (const auto *changeValueDisplay = currentDisplay->asChangeValueDisplayString()) + { + HtmlTag formTag{"form", "action=\"/setValue\" method=\"GET\"", body}; + body += fmt::format("", changeValueDisplay->shownValue()); + body += ""; + } else { body += "No web control implemented for current display."; @@ -243,9 +284,8 @@ esp_err_t webserver_root_handler(httpd_req_t *req) CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::Ok, (key_result == ESP_OK) ? "application/json":"text/html", body) } -esp_err_t webserver_triggerButton_handler(httpd_req_t *req) +esp_err_t webserver_triggerRawButton_handler(httpd_req_t *req) { - #ifndef FEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_KORREKT_ARBEITET espcpputils::LockHelper helper{webserver_lock->handle, std::chrono::ceil(5s).count()}; if (!helper.locked()) @@ -265,7 +305,7 @@ esp_err_t webserver_triggerButton_handler(httpd_req_t *req) CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", result.error()); } - std::string button; + uint8_t button; constexpr const std::string_view buttonParamName{"button"}; { @@ -289,77 +329,105 @@ esp_err_t webserver_triggerButton_handler(httpd_req_t *req) char valueBuf[257]; esphttpdutils::urldecode(valueBuf, valueBufEncoded); - button = valueBuf; + std::string_view value{valueBuf}; + + if (auto parsed = cpputils::fromString(value)) + { + button = *parsed; + } + else + { + const auto msg = fmt::format("could not parse {} {}", buttonParamName, value); + ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } } - if (button == "up") + if (!espgui::currentDisplay) { - InputDispatcher::rotate(-1); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "down") - { - InputDispatcher::rotate(1); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "confirm") - { - InputDispatcher::confirmButton(true); - InputDispatcher::confirmButton(false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "back") - { - InputDispatcher::backButton(true); - InputDispatcher::backButton(false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "profile0") - { - InputDispatcher::profileButton(0, true); - InputDispatcher::profileButton(0, false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "profile1") - { - InputDispatcher::profileButton(1, true); - InputDispatcher::profileButton(1, false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "profile2") - { - InputDispatcher::profileButton(2, true); - InputDispatcher::profileButton(2, false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else if (button == "profile3") - { - InputDispatcher::profileButton(3, true); - InputDispatcher::profileButton(3, false); - - CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") - } - else - { - const auto msg = fmt::format("invalid {} {}", buttonParamName, button); + constexpr const std::string_view msg = "espgui::currentDisplay is null"; ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); } + + espgui::currentDisplay->rawButtonPressed(button); + espgui::currentDisplay->rawButtonReleased(button); + + CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") +} + +esp_err_t webserver_triggerButton_handler(httpd_req_t *req) +{ +#ifndef FEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_KORREKT_ARBEITET + espcpputils::LockHelper helper{webserver_lock->handle, std::chrono::ceil(5s).count()}; + if (!helper.locked()) + { + constexpr const std::string_view msg = "could not lock webserver_lock"; + ESP_LOGE(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } +#endif + + std::string query; + if (auto result = esphttpdutils::webserver_get_query(req)) + query = *result; + else + { + ESP_LOGE(TAG, "%.*s", result.error().size(), result.error().data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", result.error()); + } + + espgui::Button button; + constexpr const std::string_view buttonParamName{"button"}; + + { + char valueBufEncoded[256]; + if (const auto result = httpd_query_key_value(query.data(), buttonParamName.data(), valueBufEncoded, 256); result != ESP_OK) + { + if (result == ESP_ERR_NOT_FOUND) + { + const auto msg = fmt::format("{} not set", buttonParamName); + ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } + else + { + const auto msg = fmt::format("httpd_query_key_value() {} failed with {}", buttonParamName, esp_err_to_name(result)); + ESP_LOGE(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } + } + + char valueBuf[257]; + esphttpdutils::urldecode(valueBuf, valueBufEncoded); + + std::string_view value{valueBuf}; + + if (auto parsed = cpputils::fromString>(value)) + { + button = espgui::Button(*parsed); + } + else + { + const auto msg = fmt::format("could not parse {} {}", buttonParamName, value); + ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } + } + + if (!espgui::currentDisplay) + { + constexpr const std::string_view msg = "espgui::currentDisplay is null"; + ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } + + espgui::currentDisplay->buttonPressed(button); + espgui::currentDisplay->buttonReleased(button); + + CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") } esp_err_t webserver_triggerItem_handler(httpd_req_t *req) @@ -471,8 +539,7 @@ esp_err_t webserver_setValue_handler(httpd_req_t *req) CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", result.error()); } - int newValue; - + char valueBuf[257]; constexpr const std::string_view valueParamName{"value"}; { @@ -493,11 +560,21 @@ esp_err_t webserver_setValue_handler(httpd_req_t *req) } } - char valueBuf[257]; esphttpdutils::urldecode(valueBuf, valueBufEncoded); + } - std::string_view value{valueBuf}; + std::string_view value{valueBuf}; + if (!espgui::currentDisplay) + { + constexpr const std::string_view msg = "espgui::currentDisplay is null"; + ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); + CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + } + + if (auto *changeValueDisplay = espgui::currentDisplay->asChangeValueDisplayInterface()) + { + int newValue; if (auto parsed = cpputils::fromString(value)) { newValue = *parsed; @@ -508,24 +585,20 @@ esp_err_t webserver_setValue_handler(httpd_req_t *req) ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); } - } - if (!espgui::currentDisplay) + changeValueDisplay->setShownValue(newValue); + } + else if (auto *changeValueDisplay = espgui::currentDisplay->asChangeValueDisplayString()) { - constexpr const std::string_view msg = "espgui::currentDisplay is null"; - ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); - CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); + changeValueDisplay->setShownValue(std::string{value}); } - - auto *changeValueDisplay = espgui::currentDisplay->asChangeValueDisplayInterface(); - if (!changeValueDisplay) + else { constexpr const std::string_view msg = "espgui::currentDisplay is not a change value display"; ESP_LOGW(TAG, "%.*s", msg.size(), msg.data()); CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::BadRequest, "text/plain", msg); } - changeValueDisplay->setShownValue(newValue); CALL_AND_EXIT_ON_ERROR(httpd_resp_set_hdr, req, "Location", "/") CALL_AND_EXIT(esphttpdutils::webserver_resp_send, req, esphttpdutils::ResponseStatus::TemporaryRedirect, "text/html", "Ok, continue at /") diff --git a/main/webserver_displaycontrol.h b/main/webserver_displaycontrol.h index 7a7736e..90a6fbf 100644 --- a/main/webserver_displaycontrol.h +++ b/main/webserver_displaycontrol.h @@ -8,6 +8,7 @@ #ifdef FEATURE_WEBSERVER esp_err_t webserver_root_handler(httpd_req_t *req); +esp_err_t webserver_triggerRawButton_handler(httpd_req_t *req); esp_err_t webserver_triggerButton_handler(httpd_req_t *req); esp_err_t webserver_triggerItem_handler(httpd_req_t *req); esp_err_t webserver_setValue_handler(httpd_req_t *req); From d5b9c1142f25d556432176f16ce1754e0b77233a Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 30 Dec 2021 00:57:53 +0100 Subject: [PATCH 3/6] Checkboxes now show an error message if saving fails --- components/esp-gui-lib | 2 +- main/CMakeLists.txt | 1 + main/accessors/wifistaconfigaccessors.h | 1 + main/bobbycheckbox.h | 15 ++ main/displays/calibratevoltagedisplay.cpp | 5 +- main/displays/menus/blesettingsmenu.cpp | 13 +- .../boardcomputerhardwaresettingsmenu.cpp | 2 - main/displays/menus/buzzermenu.cpp | 5 +- main/displays/menus/cloudsettingsmenu.cpp | 5 +- main/displays/menus/commanddebugmenu.h | 14 +- .../menus/controllerhardwaresettingsmenu.cpp | 9 +- main/displays/menus/debugmenu.cpp | 55 ++--- .../menus/defaultmodesettingsmenu.cpp | 17 +- main/displays/menus/dynamicdebugmenu.cpp | 203 ++++++++++++++++++ main/displays/menus/dynamicdebugmenu.h | 148 +------------ main/displays/menus/enablemenu.cpp | 19 +- main/displays/menus/espnowmenu.cpp | 10 +- main/displays/menus/espnowsettingsmenu.cpp | 14 +- main/displays/menus/feedbackdebugmenu.h | 14 +- main/displays/menus/greenpassmenu.cpp | 11 +- main/displays/menus/handbremssettingsmenu.cpp | 9 +- main/displays/menus/invertmenu.cpp | 17 +- main/displays/menus/ledstripmenu.cpp | 15 +- .../menus/ledstripselectblinkmenu.cpp | 16 +- .../displays/menus/lockscreensettingsmenu.cpp | 7 +- main/displays/menus/mosfetsmenu.cpp | 15 +- main/displays/menus/motorfeedbackdebugmenu.h | 9 +- main/displays/menus/motorstatedebugmenu.h | 8 +- main/displays/menus/settingsmenu.cpp | 11 +- main/displays/menus/timesettingsmenu.cpp | 5 +- main/displays/menus/udpcloudsettingsmenu.cpp | 7 +- main/displays/menus/wifiapsettingsmenu.cpp | 7 +- .../displays/menus/wifistaconfigentrymenu.cpp | 7 +- main/displays/menus/wifistasettingsmenu.cpp | 21 +- main/texts.cpp | 27 --- main/texts.h | 31 +-- 36 files changed, 414 insertions(+), 361 deletions(-) create mode 100644 main/bobbycheckbox.h diff --git a/components/esp-gui-lib b/components/esp-gui-lib index c593315..8914f2c 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit c5933152e1b34e0c33e2db4a8b255f3306fe03fa +Subproject commit 8914f2cc3bebe516c28159ba5abb7dd96a63624b diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 4c12d22..8dfd123 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -8,6 +8,7 @@ set(headers bluetoothtexthelpers.h bmsutils.h bobbybuttons.h + bobbycheckbox.h bobbyerrorhandler.h buildserver.h buttons.h diff --git a/main/accessors/wifistaconfigaccessors.h b/main/accessors/wifistaconfigaccessors.h index bfeaa5f..a4d5db5 100644 --- a/main/accessors/wifistaconfigaccessors.h +++ b/main/accessors/wifistaconfigaccessors.h @@ -14,6 +14,7 @@ #include "accessorhelpers.h" struct WifiStaEnabledAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiStaEnabled; } }; +struct WifiStaMinRssiAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.wifiStaMinRssi; } }; class WifiStaConfigSsidAccessor : public virtual NewSettingsAccessor { diff --git a/main/bobbycheckbox.h b/main/bobbycheckbox.h new file mode 100644 index 0000000..280c0e7 --- /dev/null +++ b/main/bobbycheckbox.h @@ -0,0 +1,15 @@ +#pragma once + +// 3rdparty lib includes +#include +#include + +// local includes +#include "bobbyerrorhandler.h" + +class BobbyCheckbox : + public virtual espgui::ToggleBoolAction, + public virtual espgui::CheckboxIcon, + public virtual BobbyErrorHandler +{ +}; diff --git a/main/displays/calibratevoltagedisplay.cpp b/main/displays/calibratevoltagedisplay.cpp index 2105c96..ee3179f 100644 --- a/main/displays/calibratevoltagedisplay.cpp +++ b/main/displays/calibratevoltagedisplay.cpp @@ -2,12 +2,11 @@ // 3rdparty lib includes #include -#include -#include // local includes #include "displays/menus/batterymenu.h" #include "accessors/settingsaccessors.h" +#include "bobbycheckbox.h" namespace { class Save30VCalibrationAction : public virtual espgui::ActionInterface @@ -63,7 +62,7 @@ CalibrateVoltageDisplay::CalibrateVoltageDisplay() { constructMenuItem, Save30VCalibrationAction>>(); constructMenuItem, Save50VCalibrationAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BatteryApplyCalibrationAccessor>>(); + constructMenuItem, BobbyCheckbox, BatteryApplyCalibrationAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); constructMenuItem>(); diff --git a/main/displays/menus/blesettingsmenu.cpp b/main/displays/menus/blesettingsmenu.cpp index 8fdc785..aec2d9a 100644 --- a/main/displays/menus/blesettingsmenu.cpp +++ b/main/displays/menus/blesettingsmenu.cpp @@ -1,14 +1,15 @@ #include "blesettingsmenu.h" +// 3rdparty lib includes +#include "actions/dummyaction.h" +#include "actions/switchscreenaction.h" +#include "icons/back.h" + // local includes #include "accessors/settingsaccessors.h" -#include "actions/dummyaction.h" -#include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" #include "bletexthelpers.h" -#include "checkboxicon.h" #include "displays/menus/settingsmenu.h" -#include "icons/back.h" +#include "bobbycheckbox.h" #include "texts.h" #ifdef FEATURE_BLE @@ -17,7 +18,7 @@ using namespace espgui; BleSettingsMenu::BleSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, BleEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, BleEnabledAccessor>>(); constructMenuItem>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp index 4c9ed7e..4f2b0c9 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp @@ -5,9 +5,7 @@ #include #include #include -#include #include -#include #include // local includes diff --git a/main/displays/menus/buzzermenu.cpp b/main/displays/menus/buzzermenu.cpp index 3a09f02..757e0ee 100644 --- a/main/displays/menus/buzzermenu.cpp +++ b/main/displays/menus/buzzermenu.cpp @@ -4,8 +4,6 @@ #include "changevaluedisplay.h" #include "menuitem.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" #include "icons/back.h" // local includes @@ -14,6 +12,7 @@ #include "globals.h" #include "accessors/settingsaccessors.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" namespace { struct FrontFreqAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.front.command.buzzer.freq; } }; @@ -90,7 +89,7 @@ BuzzerMenu::BuzzerMenu() constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, ReverseBeepAccessor>>(); + constructMenuItem, BobbyCheckbox, ReverseBeepAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); diff --git a/main/displays/menus/cloudsettingsmenu.cpp b/main/displays/menus/cloudsettingsmenu.cpp index 227072b..d4e744d 100644 --- a/main/displays/menus/cloudsettingsmenu.cpp +++ b/main/displays/menus/cloudsettingsmenu.cpp @@ -5,9 +5,7 @@ #include "menuitem.h" #include "changevaluedisplay.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" #include "actions/dummyaction.h" -#include "checkboxicon.h" #include "icons/back.h" // local includes @@ -16,6 +14,7 @@ #include "accessors/settingsaccessors.h" #include "cloud.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" #ifdef FEATURE_CLOUD namespace { @@ -58,7 +57,7 @@ using namespace espgui; CloudSettingsMenu::CloudSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, CloudEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, CloudEnabledAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem>(); constructMenuItem>(); diff --git a/main/displays/menus/commanddebugmenu.h b/main/displays/menus/commanddebugmenu.h index c8e4685..003a14d 100644 --- a/main/displays/menus/commanddebugmenu.h +++ b/main/displays/menus/commanddebugmenu.h @@ -8,21 +8,18 @@ #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" -#include "texts.h" #include "debugtexthelpers.h" -using namespace espgui; - -namespace { template class CommandDebugMenu : public BobbyMenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::StaticText, + public espgui::BackActionInterface> { public: CommandDebugMenu() { + using namespace espgui; constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); @@ -31,7 +28,8 @@ public: } }; +constexpr char TEXT_FRONTCOMMAND[] = "Front command"; using FrontCommandDebugMenu = CommandDebugMenu; -using BackCommandDebugMenu = CommandDebugMenu; -} // namespace +constexpr char TEXT_BACKCOMMAND[] = "Back command"; +using BackCommandDebugMenu = CommandDebugMenu; diff --git a/main/displays/menus/controllerhardwaresettingsmenu.cpp b/main/displays/menus/controllerhardwaresettingsmenu.cpp index 3d9a092..4155d79 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.cpp +++ b/main/displays/menus/controllerhardwaresettingsmenu.cpp @@ -5,9 +5,7 @@ // 3rdparty lib includes #include "changevaluedisplay.h" -#include "actions/toggleboolaction.h" #include "actions/switchscreenaction.h" -#include "checkboxicon.h" #include "icons/back.h" // local includes @@ -18,6 +16,7 @@ #include "displays/menus/enablemenu.h" #include "displays/menus/invertmenu.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" namespace { using WheelDiameterMmChangeScreen = espgui::makeComponent< @@ -69,10 +68,10 @@ ControllerHardwareSettingsMenu::ControllerHardwareSettingsMenu() constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, SwapFrontBackAccessor>>(); + constructMenuItem, BobbyCheckbox, SwapFrontBackAccessor>>(); #ifdef FEATURE_CAN - constructMenuItem, ToggleBoolAction, CheckboxIcon, SendFrontCanCmdAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, SendBackCanCmdAccessor>>(); + constructMenuItem, BobbyCheckbox, SendFrontCanCmdAccessor>>(); + constructMenuItem, BobbyCheckbox, SendBackCanCmdAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); #endif diff --git a/main/displays/menus/debugmenu.cpp b/main/displays/menus/debugmenu.cpp index af0fb81..bad2aa6 100644 --- a/main/displays/menus/debugmenu.cpp +++ b/main/displays/menus/debugmenu.cpp @@ -4,8 +4,6 @@ #include "menuitem.h" #include "actions/switchscreenaction.h" #include "actions/dummyaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" #include "icons/back.h" #include "accessors/settingsaccessors.h" #include @@ -28,30 +26,39 @@ #include "displays/menus/dynamicdebugmenu.h" #include "displays/menus/mainmenu.h" #include "displays/menus/batterydebugmenu.h" -#include "bobbyerrorhandler.h" +#include "bobbycheckbox.h" namespace { -class AlertAction : public espgui::MenuItem -{ -public: - std::string text() const override { return "Open popup"; } - void triggered() override - { - BobbyErrorHandler{}.errorOccured("Das\nist\nein sehr langer text, der nicht in eine zeile passt"); - } -}; +//constexpr char TEXT_DEBUG[] = "Debug"; +//constexpr char TEXT_FRONTCOMMAND[] = "Front command"; +//constexpr char TEXT_BACKCOMMAND[] = "Back command"; +//constexpr char TEXT_FRONTLEFTCOMMAND[] = "Front left command"; +//constexpr char TEXT_FRONTRIGHTCOMMAND[] = "Front right command"; +//constexpr char TEXT_BACKLEFTCOMMAND[] = "Back left command"; +//constexpr char TEXT_BACKRIGHTCOMMAND[] = "Back right command"; +//constexpr char TEXT_FRONTFEEDBACK[] = "Front feedback"; +//constexpr char TEXT_BACKFEEDBACK[] = "Back feedback"; +//constexpr char TEXT_FRONTLEFTFEEDBACK[] = "Front left feedback"; +//constexpr char TEXT_FRONTRIGHTFEEDBACK[] = "Front right feedback"; +//constexpr char TEXT_BACKLEFTFEEDBACK[] = "Back left feedback"; +//constexpr char TEXT_BACKRIGHTFEEDBACK[] = "Back right feedback"; +constexpr char TEXT_LOADSETTINGS[] = "Load settings (old)"; +constexpr char TEXT_SAVESETTINGS[] = "Save settings (old)"; +constexpr char TEXT_ERASENVS[] = "Erase NVS (old)"; +constexpr char TEXT_DYNAMICMENU[] = "GUI experiments"; +//constexpr char TEXT_BACK[] = "Back"; } // namespace -using namespace espgui; - DebugMenu::DebugMenu() { - constructMenuItem(); - constructMenuItem, SwitchScreenAction>>(); + using namespace espgui; + constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, LoadSettingsAction>>(); - constructMenuItem, SaveSettingsAction>>(); - constructMenuItem, EraseNvsAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); +#ifdef FEATURE_UDPCLOUD + constructMenuItem, BobbyCheckbox, CloudDebugEnableAccessor>>(); +#endif + constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); @@ -64,19 +71,15 @@ DebugMenu::DebugMenu() constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); constructMenuItem>(); - constructMenuItem, DisabledColor, DummyAction>>(); - constructMenuItem>(); constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, FrontFeedbackColor>>(); constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); constructMenuItem, SwitchScreenAction, BackFeedbackColor>>(); constructMenuItem>(); + constructMenuItem, LoadSettingsAction>>(); + constructMenuItem, SaveSettingsAction>>(); + constructMenuItem, EraseNvsAction>>(); constructMenuItem, SwitchScreenAction>>(); - constructMenuItem>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); -#ifdef FEATURE_UDPCLOUD - constructMenuItem, ToggleBoolAction, CheckboxIcon, CloudDebugEnableAccessor>>(); -#endif constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index 6d32adc..965e31f 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -3,10 +3,8 @@ // 3rdparty lib includes #include #include -#include #include #include -#include #include #include @@ -17,6 +15,7 @@ #include "accessors/settingsaccessors.h" #include "displays/menus/handbremssettingsmenu.h" #include "displays/menus/modessettingsmenu.h" +#include "bobbycheckbox.h" namespace { using DefaultModeModelModeChangeDisplay = espgui::makeComponent< @@ -120,13 +119,13 @@ DefaultModeSettingsMenu::DefaultModeSettingsMenu() if (diff < 20) { constructMenuItem, StaticFont<2>, StaticColor, DummyAction>>(); } constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeSquareGasAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeSquareBremsAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeEnableSmoothingUpAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeEnableSmoothingDownAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeEnableFieldWeakSmoothingUpAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeEnableFieldWeakSmoothingDownAccessor>>(); + constructMenuItem, BobbyCheckbox, DefaultModeEnableHybridAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); diff --git a/main/displays/menus/dynamicdebugmenu.cpp b/main/displays/menus/dynamicdebugmenu.cpp index e69de29..085f3c1 100644 --- a/main/displays/menus/dynamicdebugmenu.cpp +++ b/main/displays/menus/dynamicdebugmenu.cpp @@ -0,0 +1,203 @@ +#include "dynamicdebugmenu.h" + +// system includes +#include +#include + +// 3rdparty lib includes +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// local includes +#include "displays/bobbychangevaluedisplay.h" +#include "utils.h" +#include "icons/lock.h" +#include "texts.h" +#include "bobbycheckbox.h" +#include "bobbyerrorhandler.h" + +using namespace espgui; + +namespace { +constexpr char TEXT_FONTTEST0[] = "Rich&1Text&2Renderer"; +constexpr char TEXT_FONTTEST1[] = "Test&ssmall&mmedium"; +constexpr char TEXT_FONTTEST2[] = "Test&ssmall&frestored"; +constexpr char TEXT_FONTTEST3[] = "Test&s&3small&4with&6color&7grey"; +constexpr char TEXT_DUMMYITEM[] = "Dummy item"; +constexpr char TEXT_DYNAMICCOLOR[] = "Dynamic color"; +constexpr char TEXT_DYNAMICFONT[] = "Dynamic font"; +constexpr char TEXT_DYNAMICICON[] = "Dynamic icon"; +constexpr char TEXT_STATICICON[] = "Static icon"; +constexpr char TEXT_LOCKTOGGLE[] = "Lock toggle"; +constexpr char TEXT_DEBUGTOGGLE[] = "Toggle"; +constexpr char TEXT_DEBUGTOGGLEMENU[] = "Toggle (with menu)"; +constexpr char TEXT_OPENPOPUP[] = "Open popup"; + +bool toggleLocked{}; +bool toggle{}; + +class RandomColor : public virtual ColorInterface +{ +public: + int color() const override; + +private: + mutable std::optional m_nextUpdate; + mutable int m_color; +}; + +class RandomFont : public virtual FontInterface +{ +public: + int font() const override; + +private: + mutable std::optional m_nextUpdate; + mutable int m_font; +}; + +class RandomIcon : public virtual MenuItemIconInterface +{ +public: + const MenuItemIcon *icon() const override; + +private: + mutable std::optional m_nextUpdate; + mutable const Icon<24, 24> *m_icon; +}; + +struct ToggleLockedAccessor : public virtual RefAccessor +{ +public: + bool &getRef() const override { return toggleLocked; } +}; + +struct ToggleAccessor : public virtual AccessorInterface +{ +public: + bool getValue() const override { return toggle; }; + tl::expected setValue(bool value) override; +}; + +using ToggleChangeValueDisplay = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + ToggleAccessor, + espgui::ConfirmActionInterface>, + espgui::BackActionInterface> +>; + +class OpenPopupAction : public virtual espgui::ActionInterface +{ +public: + void triggered() override + { + BobbyErrorHandler{}.errorOccured("Das\nist\nein sehr langer text, der nicht in eine zeile passt"); + } +}; +} // namespace + +std::string RandomText::text() const +{ + const auto now = espchrono::millis_clock::now(); + if (!m_nextUpdate || now >= *m_nextUpdate) + { + m_title = fmt::format("Dynamic text: {}", cpputils::randomNumber(100, espcpputils::esp_random_device{})); + m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; + } + + return m_title; +} + +DynamicDebugMenu::DynamicDebugMenu() +{ + // dummy items to allow for scrolling + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + + // the interesting bits + constructMenuItem, OpenPopupAction>>(); + constructMenuItem>(); + constructMenuItem, RandomColor, DummyAction>>(); + constructMenuItem, RandomFont, DummyAction>>(); + constructMenuItem, RandomIcon, DummyAction>>(); + constructMenuItem, StaticMenuItemIcon<&bobbyicons::lock>, DummyAction>>(); + constructMenuItem, BobbyCheckbox, ToggleLockedAccessor>>(); + constructMenuItem, BobbyCheckbox, ToggleAccessor>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); + + // more scrolling + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +namespace { + +int RandomColor::color() const +{ + const auto now = espchrono::millis_clock::now(); + if (!m_nextUpdate || now >= *m_nextUpdate) + { + const auto count = std::size(default_4bit_palette); + m_color = default_4bit_palette[cpputils::randomNumber(count-1, espcpputils::esp_random_device{})]; + m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; + } + + return m_color; +} + +int RandomFont::font() const +{ + const auto now = espchrono::millis_clock::now(); + if (!m_nextUpdate || now >= *m_nextUpdate) + { + constexpr const int fonts[] = { 2, 4 }; + m_font = fonts[cpputils::randomNumber(std::size(fonts)-1, espcpputils::esp_random_device{})]; + m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; + } + + return m_font; +} + +const MenuItemIcon *RandomIcon::icon() const +{ + const auto now = espchrono::millis_clock::now(); + if (!m_nextUpdate || now >= *m_nextUpdate) + { + if (m_icon) + m_icon = nullptr; + else + m_icon = &bobbyicons::lock; + m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; + } + + return m_icon; +} + +tl::expected ToggleAccessor::setValue(bool value) +{ + if (toggleLocked) + return tl::make_unexpected("cannot be changed while is locked!"); + toggle = value; + return {}; +} + +} // namespace diff --git a/main/displays/menus/dynamicdebugmenu.h b/main/displays/menus/dynamicdebugmenu.h index 6e0f075..ef543a2 100644 --- a/main/displays/menus/dynamicdebugmenu.h +++ b/main/displays/menus/dynamicdebugmenu.h @@ -1,163 +1,29 @@ #pragma once -// system includes -#include -#include - // 3rdparty lib includes +#include #include -#include -#include -#include +#include // local includes #include "displays/bobbymenudisplay.h" -#include "utils.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "actions/dummyaction.h" -#include "actions/toggleboolaction.h" -#include "icons/lock.h" -#include "checkboxicon.h" -#include "icons/back.h" -#include "texts.h" +#include "debugmenu.h" -using namespace espgui; - -namespace { -class RandomText : public virtual TextInterface +class RandomText : public virtual espgui::TextInterface { public: - std::string text() const override - { - const auto now = espchrono::millis_clock::now(); - if (!m_nextUpdate || now >= *m_nextUpdate) - { - m_title = fmt::format("Dynamic text: {}", cpputils::randomNumber(100, espcpputils::esp_random_device{})); - m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; - } - - return m_title; - } + std::string text() const override; private: mutable std::optional m_nextUpdate; mutable std::string m_title; }; -class RandomColor : public virtual ColorInterface -{ -public: - int color() const override - { - const auto now = espchrono::millis_clock::now(); - if (!m_nextUpdate || now >= *m_nextUpdate) - { - const auto count = std::size(default_4bit_palette); - m_color = default_4bit_palette[cpputils::randomNumber(count-1, espcpputils::esp_random_device{})]; - m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; - } - - return m_color; - } - -private: - mutable std::optional m_nextUpdate; - mutable int m_color; -}; - -class RandomFont : public virtual FontInterface -{ -public: - int font() const override - { - const auto now = espchrono::millis_clock::now(); - if (!m_nextUpdate || now >= *m_nextUpdate) - { - constexpr const int fonts[] = { 2, 4 }; - m_font = fonts[cpputils::randomNumber(std::size(fonts)-1, espcpputils::esp_random_device{})]; - m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; - } - - return m_font; - } - -private: - mutable std::optional m_nextUpdate; - mutable int m_font; -}; - -class RandomIcon : public virtual MenuItemIconInterface -{ -public: - const MenuItemIcon *icon() const override - { - const auto now = espchrono::millis_clock::now(); - if (!m_nextUpdate || now >= *m_nextUpdate) - { - if (m_icon) - m_icon = nullptr; - else - m_icon = &bobbyicons::lock; - m_nextUpdate = now + std::chrono::milliseconds{cpputils::randomNumber(100, 1000, espcpputils::esp_random_device{})}; - } - - return m_icon; - } - -private: - mutable std::optional m_nextUpdate; - mutable const Icon<24, 24> *m_icon; -}; - -bool toggle; -struct ToggleAccessor : public virtual RefAccessor -{ -public: - bool &getRef() const override { return toggle; } -}; - -constexpr char TEXT_DUMMYITEM[] = "Dummy item"; -constexpr char TEXT_DYNAMICCOLOR[] = "Dynamic color"; -constexpr char TEXT_DYNAMICFONT[] = "Dynamic font"; -constexpr char TEXT_DYNAMICICON[] = "Dynamic icon"; -constexpr char TEXT_STATICICON[] = "Static icon"; -constexpr char TEXT_DEBUGTOGGLE[] = "Toggle"; - class DynamicDebugMenu : public BobbyMenuDisplay, public RandomText, - public BackActionInterface> + public espgui::BackActionInterface> { public: - DynamicDebugMenu() - { - // dummy items to allow for scrolling - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - - // the interesting bits - constructMenuItem>(); - constructMenuItem, RandomColor, DummyAction>>(); - constructMenuItem, RandomFont, DummyAction>>(); - constructMenuItem, RandomIcon, DummyAction>>(); - constructMenuItem, StaticMenuItemIcon<&bobbyicons::lock>, DummyAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, ToggleAccessor>>(); - constructMenuItem>(); - - // more scrolling - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + DynamicDebugMenu(); }; -} // namespace diff --git a/main/displays/menus/enablemenu.cpp b/main/displays/menus/enablemenu.cpp index ce51f6a..ffd9a53 100644 --- a/main/displays/menus/enablemenu.cpp +++ b/main/displays/menus/enablemenu.cpp @@ -1,19 +1,20 @@ #include "enablemenu.h" -// local includes -#include "accessors/settingsaccessors.h" +// 3rdparty lib includes #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" -#include "displays/menus/controllerhardwaresettingsmenu.h" #include "icons/back.h" +// local includes +#include "displays/menus/controllerhardwaresettingsmenu.h" +#include "accessors/settingsaccessors.h" +#include "bobbycheckbox.h" + EnableMenu::EnableMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontLeftEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontRightEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BackLeftEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BackRightEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, FrontLeftEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, FrontRightEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, BackLeftEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, BackRightEnabledAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/espnowmenu.cpp b/main/displays/menus/espnowmenu.cpp index c9f1aee..6e4755e 100644 --- a/main/displays/menus/espnowmenu.cpp +++ b/main/displays/menus/espnowmenu.cpp @@ -1,15 +1,17 @@ #include "espnowmenu.h" #ifdef FEATURE_ESPNOW +// 3rdparty lib includes #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" #include "icons/back.h" + +// local includes #include "icons/settings.h" #include "icons/time.h" #include "displays/menus/espnowsettingsmenu.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" using namespace espgui; @@ -18,8 +20,8 @@ namespace espnowmenu { EspNowMenu::EspNowMenu() { constructMenuItem, espnowmenu::SendBobbycarTimesyncMessageAction, StaticMenuItemIcon<&bobbyicons::time>>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, espnowmenu::ReceiveTimeStampAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, espnowmenu::ReceiveTsFromOtherBobbycarsAccessor>>(); + constructMenuItem, BobbyCheckbox, espnowmenu::ReceiveTimeStampAccessor>>(); + constructMenuItem, BobbyCheckbox, espnowmenu::ReceiveTsFromOtherBobbycarsAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/espnowsettingsmenu.cpp b/main/displays/menus/espnowsettingsmenu.cpp index e642012..4b6a9a3 100644 --- a/main/displays/menus/espnowsettingsmenu.cpp +++ b/main/displays/menus/espnowsettingsmenu.cpp @@ -1,14 +1,16 @@ #include "espnowsettingsmenu.h" #ifdef FEATURE_ESPNOW -#include "accessors/settingsaccessors.h" +// 3rdparty lib includes #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" #include "icons/back.h" + +// local includes +#include "accessors/settingsaccessors.h" #include "icons/time.h" #include "espnowmenu.h" +#include "bobbycheckbox.h" using namespace espgui; @@ -16,9 +18,9 @@ namespace espnowsettingsmenu { } // namespace EspNowSettingsMenu::EspNowSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, ESPNowSyncTimeEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, ESPNowSyncTimeWithOthersEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, ESPNowSyncBlinkEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, ESPNowSyncTimeEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, ESPNowSyncTimeWithOthersEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, ESPNowSyncBlinkEnabledAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/feedbackdebugmenu.h b/main/displays/menus/feedbackdebugmenu.h index 3fd6ee4..0f2200f 100644 --- a/main/displays/menus/feedbackdebugmenu.h +++ b/main/displays/menus/feedbackdebugmenu.h @@ -8,23 +8,20 @@ #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" -#include "texts.h" #include "debugtexthelpers.h" #include "debugcolorhelpers.h" #include "displays/menus/debugmenu.h" -using namespace espgui; - -namespace { template class ColorInterface> class FeedbackDebugMenu : public BobbyMenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::StaticText, + public espgui::BackActionInterface> { public: FeedbackDebugMenu() { + using namespace espgui; //constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); @@ -34,7 +31,8 @@ public: } }; +constexpr char TEXT_FRONTFEEDBACK[] = "Front feedback"; using FrontFeedbackDebugMenu = FeedbackDebugMenu; -using BackFeedbackDebugMenu = FeedbackDebugMenu; -} // namespace +constexpr char TEXT_BACKFEEDBACK[] = "Back feedback"; +using BackFeedbackDebugMenu = FeedbackDebugMenu; diff --git a/main/displays/menus/greenpassmenu.cpp b/main/displays/menus/greenpassmenu.cpp index 821def5..8cf3b5c 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/displays/menus/greenpassmenu.cpp @@ -6,18 +6,17 @@ // 3rdparty lib includes #include +#include "actions/switchscreenaction.h" +#include "actions/dummyaction.h" +#include "icons/back.h" // local includes -#include "actions/switchscreenaction.h" #include "actions/qraction.h" -#include "actions/dummyaction.h" -#include "actions/toggleboolaction.h" #include "displays/menus/mainmenu.h" #include "displays/qrdisplay.h" #include "displays/qrimportdisplay.h" -#include "icons/back.h" -#include "checkboxicon.h" #include "qrimport.h" +#include "bobbycheckbox.h" using namespace espgui; @@ -84,7 +83,7 @@ GreenPassMenu::GreenPassMenu() constructMenuItem>>(nvs_key); } } - constructMenuItem, ToggleBoolAction, CheckboxIcon, DeleteModeAccessor>>(); + constructMenuItem, BobbyCheckbox, DeleteModeAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/displays/menus/handbremssettingsmenu.cpp index 118eaf2..d4c9026 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/displays/menus/handbremssettingsmenu.cpp @@ -3,9 +3,7 @@ // 3rd party libs #include #include -#include #include -#include #include #include @@ -15,6 +13,7 @@ #include "changevaluedisplay_handbremsmode.h" #include "displays/menus/defaultmodesettingsmenu.h" #include "texts.h" +#include "bobbycheckbox.h" namespace { using HandBremsTriggerTimeoutChangeValueDisplay = espgui::makeComponent< @@ -44,9 +43,9 @@ public: HandbremsSettingsMenu::HandbremsSettingsMenu() { using namespace espgui; - constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsAutomaticAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsVisualizeAccessor>>(); + constructMenuItem, BobbyCheckbox, HandbremsEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, HandbremsAutomaticAccessor>>(); + constructMenuItem, BobbyCheckbox, HandbremsVisualizeAccessor>>(); constructMenuItem>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); diff --git a/main/displays/menus/invertmenu.cpp b/main/displays/menus/invertmenu.cpp index b49aea8..dc66527 100644 --- a/main/displays/menus/invertmenu.cpp +++ b/main/displays/menus/invertmenu.cpp @@ -1,20 +1,21 @@ #include "invertmenu.h" +// 3rdparty lib includes +#include "actions/switchscreenaction.h" +#include "icons/back.h" + // local includes #include "accessors/settingsaccessors.h" -#include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" #include "displays/menus/controllerhardwaresettingsmenu.h" -#include "icons/back.h" +#include "bobbycheckbox.h" InvertMenu::InvertMenu() { using namespace espgui; - constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontLeftInvertedAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontRightInvertedAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BackLeftInvertedAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BackRightInvertedAccessor>>(); + constructMenuItem, BobbyCheckbox, FrontLeftInvertedAccessor>>(); + constructMenuItem, BobbyCheckbox, FrontRightInvertedAccessor>>(); + constructMenuItem, BobbyCheckbox, BackLeftInvertedAccessor>>(); + constructMenuItem, BobbyCheckbox, BackRightInvertedAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/ledstripmenu.cpp b/main/displays/menus/ledstripmenu.cpp index 4fa59ab..bd99ae5 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/displays/menus/ledstripmenu.cpp @@ -5,9 +5,7 @@ #include #include #include -#include #include -#include #include #include #include @@ -22,6 +20,7 @@ #include "ledstrip.h" #include "ledstripselectanimationmenu.h" #include "ledstripselectblinkmenu.h" +#include "bobbycheckbox.h" // clang-format off @@ -115,13 +114,13 @@ LedstripMenu::LedstripMenu() { using namespace espgui; constructMenuItem, espgui::SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedAnimationAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBrakeLightsAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBeepWhenBlinkAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableFullBlinkAccessor>>(); + constructMenuItem, BobbyCheckbox, EnableLedAnimationAccessor>>(); + constructMenuItem, BobbyCheckbox, EnableBrakeLightsAccessor>>(); + constructMenuItem, BobbyCheckbox, EnableBeepWhenBlinkAccessor>>(); + constructMenuItem, BobbyCheckbox, EnableFullBlinkAccessor>>(); - if (!simplified) { constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOAccessor>>(); } - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOFrontlight>>(); + if (!simplified) { constructMenuItem, BobbyCheckbox, EnableLedstripStVOAccessor>>(); } + constructMenuItem, BobbyCheckbox, EnableLedstripStVOFrontlight>>(); constructMenuItem, AllCustomLedsOffAction>>(); if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } diff --git a/main/displays/menus/ledstripselectblinkmenu.cpp b/main/displays/menus/ledstripselectblinkmenu.cpp index 6e44234..fbf7ab6 100644 --- a/main/displays/menus/ledstripselectblinkmenu.cpp +++ b/main/displays/menus/ledstripselectblinkmenu.cpp @@ -1,16 +1,18 @@ #include "ledstripselectblinkmenu.h" #ifdef FEATURE_LEDSTRIP -// Local includes -#include "accessors/settingsaccessors.h" + +// 3rdparty lib includes #include "actions/dummyaction.h" -#include "actions/ledstripblinkactions.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" -#include "displays/menus/ledstripmenu.h" #include "icons/back.h" +// local includes +#include "accessors/settingsaccessors.h" +#include "actions/ledstripblinkactions.h" +#include "displays/menus/ledstripmenu.h" +#include "bobbycheckbox.h" + using namespace espgui; std::string currentSelectedBlinkAnimationText::text() const { @@ -42,7 +44,7 @@ LedstripSelectBlinkMenu::LedstripSelectBlinkMenu() constructMenuItem, LedstripAnimationBlinkLeftAction>>(); constructMenuItem, LedstripAnimationBlinkRightAction>>(); constructMenuItem, LedstripAnimationBlinkBothAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, LedstripEnableBlinkAnimationAccessor>>(); + constructMenuItem, BobbyCheckbox, LedstripEnableBlinkAnimationAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/lockscreensettingsmenu.cpp b/main/displays/menus/lockscreensettingsmenu.cpp index f4e6080..854e9d2 100644 --- a/main/displays/menus/lockscreensettingsmenu.cpp +++ b/main/displays/menus/lockscreensettingsmenu.cpp @@ -2,10 +2,8 @@ // 3rdparty lib includes #include -#include #include #include -#include #include #include @@ -14,6 +12,7 @@ #include "globals.h" #include "accessors/settingsaccessors.h" #include "displays/menus/boardcomputerhardwaresettingsmenu.h" +#include "bobbycheckbox.h" namespace { using LockscreenPinDigit0ChangeScreen = espgui::makeComponent< @@ -53,8 +52,8 @@ using namespace espgui; LockscreenSettingsMenu::LockscreenSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, LockscreenAllowPresetSwitchAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, LockscreenKeepLockedAccessor>>(); + constructMenuItem, BobbyCheckbox, LockscreenAllowPresetSwitchAccessor>>(); + constructMenuItem, BobbyCheckbox, LockscreenKeepLockedAccessor>>(); constructMenuItem>, SwitchScreenAction>>(); constructMenuItem>, SwitchScreenAction>>(); constructMenuItem>, SwitchScreenAction>>(); diff --git a/main/displays/menus/mosfetsmenu.cpp b/main/displays/menus/mosfetsmenu.cpp index 2c2073d..870c4fb 100644 --- a/main/displays/menus/mosfetsmenu.cpp +++ b/main/displays/menus/mosfetsmenu.cpp @@ -1,20 +1,21 @@ #include "mosfetsmenu.h" #ifdef FEATURE_MOSFETS - +// 3rdparty lib includes #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" -#include "displays/menus/mainmenu.h" #include "icons/back.h" +// local includes +#include "displays/menus/mainmenu.h" +#include "bobbycheckbox.h" + using namespace espgui; MosfetsMenu::MosfetsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, Mosfet0Accessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, Mosfet1Accessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, Mosfet2Accessor>>(); + constructMenuItem, BobbyCheckbox, Mosfet0Accessor>>(); + constructMenuItem, BobbyCheckbox, Mosfet1Accessor>>(); + constructMenuItem, BobbyCheckbox, Mosfet2Accessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/motorfeedbackdebugmenu.h b/main/displays/menus/motorfeedbackdebugmenu.h index bd4a3f8..98f8b7a 100644 --- a/main/displays/menus/motorfeedbackdebugmenu.h +++ b/main/displays/menus/motorfeedbackdebugmenu.h @@ -37,11 +37,18 @@ public: constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } }; +constexpr char TEXT_FRONTLEFTFEEDBACK[] = "Front left feedback"; using FrontLeftMotorFeedbackDebugMenu = MotorFeedbackDebugMenu; + +constexpr char TEXT_FRONTRIGHTFEEDBACK[] = "Front right feedback"; using FrontRightMotorFeedbackDebugMenu = MotorFeedbackDebugMenu; + +constexpr char TEXT_BACKLEFTFEEDBACK[] = "Back left feedback"; using BackLeftMotorFeedbackDebugMenu = MotorFeedbackDebugMenu; + +constexpr char TEXT_BACKRIGHTFEEDBACK[] = "Back right feedback"; using BackRightMotorFeedbackDebugMenu = MotorFeedbackDebugMenu; diff --git a/main/displays/menus/motorstatedebugmenu.h b/main/displays/menus/motorstatedebugmenu.h index c231bc0..11c1960 100644 --- a/main/displays/menus/motorstatedebugmenu.h +++ b/main/displays/menus/motorstatedebugmenu.h @@ -10,7 +10,6 @@ #include "displays/bobbymenudisplay.h" #include "debugmenu.h" #include "utils.h" -#include "texts.h" #include "debugtexthelpers.h" template @@ -38,7 +37,14 @@ public: } }; +constexpr char TEXT_FRONTLEFTCOMMAND[] = "Front left command"; using FrontLeftMotorStateDebugMenu = MotorStateDebugMenu; + +constexpr char TEXT_FRONTRIGHTCOMMAND[] = "Front right command"; using FrontRightMotorStateDebugMenu = MotorStateDebugMenu; + +constexpr char TEXT_BACKLEFTCOMMAND[] = "Back left command"; using BackLeftMotorStateDebugMenu = MotorStateDebugMenu; + +constexpr char TEXT_BACKRIGHTCOMMAND[] = "Back right command"; using BackRightMotorStateDebugMenu = MotorStateDebugMenu; diff --git a/main/displays/menus/settingsmenu.cpp b/main/displays/menus/settingsmenu.cpp index 893b8f2..0fe5d60 100644 --- a/main/displays/menus/settingsmenu.cpp +++ b/main/displays/menus/settingsmenu.cpp @@ -4,9 +4,7 @@ #include // 3rdparty lib includes -#include "actions/toggleboolaction.h" #include "actions/switchscreenaction.h" -#include "checkboxicon.h" #include "icons/back.h" // local includes @@ -43,6 +41,7 @@ #include "displays/menus/crashmenu.h" #include "displays/menus/aboutmenu.h" #include "displays/menus/mainmenu.h" +#include "bobbycheckbox.h" namespace { #ifdef FEATURE_LEDBACKLIGHT @@ -61,7 +60,7 @@ using namespace espgui; SettingsMenu::SettingsMenu() { #ifdef FEATURE_LEDBACKLIGHT - constructMenuItem, ToggleBoolAction, CheckboxIcon, BacklightAccessor>>(); + constructMenuItem, BobbyCheckbox, BacklightAccessor>>(); #endif if (!simplified) constructMenuItem, SwitchScreenAction>>(); @@ -90,11 +89,11 @@ SettingsMenu::SettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); #if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) - constructMenuItem, ToggleBoolAction, CheckboxIcon, AutoConnectBmsAccessor>>(); + constructMenuItem, BobbyCheckbox, AutoConnectBmsAccessor>>(); #endif constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::buzzer>>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontLedAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, BackLedAccessor>>(); + constructMenuItem, BobbyCheckbox, FrontLedAccessor>>(); + constructMenuItem, BobbyCheckbox, BackLedAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::info>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/displays/menus/timesettingsmenu.cpp index 5f22529..0ab0a04 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/displays/menus/timesettingsmenu.cpp @@ -8,10 +8,8 @@ #include "changevaluedisplay.h" #include "changevaluedisplay_daylightsavingmode.h" #include "changevaluedisplay_sntp_sync_mode_t.h" -#include "actions/toggleboolaction.h" #include "actions/switchscreenaction.h" #include "actions/dummyaction.h" -#include "checkboxicon.h" #include "icons/back.h" #include "espstrutils.h" @@ -20,6 +18,7 @@ #include "utils.h" #include "accessors/settingsaccessors.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" namespace { class CurrentUtcDateTimeText : public virtual espgui::TextInterface @@ -97,7 +96,7 @@ TimeSettingsMenu::TimeSettingsMenu() constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); #ifdef FEATURE_NTP - constructMenuItem, ToggleBoolAction, CheckboxIcon, TimeServerEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, TimeServerEnabledAccessor>>(); constructMenuItem, DummyAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); diff --git a/main/displays/menus/udpcloudsettingsmenu.cpp b/main/displays/menus/udpcloudsettingsmenu.cpp index c579663..3e72142 100644 --- a/main/displays/menus/udpcloudsettingsmenu.cpp +++ b/main/displays/menus/udpcloudsettingsmenu.cpp @@ -5,15 +5,14 @@ #include "menuitem.h" #include "changevaluedisplay.h" #include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" #include "actions/dummyaction.h" -#include "checkboxicon.h" #include "icons/back.h" // local includes #include "displays/bobbychangevaluedisplay.h" #include "accessors/settingsaccessors.h" #include "displays/menus/settingsmenu.h" +#include "bobbycheckbox.h" #ifdef FEATURE_UDPCLOUD namespace { @@ -30,8 +29,8 @@ using namespace espgui; UdpCloudSettingsMenu::UdpCloudSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, UdpCloudEnabledAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, UdpUseStdStringAccessor>>(); + constructMenuItem, BobbyCheckbox, UdpCloudEnabledAccessor>>(); + constructMenuItem, BobbyCheckbox, UdpUseStdStringAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } diff --git a/main/displays/menus/wifiapsettingsmenu.cpp b/main/displays/menus/wifiapsettingsmenu.cpp index 1d7c1b0..3dffe9c 100644 --- a/main/displays/menus/wifiapsettingsmenu.cpp +++ b/main/displays/menus/wifiapsettingsmenu.cpp @@ -7,8 +7,6 @@ #include #include #include -#include -#include #include #include #include @@ -23,6 +21,7 @@ #include "networksettingsmenu.h" #include "accessors/wifiapconfigaccessors.h" #include "texthelpers/wifiaptexthelpers.h" +#include "bobbycheckbox.h" using namespace espgui; @@ -87,8 +86,8 @@ using ApAuthmodeChangeScreen = espgui::makeComponent< WifiApSettingsMenu::WifiApSettingsMenu() { - constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApEnabledAccessor>>(); - //constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiApDisableWhenOnlineAccessor>>(); + constructMenuItem, BobbyCheckbox, WifiApEnabledAccessor>>(); + //constructMenuItem, BobbyCheckbox, WifiApDisableWhenOnlineAccessor>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem>(); diff --git a/main/displays/menus/wifistaconfigentrymenu.cpp b/main/displays/menus/wifistaconfigentrymenu.cpp index 2c821c2..ae0d271 100644 --- a/main/displays/menus/wifistaconfigentrymenu.cpp +++ b/main/displays/menus/wifistaconfigentrymenu.cpp @@ -6,14 +6,13 @@ #include #include #include -#include -#include // local includes #include "texthelpers/wifistaconfigtexthelpers.h" #include "accessors/wifistaconfigaccessors.h" #include "wifistaconfigsmenu.h" #include "newsettings.h" +#include "bobbycheckbox.h" using namespace espgui; @@ -40,11 +39,11 @@ WifiStaConfigEntryMenu::WifiStaConfigEntryMenu(int index) : { constructMenuItem>(index); constructMenuItem>(index); - constructMenuItem, ToggleBoolAction, CheckboxIcon>>(index); + constructMenuItem, BobbyCheckbox>>(index); constructMenuItem>(index); constructMenuItem>(index); constructMenuItem>(index); - constructMenuItem, ToggleBoolAction, CheckboxIcon>>(index); + constructMenuItem, BobbyCheckbox>>(index); constructMenuItem>(index); constructMenuItem>(index); constructMenuItem>(index); diff --git a/main/displays/menus/wifistasettingsmenu.cpp b/main/displays/menus/wifistasettingsmenu.cpp index 6b21328..462c3f8 100644 --- a/main/displays/menus/wifistasettingsmenu.cpp +++ b/main/displays/menus/wifistasettingsmenu.cpp @@ -4,31 +4,45 @@ #include #include #include -#include -#include #include #include +#include +#include // local includes +#include "displays/bobbychangevaluedisplay.h" #include "wifistascanmenu.h" #include "wifistaconfigsmenu.h" #include "accessors/wifistaconfigaccessors.h" #include "networksettingsmenu.h" #include "texthelpers/wifistatexthelpers.h" +#include "bobbycheckbox.h" using namespace espgui; namespace { constexpr char TEXT_ENABLED[] = "Enabled"; constexpr char TEXT_CONFIGURATIONS[] = "Configurations"; +constexpr char TEXT_MIN_RSSI[] = "AP Min RSSI"; +constexpr char TEXT_MIN_RSSI_FORMATTED[] = "&sMin RSSI: &f&2"; constexpr char TEXT_BACK[] = "Back"; + +using StaMinRssiChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + WifiStaMinRssiAccessor, + espgui::ConfirmActionInterface>, + espgui::BackActionInterface> +>; } // namespace WifiStaSettingsMenu::WifiStaSettingsMenu() { + constructMenuItem, BobbyCheckbox, WifiStaEnabledAccessor>>(); constructMenuItem>(); constructMenuItem>(); constructMenuItem>>(); + constructMenuItem, SwitchScreenAction>>(); constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); @@ -41,8 +55,7 @@ WifiStaSettingsMenu::WifiStaSettingsMenu() constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, WifiStaEnabledAccessor>>(); - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); } diff --git a/main/texts.cpp b/main/texts.cpp index 4617728..f65a9c0 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -64,24 +64,6 @@ char TEXT_UDPUSESTRING[] = "Udp use std::string"; //char TEXT_BACK[] = "Back"; #endif -//DebugMenu -char TEXT_LOADSETTINGS[] = "Load settings"; -char TEXT_SAVESETTINGS[] = "Save settings"; -char TEXT_ERASENVS[] = "Erase NVS"; -char TEXT_FRONTCOMMAND[] = "Front command"; -char TEXT_BACKCOMMAND[] = "Back command"; -char TEXT_FRONTLEFTCOMMAND[] = "Front left command"; -char TEXT_FRONTRIGHTCOMMAND[] = "Front right command"; -char TEXT_BACKLEFTCOMMAND[] = "Back left command"; -char TEXT_BACKRIGHTCOMMAND[] = "Back right command"; -char TEXT_FRONTFEEDBACK[] = "Front feedback"; -char TEXT_BACKFEEDBACK[] = "Back feedback"; -char TEXT_FRONTLEFTFEEDBACK[] = "Front left feedback"; -char TEXT_FRONTRIGHTFEEDBACK[] = "Front right feedback"; -char TEXT_BACKLEFTFEEDBACK[] = "Back left feedback"; -char TEXT_BACKRIGHTFEEDBACK[] = "Back right feedback"; -//char TEXT_BACK[] = "Back"; - //MainMenu char TEXT_MAINMENU[] = "Main menu"; char TEXT_STATUS[] = "Status"; @@ -200,11 +182,6 @@ char TEXT_FIELDWEAKMAX[] = "fldWkMax"; char TEXT_PHASEADVMAX[] = "phsAdvMax"; //char TEXT_BACK[] = "Back"; -//DebugMenu -//char TEXT_DEBUG[] = "Debug"; -char TEXT_DYNAMICMENU[] = "Dynamic menu"; -//char TEXT_BACK[] = "Back"; - //DefaultModeSettingsMenu //char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings"; char TEXT_MODELMODE[] = "Model mode"; @@ -237,10 +214,6 @@ char TEXT_HANDBREMSE_TRIGGERTIMEOUT[] = "Handbrems Timeout"; char TEXT_HANDBREMSE[] = "Handbremse"; //char TEXT_BACK[] = "Back"; -//DynamicDebugMenu -//char TEXT_DYNAMICMENU[] = "Dynamic menu"; -//char TEXT_BACK[] = "Back"; - //EnableMenu //char TEXT_SETENABLED[] = "Set enabled"; char TEXT_ENABLEFRONTLEFT[] = "Enable front left"; diff --git a/main/texts.h b/main/texts.h index b24807d..f760912 100644 --- a/main/texts.h +++ b/main/texts.h @@ -1,3 +1,5 @@ +#pragma once + namespace bobbytexts { //AboutMenu extern char TEXT_ABOUT[]; @@ -63,24 +65,6 @@ extern char TEXT_UDPUSESTRING[]; //extern char TEXT_BACK[]; #endif -//DebugMenu -extern char TEXT_LOADSETTINGS[]; -extern char TEXT_SAVESETTINGS[]; -extern char TEXT_ERASENVS[]; -extern char TEXT_FRONTCOMMAND[]; -extern char TEXT_BACKCOMMAND[]; -extern char TEXT_FRONTLEFTCOMMAND[]; -extern char TEXT_FRONTRIGHTCOMMAND[]; -extern char TEXT_BACKLEFTCOMMAND[]; -extern char TEXT_BACKRIGHTCOMMAND[]; -extern char TEXT_FRONTFEEDBACK[]; -extern char TEXT_BACKFEEDBACK[]; -extern char TEXT_FRONTLEFTFEEDBACK[]; -extern char TEXT_FRONTRIGHTFEEDBACK[]; -extern char TEXT_BACKLEFTFEEDBACK[]; -extern char TEXT_BACKRIGHTFEEDBACK[]; -//extern char TEXT_BACK[]; - //MainMenu extern char TEXT_MAINMENU[]; extern char TEXT_STATUS[]; @@ -199,11 +183,6 @@ extern char TEXT_FIELDWEAKMAX[]; extern char TEXT_PHASEADVMAX[]; //extern char TEXT_BACK[]; -//DebugMenu -//extern char TEXT_DEBUG[]; -extern char TEXT_DYNAMICMENU[]; -//extern char TEXT_BACK[]; - //DefaultModeSettingsMenu //extern char TEXT_DEFAULTMODESETTINGS[]; extern char TEXT_MODELMODE[]; @@ -236,10 +215,6 @@ extern char TEXT_HANDBREMSE_TRIGGERTIMEOUT[]; extern char TEXT_HANDBREMSE[]; //extern char TEXT_BACK[]; -//DynamicDebugMenu -//extern char TEXT_DYNAMICMENU[]; -//extern char TEXT_BACK[]; - //EnableMenu //extern char TEXT_SETENABLED[]; extern char TEXT_ENABLEFRONTLEFT[]; @@ -505,6 +480,6 @@ extern char TEXT_ESPNOW_SETTINGS[]; extern char TEXT_ESPNOW_SYNCTIME[]; extern char TEXT_ESPNOW_SYNCWITHOTHERS[]; extern char TEXT_ESPNOW_SYNCBLINK[]; -} // namespace +} // namespace bobbytexts using namespace bobbytexts; From f099d1570709e520997a7cec5e6fc0bf8427323c Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 30 Dec 2021 03:17:30 +0100 Subject: [PATCH 4/6] Huge refactoring --- main/CMakeLists.txt | 2 - main/accessors/settingsaccessors.h | 14 +- main/actions/rebootaction.cpp | 6 +- main/actions/rebootaction.h | 4 +- main/changevaluedisplay_bluetoothmode.h | 1 - main/displays/calibratedisplay.cpp | 4 + main/displays/calibratedisplay.h | 1 - main/displays/calibratevoltagedisplay.cpp | 85 ++- main/displays/calibratevoltagedisplay.h | 21 +- main/displays/gametrakcalibratedisplay.h | 1 - main/displays/ledstripcolorsdisplay.cpp | 3 +- main/displays/lockscreen.cpp | 3 +- main/displays/menus/aboutmenu.cpp | 13 +- main/displays/menus/aboutmenu.h | 7 +- main/displays/menus/batterydebugmenu.cpp | 72 ++- main/displays/menus/batterydebugmenu.h | 16 +- main/displays/menus/batterymenu.cpp | 63 ++- main/displays/menus/batterymenu.h | 20 +- main/displays/menus/blesettingsmenu.cpp | 16 +- main/displays/menus/blesettingsmenu.h | 8 +- main/displays/menus/bluetoothsettingsmenu.h | 1 - main/displays/menus/bmsmenu.cpp | 1 - main/displays/menus/bmsmenu.h | 7 +- .../boardcomputerhardwaresettingsmenu.cpp | 24 + .../menus/boardcomputerhardwaresettingsmenu.h | 7 +- main/displays/menus/buzzermenu.cpp | 17 + main/displays/menus/buzzermenu.h | 7 +- main/displays/menus/cloudsettingsmenu.cpp | 11 + main/displays/menus/cloudsettingsmenu.h | 7 +- main/displays/menus/commanddebugmenu.h | 6 +- .../menus/controllerhardwaresettingsmenu.cpp | 25 +- .../menus/controllerhardwaresettingsmenu.h | 7 +- main/displays/menus/crashmenu.cpp | 21 +- main/displays/menus/crashmenu.h | 10 +- main/displays/menus/debugmenu.cpp | 13 +- main/displays/menus/debugmenu.h | 7 +- .../menus/defaultmodesettingsmenu.cpp | 36 ++ main/displays/menus/defaultmodesettingsmenu.h | 7 +- main/displays/menus/demosmenu.cpp | 17 +- main/displays/menus/demosmenu.h | 7 +- main/displays/menus/dynamicdebugmenu.cpp | 2 +- main/displays/menus/enablemenu.cpp | 17 +- main/displays/menus/enablemenu.h | 10 +- main/displays/menus/espnowmenu.cpp | 58 ++- main/displays/menus/espnowmenu.h | 35 +- main/displays/menus/espnowsettingsmenu.cpp | 28 +- main/displays/menus/espnowsettingsmenu.h | 22 +- main/displays/menus/feedbackdebugmenu.h | 3 + .../displays/menus/gametrakmodesettingsmenu.h | 9 +- main/displays/menus/garagenmenu.cpp | 43 +- main/displays/menus/garagenmenu.h | 34 +- main/displays/menus/graphsmenu.cpp | 29 +- main/displays/menus/graphsmenu.h | 7 +- main/displays/menus/greenpassmenu.cpp | 19 +- main/displays/menus/greenpassmenu.h | 13 +- main/displays/menus/handbremssettingsmenu.cpp | 14 +- main/displays/menus/handbremssettingsmenu.h | 8 +- main/displays/menus/invertmenu.cpp | 13 + main/displays/menus/invertmenu.h | 8 +- main/displays/menus/larsmmodesettingsmenu.cpp | 11 + main/displays/menus/larsmmodesettingsmenu.h | 9 +- main/displays/menus/ledstripmenu.cpp | 81 ++- main/displays/menus/ledstripmenu.h | 7 +- .../menus/ledstripselectanimationmenu.cpp | 17 +- .../menus/ledstripselectanimationmenu.h | 8 +- .../menus/ledstripselectblinkmenu.cpp | 75 ++- main/displays/menus/ledstripselectblinkmenu.h | 14 +- main/displays/menus/ledstripselectotamode.cpp | 39 +- main/displays/menus/ledstripselectotamode.h | 24 +- main/displays/menus/limitssettingsmenu.cpp | 14 + main/displays/menus/limitssettingsmenu.h | 7 +- .../displays/menus/lockscreensettingsmenu.cpp | 19 +- main/displays/menus/lockscreensettingsmenu.h | 7 +- main/displays/menus/mainmenu.cpp | 80 ++- main/displays/menus/mainmenu.h | 9 +- main/displays/menus/modessettingsmenu.cpp | 17 +- main/displays/menus/modessettingsmenu.h | 7 +- main/displays/menus/mosfetsmenu.cpp | 30 +- main/displays/menus/mosfetsmenu.h | 23 +- main/displays/menus/motorfeedbackdebugmenu.h | 4 +- main/displays/menus/motorstatedebugmenu.h | 3 + .../menus/motortestmodesettingsmenu.cpp | 10 + .../menus/motortestmodesettingsmenu.h | 7 +- main/displays/menus/networksettingsmenu.cpp | 2 +- main/displays/menus/otamenu.cpp | 18 +- main/displays/menus/otamenu.h | 7 +- main/displays/menus/presetsmenu.cpp | 25 +- main/displays/menus/presetsmenu.h | 8 +- main/displays/menus/profilesmenu.cpp | 15 +- main/displays/menus/profilesmenu.h | 8 +- main/displays/menus/selectbatterytypemenu.cpp | 41 +- main/displays/menus/selectbatterytypemenu.h | 15 +- .../menus/selectbuildserverbranch.cpp | 37 +- main/displays/menus/selectbuildserverbranch.h | 7 +- main/displays/menus/selectbuildservermenu.cpp | 12 +- main/displays/menus/selectbuildservermenu.h | 7 +- main/displays/menus/selectmodemenu.cpp | 14 + main/displays/menus/selectmodemenu.h | 7 +- main/displays/menus/selectotabuildmenu.cpp | 13 + main/displays/menus/selectotabuildmenu.h | 8 +- main/displays/menus/settingsmenu.cpp | 27 + main/displays/menus/settingsmenu.h | 7 +- main/displays/menus/statisticsmenu.cpp | 54 +- main/displays/menus/statisticsmenu.h | 10 +- main/displays/menus/taskmanagermenu.cpp | 7 + main/displays/menus/taskmanagermenu.h | 8 +- .../menus/tempomatmodesettingsmenu.cpp | 11 + .../displays/menus/tempomatmodesettingsmenu.h | 7 +- main/displays/menus/timersmenu.cpp | 12 +- main/displays/menus/timersmenu.h | 8 +- main/displays/menus/timesettingsmenu.cpp | 14 + main/displays/menus/timesettingsmenu.h | 7 +- main/displays/menus/udpcloudsettingsmenu.cpp | 11 + main/displays/menus/udpcloudsettingsmenu.h | 7 +- main/displays/poweroffdisplay.cpp | 3 +- main/displays/statusdisplay.cpp | 12 + main/displays/statusdisplay.h | 3 + main/displays/updatedisplay.cpp | 3 +- main/ledstrip.cpp | 3 +- main/newsettings.h | 10 +- main/presets.h | 1 - main/settings.h | 2 - main/texts.cpp | 482 ----------------- main/texts.h | 485 ------------------ 124 files changed, 1369 insertions(+), 1561 deletions(-) delete mode 100644 main/texts.cpp delete mode 100644 main/texts.h diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 8dfd123..caffdb1 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -57,7 +57,6 @@ set(headers statistics.h statustexthelper.h taskmanager.h - texts.h time_bobbycar.h types.h udpcloud.h @@ -292,7 +291,6 @@ set(sources statistics.cpp statustexthelper.cpp taskmanager.cpp - texts.cpp time_bobbycar.cpp types.cpp udpcloud.cpp diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 2230674..a4e925c 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -182,7 +182,19 @@ struct LedsCountAccessor : public RefAccessorSaveSettings { int16_t &ge struct CenterOffsetAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.ledstrip.centerOffset; } }; struct SmallOffsetAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.ledstrip.smallOffset; } }; struct BigOffsetAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.ledstrip.bigOffset; } }; -struct DeziampereAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.ledstrip.deziampere; } }; +struct LedStripMaxMilliampsAccessor : public NewSettingsAccessor { ConfigWrapper &getConfig() const override { return configs.ledStripMaxMilliamps; } }; +struct LedStripMaxAmpereAccessor : public virtual espgui::AccessorInterface +{ + float getValue() const override + { + return configs.ledStripMaxMilliamps.value / 1000.f; + } + + espgui::AccessorInterface::setter_result_t setValue(float value) override + { + return configs.write_config(configs.ledStripMaxMilliamps, value * 1000); + } +}; struct EnableBeepWhenBlinkAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.ledstrip.enableBeepWhenBlink; } }; struct EnableFullBlinkAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.ledstrip.enableFullBlink; } }; struct EnableLedstripStVOAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.ledstrip.enableStVO; } }; diff --git a/main/actions/rebootaction.cpp b/main/actions/rebootaction.cpp index a343c6e..138fa76 100644 --- a/main/actions/rebootaction.cpp +++ b/main/actions/rebootaction.cpp @@ -6,16 +6,12 @@ // 3rdparty lib includes #include -// local includes -#include "globals.h" -#include "texts.h" - void RebootAction::triggered() { espgui::tft.fillScreen(TFT_BLACK); espgui::tft.setTextColor(TFT_YELLOW); - espgui::tft.drawString(TEXT_REBOOT, 5, 5, 4); + espgui::tft.drawString("Reboot", 5, 5, 4); espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); diff --git a/main/actions/rebootaction.h b/main/actions/rebootaction.h index 3bc01f2..757ba3c 100644 --- a/main/actions/rebootaction.h +++ b/main/actions/rebootaction.h @@ -1,9 +1,7 @@ #pragma once // 3rdparty lib includes -#include "actioninterface.h" - -using namespace espgui; +#include class RebootAction : public virtual espgui::ActionInterface { diff --git a/main/changevaluedisplay_bluetoothmode.h b/main/changevaluedisplay_bluetoothmode.h index e34fcb3..96b8468 100644 --- a/main/changevaluedisplay_bluetoothmode.h +++ b/main/changevaluedisplay_bluetoothmode.h @@ -7,7 +7,6 @@ #include "actions/setvalueaction.h" #include "actions/backproxyaction.h" #include "icons/back.h" -#include "texts.h" #ifdef FEATURE_BLUETOOTH #include "bluetoothmode.h" #endif diff --git a/main/displays/calibratedisplay.cpp b/main/displays/calibratedisplay.cpp index 59b845a..ee7cd7a 100644 --- a/main/displays/calibratedisplay.cpp +++ b/main/displays/calibratedisplay.cpp @@ -10,6 +10,10 @@ #include "displays/menus/boardcomputerhardwaresettingsmenu.h" #include "newsettings.h" +namespace { +constexpr char TEXT_CALIBRATE[] = "Calibrate"; +} // namespace + CalibrateDisplay::CalibrateDisplay(bool bootup) : m_bootup{bootup} { diff --git a/main/displays/calibratedisplay.h b/main/displays/calibratedisplay.h index d2ad87d..96e8f3c 100644 --- a/main/displays/calibratedisplay.h +++ b/main/displays/calibratedisplay.h @@ -15,7 +15,6 @@ #include "bobbydisplaywithtitle.h" #include "globals.h" #include "utils.h" -#include "texts.h" #include "modes/ignoreinputmode.h" class CalibrateDisplay : public BobbyDisplayWithTitle diff --git a/main/displays/calibratevoltagedisplay.cpp b/main/displays/calibratevoltagedisplay.cpp index ee3179f..291c7e7 100644 --- a/main/displays/calibratevoltagedisplay.cpp +++ b/main/displays/calibratevoltagedisplay.cpp @@ -1,14 +1,35 @@ #include "calibratevoltagedisplay.h" // 3rdparty lib includes +#include +#include +#include +#include +#include #include -// local includes +// Local includes +#include "utils.h" +#include "icons/settings.h" +#include "battery.h" +#include "menus/batterymenu.h" +#include "globals.h" #include "displays/menus/batterymenu.h" #include "accessors/settingsaccessors.h" #include "bobbycheckbox.h" namespace { +constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; +constexpr char TEXT_VOLTAGECALIBRATION_30V[] = "Calibrate 30.0V"; +constexpr char TEXT_VOLTAGECALIBRATION_50V[] = "Calibrate 50.0V"; +constexpr char TEXT_VOLTAGECALIBRATION_VALUE_30_FRONT[] = "30V Front"; +constexpr char TEXT_VOLTAGECALIBRATION_VALUE_30_BACK[] = "30V Back"; +constexpr char TEXT_VOLTAGECALIBRATION_VALUE_50_FRONT[] = "50V Front"; +constexpr char TEXT_VOLTAGECALIBRATION_VALUE_50_BACK[] = "50V Back"; +constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; +constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; +constexpr char TEXT_BACK[] = "Back"; + class Save30VCalibrationAction : public virtual espgui::ActionInterface { public: @@ -49,17 +70,58 @@ float convertToFloat(int16_t value) return value/100.; } -class BatteryVoltageCalibrationFront30VText : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("30V Front: {}", convertToFloat(settings.battery.front30VoltCalibration)); } }; -class BatteryVoltageCalibrationBack30VText : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("30V Back: {}", convertToFloat(settings.battery.back30VoltCalibration)); } }; -class BatteryVoltageCalibrationFront50VText : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("50V Front: {}", convertToFloat(settings.battery.front50VoltCalibration)); } }; -class BatteryVoltageCalibrationBack50VText : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("50V Back: {}", convertToFloat(settings.battery.back50VoltCalibration)); } }; -class BatteryVoltageCalibratedText : public virtual espgui::TextInterface { public: std::string text() const override { if (settings.battery.applyCalibration) return fmt::format("F{:.2f}V B{:.2f}", controllers.front.getCalibratedVoltage(), controllers.back.getCalibratedVoltage()); else return "Not activated"; } }; -} // namespace +class BatteryVoltageCalibrationFront30VText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("30V Front: {}", convertToFloat(settings.battery.front30VoltCalibration)); + } +}; -using namespace espgui; +class BatteryVoltageCalibrationBack30VText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("30V Back: {}", convertToFloat(settings.battery.back30VoltCalibration)); + } +}; + +class BatteryVoltageCalibrationFront50VText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("50V Front: {}", convertToFloat(settings.battery.front50VoltCalibration)); + } +}; + +class BatteryVoltageCalibrationBack50VText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("50V Back: {}", convertToFloat(settings.battery.back50VoltCalibration)); + } +}; + +class BatteryVoltageCalibratedText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + if (settings.battery.applyCalibration) + return fmt::format("F{:.2f}V B{:.2f}", controllers.front.getCalibratedVoltage(), controllers.back.getCalibratedVoltage()); + else + return "Not activated"; + } +}; +} // namespace CalibrateVoltageDisplay::CalibrateVoltageDisplay() { + using namespace espgui; constructMenuItem, Save30VCalibrationAction>>(); constructMenuItem, Save50VCalibrationAction>>(); constructMenuItem, BobbyCheckbox, BatteryApplyCalibrationAccessor>>(); @@ -75,7 +137,12 @@ CalibrateVoltageDisplay::CalibrateVoltageDisplay() constructMenuItem, ResetCalibrationAction>>(); } +std::string CalibrateVoltageDisplay::text() const +{ + return TEXT_BATTERY_CALIBRATE; +} + void CalibrateVoltageDisplay::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/calibratevoltagedisplay.h b/main/displays/calibratevoltagedisplay.h index 1c27ab3..1efa967 100644 --- a/main/displays/calibratevoltagedisplay.h +++ b/main/displays/calibratevoltagedisplay.h @@ -1,27 +1,14 @@ #pragma once -// 3rdparty lib includes -#include -#include -#include -#include -#include - -// Local includes +// local includes #include "bobbymenudisplay.h" -#include "utils.h" -#include "icons/settings.h" -#include "texts.h" -#include "battery.h" -#include "menus/batterymenu.h" -#include "globals.h" -class CalibrateVoltageDisplay : - public BobbyMenuDisplay, - public espgui::StaticText +class CalibrateVoltageDisplay : public BobbyMenuDisplay { public: CalibrateVoltageDisplay(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/gametrakcalibratedisplay.h b/main/displays/gametrakcalibratedisplay.h index 690034a..1d3456b 100644 --- a/main/displays/gametrakcalibratedisplay.h +++ b/main/displays/gametrakcalibratedisplay.h @@ -12,7 +12,6 @@ // local includes #include "bobbydisplay.h" #include "globals.h" -#include "texts.h" #include "modes/ignoreinputmode.h" namespace { diff --git a/main/displays/ledstripcolorsdisplay.cpp b/main/displays/ledstripcolorsdisplay.cpp index 5b17d88..f341df4 100644 --- a/main/displays/ledstripcolorsdisplay.cpp +++ b/main/displays/ledstripcolorsdisplay.cpp @@ -17,13 +17,14 @@ #include "utils.h" #include "icons/back.h" #include "icons/bobbycar.h" -#include "texts.h" #include "actions/dummyaction.h" #include "globals.h" #include "displays/menus/ledstripmenu.h" #ifdef FEATURE_LEDSTRIP namespace { +constexpr char TEXT_LEDSTRIPCOLORMENU[] = "Customize Ledstrip"; + int8_t selected_side = 7; int8_t selected_color; bool state_select_color{false}; diff --git a/main/displays/lockscreen.cpp b/main/displays/lockscreen.cpp index 4c1d843..7142770 100644 --- a/main/displays/lockscreen.cpp +++ b/main/displays/lockscreen.cpp @@ -7,7 +7,6 @@ // local includes #include "globals.h" #include "utils.h" -#include "texts.h" #include "displays/menus/mainmenu.h" #include "displays/calibratedisplay.h" #include "bobbybuttons.h" @@ -40,7 +39,7 @@ void Lockscreen::initScreen() espgui::tft.setTextFont(4); espgui::tft.setTextColor(TFT_YELLOW); - espgui::tft.drawString(TEXT_LOCKVEHICLE, 5, 5); + espgui::tft.drawString("Lock vehicle", 5, 5); espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); diff --git a/main/displays/menus/aboutmenu.cpp b/main/displays/menus/aboutmenu.cpp index 6cf864e..535c7c3 100644 --- a/main/displays/menus/aboutmenu.cpp +++ b/main/displays/menus/aboutmenu.cpp @@ -15,6 +15,9 @@ #endif namespace { +constexpr char TEXT_ABOUT[] = "About"; +constexpr char TEXT_BACK[] = "Back"; + class CurrentVersionText : public virtual espgui::TextInterface { public: @@ -33,10 +36,9 @@ public: constexpr char TEXT_VERSION[] = "Version: 1.0"; } // namespace -using namespace espgui; - AboutMenu::AboutMenu() { + using namespace espgui; constructMenuItem>(); constructMenuItem, DisabledColor, DummyAction>>(); constructMenuItem, DisabledColor, DummyAction>>(); @@ -63,7 +65,12 @@ AboutMenu::AboutMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string AboutMenu::text() const +{ + return TEXT_ABOUT; +} + void AboutMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/aboutmenu.h b/main/displays/menus/aboutmenu.h index 34cff49..3937122 100644 --- a/main/displays/menus/aboutmenu.h +++ b/main/displays/menus/aboutmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class AboutMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class AboutMenu : public BobbyMenuDisplay { public: AboutMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/batterydebugmenu.cpp b/main/displays/menus/batterydebugmenu.cpp index e568c22..050aa1d 100644 --- a/main/displays/menus/batterydebugmenu.cpp +++ b/main/displays/menus/batterydebugmenu.cpp @@ -1,16 +1,55 @@ #include "batterydebugmenu.h" +// 3rdparty lib includes +#include +#include +#include +#include +#include + // local includes #include "debugmenu.h" #include "accessors/settingsaccessors.h" -#include "fmt/core.h" +#include "utils.h" +#include "icons/settings.h" +#include "battery.h" -class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } }; -class CurrentAdvancedBatteryPercentageText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryAdvancedPercentageString(); } }; +namespace { +constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu"; +constexpr char TEXT_BACK[] = "Back"; -class BatteryDebugText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryDebugString(); } }; -class BatteryDebug2Text : public virtual espgui::TextInterface { - public: std::string text() const override { +class CurrentBatteryStatusText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return getBatteryPercentageString(); + } +}; + +class CurrentAdvancedBatteryPercentageText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return getBatteryAdvancedPercentageString(); + } +}; + +class BatteryDebugText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return getBatteryDebugString(); + } +}; + +class BatteryDebug2Text : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { float avgVoltage = 0; for (auto &controller : controllers) { @@ -23,12 +62,22 @@ class BatteryDebug2Text : public virtual espgui::TextInterface { return fmt::format("{:.0f} {:.0f}W/kmh", avgSpeedKmh, w_per_kmh); } }; -class BatteryDebug3Text : public virtual espgui::TextInterface { public: std::string text() const override { return fmt::format("{}fA {}bA", fixCurrent(controllers.front.feedback.left.dcLink + controllers.front.feedback.right.dcLink), fixCurrent(controllers.back.feedback.left.dcLink + controllers.back.feedback.right.dcLink)); } }; -using namespace espgui; +class BatteryDebug3Text : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("{}fA {}bA", + fixCurrent(controllers.front.feedback.left.dcLink + controllers.front.feedback.right.dcLink), + fixCurrent(controllers.back.feedback.left.dcLink + controllers.back.feedback.right.dcLink)); + } +}; +} // namespace BatteryDebugMenu::BatteryDebugMenu() { + using namespace espgui; constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); @@ -38,7 +87,12 @@ BatteryDebugMenu::BatteryDebugMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string BatteryDebugMenu::text() const +{ + return TEXT_BATTERYDEBUG; +} + void BatteryDebugMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/batterydebugmenu.h b/main/displays/menus/batterydebugmenu.h index 9c44597..e351982 100644 --- a/main/displays/menus/batterydebugmenu.h +++ b/main/displays/menus/batterydebugmenu.h @@ -1,24 +1,14 @@ #pragma once -// 3rdparty lib includes -#include -#include -#include -#include - // Local includes #include "displays/bobbymenudisplay.h" -#include "utils.h" -#include "icons/settings.h" -#include "texts.h" -#include "battery.h" -class BatteryDebugMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BatteryDebugMenu : public BobbyMenuDisplay { public: BatteryDebugMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/batterymenu.cpp b/main/displays/menus/batterymenu.cpp index e41428b..74e8d7e 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/displays/menus/batterymenu.cpp @@ -1,17 +1,42 @@ #include "batterymenu.h" // 3rdparty lib includes +#include +#include +#include +#include #include #include #include -// local includes +// Local includes +#include "utils.h" +#include "icons/settings.h" +#include "battery.h" +#include "selectbatterytypemenu.h" #include "displays/bobbychangevaluedisplay.h" #include "mainmenu.h" #include "displays/calibratevoltagedisplay.h" #include "accessors/settingsaccessors.h" #include "battery.h" +namespace { +constexpr char TEXT_BATTERY[] = "Battery"; +constexpr char TEXT_CELL_SERIES[] = "Cells (Series)"; +constexpr char TEXT_CELL_PARALLEL[] = "Cells (Parallel)"; +constexpr char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type"; +constexpr char TEXT_CELL_TYPE[] = "Cell Type"; +constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; +constexpr char TEXT_BATTERY_TYPE_22P[] = "22P cells"; +constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells"; +constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; +constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; +constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; +constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; +constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; +constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; +constexpr char TEXT_BACK[] = "Back"; + class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } }; using BatteryCellSeriesChangeScreen = espgui::makeComponent< @@ -37,8 +62,27 @@ using BatteryWHperKMChangeScreen = espgui::makeComponent< espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; +} // namespace -using namespace espgui; +BatteryMenu::BatteryMenu() +{ + using namespace espgui; + + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +std::string BatteryMenu::text() const +{ + return TEXT_BATTERY; +} void BatteryMenu::start() { @@ -61,20 +105,7 @@ void BatteryMenu::redraw() m_doubleProgressBarBatPercentage.redraw(batPercent, battery::bootBatPercentage); } -BatteryMenu::BatteryMenu() -{ - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); -} - void BatteryMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/batterymenu.h b/main/displays/menus/batterymenu.h index 14b1b08..01740c6 100644 --- a/main/displays/menus/batterymenu.h +++ b/main/displays/menus/batterymenu.h @@ -1,32 +1,22 @@ #pragma once -// 3rdparty lib includes -#include -#include -#include -#include - -// Local includes +// local includes #include "displays/bobbymenudisplay.h" -#include "utils.h" -#include "icons/settings.h" -#include "texts.h" -#include "battery.h" -#include "selectbatterytypemenu.h" #include "widgets/doubleprogressbar.h" -class BatteryMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BatteryMenu : public BobbyMenuDisplay { using Base = BobbyMenuDisplay; public: BatteryMenu(); + std::string text() const override; + void start() override; void redraw() override; void back() override; + private: bobbygui::DoubleProgressBar m_doubleProgressBarBatPercentage{75, 68, 90, 24, 0, 100, TFT_RED, TFT_GREEN}; }; diff --git a/main/displays/menus/blesettingsmenu.cpp b/main/displays/menus/blesettingsmenu.cpp index aec2d9a..37d6d41 100644 --- a/main/displays/menus/blesettingsmenu.cpp +++ b/main/displays/menus/blesettingsmenu.cpp @@ -10,22 +10,30 @@ #include "bletexthelpers.h" #include "displays/menus/settingsmenu.h" #include "bobbycheckbox.h" -#include "texts.h" #ifdef FEATURE_BLE - -using namespace espgui; +namespace { +constexpr char TEXT_BLESETTINGS[] = "BLE settings"; +constexpr char TEXT_BLEENABLED[] = "BLE enabled"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace BleSettingsMenu::BleSettingsMenu() { + using namespace espgui; constructMenuItem, BobbyCheckbox, BleEnabledAccessor>>(); constructMenuItem>(); constructMenuItem>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string BleSettingsMenu::text() const +{ + return TEXT_BLESETTINGS; +} + void BleSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/blesettingsmenu.h b/main/displays/menus/blesettingsmenu.h index b358862..0143c5e 100644 --- a/main/displays/menus/blesettingsmenu.h +++ b/main/displays/menus/blesettingsmenu.h @@ -2,16 +2,16 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_BLE -class BleSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BleSettingsMenu : public BobbyMenuDisplay { public: BleSettingsMenu(); + + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/bluetoothsettingsmenu.h b/main/displays/menus/bluetoothsettingsmenu.h index 755c546..bac352d 100644 --- a/main/displays/menus/bluetoothsettingsmenu.h +++ b/main/displays/menus/bluetoothsettingsmenu.h @@ -19,7 +19,6 @@ #include "bluetoothtexthelpers.h" #include "accessors/settingsaccessors.h" #include "icons/back.h" -#include "texts.h" using namespace espgui; using namespace bluetoothtexthelpers; diff --git a/main/displays/menus/bmsmenu.cpp b/main/displays/menus/bmsmenu.cpp index 0b7d3f0..24ad1ba 100644 --- a/main/displays/menus/bmsmenu.cpp +++ b/main/displays/menus/bmsmenu.cpp @@ -13,7 +13,6 @@ #include "actions/switchscreenaction.h" #include "bluetoothtexthelpers.h" #include "icons/back.h" -#include "texts.h" #include "displays/menus/mainmenu.h" using namespace espgui; diff --git a/main/displays/menus/bmsmenu.h b/main/displays/menus/bmsmenu.h index a8d969c..ab4177e 100644 --- a/main/displays/menus/bmsmenu.h +++ b/main/displays/menus/bmsmenu.h @@ -3,14 +3,13 @@ #if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class BmsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BmsMenu : public BobbyMenuDisplay { public: BmsMenu(); + + std::string text() const override { return TEXT_BMS; } void back() override; }; #endif diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp index 4f2b0c9..9eb3e4d 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp @@ -19,6 +19,25 @@ #include "displays/menus/settingsmenu.h" namespace { +constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings"; +constexpr char TEXT_LOCKSCREENSETTINGS[] = "Lockscreen Settings"; +constexpr char TEXT_CALIBRATE[] = "Calibrate"; +constexpr char TEXT_SAMPLECOUNT[] = "sampleCount"; +constexpr char TEXT_GASMIN[] = "gasMin"; +constexpr char TEXT_GASMAX[] = "gasMax"; +constexpr char TEXT_BREMSMIN[] = "bremsMin"; +constexpr char TEXT_BREMSMAX[] = "bremsMax"; +constexpr char TEXT_DPADDEBOUNCE[] = "dpadDebounce"; +constexpr char TEXT_GAMETRAKCALIBRATE[] = "Gametrak calibrate"; +constexpr char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin"; +constexpr char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax"; +constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin"; +constexpr char TEXT_SETGAMETRAKYMAX[] = "Set gametrakYMax"; +constexpr char TEXT_SETGAMETRAKDISTMIN[] = "Set gametrakDistMin"; +constexpr char TEXT_SETGAMETRAKDISTMAX[] = "Set gametrakDistMax"; +constexpr char TEXT_TIMERS[] = "Timers"; +constexpr char TEXT_BACK[] = "Back"; + struct GasText : public virtual espgui::TextInterface { public: @@ -181,6 +200,11 @@ BoardcomputerHardwareSettingsMenu::BoardcomputerHardwareSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); } +std::string BoardcomputerHardwareSettingsMenu::text() const +{ + return TEXT_BOARDCOMPUTERHARDWARESETTINGS; +} + void BoardcomputerHardwareSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.h b/main/displays/menus/boardcomputerhardwaresettingsmenu.h index 1b5f151..3401014 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.h +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class BoardcomputerHardwareSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BoardcomputerHardwareSettingsMenu : public BobbyMenuDisplay { public: BoardcomputerHardwareSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/buzzermenu.cpp b/main/displays/menus/buzzermenu.cpp index 757e0ee..4051706 100644 --- a/main/displays/menus/buzzermenu.cpp +++ b/main/displays/menus/buzzermenu.cpp @@ -15,6 +15,18 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_BUZZER[] = "Buzzer"; +constexpr char TEXT_FRONTFREQ[] = "Front freq"; +constexpr char TEXT_FRONTPATTERN[] = "Front pattern"; +constexpr char TEXT_BACKFREQ[] = "Back freq"; +constexpr char TEXT_BACKPATTERN[] = "Back pattern"; +constexpr char TEXT_REVERSEBEEP[] = "Reverse beep"; +constexpr char TEXT_REVERSEBEEPFREQ0[] = "Reverse beep freq0"; +constexpr char TEXT_REVERSEBEEPFREQ1[] = "Reverse beep freq1"; +constexpr char TEXT_REVERSEBEEPDURATION0[] = "Reverse beep duration0"; +constexpr char TEXT_REVERSEBEEPDURATION1[] = "Reverse beep duration1"; +constexpr char TEXT_BACK[] = "Back"; + struct FrontFreqAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.front.command.buzzer.freq; } }; using FrontFreqChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, @@ -97,6 +109,11 @@ BuzzerMenu::BuzzerMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string BuzzerMenu::text() const +{ + return TEXT_BUZZER; +} + void BuzzerMenu::back() { switchScreen(); diff --git a/main/displays/menus/buzzermenu.h b/main/displays/menus/buzzermenu.h index 525d363..cfdc0bd 100644 --- a/main/displays/menus/buzzermenu.h +++ b/main/displays/menus/buzzermenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class BuzzerMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BuzzerMenu : public BobbyMenuDisplay { public: BuzzerMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/cloudsettingsmenu.cpp b/main/displays/menus/cloudsettingsmenu.cpp index d4e744d..d425baf 100644 --- a/main/displays/menus/cloudsettingsmenu.cpp +++ b/main/displays/menus/cloudsettingsmenu.cpp @@ -18,6 +18,12 @@ #ifdef FEATURE_CLOUD namespace { +constexpr char TEXT_CLOUDSETTINGS[] = "Cloud settings"; +constexpr char TEXT_CLOUDENABLED[] = "Cloud enabled"; +constexpr char TEXT_CLOUDTRANSMITTIMEOUT[] = "Transmit timeout"; +constexpr char TEXT_CLOUDCOLLECTRATE[] = "Cloud collect rate"; +constexpr char TEXT_CLOUDSENDRATE[] = "Cloud send rate"; +constexpr char TEXT_BACK[] = "Back"; using CloudTransmitTimeoutChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, @@ -68,6 +74,11 @@ CloudSettingsMenu::CloudSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string CloudSettingsMenu::text() const +{ + return TEXT_CLOUDSETTINGS; +} + void CloudSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/cloudsettingsmenu.h b/main/displays/menus/cloudsettingsmenu.h index e15538c..5cb6118 100644 --- a/main/displays/menus/cloudsettingsmenu.h +++ b/main/displays/menus/cloudsettingsmenu.h @@ -2,16 +2,15 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_CLOUD -class CloudSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class CloudSettingsMenu : public BobbyMenuDisplay { public: CloudSettingsMenu(); + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/commanddebugmenu.h b/main/displays/menus/commanddebugmenu.h index 003a14d..9fc287d 100644 --- a/main/displays/menus/commanddebugmenu.h +++ b/main/displays/menus/commanddebugmenu.h @@ -26,10 +26,12 @@ public: constructMenuItem>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } + +private: + static constexpr char TEXT_BACK[] = "Back"; }; constexpr char TEXT_FRONTCOMMAND[] = "Front command"; -using FrontCommandDebugMenu = CommandDebugMenu; - constexpr char TEXT_BACKCOMMAND[] = "Back command"; +using FrontCommandDebugMenu = CommandDebugMenu; using BackCommandDebugMenu = CommandDebugMenu; diff --git a/main/displays/menus/controllerhardwaresettingsmenu.cpp b/main/displays/menus/controllerhardwaresettingsmenu.cpp index 4155d79..a49a3ad 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.cpp +++ b/main/displays/menus/controllerhardwaresettingsmenu.cpp @@ -19,6 +19,21 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings"; +constexpr char TEXT_WHEELDIAMETERMM[] = "Wheel diameter (mm)"; +constexpr char TEXT_WHEELDIAMETERINCH[] = "Wheel diameter (inch)"; +constexpr char TEXT_NUMMAGNETPOLES[] = "Num magnet poles"; +constexpr char TEXT_SETENABLED[] = "Set enabled"; +constexpr char TEXT_SETINVERTED[] = "Set inverted"; +constexpr char TEXT_SWAPFRONTBACK[] = "Swap front/back"; +#ifdef FEATURE_CAN +constexpr char TEXT_FRONTSENDCAN[] = "Front send CAN"; +constexpr char TEXT_BACKSENDCAN[] = "Back send CAN"; +constexpr char TEXT_CANTRANSMITTIMEOUT[] = "CanTransmitTimeout"; +constexpr char TEXT_CANRECEIVETIMEOUT[] = "CanReceiveTimeout"; +#endif +constexpr char TEXT_BACK[] = "Back"; + using WheelDiameterMmChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -59,10 +74,9 @@ using CanReceiveTimeoutChangeScreen = espgui::makeComponent< #endif } // namespace -using namespace espgui; - ControllerHardwareSettingsMenu::ControllerHardwareSettingsMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); @@ -78,7 +92,12 @@ ControllerHardwareSettingsMenu::ControllerHardwareSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string ControllerHardwareSettingsMenu::text() const +{ + return TEXT_CONTROLLERHARDWARESETTINGS; +} + void ControllerHardwareSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/controllerhardwaresettingsmenu.h b/main/displays/menus/controllerhardwaresettingsmenu.h index aeb3c2c..6cdc7bf 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.h +++ b/main/displays/menus/controllerhardwaresettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class ControllerHardwareSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class ControllerHardwareSettingsMenu : public BobbyMenuDisplay { public: ControllerHardwareSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/crashmenu.cpp b/main/displays/menus/crashmenu.cpp index 8d4d74a..ddf74b0 100644 --- a/main/displays/menus/crashmenu.cpp +++ b/main/displays/menus/crashmenu.cpp @@ -1,20 +1,35 @@ #include "crashmenu.h" +// 3rdparty lib includes +#include "actions/switchscreenaction.h" +#include "icons/back.h" + // local includes #include "actions/assertaction.h" #include "actions/dividebyzeroaction.h" -#include "actions/switchscreenaction.h" #include "displays/menus/settingsmenu.h" -#include "icons/back.h" + +namespace { +constexpr char TEXT_CRASHMENU[] = "Crash Menu"; +constexpr char TEXT_CRASH_ASSERT[] = "assert(0)"; +constexpr char TEXT_CRASH_DIVZERO[] = "42 / 0"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace CrashMenu::CrashMenu() { + using namespace espgui; constructMenuItem, AssertAction>>(); constructMenuItem, DivideByZeroAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string CrashMenu::text() const +{ + return TEXT_CRASHMENU; +} + void CrashMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/crashmenu.h b/main/displays/menus/crashmenu.h index eb71469..d8322ba 100644 --- a/main/displays/menus/crashmenu.h +++ b/main/displays/menus/crashmenu.h @@ -2,15 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -using namespace espgui; - -class CrashMenu : - public BobbyMenuDisplay, - public StaticText +class CrashMenu : public BobbyMenuDisplay { public: CrashMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/debugmenu.cpp b/main/displays/menus/debugmenu.cpp index bad2aa6..e20e527 100644 --- a/main/displays/menus/debugmenu.cpp +++ b/main/displays/menus/debugmenu.cpp @@ -29,7 +29,11 @@ #include "bobbycheckbox.h" namespace { -//constexpr char TEXT_DEBUG[] = "Debug"; +constexpr char TEXT_DEBUG[] = "Debug"; +constexpr char TEXT_TASKMANAGER[] = "Taskmanager"; +constexpr char TEXT_QRCODE_DEBUG[] = "QR Debug"; +constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu"; +constexpr char TEXT_TOGGLECLOUDDEBUG[] = "Cloud Debug"; //constexpr char TEXT_FRONTCOMMAND[] = "Front command"; //constexpr char TEXT_BACKCOMMAND[] = "Back command"; //constexpr char TEXT_FRONTLEFTCOMMAND[] = "Front left command"; @@ -46,7 +50,7 @@ constexpr char TEXT_LOADSETTINGS[] = "Load settings (old)"; constexpr char TEXT_SAVESETTINGS[] = "Save settings (old)"; constexpr char TEXT_ERASENVS[] = "Erase NVS (old)"; constexpr char TEXT_DYNAMICMENU[] = "GUI experiments"; -//constexpr char TEXT_BACK[] = "Back"; +constexpr char TEXT_BACK[] = "Back"; } // namespace DebugMenu::DebugMenu() @@ -83,6 +87,11 @@ DebugMenu::DebugMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string DebugMenu::text() const +{ + return TEXT_DEBUG; +} + void DebugMenu::back() { switchScreen(); diff --git a/main/displays/menus/debugmenu.h b/main/displays/menus/debugmenu.h index 4d08ac4..ed03a16 100644 --- a/main/displays/menus/debugmenu.h +++ b/main/displays/menus/debugmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class DebugMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class DebugMenu : public BobbyMenuDisplay { public: DebugMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index 965e31f..32407b9 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -18,6 +18,37 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings"; +constexpr char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings"; +constexpr char TEXT_MODELMODE[] = "Model mode"; +constexpr char TEXT_HYBRIDMODE[] = "Hybrid mode"; +constexpr char TEXT_SQUAREGAS[] = "Square gas"; +constexpr char TEXT_SQUAREBREMS[] = "Square brems"; +constexpr char TEXT_ENABLESMOOTHINGUP[] = "Enable up smoothing"; +constexpr char TEXT_ENABLESMOOTHINGDOWN[] = "Enable down smoothing"; +constexpr char TEXT_ENABLEFWSMOOTHINGUP[] = "Enable fw up smoothing"; +constexpr char TEXT_ENABLEFWSMOOTHINGDOWN[] = "Enable fw down smoothing"; +constexpr char TEXT_FWSMOOTHING_LIMIT[] = "Fw smooth lower limit"; +constexpr char TEXT_SMOOTHINGVAL[] = "Smoothing"; +constexpr char TEXT_FRONTPERCENTAGE[] = "Front %"; +constexpr char TEXT_BACKPERCENTAGE[] = "Back %"; +constexpr char TEXT_ADDSCHWELLE[] = "Add/Sub Lim"; +constexpr char TEXT_SUBGASVAL[] = "Add Gas"; +constexpr char TEXT_SUBBRAKEVAL[] = "Add Brake"; +constexpr char TEXT_ADDGASVAL[] = "Sub Gas"; +constexpr char TEXT_ADDBRAKEVAL[] = "Sub Brake"; +constexpr char TEXT_HYBRIDENABLE[] = "Enable Hybrid mode"; +constexpr char TEXT_HYBRIDACTIVATIONLIMIT[] = "Hybrid activation-limit"; +constexpr char TEXT_HYBRIDDEACTIVATIONLIMIT[] = "Hybrid deactivation-limit"; +constexpr char TEXT_LIMITS_TO_NEAR[] = "Hybrid limits too near (>20)"; +constexpr char TEXT_HANDBREMSE_ENABLE[] = "Enable Handbremse"; +constexpr char TEXT_HANDBREMSE_AUTOMATIC[] = "Automatic Handbremse"; +constexpr char TEXT_HANDBREMSE_VISUALIZE[] = "Visualize Handbremse"; +constexpr char TEXT_HANDBREMSE_MODE[] = "Handbrems Mode"; +constexpr char TEXT_HANDBREMSE_TRIGGERTIMEOUT[] = "Handbrems Timeout"; +constexpr char TEXT_HANDBREMSE[] = "Handbremse"; +constexpr char TEXT_BACK[] = "Back"; + using DefaultModeModelModeChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -141,6 +172,11 @@ DefaultModeSettingsMenu::DefaultModeSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string DefaultModeSettingsMenu::text() const +{ + return TEXT_DEFAULTMODESETTIGNS; +} + void DefaultModeSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/defaultmodesettingsmenu.h b/main/displays/menus/defaultmodesettingsmenu.h index 555d4ed..237c453 100644 --- a/main/displays/menus/defaultmodesettingsmenu.h +++ b/main/displays/menus/defaultmodesettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class DefaultModeSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class DefaultModeSettingsMenu : public BobbyMenuDisplay { public: DefaultModeSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/demosmenu.cpp b/main/displays/menus/demosmenu.cpp index 6d7c910..7fc021c 100644 --- a/main/displays/menus/demosmenu.cpp +++ b/main/displays/menus/demosmenu.cpp @@ -13,10 +13,18 @@ // local includes #include "utils.h" -using namespace espgui; +namespace { +constexpr char TEXT_DEMOS[] = "Demos"; +constexpr char TEXT_STARFIELD[] = "Starfield"; +constexpr char TEXT_PINGPONG[] = "PingPong"; +constexpr char TEXT_SPIRO[] = "Spiro"; +constexpr char TEXT_GAMEOFLIFE[] = "GameOfLife"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace DemosMenu::DemosMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); @@ -24,7 +32,12 @@ DemosMenu::DemosMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string DemosMenu::text() const +{ + return TEXT_DEMOS; +} + void DemosMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/demosmenu.h b/main/displays/menus/demosmenu.h index 2544f9d..2ae12c6 100644 --- a/main/displays/menus/demosmenu.h +++ b/main/displays/menus/demosmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class DemosMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class DemosMenu : public BobbyMenuDisplay { public: DemosMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/dynamicdebugmenu.cpp b/main/displays/menus/dynamicdebugmenu.cpp index 085f3c1..7d7c110 100644 --- a/main/displays/menus/dynamicdebugmenu.cpp +++ b/main/displays/menus/dynamicdebugmenu.cpp @@ -19,7 +19,6 @@ #include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "icons/lock.h" -#include "texts.h" #include "bobbycheckbox.h" #include "bobbyerrorhandler.h" @@ -39,6 +38,7 @@ constexpr char TEXT_LOCKTOGGLE[] = "Lock toggle"; constexpr char TEXT_DEBUGTOGGLE[] = "Toggle"; constexpr char TEXT_DEBUGTOGGLEMENU[] = "Toggle (with menu)"; constexpr char TEXT_OPENPOPUP[] = "Open popup"; +constexpr char TEXT_BACK[] = "Back"; bool toggleLocked{}; bool toggle{}; diff --git a/main/displays/menus/enablemenu.cpp b/main/displays/menus/enablemenu.cpp index ffd9a53..3df14eb 100644 --- a/main/displays/menus/enablemenu.cpp +++ b/main/displays/menus/enablemenu.cpp @@ -9,8 +9,18 @@ #include "accessors/settingsaccessors.h" #include "bobbycheckbox.h" +namespace { +constexpr char TEXT_SETENABLED[] = "Set enabled"; +constexpr char TEXT_ENABLEFRONTLEFT[] = "Enable front left"; +constexpr char TEXT_ENABLEFRONTRIGHT[] = "Enable front right"; +constexpr char TEXT_ENABLEBACKLEFT[] = "Enable back left"; +constexpr char TEXT_ENABLEBACKRIGHT[] = "Enable back right"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace + EnableMenu::EnableMenu() { + using namespace espgui; constructMenuItem, BobbyCheckbox, FrontLeftEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, FrontRightEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, BackLeftEnabledAccessor>>(); @@ -18,7 +28,12 @@ EnableMenu::EnableMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string EnableMenu::text() const +{ + return TEXT_SETENABLED; +} + void EnableMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/enablemenu.h b/main/displays/menus/enablemenu.h index 5736f55..0b763d9 100644 --- a/main/displays/menus/enablemenu.h +++ b/main/displays/menus/enablemenu.h @@ -2,15 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -using namespace espgui; - -class EnableMenu : - public BobbyMenuDisplay, - public StaticText +class EnableMenu : public BobbyMenuDisplay { public: EnableMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/espnowmenu.cpp b/main/displays/menus/espnowmenu.cpp index 6e4755e..aceac65 100644 --- a/main/displays/menus/espnowmenu.cpp +++ b/main/displays/menus/espnowmenu.cpp @@ -5,6 +5,12 @@ #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" +#include +#include +#include +#include +#include +#include // local includes #include "icons/settings.h" @@ -12,22 +18,60 @@ #include "displays/menus/espnowsettingsmenu.h" #include "displays/menus/settingsmenu.h" #include "bobbycheckbox.h" +#include "espnowfunctions.h" -using namespace espgui; +namespace { +constexpr char TEXT_ESPNOW_MENU[] = "ESP-Now Menu"; +constexpr char TEXT_ESPNOW_RECEIVETS[] = "Recv Ts State"; +constexpr char TEXT_ESPNOW_RECEIVETSFROMBOBBY[] = "Recv BobbyTs State"; +constexpr char TEXT_ESPNOW_SENDTSMSG[] = "Broadcast Time"; +constexpr char TEXT_ESPNOW_SETTINGS[] = "ESP-Now settings"; +constexpr char TEXT_BACK[] = "Back"; -namespace espnowmenu { +struct ReceiveTimeStampAccessor : public espgui::RefAccessor +{ + bool &getRef() const override + { + return espnow::receiveTimeStamp; + } +}; +struct ReceiveTsFromOtherBobbycarsAccessor : public espgui::RefAccessor +{ + bool &getRef() const override + { + return espnow::receiveTsFromOtherBobbycars; + } +}; + +class SendBobbycarTimesyncMessageAction : public virtual espgui::ActionInterface +{ +public: + void triggered() override + { + const auto message = fmt::format("BOBBYT:{}", espchrono::utc_clock::now().time_since_epoch().count()); + espnow::send_espnow_message(message); + } +}; } // namespace -EspNowMenu::EspNowMenu() { - constructMenuItem, espnowmenu::SendBobbycarTimesyncMessageAction, StaticMenuItemIcon<&bobbyicons::time>>>(); - constructMenuItem, BobbyCheckbox, espnowmenu::ReceiveTimeStampAccessor>>(); - constructMenuItem, BobbyCheckbox, espnowmenu::ReceiveTsFromOtherBobbycarsAccessor>>(); +EspNowMenu::EspNowMenu() +{ + using namespace espgui; + + constructMenuItem, SendBobbycarTimesyncMessageAction, StaticMenuItemIcon<&bobbyicons::time>>>(); + constructMenuItem, BobbyCheckbox, ReceiveTimeStampAccessor>>(); + constructMenuItem, BobbyCheckbox, ReceiveTsFromOtherBobbycarsAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string EspNowMenu::text() const +{ + return TEXT_ESPNOW_MENU; +} + void EspNowMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/espnowmenu.h b/main/displays/menus/espnowmenu.h index 0129383..7ab2610 100644 --- a/main/displays/menus/espnowmenu.h +++ b/main/displays/menus/espnowmenu.h @@ -2,43 +2,16 @@ #ifdef FEATURE_ESPNOW -// 3rdparty lib includes -#include -#include -#include -#include -#include -#include -#include - // local includes #include "displays/bobbymenudisplay.h" -#include "espnowfunctions.h" -using namespace espgui; - -namespace espnowmenu { - -struct ReceiveTimeStampAccessor : public RefAccessor { bool &getRef() const override { return espnow::receiveTimeStamp; } }; -struct ReceiveTsFromOtherBobbycarsAccessor : public RefAccessor { bool &getRef() const override { return espnow::receiveTsFromOtherBobbycars; } }; - -class SendBobbycarTimesyncMessageAction : public virtual ActionInterface { -public: - void triggered() override - { - const auto message = fmt::format("BOBBYT:{}", espchrono::utc_clock::now().time_since_epoch().count()); - espnow::send_espnow_message(message); - } -}; - -} // namespace - -class EspNowMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class EspNowMenu : public BobbyMenuDisplay { public: EspNowMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/espnowsettingsmenu.cpp b/main/displays/menus/espnowsettingsmenu.cpp index 4b6a9a3..2cbc4c3 100644 --- a/main/displays/menus/espnowsettingsmenu.cpp +++ b/main/displays/menus/espnowsettingsmenu.cpp @@ -1,31 +1,49 @@ #include "espnowsettingsmenu.h" #ifdef FEATURE_ESPNOW + // 3rdparty lib includes #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" +#include +#include +#include +#include +#include +#include // local includes #include "accessors/settingsaccessors.h" #include "icons/time.h" #include "espnowmenu.h" #include "bobbycheckbox.h" +#include "espnowfunctions.h" -using namespace espgui; - -namespace espnowsettingsmenu { +namespace { +constexpr char TEXT_ESPNOW_SETTINGS[] = "ESP-Now settings"; +constexpr char TEXT_ESPNOW_SYNCTIME[] = "Sync time (no NTP)"; +constexpr char TEXT_ESPNOW_SYNCWITHOTHERS[] = "Sync time with others"; +constexpr char TEXT_ESPNOW_SYNCBLINK[] = "Sync blink"; +constexpr char TEXT_BACK[] = "Back"; } // namespace -EspNowSettingsMenu::EspNowSettingsMenu() { +EspNowSettingsMenu::EspNowSettingsMenu() +{ + using namespace espgui; constructMenuItem, BobbyCheckbox, ESPNowSyncTimeEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, ESPNowSyncTimeWithOthersEnabledAccessor>>(); constructMenuItem, BobbyCheckbox, ESPNowSyncBlinkEnabledAccessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string EspNowSettingsMenu::text() const +{ + return TEXT_ESPNOW_SETTINGS; +} + void EspNowSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/espnowsettingsmenu.h b/main/displays/menus/espnowsettingsmenu.h index 6f028de..b7fdd16 100644 --- a/main/displays/menus/espnowsettingsmenu.h +++ b/main/displays/menus/espnowsettingsmenu.h @@ -2,30 +2,16 @@ #ifdef FEATURE_ESPNOW -// 3rdparty lib includes -#include -#include -#include -#include -#include -#include -#include - // local includes #include "displays/bobbymenudisplay.h" -#include "espnowfunctions.h" -using namespace espgui; - -namespace espnowsettingsmenu { -} // namespace - -class EspNowSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class EspNowSettingsMenu : public BobbyMenuDisplay { public: EspNowSettingsMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/feedbackdebugmenu.h b/main/displays/menus/feedbackdebugmenu.h index 0f2200f..2774aa7 100644 --- a/main/displays/menus/feedbackdebugmenu.h +++ b/main/displays/menus/feedbackdebugmenu.h @@ -29,6 +29,9 @@ public: constructMenuItem, ColorInterface, DummyAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } + +private: + static constexpr char TEXT_BACK[] = "Back"; }; constexpr char TEXT_FRONTFEEDBACK[] = "Front feedback"; diff --git a/main/displays/menus/gametrakmodesettingsmenu.h b/main/displays/menus/gametrakmodesettingsmenu.h index 18464e6..ca8f329 100644 --- a/main/displays/menus/gametrakmodesettingsmenu.h +++ b/main/displays/menus/gametrakmodesettingsmenu.h @@ -6,15 +6,11 @@ #include "menuitem.h" #include "actions/switchscreenaction.h" #include "icons/back.h" -#include "texts.h" - -using namespace espgui; namespace { #ifdef FEATURE_GAMETRAK class ContainerModeSettingsMenu : public BobbyMenuDisplay, - public StaticText, public BackActionInterface> { public: @@ -22,6 +18,11 @@ public: { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } + + std::string text() const override + { + return TEXT_GAMETRAKMODESETTINGS; + } }; #endif } // namespace diff --git a/main/displays/menus/garagenmenu.cpp b/main/displays/menus/garagenmenu.cpp index 23d2719..61f6d4e 100644 --- a/main/displays/menus/garagenmenu.cpp +++ b/main/displays/menus/garagenmenu.cpp @@ -4,29 +4,66 @@ // 3rd party libs #include #include +#include +#include +#include // local includes #include "actions/switchscreenaction.h" #include "displays/menus/mainmenu.h" +#include "espnowfunctions.h" +#include "globals.h" +#include "newsettings.h" -using namespace espgui; +namespace { +constexpr char TEXT_GARAGE[] = "Garage"; +constexpr char TEXT_BACK[] = "Back"; + +class SendEspNowMessageAction : public virtual espgui::ActionInterface +{ +public: + SendEspNowMessageAction(uint8_t index) : m_index{index} {} + void triggered() override; + +private: + uint8_t m_index; +}; +} // namespace GarageMenu::GarageMenu() { + using namespace espgui; + for (uint8_t index = 0; index < configs.wireless_door_configs.size(); index++) { const auto &wirelessDoor = configs.wireless_door_configs[index]; if (wirelessDoor.doorId.value.empty() || wirelessDoor.doorToken.value.empty()) continue; - auto &menuitem = constructMenuItem>(index); + auto &menuitem = constructMenuItem>(index); menuitem.setTitle(wirelessDoor.doorId.value); } constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string GarageMenu::text() const +{ + return TEXT_GARAGE; +} + void GarageMenu::back() { - switchScreen(); + espgui::switchScreen(); } + +namespace { +void SendEspNowMessageAction:: triggered() +{ + if (const auto error = espnow::send_espnow_message(fmt::format("BOBBYOPEN:{}:{}", configs.wireless_door_configs[m_index].doorId.value, configs.wireless_door_configs[m_index].doorToken.value)); error != ESP_OK) + { + ESP_LOGE("BOBBY", "send_espnow_message() failed with: %s", esp_err_to_name(error)); + return; + } +} +} // namespace #endif diff --git a/main/displays/menus/garagenmenu.h b/main/displays/menus/garagenmenu.h index 2785da9..dfad599 100644 --- a/main/displays/menus/garagenmenu.h +++ b/main/displays/menus/garagenmenu.h @@ -1,41 +1,17 @@ #pragma once + #if defined(FEATURE_GARAGE) && defined (FEATURE_ESPNOW) -// 3rd party lib -#include -#include -#include // local includes #include "displays/bobbymenudisplay.h" -#include "espnowfunctions.h" -#include "texts.h" -#include "globals.h" -#include "newsettings.h" -namespace garagenmenu { -class SendEspNowMessageAction : public virtual espgui::ActionInterface -{ -public: - SendEspNowMessageAction(uint8_t index) : m_index{index} {} - void triggered() override - { - if (const auto error = espnow::send_espnow_message(fmt::format("BOBBYOPEN:{}:{}", configs.wireless_door_configs[m_index].doorId.value, configs.wireless_door_configs[m_index].doorToken.value)); error != ESP_OK) - { - ESP_LOGE("BOBBY", "send_espnow_message() failed with: %s", esp_err_to_name(error)); - return; - } - } -private: - uint8_t m_index; -}; -} // namespace garagenmenu - -class GarageMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class GarageMenu : public BobbyMenuDisplay { public: GarageMenu(); + + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/graphsmenu.cpp b/main/displays/menus/graphsmenu.cpp index e20f2fe..871d28c 100644 --- a/main/displays/menus/graphsmenu.cpp +++ b/main/displays/menus/graphsmenu.cpp @@ -14,6 +14,24 @@ #include "displays/menus/mainmenu.h" namespace { +constexpr char TEXT_GRAPHS[] = "Graphs"; +constexpr char TEXT_GAS[] = "Gas"; +constexpr char TEXT_BREMS[] = "Brems"; +constexpr char TEXT_POTIS[] = "Potis"; +constexpr char TEXT_AVGSPEED[] = "Avg. speed"; +constexpr char TEXT_AVGSPEEDKMH[] = "Avg. speed KMH"; +constexpr char TEXT_SUMCURRENT[] = "Sum current"; +constexpr char TEXT_FRONTVOLTAGE[] = "Front voltage"; +constexpr char TEXT_BACKVOLTAGE[] = "Back voltage"; +constexpr char TEXT_VOLTAGES[] = "Voltages"; +constexpr char TEXT_BMSVOLTAGE[] = "BMS voltage"; +constexpr char TEXT_BMSCURRENT[] = "BMS current"; +constexpr char TEXT_BMSPOWER[] = "BMS power"; +constexpr char TEXT_SUMCURRENTSCOMPARISON[] = "Sum currents comparison"; +constexpr char TEXT_MOTORCURRENTS[] = "Motor currents"; +constexpr char TEXT_RSSI[] = "RSSI"; +constexpr char TEXT_BACK[] = "Back"; + using GasGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, @@ -152,11 +170,9 @@ using RssiGraphDisplay = espgui::makeComponent< >; } // namespace -using namespace espgui; - - GraphsMenu::GraphsMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); @@ -179,7 +195,12 @@ GraphsMenu::GraphsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string GraphsMenu::text() const +{ + return TEXT_GRAPHS; +} + void GraphsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/graphsmenu.h b/main/displays/menus/graphsmenu.h index f435cdf..03e6763 100644 --- a/main/displays/menus/graphsmenu.h +++ b/main/displays/menus/graphsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class GraphsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class GraphsMenu : public BobbyMenuDisplay { public: GraphsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/greenpassmenu.cpp b/main/displays/menus/greenpassmenu.cpp index 8cf3b5c..74fa34d 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/displays/menus/greenpassmenu.cpp @@ -18,9 +18,11 @@ #include "qrimport.h" #include "bobbycheckbox.h" -using namespace espgui; - namespace { +constexpr char TEXT_GREENPASS[] = "Green Pass"; +constexpr char TEXT_ADDCERT[] = "Add cert"; +constexpr char TEXT_DELCERT[] = "Delete cert mode"; +constexpr char TEXT_BACK[] = "Back"; bool deleteMode; struct DeleteModeAccessor : espgui::RefAccessor { bool &getRef() const override { return deleteMode; } }; @@ -47,11 +49,11 @@ public: if (deleteMode) { qrimport::delete_qr_code(m_qrmenu.text); - switchScreen(); + espgui::switchScreen(); } else { - switchScreen(m_qrmenu.message, m_qrmenu.ver); + espgui::switchScreen(m_qrmenu.message, m_qrmenu.ver); } } private: @@ -62,6 +64,8 @@ private: GreenPassMenu::GreenPassMenu() { + using namespace espgui; + for (uint8_t index = 0; index < 4; index++) { const std::string nvs_key = fmt::format("covidcert-{}", index); @@ -87,7 +91,12 @@ GreenPassMenu::GreenPassMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string GreenPassMenu::text() const +{ + return TEXT_GREENPASS; +} + void GreenPassMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/greenpassmenu.h b/main/displays/menus/greenpassmenu.h index f19f622..d165f1f 100644 --- a/main/displays/menus/greenpassmenu.h +++ b/main/displays/menus/greenpassmenu.h @@ -1,19 +1,14 @@ #pragma once - -// 3rdparty lib includes -#include -#include - // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class GreenPassMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class GreenPassMenu : public BobbyMenuDisplay { public: GreenPassMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/displays/menus/handbremssettingsmenu.cpp index d4c9026..3c39799 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/displays/menus/handbremssettingsmenu.cpp @@ -12,10 +12,17 @@ #include "accessors/settingsaccessors.h" #include "changevaluedisplay_handbremsmode.h" #include "displays/menus/defaultmodesettingsmenu.h" -#include "texts.h" #include "bobbycheckbox.h" namespace { +constexpr char TEXT_HANDBREMSE_ENABLE[] = "Enable Handbremse"; +constexpr char TEXT_HANDBREMSE_AUTOMATIC[] = "Automatic Handbremse"; +constexpr char TEXT_HANDBREMSE_VISUALIZE[] = "Visualize Handbremse"; +constexpr char TEXT_HANDBREMSE_MODE[] = "Handbrems Mode"; +constexpr char TEXT_HANDBREMSE_TRIGGERTIMEOUT[] = "Handbrems Timeout"; +constexpr char TEXT_HANDBREMSE[] = "Handbremse"; +constexpr char TEXT_BACK[] = "Back"; + using HandBremsTriggerTimeoutChangeValueDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -51,6 +58,11 @@ HandbremsSettingsMenu::HandbremsSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string HandbremsSettingsMenu::text() const +{ + return TEXT_HANDBREMSE; +} + void HandbremsSettingsMenu::back() { espgui::switchScreen(); diff --git a/main/displays/menus/handbremssettingsmenu.h b/main/displays/menus/handbremssettingsmenu.h index 3ade5ec..e958296 100644 --- a/main/displays/menus/handbremssettingsmenu.h +++ b/main/displays/menus/handbremssettingsmenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class HandbremsSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class HandbremsSettingsMenu : public BobbyMenuDisplay { public: HandbremsSettingsMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/invertmenu.cpp b/main/displays/menus/invertmenu.cpp index dc66527..6055768 100644 --- a/main/displays/menus/invertmenu.cpp +++ b/main/displays/menus/invertmenu.cpp @@ -9,6 +9,15 @@ #include "displays/menus/controllerhardwaresettingsmenu.h" #include "bobbycheckbox.h" +namespace { +constexpr char TEXT_SETINVERTED[] = "Set inverted"; +constexpr char TEXT_INVERTFRONTLEFT[] = "Invert front left"; +constexpr char TEXT_INVERTFRONTRIGHT[] = "Invert front right"; +constexpr char TEXT_INVERTBACKLEFT[] = "Invert back left"; +constexpr char TEXT_INVERTBACKRIGHT[] = "Invert back right"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace + InvertMenu::InvertMenu() { using namespace espgui; @@ -19,6 +28,10 @@ InvertMenu::InvertMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string InvertMenu::text() const +{ + return TEXT_SETINVERTED; +} void InvertMenu::back() { diff --git a/main/displays/menus/invertmenu.h b/main/displays/menus/invertmenu.h index 430b364..c7bf50f 100644 --- a/main/displays/menus/invertmenu.h +++ b/main/displays/menus/invertmenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class InvertMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class InvertMenu : public BobbyMenuDisplay { public: InvertMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/larsmmodesettingsmenu.cpp b/main/displays/menus/larsmmodesettingsmenu.cpp index 010cdaa..f3b9c78 100644 --- a/main/displays/menus/larsmmodesettingsmenu.cpp +++ b/main/displays/menus/larsmmodesettingsmenu.cpp @@ -15,6 +15,12 @@ #include "displays/menus/modessettingsmenu.h" namespace { +constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; +constexpr char TEXT_MODELMODE[] = "Model mode"; +constexpr char TEXT_SETMODE[] = "Set mode"; +constexpr char TEXT_SETITERATIONS[] = "Set iterations"; +constexpr char TEXT_BACK[] = "Back"; + using LarsmModeModelModeChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -48,6 +54,11 @@ LarsmModeSettingsMenu::LarsmModeSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LarsmModeSettingsMenu::text() const +{ + return TEXT_LARSMMODESETTINGS; +} + void LarsmModeSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/larsmmodesettingsmenu.h b/main/displays/menus/larsmmodesettingsmenu.h index 4bed219..797d7aa 100644 --- a/main/displays/menus/larsmmodesettingsmenu.h +++ b/main/displays/menus/larsmmodesettingsmenu.h @@ -1,17 +1,14 @@ #pragma once -// 3rdparty lib includes - // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class LarsmModeSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class LarsmModeSettingsMenu : public BobbyMenuDisplay { public: LarsmModeSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/ledstripmenu.cpp b/main/displays/menus/ledstripmenu.cpp index bd99ae5..ed2d012 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/displays/menus/ledstripmenu.cpp @@ -25,6 +25,30 @@ // clang-format off namespace { +constexpr char TEXT_LEDSTRIP[] = "Ledstrip"; +constexpr char TEXT_LEDANIMATION[] = "LED Animation"; +constexpr char TEXT_SELECTANIMATION[] = "Select Animation"; +constexpr char TEXT_BRAKELIGHTS[] = "Brake Lights"; +constexpr char TEXT_LEDSTRIPCOLORMENU[] = "Customize Ledstrip"; +constexpr char TEXT_BLINKANIMATION[] = "Blink animation"; +constexpr char TEXT_ANIMATION_TYPE[] = "Blink animation"; +constexpr char TEXT_LEDSCOUNT[] = "LEDs Count"; +constexpr char TEXT_CENTEROFFSET[] = "Center Offset"; +constexpr char TEXT_SMALLOFFSET[] = "Small Offset"; +constexpr char TEXT_BIGOFFSET[] = "Big Offset"; +constexpr char TEXT_LEDSTRIPCURRENTLIMIT[] = "Ledstrip Currentlimit"; +constexpr char TEXT_BLINKBEEP[] = "Blink Beep"; +constexpr char TEXT_FULLBLINK[] = "Full blink"; +constexpr char TEXT_LEDSTRIP_STVO[] = "Enable StVO"; +constexpr char TEXT_STVO_FRONTOFFSET[] = "StVO Front Offset"; +constexpr char TEXT_STVO_FRONTLENGTH[] = "StVO Front Length"; +constexpr char TEXT_STVO_ENABLEFRONTLIGHT[] = "StVO Front Enable"; +constexpr char TEXT_ANIMATION_MULTIPLIER[] = "Animation Multiplier"; +constexpr char TEXT_LEDSTRIP_BRIGHTNESS[] = "Ledstrip Brightness"; +constexpr char TEXT_LEDSTRIP_ALLCUSTOMOFF[] = "All custom off"; +constexpr char TEXT_LEDSTRIP_CHANGE_OTA_ANIM[] = "Change Ota animation"; +constexpr char TEXT_BACK[] = "Back"; + using LedsCountChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -57,10 +81,11 @@ using BigOffsetChangeScreen = espgui::makeComponent< espgui::BackActionInterface> >; -using DeziampereChangeScreen = espgui::makeComponent< - BobbyChangeValueDisplay, - espgui::StaticText, - DeziampereAccessor, +using LedStripMaxAmpereChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, + LedStripMaxAmpereAccessor, + espgui::RatioNumberStep>, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; @@ -81,7 +106,7 @@ using StVOLengthChangeScreen = espgui::makeComponent< espgui::BackActionInterface> >; -using animationMultiplierChangeScreen = espgui::makeComponent< +using AnimationMultiplierChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, AnimationMultiplierAccessor, @@ -89,7 +114,7 @@ using animationMultiplierChangeScreen = espgui::makeComponent< espgui::BackActionInterface> >; -using ledstripBrightnessChangeScreen = espgui::makeComponent< +using LedStripBrightnessChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, LedstripBrightnessAccessor, @@ -102,10 +127,16 @@ class AllCustomLedsOffAction : public virtual espgui::ActionInterface public: void triggered() override { - for(int index = 0; index < 8; index++) - { - ledstrip_custom_colors[index] = CRGB{0,0,0}; - } + std::fill(std::begin(ledstrip_custom_colors), std::end(ledstrip_custom_colors), CRGB{0, 0, 0}); + } +}; + +class LedStripMaxCurrentText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("&sLedstrip max current: &f&2{:.02f}A", configs.ledStripMaxMilliamps.value / 1000.f); } }; } // namespace @@ -113,33 +144,43 @@ public: LedstripMenu::LedstripMenu() { using namespace espgui; - constructMenuItem, espgui::SwitchScreenAction>>(); - constructMenuItem, BobbyCheckbox, EnableLedAnimationAccessor>>(); + + if (!simplified) { constructMenuItem, BobbyCheckbox, EnableLedstripStVOAccessor>>(); } + constructMenuItem, BobbyCheckbox, EnableLedstripStVOFrontlight>>(); + + constructMenuItem, BobbyCheckbox, EnableLedAnimationAccessor>>(); + constructMenuItem, espgui::SwitchScreenAction>>(); + constructMenuItem, BobbyCheckbox, EnableBrakeLightsAccessor>>(); + + constructMenuItem, espgui::SwitchScreenAction>>(); + constructMenuItem, AllCustomLedsOffAction>>(); + constructMenuItem, BobbyCheckbox, EnableBeepWhenBlinkAccessor>>(); constructMenuItem, BobbyCheckbox, EnableFullBlinkAccessor>>(); - if (!simplified) { constructMenuItem, BobbyCheckbox, EnableLedstripStVOAccessor>>(); } - constructMenuItem, BobbyCheckbox, EnableLedstripStVOFrontlight>>(); - constructMenuItem, AllCustomLedsOffAction>>(); if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } - constructMenuItem, espgui::SwitchScreenAction>>(); constructMenuItem, espgui::SwitchScreenAction>>(); #ifdef FEATURE_OTA - if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } #endif - constructMenuItem, espgui::SwitchScreenAction>>(); + constructMenuItem, espgui::SwitchScreenAction>>(); if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem>>(); } constructMenuItem, espgui::SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LedstripMenu::text() const +{ + return TEXT_LEDSTRIP; +} + void LedstripMenu::back() { espgui::switchScreen(); diff --git a/main/displays/menus/ledstripmenu.h b/main/displays/menus/ledstripmenu.h index 5644ec7..8ea46ee 100644 --- a/main/displays/menus/ledstripmenu.h +++ b/main/displays/menus/ledstripmenu.h @@ -2,16 +2,15 @@ // local includes #include "displays/menudisplaywithtime.h" -#include "texts.h" #ifdef FEATURE_LEDSTRIP -class LedstripMenu : - public bobbygui::MenuDisplayWithTime, - public espgui::StaticText +class LedstripMenu : public bobbygui::MenuDisplayWithTime { public: LedstripMenu(); + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/ledstripselectanimationmenu.cpp b/main/displays/menus/ledstripselectanimationmenu.cpp index d553bff..4444707 100644 --- a/main/displays/menus/ledstripselectanimationmenu.cpp +++ b/main/displays/menus/ledstripselectanimationmenu.cpp @@ -8,10 +8,14 @@ #include "ledstripdefines.h" #include "ledstripmenu.h" -using namespace espgui; - #ifdef FEATURE_LEDSTRIP namespace { +constexpr char TEXT_SELECTANIMATION[] = "Select Animation"; +constexpr char TEXT_ANIMATION_DEFAULTRAINBOW[] = "Default Rainbow"; +constexpr char TEXT_ANIMATION_BETTERRAINBOW[] = "Better Rainbow"; +constexpr char TEXT_ANIMATION_SPEEDSYNCANIMATION[] = "Speed Sync"; +constexpr char TEXT_ANIMATION_CUSTOMCOLOR[] = "Custom Color"; +constexpr char TEXT_BACK[] = "Back"; class CurrentSelectedAnimationText : public virtual espgui::TextInterface { @@ -23,6 +27,8 @@ public: LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() { + using namespace espgui; + constructMenuItem>(); constructMenuItem>(); constructMenuItem, LedStripSetAnimationAction>>(); @@ -32,9 +38,14 @@ LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LedstripSelectAnimationMenu::text() const +{ + return TEXT_SELECTANIMATION; +} + void LedstripSelectAnimationMenu::back() { - switchScreen(); + espgui::switchScreen(); } namespace { diff --git a/main/displays/menus/ledstripselectanimationmenu.h b/main/displays/menus/ledstripselectanimationmenu.h index 659532d..334c25f 100644 --- a/main/displays/menus/ledstripselectanimationmenu.h +++ b/main/displays/menus/ledstripselectanimationmenu.h @@ -2,15 +2,15 @@ // Local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_LEDSTRIP -class LedstripSelectAnimationMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class LedstripSelectAnimationMenu : public BobbyMenuDisplay { public: LedstripSelectAnimationMenu(); + + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/ledstripselectblinkmenu.cpp b/main/displays/menus/ledstripselectblinkmenu.cpp index fbf7ab6..b72471a 100644 --- a/main/displays/menus/ledstripselectblinkmenu.cpp +++ b/main/displays/menus/ledstripselectblinkmenu.cpp @@ -11,34 +11,31 @@ #include "accessors/settingsaccessors.h" #include "actions/ledstripblinkactions.h" #include "displays/menus/ledstripmenu.h" +#include "ledstrip.h" +#include "ledstripdefines.h" #include "bobbycheckbox.h" -using namespace espgui; +namespace { +constexpr char TEXT_BLINKANIMATION[] = "Blink animation"; +constexpr char TEXT_ANIMATION_BLINKNONE[] = "Blink Off"; +constexpr char TEXT_ANIMATION_BLINKLEFT[] = "Blink Left"; +constexpr char TEXT_ANIMATION_BLINKRIGHT[] = "Blink Right"; +constexpr char TEXT_ANIMATION_BLINKBOTH[] = "Blink Both"; +constexpr char TEXT_LEDSTRIP_EN_BLINK_ANIM[] = "Animated Blink"; +constexpr char TEXT_BACK[] = "Back"; -std::string currentSelectedBlinkAnimationText::text() const { - switch (blinkAnimation) { - case LEDSTRIP_OVERWRITE_BLINKLEFT: -#ifndef LEDSTRIP_WRONG_DIRECTION - return TEXT_ANIMATION_BLINKLEFT; -#else - return TEXT_ANIMATION_BLINKRIGHT; -#endif - case LEDSTRIP_OVERWRITE_BLINKRIGHT: -#ifndef LEDSTRIP_WRONG_DIRECTION - return TEXT_ANIMATION_BLINKRIGHT; -#else - return TEXT_ANIMATION_BLINKLEFT; -#endif - case LEDSTRIP_OVERWRITE_BLINKBOTH: - return TEXT_ANIMATION_BLINKBOTH; - default: - return TEXT_ANIMATION_BLINKNONE; - } -} +class CurrentSelectedBlinkAnimationText : public virtual espgui::TextInterface +{ +public: + std::string text() const override; +}; + +} // namespace LedstripSelectBlinkMenu::LedstripSelectBlinkMenu() { - constructMenuItem>(); + using namespace espgui; + constructMenuItem>(); constructMenuItem>(); constructMenuItem, LedstripAnimationBlinkNoneAction>>(); constructMenuItem, LedstripAnimationBlinkLeftAction>>(); @@ -48,8 +45,40 @@ LedstripSelectBlinkMenu::LedstripSelectBlinkMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LedstripSelectBlinkMenu::text() const +{ + return TEXT_BLINKANIMATION; +} + void LedstripSelectBlinkMenu::back() { - switchScreen(); + espgui::switchScreen(); } + +namespace { + +std::string CurrentSelectedBlinkAnimationText::text() const +{ + switch (blinkAnimation) + { + case LEDSTRIP_OVERWRITE_BLINKLEFT: +#ifndef LEDSTRIP_WRONG_DIRECTION + return TEXT_ANIMATION_BLINKLEFT; +#else + return TEXT_ANIMATION_BLINKRIGHT; +#endif + case LEDSTRIP_OVERWRITE_BLINKRIGHT: +#ifndef LEDSTRIP_WRONG_DIRECTION + return TEXT_ANIMATION_BLINKRIGHT; +#else + return TEXT_ANIMATION_BLINKLEFT; +#endif + case LEDSTRIP_OVERWRITE_BLINKBOTH: + return TEXT_ANIMATION_BLINKBOTH; + default: + return TEXT_ANIMATION_BLINKNONE; + } +} + +} // namespace #endif diff --git a/main/displays/menus/ledstripselectblinkmenu.h b/main/displays/menus/ledstripselectblinkmenu.h index ccfe0cf..577fc29 100644 --- a/main/displays/menus/ledstripselectblinkmenu.h +++ b/main/displays/menus/ledstripselectblinkmenu.h @@ -2,22 +2,14 @@ // Local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -#include "ledstrip.h" -#include "ledstripdefines.h" #ifdef FEATURE_LEDSTRIP -class currentSelectedBlinkAnimationText : public virtual espgui::TextInterface -{ -public: std::string text() const override; -}; - -class LedstripSelectBlinkMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class LedstripSelectBlinkMenu : public BobbyMenuDisplay { public: LedstripSelectBlinkMenu(); + + std::string text() const override; void back() override; }; #endif diff --git a/main/displays/menus/ledstripselectotamode.cpp b/main/displays/menus/ledstripselectotamode.cpp index 97ce863..42d31d6 100644 --- a/main/displays/menus/ledstripselectotamode.cpp +++ b/main/displays/menus/ledstripselectotamode.cpp @@ -1,24 +1,51 @@ #include "ledstripselectotamode.h" +// 3rdparty lib includes #include "actions/switchscreenaction.h" #include "icons/back.h" + +// local includes +#include "ledstrip.h" +#include "globals.h" +#include "utils.h" #include "ledstripmenu.h" -// Local includes - #if defined(FEATURE_LEDSTRIP) && defined(FEATURE_OTA) -using namespace espgui; +namespace { +constexpr char TEXT_BLINKANIMATION[] = "Blink animation"; +constexpr char TEXT_OTAANIM_NONE[] = "None"; +constexpr char TEXT_OTAANIM_PROGRESS[] = "Progress Bar"; +constexpr char TEXT_OTAANIM_COLOR[] = "Color change"; +constexpr char TEXT_BACK[] = "Back"; -ledstripOtaAnimationChangeMenu::ledstripOtaAnimationChangeMenu() +template +class LedstripChangeOtaAnimModeAction : public virtual espgui::ActionInterface { +public: + void triggered() override + { + settings.ledstrip.otaMode = mode; + saveSettings(); + } +}; +} // namespace + +LedstripOtaAnimationChangeMenu::LedstripOtaAnimationChangeMenu() +{ + using namespace espgui; constructMenuItem, LedstripChangeOtaAnimModeAction>>(); constructMenuItem, LedstripChangeOtaAnimModeAction>>(); constructMenuItem, LedstripChangeOtaAnimModeAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } -void ledstripOtaAnimationChangeMenu::back() +std::string LedstripOtaAnimationChangeMenu::text() const { - switchScreen(); + return TEXT_BLINKANIMATION; +} + +void LedstripOtaAnimationChangeMenu::back() +{ + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/ledstripselectotamode.h b/main/displays/menus/ledstripselectotamode.h index f30238b..3bf4132 100644 --- a/main/displays/menus/ledstripselectotamode.h +++ b/main/displays/menus/ledstripselectotamode.h @@ -1,31 +1,15 @@ #pragma once -// Local includes +// local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -#include "ledstrip.h" -#include "globals.h" -#include "utils.h" #if defined(FEATURE_LEDSTRIP) && defined(FEATURE_OTA) - -template -class LedstripChangeOtaAnimModeAction : public virtual espgui::ActionInterface +class LedstripOtaAnimationChangeMenu : public BobbyMenuDisplay { public: - void triggered() override - { - settings.ledstrip.otaMode = mode; - saveSettings(); - } -}; + LedstripOtaAnimationChangeMenu(); -class ledstripOtaAnimationChangeMenu : - public BobbyMenuDisplay, - public espgui::StaticText -{ -public: - ledstripOtaAnimationChangeMenu(); + std::string text() const override; void back() override; }; #endif diff --git a/main/displays/menus/limitssettingsmenu.cpp b/main/displays/menus/limitssettingsmenu.cpp index 9c531ce..1ff5c26 100644 --- a/main/displays/menus/limitssettingsmenu.cpp +++ b/main/displays/menus/limitssettingsmenu.cpp @@ -14,6 +14,15 @@ #include "displays/menus/settingsmenu.h" namespace { +constexpr char TEXT_LIMITSSETTINGS[] = "Limit settings"; +constexpr char TEXT_IMOTMAX[] = "iMotMax"; +constexpr char TEXT_IDCMAX[] = "iDcMax"; +constexpr char TEXT_NMOTMAXKMH[] = "nMotMaxKmh"; +constexpr char TEXT_NMOTMAX[] = "nMotMax"; +constexpr char TEXT_FIELDWEAKMAX[] = "fldWkMax"; +constexpr char TEXT_PHASEADVMAX[] = "phsAdvMax"; +constexpr char TEXT_BACK[] = "Back"; + using IMotMaxChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -71,6 +80,11 @@ LimitsSettingsMenu::LimitsSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LimitsSettingsMenu::text() const +{ + return TEXT_LIMITSSETTINGS; +} + void LimitsSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/limitssettingsmenu.h b/main/displays/menus/limitssettingsmenu.h index 129a216..998cfee 100644 --- a/main/displays/menus/limitssettingsmenu.h +++ b/main/displays/menus/limitssettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class LimitsSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class LimitsSettingsMenu : public BobbyMenuDisplay { public: LimitsSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/lockscreensettingsmenu.cpp b/main/displays/menus/lockscreensettingsmenu.cpp index 854e9d2..ecf97c8 100644 --- a/main/displays/menus/lockscreensettingsmenu.cpp +++ b/main/displays/menus/lockscreensettingsmenu.cpp @@ -15,6 +15,15 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_LOCKSCREENSETTINGS[] = "Lockscreen Settings"; +constexpr char TEXT_ALLOWPRESETSWITCH[] = "Allow preset switch"; +constexpr char TEXT_KEEPLOCKED[] = "Keep locked"; +constexpr char TEXT_PINDIGIT0[] = "PIN digit0"; +constexpr char TEXT_PINDIGIT1[] = "PIN digit1"; +constexpr char TEXT_PINDIGIT2[] = "PIN digit2"; +constexpr char TEXT_PINDIGIT3[] = "PIN digit3"; +constexpr char TEXT_BACK[] = "Back"; + using LockscreenPinDigit0ChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -48,10 +57,9 @@ using LockscreenPinDigit3ChangeScreen = espgui::makeComponent< >; } // namespace -using namespace espgui; - LockscreenSettingsMenu::LockscreenSettingsMenu() { + using namespace espgui; constructMenuItem, BobbyCheckbox, LockscreenAllowPresetSwitchAccessor>>(); constructMenuItem, BobbyCheckbox, LockscreenKeepLockedAccessor>>(); constructMenuItem>, SwitchScreenAction>>(); @@ -61,7 +69,12 @@ LockscreenSettingsMenu::LockscreenSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string LockscreenSettingsMenu::text() const +{ + return TEXT_LOCKSCREENSETTINGS; +} + void LockscreenSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/lockscreensettingsmenu.h b/main/displays/menus/lockscreensettingsmenu.h index 70e2338..f5054b9 100644 --- a/main/displays/menus/lockscreensettingsmenu.h +++ b/main/displays/menus/lockscreensettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class LockscreenSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class LockscreenSettingsMenu : public BobbyMenuDisplay { public: LockscreenSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/mainmenu.cpp b/main/displays/menus/mainmenu.cpp index 1537d66..c22001d 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/displays/menus/mainmenu.cpp @@ -1,5 +1,7 @@ #include "mainmenu.h" +// esp-idf includes + // 3rdparty lib includes #include "actions/switchscreenaction.h" #include "icons/back.h" @@ -52,23 +54,42 @@ #include "icons/time.h" #include "tftinstance.h" -using namespace espgui; +namespace { +constexpr char TAG[] = "BOBBY"; + +constexpr char TEXT_MAINMENU[] = "Main menu"; +constexpr char TEXT_STATUS[] = "Status"; +constexpr char TEXT_LEDSTRIP[] = "Ledstrip"; +constexpr char TEXT_STATISTICSMENU[] = "Statistics"; +constexpr char TEXT_SELECTMODE[] = "Select mode"; +constexpr char TEXT_MODESETTINGS[] = "Mode settings"; +constexpr char TEXT_PRESETS[] = "Presets"; +constexpr char TEXT_PROFILES[] = "Profiles"; +constexpr char TEXT_GRAPHS[] = "Graphs"; +constexpr char TEXT_POWERSUPPLY[] = "Powersupply"; +constexpr char TEXT_BMS[] = "BMS"; +constexpr char TEXT_SETTINGS[] = "Settings"; +constexpr char TEXT_GREENPASS[] = "Green Pass"; +constexpr char TEXT_LOCKVEHICLE[] = "Lock vehicle"; +constexpr char TEXT_MOSFETS[] = "Mosfets"; +constexpr char TEXT_DEMOS[] = "Demos"; +constexpr char TEXT_GARAGE[] = "Garage"; +constexpr char TEXT_UPDATE[] = "Update"; +constexpr char TEXT_POWEROFF[] = "Poweroff"; +constexpr char TEXT_REBOOT[] = "Reboot"; +constexpr char TEXT_DEBUG[] = "Debug"; +constexpr char TEXT_BATTERY[] = "Battery"; +constexpr char TEXT_BATTERYDEBUG[] = "Bat Debug Menu"; +constexpr char TEXT_TOGGLECLOUDDEBUG[] = "Cloud Debug"; -namespace mainmenu { -/* -class CurrentTimeText : public virtual TextInterface -{ -public: - std::string text() const override - { - return fmt::format("&7Time: {}", local_clock_string()); - } -}; -*/ } // namespace MainMenu::MainMenu() { + using namespace espgui; + + ESP_LOGI(TAG, "called"); + // constructMenuItem>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); #ifdef FEATURE_LEDSTRIP @@ -77,21 +98,8 @@ MainMenu::MainMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::statistics>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::modes>>>(); if (SHOWITEM) { constructMenuItem, ModeSettingsAction>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); } if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::battery>>>(); } -#if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } -#endif -#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) - if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bms>>>(); } -#endif if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); } -#ifdef FEATURE_MOSFETS - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } -#endif - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::greenpass>>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::lock>>>(); #if defined(FEATURE_GARAGE) && defined (FEATURE_ESPNOW) @@ -100,15 +108,33 @@ MainMenu::MainMenu() #ifdef FEATURE_OTA if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); } #endif + if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); } +#if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) + if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } +#endif +#ifdef FEATURE_MOSFETS + if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } +#endif +#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) + if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bms>>>(); } +#endif + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); + if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } + if (SHOWITEM) { constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); } + if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::poweroff>>>(); constructMenuItem, RebootAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); - if (SHOWITEM) { constructMenuItem, SwitchScreenAction>>(); } #ifdef MAINMENU_PLUGIN GMEN1 #endif } +std::string MainMenu::text() const +{ + return TEXT_MAINMENU; +} + void MainMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/mainmenu.h b/main/displays/menus/mainmenu.h index 24feb16..58858e1 100644 --- a/main/displays/menus/mainmenu.h +++ b/main/displays/menus/mainmenu.h @@ -4,7 +4,6 @@ #include "menuitem.h" // local includes -#include "texts.h" #include "displays/menudisplaywithtime.h" #ifdef MAINMENU_PLUGIN #include MAINMENU_PLUGIN @@ -21,12 +20,14 @@ namespace { #endif } // namespace -class MainMenu : - public bobbygui::MenuDisplayWithTime, - public espgui::StaticText +class MainMenu : public bobbygui::MenuDisplayWithTime { using Base = espgui::MenuDisplay; + public: MainMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/modessettingsmenu.cpp b/main/displays/menus/modessettingsmenu.cpp index 4460ffb..239ef21 100644 --- a/main/displays/menus/modessettingsmenu.cpp +++ b/main/displays/menus/modessettingsmenu.cpp @@ -12,10 +12,18 @@ #include "displays/menus/gametrakmodesettingsmenu.h" #include "displays/menus/settingsmenu.h" -using namespace espgui; +namespace { +constexpr char TEXT_MODESSETTINGS[] = "Modes settings"; +constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings"; +constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; +constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; +constexpr char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace ModesSettingsMenu::ModesSettingsMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); @@ -25,7 +33,12 @@ ModesSettingsMenu::ModesSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string ModesSettingsMenu::text() const +{ + return TEXT_MODESSETTINGS; +} + void ModesSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/modessettingsmenu.h b/main/displays/menus/modessettingsmenu.h index 94d3f56..fdf0e60 100644 --- a/main/displays/menus/modessettingsmenu.h +++ b/main/displays/menus/modessettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class ModesSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class ModesSettingsMenu : public BobbyMenuDisplay { public: ModesSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/mosfetsmenu.cpp b/main/displays/menus/mosfetsmenu.cpp index 870c4fb..11b1c21 100644 --- a/main/displays/menus/mosfetsmenu.cpp +++ b/main/displays/menus/mosfetsmenu.cpp @@ -2,26 +2,52 @@ #ifdef FEATURE_MOSFETS // 3rdparty lib includes +#include "accessorinterface.h" #include "actions/switchscreenaction.h" #include "icons/back.h" // local includes #include "displays/menus/mainmenu.h" #include "bobbycheckbox.h" +#include "types.h" -using namespace espgui; +namespace { +constexpr char TEXT_MOSFETS[] = "Mosfets"; +constexpr char TEXT_MOSFET0[] = "Mosfet0"; +constexpr char TEXT_MOSFET1[] = "Mosfet1"; +constexpr char TEXT_MOSFET2[] = "Mosfet2"; +constexpr char TEXT_BACK[] = "Back"; + +template +class GPIOAccessor : public virtual espgui::AccessorInterface +{ +public: + bool getValue() const override { return digitalRead(PIN); } + espgui::AccessorInterface::setter_result_t setValue(bool value) override { digitalWrite(PIN, value ? HIGH : LOW); return {}; } +}; + +using Mosfet0Accessor = GPIOAccessor; +using Mosfet1Accessor = GPIOAccessor; +using Mosfet2Accessor = GPIOAccessor; +} // namespace MosfetsMenu::MosfetsMenu() { + using namespace espgui; constructMenuItem, BobbyCheckbox, Mosfet0Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet1Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet2Accessor>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string MosfetsMenu::text() const +{ + return TEXT_MOSFETS; +} + void MosfetsMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/mosfetsmenu.h b/main/displays/menus/mosfetsmenu.h index 2491f76..7ecb488 100644 --- a/main/displays/menus/mosfetsmenu.h +++ b/main/displays/menus/mosfetsmenu.h @@ -1,32 +1,17 @@ #pragma once #ifdef FEATURE_MOSFETS -// 3rdparty lib includes -#include "accessorinterface.h" // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -#include "types.h" -template -class GPIOAccessor : public virtual espgui::AccessorInterface -{ -public: - bool getValue() const override { return digitalRead(PIN); } - espgui::AccessorInterface::setter_result_t setValue(bool value) override { digitalWrite(PIN, value ? HIGH : LOW); return {}; } -}; - -using Mosfet0Accessor = GPIOAccessor; -using Mosfet1Accessor = GPIOAccessor; -using Mosfet2Accessor = GPIOAccessor; - -class MosfetsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class MosfetsMenu : public BobbyMenuDisplay { public: MosfetsMenu(); + + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/motorfeedbackdebugmenu.h b/main/displays/menus/motorfeedbackdebugmenu.h index 98f8b7a..e879ec9 100644 --- a/main/displays/menus/motorfeedbackdebugmenu.h +++ b/main/displays/menus/motorfeedbackdebugmenu.h @@ -8,7 +8,6 @@ #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" -#include "texts.h" #include "debugtexthelpers.h" #include "debugcolorhelpers.h" @@ -39,6 +38,9 @@ public: constructMenuItem, DummyAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } + +private: + static constexpr char TEXT_BACK[] = "Back"; }; constexpr char TEXT_FRONTLEFTFEEDBACK[] = "Front left feedback"; diff --git a/main/displays/menus/motorstatedebugmenu.h b/main/displays/menus/motorstatedebugmenu.h index 11c1960..3b8589c 100644 --- a/main/displays/menus/motorstatedebugmenu.h +++ b/main/displays/menus/motorstatedebugmenu.h @@ -35,6 +35,9 @@ public: constructMenuItem>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } + +private: + static constexpr char TEXT_BACK[] = "Back"; }; constexpr char TEXT_FRONTLEFTCOMMAND[] = "Front left command"; diff --git a/main/displays/menus/motortestmodesettingsmenu.cpp b/main/displays/menus/motortestmodesettingsmenu.cpp index ede9186..1554929 100644 --- a/main/displays/menus/motortestmodesettingsmenu.cpp +++ b/main/displays/menus/motortestmodesettingsmenu.cpp @@ -13,6 +13,11 @@ #include "displays/menus/modessettingsmenu.h" namespace { +constexpr char TEXT_MOTORTESTMODESETTINGS[] = "Motortest mode seetings"; +constexpr char TEXT_MOTORTESTMAXPWM[] = "Max Pwm"; +constexpr char TEXT_MOTORTESTMULTIPLIKATOR[] = "Acceleration"; +constexpr char TEXT_BACK[] = "Back"; + using MotortestMultiplikatorChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -39,6 +44,11 @@ MotortestModeSettingsMenu::MotortestModeSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string MotortestModeSettingsMenu::text() const +{ + return TEXT_MOTORTESTMODESETTINGS; +} + void MotortestModeSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/motortestmodesettingsmenu.h b/main/displays/menus/motortestmodesettingsmenu.h index c4f664b..5e94cae 100644 --- a/main/displays/menus/motortestmodesettingsmenu.h +++ b/main/displays/menus/motortestmodesettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class MotortestModeSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class MotortestModeSettingsMenu : public BobbyMenuDisplay { public: MotortestModeSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/networksettingsmenu.cpp b/main/displays/menus/networksettingsmenu.cpp index 1b8a790..b57753c 100644 --- a/main/displays/menus/networksettingsmenu.cpp +++ b/main/displays/menus/networksettingsmenu.cpp @@ -19,7 +19,7 @@ using namespace espgui; namespace { constexpr char TEXT_STASETTINGS[] = "STA Settings"; constexpr char TEXT_APSETTINGS[] = "AP Settings"; -//constexpr char TEXT_BACK[] = "Back"; +constexpr char TEXT_BACK[] = "Back"; } // namespace NetworkSettingsMenu::NetworkSettingsMenu() diff --git a/main/displays/menus/otamenu.cpp b/main/displays/menus/otamenu.cpp index f28f478..007e6e4 100644 --- a/main/displays/menus/otamenu.cpp +++ b/main/displays/menus/otamenu.cpp @@ -16,11 +16,18 @@ #include "displays/updatedisplay.h" #ifdef FEATURE_OTA - -using namespace espgui; +namespace { +constexpr char TEXT_UPDATE[] = "Update"; +constexpr char TEXT_UPDATENOW[] = "Update now"; +constexpr char TEXT_SELECTBUILD[] = "Select build"; +constexpr char TEXT_SELECT_BRANCH[] = "Select Branch"; +constexpr char TEXT_SELECTBUILDSERVERMENU[] = "Select Buildserver"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace OtaMenu::OtaMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); @@ -28,8 +35,13 @@ OtaMenu::OtaMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string OtaMenu::text() const +{ + return TEXT_UPDATE; +} + void OtaMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/otamenu.h b/main/displays/menus/otamenu.h index fdf7e4e..63ed7bc 100644 --- a/main/displays/menus/otamenu.h +++ b/main/displays/menus/otamenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class OtaMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class OtaMenu : public BobbyMenuDisplay { public: OtaMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/presetsmenu.cpp b/main/displays/menus/presetsmenu.cpp index ccbf67b..4ab1657 100644 --- a/main/displays/menus/presetsmenu.cpp +++ b/main/displays/menus/presetsmenu.cpp @@ -10,10 +10,28 @@ #include "menudisplay.h" #include "presets.h" #include "settings.h" -#include "texts.h" #include "utils.h" namespace { +constexpr char TEXT_PRESETS[] = "Presets"; +constexpr char TEXT_DEFAULTEVERYTHING[] = "Default everything"; +constexpr char TEXT_DEFAULTLIMITS[] = "Default limits"; +constexpr char TEXT_KIDSLIMITS[] = "Kids limits"; +constexpr char TEXT_DEFAULTPOTI[] = "Default poti"; +constexpr char TEXT_DEFAULTCONTROLLERHARDWARE[] = "Default controller H/W"; +constexpr char TEXT_MOSFETSOFFCONTROLLERHARDWARE[] = "MOSFETs off controller H/W"; +constexpr char TEXT_SPINNERCONTROLLERHARDWARE[] = "Spinner controller H/W"; +constexpr char TEXT_DEFAULTBOARDCOMPUTERHARDWARE[] = "Default boardcomputer H/W"; +constexpr char TEXT_DEFAULTDEFAULTMODE[] = "Default defaultMode"; +constexpr char TEXT_SINUSOIDALDEFAULTMODE[] = "Sinusoidal defaultMode"; +constexpr char TEXT_DEFAULTTEMPOMATMODE[] = "Default tempomatMode"; +constexpr char TEXT_DEFAULTLARSMMODE[] = "Default larsmMode"; +constexpr char TEXT_STREET[] = "Street"; +constexpr char TEXT_SIDEWALK[] = "Sidewalk"; +constexpr char TEXT_POLICE[] = "Police"; +constexpr char TEXT_RACE[] = "Race"; +constexpr char TEXT_BACK[] = "Back"; + class ApplyPresetAction : public virtual ActionInterface { public: @@ -86,6 +104,11 @@ PresetsMenu::PresetsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string PresetsMenu::text() const +{ + return TEXT_PRESETS; +} + void PresetsMenu::back() { switchScreen(); diff --git a/main/displays/menus/presetsmenu.h b/main/displays/menus/presetsmenu.h index c9f071d..9699c1c 100644 --- a/main/displays/menus/presetsmenu.h +++ b/main/displays/menus/presetsmenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class PresetsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class PresetsMenu : public BobbyMenuDisplay { public: PresetsMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/profilesmenu.cpp b/main/displays/menus/profilesmenu.cpp index ad99a4c..6b6d08b 100644 --- a/main/displays/menus/profilesmenu.cpp +++ b/main/displays/menus/profilesmenu.cpp @@ -6,7 +6,15 @@ #include "displays/menus/mainmenu.h" #include "icons/back.h" #include "menudisplay.h" -#include "texts.h" + +namespace { +constexpr char TEXT_PROFILES[] = "Profiles"; +constexpr char TEXT_PROFILE0[] = "Profile 0"; +constexpr char TEXT_PROFILE1[] = "Profile 1"; +constexpr char TEXT_PROFILE2[] = "Profile 2"; +constexpr char TEXT_PROFILE3[] = "Profile 3"; +constexpr char TEXT_BACK[] = "Back"; +} // namespace ProfilesMenu::ProfilesMenu() { @@ -17,6 +25,11 @@ ProfilesMenu::ProfilesMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string ProfilesMenu::text() const +{ + return TEXT_PROFILES; +} + void ProfilesMenu::back() { switchScreen(); diff --git a/main/displays/menus/profilesmenu.h b/main/displays/menus/profilesmenu.h index ce57d23..fb2cd87 100644 --- a/main/displays/menus/profilesmenu.h +++ b/main/displays/menus/profilesmenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class ProfilesMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class ProfilesMenu : public BobbyMenuDisplay { public: ProfilesMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/selectbatterytypemenu.cpp b/main/displays/menus/selectbatterytypemenu.cpp index 0f332b0..d3b123b 100644 --- a/main/displays/menus/selectbatterytypemenu.cpp +++ b/main/displays/menus/selectbatterytypemenu.cpp @@ -1,13 +1,44 @@ #include "selectbatterytypemenu.h" +// 3rdparty lib includes +#include +#include +#include +#include +#include + // local includes #include "battery.h" #include "globals.h" #include "utils.h" #include "displays/menus/batterymenu.h" +#include "batterymenu.h" +#include "displays/menus/mainmenu.h" namespace { -class CurrentBatteryTypeText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryCellTypeString(); } }; +constexpr char TEXT_CELL_SERIES[] = "Cells (Series)"; +constexpr char TEXT_CELL_PARALLEL[] = "Cells (Parallel)"; +constexpr char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type"; +constexpr char TEXT_CELL_TYPE[] = "Cell Type"; +constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; +constexpr char TEXT_BATTERY_TYPE_22P[] = "22P cells"; +constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells"; +constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; +constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; +constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; +constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; +constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; +constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; +constexpr char TEXT_BACK[] = "Back"; + +class CurrentBatteryTypeText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return getBatteryCellTypeString(); + } +}; template class BatterySelectTypeAction : public virtual espgui::ActionInterface @@ -17,10 +48,9 @@ public: }; } // namespace -using namespace espgui; - BatteryTypeMenu::BatteryTypeMenu() { + using namespace espgui; constructMenuItem>(); constructMenuItem, BatterySelectTypeAction>>(); constructMenuItem, BatterySelectTypeAction>>(); @@ -30,6 +60,11 @@ BatteryTypeMenu::BatteryTypeMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string BatteryTypeMenu::text() const +{ + return TEXT_SELECT_CELL_TYPE; +} + void BatteryTypeMenu::back() { espgui::switchScreen(); diff --git a/main/displays/menus/selectbatterytypemenu.h b/main/displays/menus/selectbatterytypemenu.h index 6291f0b..cf84b49 100644 --- a/main/displays/menus/selectbatterytypemenu.h +++ b/main/displays/menus/selectbatterytypemenu.h @@ -1,23 +1,14 @@ #pragma once -// 3rdparty lib includes -#include -#include -#include -#include - // Local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -#include "batterymenu.h" -#include "displays/menus/mainmenu.h" -class BatteryTypeMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class BatteryTypeMenu : public BobbyMenuDisplay { public: BatteryTypeMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/selectbuildserverbranch.cpp b/main/displays/menus/selectbuildserverbranch.cpp index e6ffbb6..5412f84 100644 --- a/main/displays/menus/selectbuildserverbranch.cpp +++ b/main/displays/menus/selectbuildserverbranch.cpp @@ -15,15 +15,14 @@ #include "utils.h" #include "newsettings.h" -#define ERR_MESSAGE(text) \ - constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ - return; - -using namespace espgui; -using namespace buildserver; - namespace { +constexpr char TEXT_OTA_NOBUILDSERVERAVAILABLE[] = "E:No server saved."; +constexpr char TEXT_OTA_NOBUILDSERVERSELECTED[] = "E:No server selected."; +constexpr char TEXT_OTA_NOCONNECTION[] = "E:No internet."; +constexpr char TEXT_SELECT_BRANCH[] = "Select Branch"; +constexpr char TEXT_SELECT_BRANCH_CLEAR[] = "Clear Branch"; +constexpr char TEXT_BACK[] = "Back"; + class CurrentBranch : public virtual espgui::TextInterface { public: @@ -83,6 +82,14 @@ void ClearBranchAction::triggered() SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() { + using namespace espgui; + using namespace buildserver; + +#define ERR_MESSAGE(text) \ + constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ + return; + if (count_available_buildserver() < 1) { ERR_MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); // E:No server saved. @@ -97,14 +104,22 @@ SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() { ERR_MESSAGE(TEXT_OTA_NOCONNECTION); // E:No internet. } +#undef ERR_MESSAGE SelectBranch::setup_request(); SelectBranch::start_descriptor_request(configs.otaServerUrl.value); } +std::string SelectBuildserverBranchMenu::text() const +{ + return TEXT_SELECT_BRANCH; +} + void SelectBuildserverBranchMenu::update() { - using namespace SelectBranch; + using namespace espgui; + using namespace buildserver::SelectBranch; + if(get_request_running()) { check_descriptor_request(); @@ -138,11 +153,13 @@ void SelectBuildserverBranchMenu::update() void SelectBuildserverBranchMenu::back() { - switchScreen(); + espgui::switchScreen(); } void SelectBuildserverBranchMenu::buildMenuRequestError(std::string error) { + using namespace espgui; + auto &item = constructMenuItem, DummyAction>>(); item.setTitle(error); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); diff --git a/main/displays/menus/selectbuildserverbranch.h b/main/displays/menus/selectbuildserverbranch.h index 52b7f9a..92a4fd1 100644 --- a/main/displays/menus/selectbuildserverbranch.h +++ b/main/displays/menus/selectbuildserverbranch.h @@ -2,18 +2,17 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_OTA -class SelectBuildserverBranchMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class SelectBuildserverBranchMenu : public BobbyMenuDisplay { using Base = espgui::MenuDisplay; public: SelectBuildserverBranchMenu(); + std::string text() const override; + void buildMenuRequestError(std::string error); void update() override; void back() override; diff --git a/main/displays/menus/selectbuildservermenu.cpp b/main/displays/menus/selectbuildservermenu.cpp index 31e5e67..87f6786 100644 --- a/main/displays/menus/selectbuildservermenu.cpp +++ b/main/displays/menus/selectbuildservermenu.cpp @@ -18,9 +18,12 @@ #ifdef FEATURE_OTA using namespace buildserver::SelectBuild; -using namespace espgui; namespace { +constexpr char TEXT_SELECTBUILDSERVERMENU[] = "Select Buildserver"; +constexpr char TEXT_NOBUILDSERVERCONFIGURED[] = "Not configured"; +constexpr char TEXT_BACK[] = "Back"; + class BuildserverMenuItem : public espgui::MenuItem { public: @@ -49,6 +52,8 @@ private: SelectBuildServerMenu::SelectBuildServerMenu() { + using namespace espgui; + for (const auto &otaServer : configs.otaServers) { std::string url = otaServer.url.value; @@ -70,6 +75,11 @@ SelectBuildServerMenu::SelectBuildServerMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string SelectBuildServerMenu::text() const +{ + return TEXT_SELECTBUILDSERVERMENU; +} + void SelectBuildServerMenu::back() { espgui::switchScreen(); diff --git a/main/displays/menus/selectbuildservermenu.h b/main/displays/menus/selectbuildservermenu.h index 0ce6ac3..bb84d20 100644 --- a/main/displays/menus/selectbuildservermenu.h +++ b/main/displays/menus/selectbuildservermenu.h @@ -4,17 +4,16 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_OTA -class SelectBuildServerMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class SelectBuildServerMenu : public BobbyMenuDisplay { public: SelectBuildServerMenu(); + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/menus/selectmodemenu.cpp b/main/displays/menus/selectmodemenu.cpp index e6d4526..31e9053 100644 --- a/main/displays/menus/selectmodemenu.cpp +++ b/main/displays/menus/selectmodemenu.cpp @@ -19,6 +19,15 @@ #include "displays/menus/mainmenu.h" namespace { +constexpr char TEXT_SELECTMODE[] = "Select mode"; +constexpr char TEXT_DEFAULT[] = "Default"; +constexpr char TEXT_TEMPOMAT[] = "Tempomat"; +constexpr char TEXT_LARSM[] = "Larsm"; +constexpr char TEXT_REMOTECONTROL[] = "Remote control"; +constexpr char TEXT_GAMETRAK[] = "Gametrak"; +constexpr char TEXT_MOTORTEST[] = "Motortest"; +constexpr char TEXT_BACK[] = "Back"; + template class SetterAction : public espgui::ActionInterface { @@ -50,6 +59,11 @@ SelectModeMenu::SelectModeMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string SelectModeMenu::text() const +{ + return TEXT_SELECTMODE; +} + void SelectModeMenu::start() { Base::start(); diff --git a/main/displays/menus/selectmodemenu.h b/main/displays/menus/selectmodemenu.h index bd2071b..73d6c50 100644 --- a/main/displays/menus/selectmodemenu.h +++ b/main/displays/menus/selectmodemenu.h @@ -2,17 +2,16 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class SelectModeMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class SelectModeMenu : public BobbyMenuDisplay { using Base = BobbyMenuDisplay; public: SelectModeMenu(); + std::string text() const override; + void start() override; void back() override; }; diff --git a/main/displays/menus/selectotabuildmenu.cpp b/main/displays/menus/selectotabuildmenu.cpp index a908c3c..7853c76 100644 --- a/main/displays/menus/selectotabuildmenu.cpp +++ b/main/displays/menus/selectotabuildmenu.cpp @@ -22,6 +22,14 @@ using namespace espgui; using namespace buildserver::SelectBuild; namespace { +constexpr char TEXT_UPDATENOW[] = "Update now"; +constexpr char TEXT_SELECTBUILD[] = "Select build"; +constexpr char TEXT_OTA_NOBUILDSERVERAVAILABLE[] = "E:No server saved."; +constexpr char TEXT_OTA_NOBUILDSERVERSELECTED[] = "E:No server selected."; +constexpr char TEXT_OTA_NOCONNECTION[] = "E:No internet."; +constexpr char TEXT_OTA_WAITFORRESPONSE[] = "Wait for response..."; +constexpr char TEXT_BACK[] = "Back"; + template class VersionMenuItem : public MenuItem { @@ -89,6 +97,11 @@ SelectBuildMenu::SelectBuildMenu() } } +std::string SelectBuildMenu::text() const +{ + return TEXT_SELECTBUILD; +} + void SelectBuildMenu::update() { if(get_request_running()) diff --git a/main/displays/menus/selectotabuildmenu.h b/main/displays/menus/selectotabuildmenu.h index 23d23f2..4eedc55 100644 --- a/main/displays/menus/selectotabuildmenu.h +++ b/main/displays/menus/selectotabuildmenu.h @@ -2,18 +2,18 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_OTA -class SelectBuildMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class SelectBuildMenu : public BobbyMenuDisplay { using Base = BobbyMenuDisplay; public: SelectBuildMenu(); + + std::string text() const override; + void update() override; void back() override; diff --git a/main/displays/menus/settingsmenu.cpp b/main/displays/menus/settingsmenu.cpp index 0fe5d60..9b5e374 100644 --- a/main/displays/menus/settingsmenu.cpp +++ b/main/displays/menus/settingsmenu.cpp @@ -44,6 +44,28 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_SETTINGS[] = "Settings"; +constexpr char TEXT_BACKLIGHT[] = "Backlight"; +constexpr char TEXT_LIMITSSETTINGS[] = "Limits settings"; +constexpr char TEXT_NETWORKSETTINGS[] = "Network settings"; +constexpr char TEXT_ESPNOW[] = "ESPNOW settings"; +constexpr char TEXT_BLUETOOTHSETTINGS[] = "Bluetooth settings"; +constexpr char TEXT_BLESETTINGS[] = "BLE settings"; +constexpr char TEXT_CLOUDSETTINGS[] = "Cloud settings"; +constexpr char TEXT_UDPCLOUDSETTINGS[] = "UDP Cloud settings"; +constexpr char TEXT_SELECTBUILDSERVERMENU[] = "Select Buildserver"; +constexpr char TEXT_TIME[] = "Time"; +constexpr char TEXT_MODESSETTINGS[] = "Modes settings"; +constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings"; +constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings"; +constexpr char TEXT_AUTOCONNECTBMS[] = "Auto connect BMS"; +constexpr char TEXT_BUZZER[] = "Buzzer"; +constexpr char TEXT_FRONTLED[] = "Front LED"; +constexpr char TEXT_BACKLED[] = "Back LED"; +constexpr char TEXT_CRASHMENU[] = "Crash Menu"; +constexpr char TEXT_ABOUT[] = "About"; +constexpr char TEXT_BACK[] = "Back"; + #ifdef FEATURE_LEDBACKLIGHT struct BacklightAccessor : public virtual espgui::AccessorInterface { @@ -99,6 +121,11 @@ SettingsMenu::SettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string SettingsMenu::text() const +{ + return TEXT_SETTINGS; +} + void SettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/settingsmenu.h b/main/displays/menus/settingsmenu.h index 7549144..436efce 100644 --- a/main/displays/menus/settingsmenu.h +++ b/main/displays/menus/settingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/menudisplaywithtime.h" -#include "texts.h" -class SettingsMenu : - public bobbygui::MenuDisplayWithTime, - public espgui::StaticText +class SettingsMenu : public bobbygui::MenuDisplayWithTime { public: SettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/statisticsmenu.cpp b/main/displays/menus/statisticsmenu.cpp index 4852ad0..44b0c90 100644 --- a/main/displays/menus/statisticsmenu.cpp +++ b/main/displays/menus/statisticsmenu.cpp @@ -1,18 +1,27 @@ #include "statisticsmenu.h" -// local includes -#include "mainmenu.h" +// 3rdparty lib includes +#include #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "actioninterface.h" #include "fmt/core.h" -#include "utils.h" #include "icons/back.h" + +// local includes +#include "mainmenu.h" +#include "utils.h" #include "icons/time.h" #include "icons/reboot.h" #include "icons/update.h" #include "drivingstatistics.h" +namespace { +constexpr char TEXT_STATISTICSMENU[] = "Statistics"; +constexpr char TEXT_STATSSAVE[] = "Save kilometers"; +constexpr char TEXT_STATSCLEAR[] = "Clear current km"; +constexpr char TEXT_BACK[] = "Back"; + class WhPerKmText : public virtual espgui::TextInterface { public: @@ -147,28 +156,33 @@ public: drivingStatistics.batteryWhEstimate = 0; } }; - -using namespace espgui; +} // namespace StatisticsMenu::StatisticsMenu() { - constructMenuItem>(); - constructMenuItem>>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); -// constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, SaveKilometersAction, StaticMenuItemIcon<&bobbyicons::update>>>(); - constructMenuItem, ClearCurrentStatsAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + using namespace espgui; + constructMenuItem>(); + constructMenuItem>>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); +// constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, SaveKilometersAction, StaticMenuItemIcon<&bobbyicons::update>>>(); + constructMenuItem, ClearCurrentStatsAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +std::string StatisticsMenu::text() const +{ + return TEXT_STATISTICSMENU; } void StatisticsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/statisticsmenu.h b/main/displays/menus/statisticsmenu.h index be81dab..fd5b59d 100644 --- a/main/displays/menus/statisticsmenu.h +++ b/main/displays/menus/statisticsmenu.h @@ -1,18 +1,14 @@ #pragma once -// 3rdparty lib includes -#include - // Local includes #include "displays/menudisplaywithtime.h" -#include "texts.h" -class StatisticsMenu : - public bobbygui::MenuDisplayWithTime, - public espgui::StaticText +class StatisticsMenu : public bobbygui::MenuDisplayWithTime { public: StatisticsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/taskmanagermenu.cpp b/main/displays/menus/taskmanagermenu.cpp index 5d44948..998d01d 100644 --- a/main/displays/menus/taskmanagermenu.cpp +++ b/main/displays/menus/taskmanagermenu.cpp @@ -14,6 +14,8 @@ using namespace espgui; namespace { +constexpr char TEXT_TASKMANAGER[] = "Taskmanager"; +constexpr char TEXT_BACK[] = "Back"; class TaskText : public virtual espgui::TextInterface { @@ -38,6 +40,11 @@ TaskmanagerMenu::TaskmanagerMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string TaskmanagerMenu::text() const +{ + return TEXT_TASKMANAGER; +} + void TaskmanagerMenu::back() { switchScreen(); diff --git a/main/displays/menus/taskmanagermenu.h b/main/displays/menus/taskmanagermenu.h index e1d8b84..59facf4 100644 --- a/main/displays/menus/taskmanagermenu.h +++ b/main/displays/menus/taskmanagermenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class TaskmanagerMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class TaskmanagerMenu : public BobbyMenuDisplay { public: TaskmanagerMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/tempomatmodesettingsmenu.cpp b/main/displays/menus/tempomatmodesettingsmenu.cpp index 441f2cc..960c75c 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.cpp +++ b/main/displays/menus/tempomatmodesettingsmenu.cpp @@ -17,6 +17,12 @@ #include "displays/menus/modessettingsmenu.h" namespace { +constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; +constexpr char TEXT_APPLY[] = "Apply"; +constexpr char TEXT_NCRUISEMOTTGT[] = "nCruiseMotTgt"; +constexpr char TEXT_MODELMODE[] = "Model mode"; +constexpr char TEXT_BACK[] = "Back"; + using TempomatModeCruiseMotTgtChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -44,6 +50,11 @@ TempomatModeSettingsMenu::TempomatModeSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string TempomatModeSettingsMenu::text() const +{ + return TEXT_TEMPOMATMODESETTINGS; +} + void TempomatModeSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/tempomatmodesettingsmenu.h b/main/displays/menus/tempomatmodesettingsmenu.h index 6d02a92..9b14d60 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.h +++ b/main/displays/menus/tempomatmodesettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class TempomatModeSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class TempomatModeSettingsMenu : public BobbyMenuDisplay { public: TempomatModeSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/timersmenu.cpp b/main/displays/menus/timersmenu.cpp index 16d3d43..86c7c9d 100644 --- a/main/displays/menus/timersmenu.cpp +++ b/main/displays/menus/timersmenu.cpp @@ -9,9 +9,12 @@ #include "displays/bobbychangevaluedisplay.h" #include "accessors/settingsaccessors.h" #include "displays/menus/boardcomputerhardwaresettingsmenu.h" -#include "texts.h" namespace { +constexpr char TEXT_TIMERS[] = "Timers"; +constexpr char TEXT_STATSUPDATERATE[] = "Stats update rate"; +constexpr char TEXT_BACK[] = "Back"; + using StatsUpdateRateChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -19,7 +22,7 @@ using StatsUpdateRateChangeDisplay = espgui::makeComponent< espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; -} +} // namespace TimersMenu::TimersMenu() { @@ -28,6 +31,11 @@ TimersMenu::TimersMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string TimersMenu::text() const +{ + return TEXT_TIMERS; +} + void TimersMenu::back() { espgui::switchScreen(); diff --git a/main/displays/menus/timersmenu.h b/main/displays/menus/timersmenu.h index 8b3d156..f3a08e0 100644 --- a/main/displays/menus/timersmenu.h +++ b/main/displays/menus/timersmenu.h @@ -2,13 +2,13 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" -class TimersMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class TimersMenu : public BobbyMenuDisplay { public: TimersMenu(); + + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/displays/menus/timesettingsmenu.cpp index 0ab0a04..1a44506 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/displays/menus/timesettingsmenu.cpp @@ -21,6 +21,15 @@ #include "bobbycheckbox.h" namespace { +constexpr char TEXT_TIME[] = "Time"; +constexpr char TEXT_OFFSET[] = "Offset"; +constexpr char TEXT_DAYLIGHTSAVINGMODE[] = "Daylight Saving"; +constexpr char TEXT_NTPENABLED[] = "NTP Enabled"; +constexpr char TEXT_NTPSERVER[] = "NTP Server"; +constexpr char TEXT_NTPMODE[] = "NTP Mode"; +constexpr char TEXT_NTPINTERVAL[] = "NTP Interval"; +constexpr char TEXT_BACK[] = "Back"; + class CurrentUtcDateTimeText : public virtual espgui::TextInterface { public: @@ -105,6 +114,11 @@ TimeSettingsMenu::TimeSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string TimeSettingsMenu::text() const +{ + return TEXT_TIME; +} + void TimeSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/timesettingsmenu.h b/main/displays/menus/timesettingsmenu.h index 91aa018..764825f 100644 --- a/main/displays/menus/timesettingsmenu.h +++ b/main/displays/menus/timesettingsmenu.h @@ -2,14 +2,13 @@ // local includes #include "displays/menudisplaywithtime.h" -#include "texts.h" -class TimeSettingsMenu : - public bobbygui::MenuDisplayWithTime, - public espgui::StaticText +class TimeSettingsMenu : public bobbygui::MenuDisplayWithTime { public: TimeSettingsMenu(); + std::string text() const override; + void back() override; }; diff --git a/main/displays/menus/udpcloudsettingsmenu.cpp b/main/displays/menus/udpcloudsettingsmenu.cpp index 3e72142..1e8a32b 100644 --- a/main/displays/menus/udpcloudsettingsmenu.cpp +++ b/main/displays/menus/udpcloudsettingsmenu.cpp @@ -16,6 +16,12 @@ #ifdef FEATURE_UDPCLOUD namespace { +constexpr char TEXT_UDPCLOUDSETTINGS[] = "UDP Cloud settings"; +constexpr char TEXT_UDPCLOUDENABLED[] = "Udp Cloud enabled"; +constexpr char TEXT_UDPSENDRATE[] = "Udp send rate"; +constexpr char TEXT_UDPUSESTRING[] = "Udp use std::string"; +constexpr char TEXT_BACK[] = "Back"; + using UdpCloudSendRateChangeDisplay = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, @@ -35,6 +41,11 @@ UdpCloudSettingsMenu::UdpCloudSettingsMenu() constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } +std::string UdpCloudSettingsMenu::text() const +{ + return TEXT_UDPCLOUDSETTINGS; +} + void UdpCloudSettingsMenu::back() { switchScreen(); diff --git a/main/displays/menus/udpcloudsettingsmenu.h b/main/displays/menus/udpcloudsettingsmenu.h index 6f9adb8..b5698a6 100644 --- a/main/displays/menus/udpcloudsettingsmenu.h +++ b/main/displays/menus/udpcloudsettingsmenu.h @@ -2,16 +2,15 @@ // local includes #include "displays/bobbymenudisplay.h" -#include "texts.h" #ifdef FEATURE_UDPCLOUD -class UdpCloudSettingsMenu : - public BobbyMenuDisplay, - public espgui::StaticText +class UdpCloudSettingsMenu : public BobbyMenuDisplay { public: UdpCloudSettingsMenu(); + std::string text() const override; + void back() override; }; #endif diff --git a/main/displays/poweroffdisplay.cpp b/main/displays/poweroffdisplay.cpp index 7093bd3..80266c6 100644 --- a/main/displays/poweroffdisplay.cpp +++ b/main/displays/poweroffdisplay.cpp @@ -7,7 +7,6 @@ // local includes #include "utils.h" #include "globals.h" -#include "texts.h" #include "displays/menus/mainmenu.h" using namespace std::chrono_literals; @@ -29,7 +28,7 @@ void PoweroffDisplay::initScreen() espgui::tft.fillScreen(TFT_BLACK); espgui::tft.setTextColor(TFT_YELLOW); - espgui::tft.drawString(TEXT_POWEROFF, 5, 5, 4); + espgui::tft.drawString("Poweroff", 5, 5, 4); espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index a2f69c0..bf00284 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -26,6 +26,11 @@ namespace { constexpr const char * const TAG = "STATUS"; } // namespace +StatusDisplay::~StatusDisplay() +{ + ESP_LOGI(TAG, "called"); +} + void StatusDisplay::initScreen() { Base::initScreen(); @@ -182,6 +187,13 @@ clearIp: m_labelProfile.redraw(profile ? std::to_string(*profile) : "-"); } +void StatusDisplay::stop() +{ + Base::stop(); + + ESP_LOGI(TAG, "called"); +} + void StatusDisplay::buttonPressed(espgui::Button button) { Base::buttonPressed(button); diff --git a/main/displays/statusdisplay.h b/main/displays/statusdisplay.h index e810b0d..b6a3acd 100644 --- a/main/displays/statusdisplay.h +++ b/main/displays/statusdisplay.h @@ -22,8 +22,11 @@ class StatusDisplay : public BobbyDisplay using Base = BobbyDisplay; public: + ~StatusDisplay() override; + void initScreen() override; void redraw() override; + void stop() override; void buttonPressed(espgui::Button button) override; diff --git a/main/displays/updatedisplay.cpp b/main/displays/updatedisplay.cpp index 808a9c8..9ab6075 100644 --- a/main/displays/updatedisplay.cpp +++ b/main/displays/updatedisplay.cpp @@ -17,7 +17,6 @@ // local includes #include "globals.h" -#include "texts.h" #include "ota.h" #include "displays/menus/otamenu.h" #include "newsettings.h" @@ -30,7 +29,7 @@ void UpdateDisplay::initScreen() espgui::tft.setTextFont(4); espgui::tft.setTextColor(TFT_YELLOW); - espgui::tft.drawString(TEXT_UPDATE, 5, 5, 4); + espgui::tft.drawString("Update", 5, 5, 4); espgui::tft.fillRect(0, 34, espgui::tft.width(), 3, TFT_WHITE); diff --git a/main/ledstrip.cpp b/main/ledstrip.cpp index 298210f..ace5d5f 100644 --- a/main/ledstrip.cpp +++ b/main/ledstrip.cpp @@ -9,6 +9,7 @@ #include "ledstripdefines.h" #include "utils.h" #include "ota.h" +#include "newsettings.h" using namespace std::chrono_literals; @@ -206,7 +207,7 @@ void updateLedStrip() } } - FastLED.setMaxPowerInVoltsAndMilliamps(5,settings.ledstrip.deziampere * 100); + FastLED.setMaxPowerInVoltsAndMilliamps(5, configs.ledStripMaxMilliamps.value); FastLED.setBrightness(settings.ledstrip.brightness); FastLED.show(); } diff --git a/main/newsettings.h b/main/newsettings.h index ccc0b3c..fdbe435 100644 --- a/main/newsettings.h +++ b/main/newsettings.h @@ -176,6 +176,8 @@ public: ConfigWrapper dns_announce_key {std::string{}, DoReset, {}, "dnsAnnounceKey" }; ConfigWrapper webserverPassword {std::string{}, DoReset, {}, "websPassword" }; + ConfigWrapper ledStripMaxMilliamps {3000, DoReset, {}, "ledMaxMilliamps" }; + #define NEW_SETTINGS(x) \ x(baseMacAddressOverride) \ x(hostname) \ @@ -361,7 +363,9 @@ public: \ x(dns_announce_enabled) \ x(dns_announce_key) \ - // x(webserverPassword) + x(webserverPassword) \ + \ + //x(ledStripMaxMilliamps) template void callForEveryConfig(T &&callback) @@ -369,7 +373,7 @@ public: #define HELPER(x) callback(x); NEW_SETTINGS(HELPER) #undef HELPER - callback(webserverPassword); + callback(ledStripMaxMilliamps); } auto getAllConfigParams() @@ -378,7 +382,7 @@ public: #define HELPER(x) std::ref(x), NEW_SETTINGS(HELPER) #undef HELPER - std::ref(webserverPassword) + std::ref(ledStripMaxMilliamps) ); } }; diff --git a/main/presets.h b/main/presets.h index 19906d7..11e5c7f 100644 --- a/main/presets.h +++ b/main/presets.h @@ -219,7 +219,6 @@ constexpr Settings::Ledstrip defaultLedstrip { .centerOffset = 1, .smallOffset = 4, .bigOffset = 10, - .deziampere = 30, .enableBeepWhenBlink = false, #ifdef LEDSTRIP_ANIMATION_DEFAULT .animationType = LEDSTRIP_ANIMATION_DEFAULT, diff --git a/main/settings.h b/main/settings.h index c44382b..530cc2b 100644 --- a/main/settings.h +++ b/main/settings.h @@ -143,7 +143,6 @@ struct Settings int16_t centerOffset; int16_t smallOffset; int16_t bigOffset; - int16_t deziampere; bool enableBeepWhenBlink; int16_t animationType; bool enableFullBlink; @@ -274,7 +273,6 @@ void Settings::executeForEveryCommonSetting(T &&callable) callable("centerOffset", ledstrip.centerOffset); callable("smallOffset", ledstrip.smallOffset); callable("bigOffset", ledstrip.bigOffset); - callable("deziampere", ledstrip.deziampere); callable("beeppwhenblink", ledstrip.enableBeepWhenBlink); // callable("animationType", ledstrip.animationType); callable("fullblink", ledstrip.enableFullBlink); diff --git a/main/texts.cpp b/main/texts.cpp deleted file mode 100644 index f65a9c0..0000000 --- a/main/texts.cpp +++ /dev/null @@ -1,482 +0,0 @@ -#include "texts.h" -namespace bobbytexts { -//AboutMenu -char TEXT_ABOUT[] = "About"; -char TEXT_BACK[] = "Back"; - -//AccessPointWifiSettingsMenu -char TEXT_ACCESSPOINTWIFISETTINGS[] = "Access Point WiFi settings"; -char TEXT_WIFIAPENABLED[] = "AP enabled"; -char TEXT_RESEND_DNS[] = "Resend DNS"; -//char TEXT_BACK[] = "Back"; - -#ifdef TEXTS_PLUGIN -#include TEXTS_PLUGIN -#endif - -#ifdef FEATURE_BLUETOOTH -//BluetoothSettingsMenu -char TEXT_BLUETOOTHSETTINGS[] = "Bluetooth settings"; -char TEXT_BLUETOOTHBEGIN[] = "begin()"; -char TEXT_BLUETOOTHBEGINMASTER[] = "begin() Master"; -char TEXT_BLUETOOTHFLUSH[] = "flush()"; -char TEXT_BLUETOOTHEND[] = "end()"; -char TEXT_BLUETOOTHDISCONNECT[] = "disconnect()"; -char TEXT_AUTOBLUETOOTHMODE[] = "Auto bluetooth mode"; -//char TEXT_BACK[] = "Back"; - -//BmsMenu -#ifdef FEATURE_BMS -char TEXT_BMS[] = "BMS"; -char TEXT_CONNECTBMS[] = "Connect BMS"; -char TEXT_DISCONNECTBMS[] = "Disonnect BMS"; -char TEXT_TURNONCHARGE[] = "Turn on charge"; -char TEXT_TURNOFFCHARGE[] = "Turn off charge"; -char TEXT_TURNONDISCHARGE[] = "Turn on discharge"; -char TEXT_TURNOFFDISCHARGE[] = "Turn off discharge"; -//char TEXT_BACK[] = "Back"; -#endif -#endif - -#ifdef FEATURE_BLE -//BleSettingsMenu -char TEXT_BLESETTINGS[] = "BLE settings"; -char TEXT_BLEENABLED[] = "BLE enabled"; -//char TEXT_BACK[] = "Back"; -#endif - -#ifdef FEATURE_CLOUD -//CloudSettingsMenu -char TEXT_CLOUDSETTINGS[] = "Cloud settings"; -char TEXT_CLOUDENABLED[] = "Cloud enabled"; -char TEXT_CLOUDTRANSMITTIMEOUT[] = "Transmit timeout"; -char TEXT_CLOUDCOLLECTRATE[] = "Cloud collect rate"; -char TEXT_CLOUDSENDRATE[] = "Cloud send rate"; -//char TEXT_BACK[] = "Back"; -#endif - -#ifdef FEATURE_UDPCLOUD -//UdpCloudSettingsMenu -char TEXT_UDPCLOUDSETTINGS[] = "UDP Cloud settings"; -char TEXT_UDPCLOUDENABLED[] = "Udp Cloud enabled"; -char TEXT_UDPSENDRATE[] = "Udp send rate"; -char TEXT_UDPUSESTRING[] = "Udp use std::string"; -//char TEXT_BACK[] = "Back"; -#endif - -//MainMenu -char TEXT_MAINMENU[] = "Main menu"; -char TEXT_STATUS[] = "Status"; -char TEXT_SELECTMODE[] = "Select mode"; -char TEXT_MODESETTINGS[] = "Mode settings"; -char TEXT_PRESETS[] = "Presets"; -char TEXT_PROFILES[] = "Profiles"; -char TEXT_GRAPHS[] = "Graphs"; -//char TEXT_BMS[] = "BMS"; -char TEXT_SETTINGS[] = "Settings"; -char TEXT_LOCKVEHICLE[] = "Lock vehicle"; -char TEXT_MOSFETS[] = "Mosfets"; -char TEXT_DEMOS[] = "Demos"; -char TEXT_GARAGE[] = "Garage"; -char TEXT_UPDATE[] = "Update"; -char TEXT_POWEROFF[] = "Poweroff"; -char TEXT_REBOOT[] = "Reboot"; -char TEXT_DEBUG[] = "Debug"; -char TEXT_BATTERY[] = "Battery"; -char TEXT_BATTERYDEBUG[] = "Bat Debug Menu"; -char TEXT_TOGGLECLOUDDEBUG[] = "Cloud Debug"; - -//BatteryMenu -char TEXT_CELL_SERIES[] = "Cells (Series)"; -char TEXT_CELL_PARALLEL[] = "Cells (Parallel)"; -char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type"; -char TEXT_CELL_TYPE[] = "Cell Type"; -char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; -char TEXT_BATTERY_TYPE_22P[] = "22P cells"; -char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells"; -char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; -char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; -char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; -char TEXT_BATTERY_WHKM[] = "Wh per km"; -char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; -char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; - -//CalibrateVoltageDisplay -char TEXT_VOLTAGECALIBRATION_30V[] = "Calibrate 30.0V"; -char TEXT_VOLTAGECALIBRATION_50V[] = "Calibrate 50.0V"; -char TEXT_VOLTAGECALIBRATION_VALUE_30_FRONT[] = "30V Front"; -char TEXT_VOLTAGECALIBRATION_VALUE_30_BACK[] = "30V Back"; -char TEXT_VOLTAGECALIBRATION_VALUE_50_FRONT[] = "50V Front"; -char TEXT_VOLTAGECALIBRATION_VALUE_50_BACK[] = "50V Back"; - -//SettingsMenu -//char TEXT_SETTINGS[] = "Settings"; -char TEXT_BACKLIGHT[] = "Backlight"; -char TEXT_LIMITSSETTINGS[] = "Limits settings"; -char TEXT_NETWORKSETTINGS[] = "Network settings"; -//char TEXT_BLUETOOTHSETTINGS[] = "Bluetooth settings"; -//char TEXT_BLESETTINGS[] = "BLE settings"; -//char TEXT_CLOUDSETTINGS[] = "Cloud settings"; -char TEXT_TIME[] = "Time"; -char TEXT_MODESSETTINGS[] = "Modes settings"; -char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings"; -char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings"; -char TEXT_AUTOCONNECTBMS[] = "Auto connect BMS"; -char TEXT_BUZZER[] = "Buzzer"; -char TEXT_FRONTLED[] = "Front LED"; -char TEXT_BACKLED[] = "Back LED"; -//char TEXT_ABOUT[] = "About"; -//char TEXT_BACK[] = "Back"; - -//ControllerHardwareSettings -//char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings"; -char TEXT_WHEELDIAMETERMM[] = "Wheel diameter (mm)"; -char TEXT_WHEELDIAMETERINCH[] = "Wheel diameter (inch)"; -char TEXT_NUMMAGNETPOLES[] = "Num magnet poles"; -char TEXT_SETENABLED[] = "Set enabled"; -char TEXT_SETINVERTED[] = "Set inverted"; -char TEXT_SWAPFRONTBACK[] = "Swap front/back"; -#ifdef FEATURE_CAN -char TEXT_FRONTSENDCAN[] = "Front send CAN"; -char TEXT_BACKSENDCAN[] = "Back send CAN"; -char TEXT_CANTRANSMITTIMEOUT[] = "CanTransmitTimeout"; -char TEXT_CANRECEIVETIMEOUT[] = "CanReceiveTimeout"; -#endif -//char TEXT_BACK[] = "Back"; - -//StationWifiSettingsMenu -char TEXT_STATIONWIFISETTINGS[] = "Station WiFi settings"; -char TEXT_WIFISTAENABLED[] = "STA enabled"; -char TEXT_WIFITRIGGERSCAN[] = "Trigger Scan"; -char TEXT_WIFISCANRESULTS[] = "WiFi scan results"; -//char TEXT_BACK[] = "Back"; - -//DemosMenu -//char TEXT_DEMOS[] = "Demos"; -char TEXT_STARFIELD[] = "Starfield"; -char TEXT_PINGPONG[] = "PingPong"; -char TEXT_SPIRO[] = "Spiro"; -char TEXT_GAMEOFLIFE[] = "GameOfLife"; -//char TEXT_BACK[] = "Back"; - -//BuzzerMenu -//char TEXT_BUZZER[] = "Buzzer"; -char TEXT_FRONTFREQ[] = "Front freq"; -char TEXT_FRONTPATTERN[] = "Front pattern"; -char TEXT_BACKFREQ[] = "Back freq"; -char TEXT_BACKPATTERN[] = "Back pattern"; -char TEXT_REVERSEBEEP[] = "Reverse beep"; -char TEXT_REVERSEBEEPFREQ0[] = "Reverse beep freq0"; -char TEXT_REVERSEBEEPFREQ1[] = "Reverse beep freq1"; -char TEXT_REVERSEBEEPDURATION0[] = "Reverse beep duration0"; -char TEXT_REVERSEBEEPDURATION1[] = "Reverse beep duration1"; -//char TEXT_BACK[] = "Back"; - -//LimitsSettingsMenu -//char TEXT_LIMITSSETTINGS[] = "Limit settings"; -char TEXT_IMOTMAX[] = "iMotMax"; -char TEXT_IDCMAX[] = "iDcMax"; -char TEXT_NMOTMAXKMH[] = "nMotMaxKmh"; -char TEXT_NMOTMAX[] = "nMotMax"; -char TEXT_FIELDWEAKMAX[] = "fldWkMax"; -char TEXT_PHASEADVMAX[] = "phsAdvMax"; -//char TEXT_BACK[] = "Back"; - -//DefaultModeSettingsMenu -//char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings"; -char TEXT_MODELMODE[] = "Model mode"; -char TEXT_HYBRIDMODE[] = "Hybrid mode"; -char TEXT_SQUAREGAS[] = "Square gas"; -char TEXT_SQUAREBREMS[] = "Square brems"; -char TEXT_ENABLESMOOTHINGUP[] = "Enable up smoothing"; -char TEXT_ENABLESMOOTHINGDOWN[] = "Enable down smoothing"; -char TEXT_ENABLEFWSMOOTHINGUP[] = "Enable fw up smoothing"; -char TEXT_ENABLEFWSMOOTHINGDOWN[] = "Enable fw down smoothing"; -char TEXT_FWSMOOTHING_LIMIT[] = "Fw smooth lower limit"; -char TEXT_SMOOTHINGVAL[] = "Smoothing"; -char TEXT_FRONTPERCENTAGE[] = "Front %"; -char TEXT_BACKPERCENTAGE[] = "Back %"; -char TEXT_ADDSCHWELLE[] = "Add/Sub Lim"; -char TEXT_SUBGASVAL[] = "Add Gas"; -char TEXT_SUBBRAKEVAL[] = "Add Brake"; -char TEXT_ADDGASVAL[] = "Sub Gas"; -char TEXT_ADDBRAKEVAL[] = "Sub Brake"; -char TEXT_HYBRIDENABLE[] = "Enable Hybrid mode"; -char TEXT_HYBRIDACTIVATIONLIMIT[] = "Hybrid activation-limit"; -char TEXT_HYBRIDDEACTIVATIONLIMIT[] = "Hybrid deactivation-limit"; -char TEXT_LIMITS_TO_NEAR[] = "Hybrid limits too near (>20)"; - -char TEXT_HANDBREMSE_ENABLE[] = "Enable Handbremse"; -char TEXT_HANDBREMSE_AUTOMATIC[] = "Automatic Handbremse"; -char TEXT_HANDBREMSE_VISUALIZE[] = "Visualize Handbremse"; -char TEXT_HANDBREMSE_MODE[] = "Handbrems Mode"; -char TEXT_HANDBREMSE_TRIGGERTIMEOUT[] = "Handbrems Timeout"; -char TEXT_HANDBREMSE[] = "Handbremse"; -//char TEXT_BACK[] = "Back"; - -//EnableMenu -//char TEXT_SETENABLED[] = "Set enabled"; -char TEXT_ENABLEFRONTLEFT[] = "Enable front left"; -char TEXT_ENABLEFRONTRIGHT[] = "Enable front right"; -char TEXT_ENABLEBACKLEFT[] = "Enable back left"; -char TEXT_ENABLEBACKRIGHT[] = "Enable back right"; -//char TEXT_BACK[] = "Back"; - -//GametrakModeSettingsMenu -char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings"; - -//GenericWifiSettingsMenu -char TEXT_GENERICWIFISETTINGS[] = "Generic WiFi settings"; -//char TEXT_BACK[] = "Back"; - -//GraphsMenu -//char TEXT_GRAPHS[] = "Graphs"; -char TEXT_GAS[] = "Gas"; -char TEXT_BREMS[] = "Brems"; -char TEXT_POTIS[] = "Potis"; -char TEXT_AVGSPEED[] = "Avg. speed"; -char TEXT_AVGSPEEDKMH[] = "Avg. speed KMH"; -char TEXT_SUMCURRENT[] = "Sum current"; -char TEXT_FRONTVOLTAGE[] = "Front voltage"; -char TEXT_BACKVOLTAGE[] = "Back voltage"; -char TEXT_VOLTAGES[] = "Voltages"; -char TEXT_BMSVOLTAGE[] = "BMS voltage"; -char TEXT_BMSCURRENT[] = "BMS current"; -char TEXT_BMSPOWER[] = "BMS power"; -char TEXT_SUMCURRENTSCOMPARISON[] = "Sum currents comparison"; -char TEXT_MOTORCURRENTS[] = "Motor currents"; -char TEXT_RSSI[] = "RSSI"; -//char TEXT_BACK[] = "Back"; - -//InvertMenu -//char TEXT_SETINVERTED[] = "Set inverted"; -char TEXT_INVERTFRONTLEFT[] = "Invert front left"; -char TEXT_INVERTFRONTRIGHT[] = "Invert front right"; -char TEXT_INVERTBACKLEFT[] = "Invert back left"; -char TEXT_INVERTBACKRIGHT[] = "Invert back right"; -//char TEXT_BACK[] = "Back"; - -//LarsmModeSettingsMenu -char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; -//char TEXT_MODELMODE[] = "Model mode"; -char TEXT_SETMODE[] = "Set mode"; -char TEXT_SETITERATIONS[] = "Set iterations"; -//char TEXT_BACK[] = "Back"; - -//MotortestModeSettingsMenu -char TEXT_MOTORTESTMODESETTINGS[] = "Motortest mode seetings"; -char TEXT_MOTORTESTMAXPWM[] = "Max Pwm"; -char TEXT_MOTORTESTMULTIPLIKATOR[] = "Acceleration"; - -//LedstripMenu -char TEXT_LEDSTRIP[] = "Ledstrip"; -char TEXT_LEDANIMATION[] = "LED Animation"; -char TEXT_BRAKELIGHTS[] = "Brake Lights"; -char TEXT_BLINKANIMATION[] = "Blink animation"; -char TEXT_ANIMATION_TYPE[] = "Blink animation"; -char TEXT_LEDSCOUNT[] = "LEDs Count"; -char TEXT_CENTEROFFSET[] = "Center Offset"; -char TEXT_SMALLOFFSET[] = "Small Offset"; -char TEXT_BIGOFFSET[] = "Big Offset"; -char TEXT_LEDSTRIP_MILLIAMP[] = "Ledstrip 0.1A"; -char TEXT_BLINKBEEP[] = "Blink Beep"; -char TEXT_FULLBLINK[] = "Full blink"; -char TEXT_LEDSTRIP_STVO[] = "Enable StVO"; -char TEXT_STVO_FRONTOFFSET[] = "StVO Front Offset"; -char TEXT_STVO_FRONTLENGTH[] = "StVO Front Length"; -char TEXT_STVO_ENABLEFRONTLIGHT[] = "StVO Front Enable"; -char TEXT_ANIMATION_MULTIPLIER[] = "Animation Multiplier"; -char TEXT_LEDSTRIP_BRIGHTNESS[] = "Ledstrip Brightness"; -char TEXT_LEDSTRIP_ALLCUSTOMOFF[] = "All custom off"; -char TEXT_LEDSTRIP_EN_BLINK_ANIM[] = "Animated Blink"; -char TEXT_LEDSTRIP_CHANGE_OTA_ANIM[] = "Change Ota animation"; - -char TEXT_OTAANIM_NONE[] = "None"; -char TEXT_OTAANIM_PROGRESS[] = "Progress Bar"; -char TEXT_OTAANIM_COLOR[] = "Color change"; -//char TEXT_BACK[] = "Back"; - -//LedstripSelectAnimationMenu -char TEXT_SELECTANIMATION[] = "Select Animation"; -char TEXT_ANIMATION_DEFAULTRAINBOW[] = "Default Rainbow"; -char TEXT_ANIMATION_BETTERRAINBOW[] = "Better Rainbow"; -char TEXT_ANIMATION_SPEEDSYNCANIMATION[] = "Speed Sync"; -char TEXT_ANIMATION_CUSTOMCOLOR[] = "Custom Color"; - -//LedstripSelectBlinkMenu -char TEXT_ANIMATION_BLINKNONE[] = "Blink Off"; -char TEXT_ANIMATION_BLINKLEFT[] = "Blink Left"; -char TEXT_ANIMATION_BLINKRIGHT[] = "Blink Right"; -char TEXT_ANIMATION_BLINKBOTH[] = "Blink Both"; - -//LockscreenSettingsMenu -char TEXT_LOCKSCREENSETTINGS[] = "Lockscreen Settings"; -char TEXT_ALLOWPRESETSWITCH[] = "Allow preset switch"; -char TEXT_KEEPLOCKED[] = "Keep locked"; -char TEXT_PINDIGIT0[] = "PIN digit0"; -char TEXT_PINDIGIT1[] = "PIN digit1"; -char TEXT_PINDIGIT2[] = "PIN digit2"; -char TEXT_PINDIGIT3[] = "PIN digit3"; -//char TEXT_BACK[] = "Back"; - -//ModesSettingsMenu -//char TEXT_MODESSETTINGS[] = "Modes settings"; -char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings"; -char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; -//char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; -//char TEXT_GAMETRAKMODESETTINGS[] = "Gametrak mode settings"; -//char TEXT_BACK[] = "Back"; - -//MosfetsMenu -//char TEXT_MOSFETS[] = "Mosfets"; -char TEXT_MOSFET0[] = "Mosfet0"; -char TEXT_MOSFET1[] = "Mosfet1"; -char TEXT_MOSFET2[] = "Mosfet2"; - -//TempomatModeSettingsMenu -//char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; -char TEXT_APPLY[] = "Apply"; -char TEXT_NCRUISEMOTTGT[] = "nCruiseMotTgt"; -//char TEXT_MODELMODE[] = "Model mode"; -//char TEXT_BACK[] = "Back"; - -//WiFiSettingsMenu -//char TEXT_WIFISETTINGS[] = "WiFi settings"; -//char TEXT_GENERICWIFISETTINGS[] = "Generic WiFi settings"; -//char TEXT_BACK[] = "Back"; - -//BoardcomputerHardwareSettingsMenu -//char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings"; -//char TEXT_LOCKSCREENSETTINGS[] = "Lockscreen Settings"; -char TEXT_CALIBRATE[] = "Calibrate"; -char TEXT_SAMPLECOUNT[] = "sampleCount"; -char TEXT_GASMIN[] = "gasMin"; -char TEXT_GASMAX[] = "gasMax"; -char TEXT_BREMSMIN[] = "bremsMin"; -char TEXT_BREMSMAX[] = "bremsMax"; -char TEXT_DPADDEBOUNCE[] = "dpadDebounce"; -char TEXT_GAMETRAKCALIBRATE[] = "Gametrak calibrate"; -char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin"; -char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax"; -char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin"; -char TEXT_SETGAMETRAKYMAX[] = "Set gametrakYMax"; -char TEXT_SETGAMETRAKDISTMIN[] = "Set gametrakDistMin"; -char TEXT_SETGAMETRAKDISTMAX[] = "Set gametrakDistMax"; -char TEXT_TIMERS[] = "Timers"; -//char TEXT_BACK[] = "Back"; - -//ProfilesMenu -//char TEXT_PROFILES[] = "Profiles"; -char TEXT_PROFILE0[] = "Profile 0"; -char TEXT_PROFILE1[] = "Profile 1"; -char TEXT_PROFILE2[] = "Profile 2"; -char TEXT_PROFILE3[] = "Profile 3"; -//char TEXT_BACK[] = "Back"; - -//PresetsMenu -//char TEXT_PRESETS[] = "Presets"; -char TEXT_DEFAULTEVERYTHING[] = "Default everything"; -char TEXT_DEFAULTLIMITS[] = "Default limits"; -char TEXT_KIDSLIMITS[] = "Kids limits"; -char TEXT_DEFAULTPOTI[] = "Default poti"; -char TEXT_DEFAULTCONTROLLERHARDWARE[] = "Default controller H/W"; -char TEXT_MOSFETSOFFCONTROLLERHARDWARE[] = "MOSFETs off controller H/W"; -char TEXT_SPINNERCONTROLLERHARDWARE[] = "Spinner controller H/W"; -char TEXT_DEFAULTBOARDCOMPUTERHARDWARE[] = "Default boardcomputer H/W"; -char TEXT_DEFAULTDEFAULTMODE[] = "Default defaultMode"; -char TEXT_SINUSOIDALDEFAULTMODE[] = "Sinusoidal defaultMode"; -char TEXT_DEFAULTTEMPOMATMODE[] = "Default tempomatMode"; -char TEXT_DEFAULTLARSMMODE[] = "Default larsmMode"; -char TEXT_STREET[] = "Street"; -char TEXT_SIDEWALK[] = "Sidewalk"; -char TEXT_POLICE[] = "Police"; -char TEXT_RACE[] = "Race"; - -//SelectModeMenu -//char TEXT_SELECTMODE[] = "Select mode"; -char TEXT_DEFAULT[] = "Default"; -char TEXT_TEMPOMAT[] = "Tempomat"; -char TEXT_LARSM[] = "Larsm"; -char TEXT_REMOTECONTROL[] = "Remote control"; -char TEXT_GAMETRAK[] = "Gametrak"; -char TEXT_MOTORTEST[] = "Motortest"; -//char TEXT_BACK[] = "Back"; - -//TimersMenu -//char TEXT_TIMERS[] = "Timers"; -char TEXT_STATSUPDATERATE[] = "Stats update rate"; -//char TEXT_BACK[] = "Back"; - -//TimeSettingsMenu -//char TEXT_TIME[] = "Time"; -char TEXT_OFFSET[] = "Offset"; -char TEXT_DAYLIGHTSAVINGMODE[] = "Daylight Saving"; -char TEXT_NTPENABLED[] = "NTP Enabled"; -char TEXT_NTPSERVER[] = "NTP Server"; -char TEXT_NTPMODE[] = "NTP Mode"; -char TEXT_NTPINTERVAL[] = "NTP Interval"; -//char TEXT_BACK[] = "Back"; - -//ChangeValueDisplay -char TEXT_OFF[] = "Off"; -char TEXT_MASTER[] = "Master"; -char TEXT_SLAVE[] = "Slave"; - -//Crashmenu -char TEXT_CRASHMENU[] = "Crash Menu"; -char TEXT_CRASH_ASSERT[] = "assert(0)"; -char TEXT_CRASH_DIVZERO[] = "42 / 0"; - -//SelectBuildServerMenu -char TEXT_SELECTBUILDSERVERMENU[] = "Select Buildserver"; -char TEXT_NOBUILDSERVERCONFIGURED[] = "Not configured"; - -//Otamenu -char TEXT_UPDATENOW[] = "Update now"; -char TEXT_SELECTBUILD[] = "Select build"; -char TEXT_OTA_NOBUILDSERVERAVAILABLE[] = "E:No server saved."; -char TEXT_OTA_NOBUILDSERVERSELECTED[] = "E:No server selected."; -char TEXT_OTA_NOCONNECTION[] = "E:No internet."; -char TEXT_OTA_WAITFORRESPONSE[] = "Wait for response..."; - -//LedstripColorMenu -char TEXT_LEDSTRIPCOLORMENU[] = "Customize Ledstrip"; - -//StatisticsMenu -char TEXT_STATISTICSMENU[] = "Statistics"; -char TEXT_STATSSAVE[] = "Save kilometers"; -char TEXT_STATSCLEAR[] = "Clear current km"; - -#ifdef FEATURE_CAN -char TEXT_POWERSUPPLY[] = "Powersupply"; -#endif -char TEXT_REENABLE_MENUITEMS[] = "Show advanced"; - -//SelectBuildserverBranchMenu -char TEXT_SELECT_BRANCH[] = "Select Branch"; -char TEXT_SELECT_BRANCH_CLEAR[] = "Clear Branch"; - -//QrCodeDebug -char TEXT_QRCODE_DEBUG[] = "QR Debug"; - -// TaskmanagerMenu -char TEXT_TASKMANAGER[] = "Taskmanager"; - -//GreenPassMenu -char TEXT_GREENPASS[] = "Green Pass"; -char TEXT_ADDCERT[] = "Add cert"; -char TEXT_DELCERT[] = "Delete cert mode"; - -//EspNowMenu -char TEXT_ESPNOW[] = "ESP-Now"; -char TEXT_ESPNOW_MENU[] = "ESP-Now Menu"; -char TEXT_ESPNOW_RECEIVETS[] = "Recv Ts State"; -char TEXT_ESPNOW_RECEIVETSFROMBOBBY[] = "Recv BobbyTs State"; -char TEXT_ESPNOW_SENDTSMSG[] = "Broadcast Time"; - -//EspNowSettingsMenu -char TEXT_ESPNOW_SETTINGS[] = "ESP-Now settings"; -char TEXT_ESPNOW_SYNCTIME[] = "Sync time (no NTP)"; -char TEXT_ESPNOW_SYNCWITHOTHERS[] = "Sync time with others"; -char TEXT_ESPNOW_SYNCBLINK[] = "Sync blink"; -} // namespace diff --git a/main/texts.h b/main/texts.h deleted file mode 100644 index f760912..0000000 --- a/main/texts.h +++ /dev/null @@ -1,485 +0,0 @@ -#pragma once - -namespace bobbytexts { -//AboutMenu -extern char TEXT_ABOUT[]; -extern char TEXT_BACK[]; - -//AccessPointWifiSettingsMenu -extern char TEXT_ACCESSPOINTWIFISETTINGS[]; -extern char TEXT_WIFIAPENABLED[]; -extern char TEXT_RESEND_DNS[]; -//extern char TEXT_BACK[]; - -#ifdef TEXTS_PLUGIN -#include TEXTS_PLUGIN -#endif - -#ifdef FEATURE_BLUETOOTH -//BluetoothSettingsMenu -extern char TEXT_BLUETOOTHSETTINGS[]; -extern char TEXT_BLUETOOTHBEGIN[]; -extern char TEXT_BLUETOOTHBEGINMASTER[]; -extern char TEXT_BLUETOOTHFLUSH[]; -extern char TEXT_BLUETOOTHEND[]; -extern char TEXT_BLUETOOTHDISCONNECT[]; -extern char TEXT_AUTOBLUETOOTHMODE[]; -//extern char TEXT_BACK[]; - -//BmsMenu -#ifdef FEATURE_BMS -extern char TEXT_BMS[]; -extern char TEXT_CONNECTBMS[]; -extern char TEXT_DISCONNECTBMS[]; -extern char TEXT_TURNONCHARGE[]; -extern char TEXT_TURNOFFCHARGE[]; -extern char TEXT_TURNONDISCHARGE[]; -extern char TEXT_TURNOFFDISCHARGE[]; -//extern char TEXT_BACK[]; -#endif -#endif - -#ifdef FEATURE_BLE -//BleSettingsMenu -extern char TEXT_BLESETTINGS[]; -extern char TEXT_BLEENABLED[]; -//extern char TEXT_BACK[]; -#endif - -#ifdef FEATURE_CLOUD -//CloudSettingsMenu -extern char TEXT_CLOUDSETTINGS[]; -extern char TEXT_CLOUDENABLED[]; -extern char TEXT_CLOUDTRANSMITTIMEOUT[]; -extern char TEXT_CLOUDCOLLECTRATE[]; -extern char TEXT_CLOUDSENDRATE[]; -//extern char TEXT_BACK[]; -#endif - -#ifdef FEATURE_UDPCLOUD -//UdpCloudSettingsMenu -extern char TEXT_UDPCLOUDSETTINGS[]; -extern char TEXT_UDPCLOUDENABLED[]; -extern char TEXT_UDPSENDRATE[]; -extern char TEXT_UDPUSESTRING[]; -//extern char TEXT_BACK[]; -#endif - -//MainMenu -extern char TEXT_MAINMENU[]; -extern char TEXT_STATUS[]; -extern char TEXT_SELECTMODE[]; -extern char TEXT_MODESETTINGS[]; -extern char TEXT_PRESETS[]; -extern char TEXT_PROFILES[]; -extern char TEXT_GRAPHS[]; -//extern char TEXT_BMS[]; -extern char TEXT_SETTINGS[]; -extern char TEXT_LOCKVEHICLE[]; -extern char TEXT_MOSFETS[]; -extern char TEXT_DEMOS[]; -extern char TEXT_GARAGE[]; -extern char TEXT_UPDATE[]; -extern char TEXT_POWEROFF[]; -extern char TEXT_REBOOT[]; -extern char TEXT_DEBUG[]; -extern char TEXT_BATTERY[]; -extern char TEXT_BATTERYDEBUG[]; -extern char TEXT_TOGGLECLOUDDEBUG[]; - -//BatteryMenu -extern char TEXT_CELL_SERIES[]; -extern char TEXT_CELL_PARALLEL[]; -extern char TEXT_SELECT_CELL_TYPE[]; -extern char TEXT_CELL_TYPE[]; -extern char TEXT_BATTERY_CALIBRATE[]; -extern char TEXT_BATTERY_TYPE_22P[]; -extern char TEXT_BATTERY_TYPE_HG2[]; -extern char TEXT_BATTERY_TYPE_MH1[]; -extern char TEXT_BATTERY_TYPE_VTC5[]; -extern char TEXT_BATTERY_TYPE_BAK_25R[]; -extern char TEXT_BATTERY_WHKM[]; -extern char TEXT_BATTERY_APPLYCALIB[]; -extern char TEXT_VOLTAGECALIBRATION_RESET[]; - -//CalibrateVoltageDisplay -extern char TEXT_VOLTAGECALIBRATION_30V[]; -extern char TEXT_VOLTAGECALIBRATION_50V[]; -extern char TEXT_VOLTAGECALIBRATION_VALUE_30_FRONT[]; -extern char TEXT_VOLTAGECALIBRATION_VALUE_30_BACK[]; -extern char TEXT_VOLTAGECALIBRATION_VALUE_50_FRONT[]; -extern char TEXT_VOLTAGECALIBRATION_VALUE_50_BACK[]; - -//SettingsMenu -//extern char TEXT_SETTINGS[]; -extern char TEXT_BACKLIGHT[]; -extern char TEXT_LIMITSSETTINGS[]; -extern char TEXT_NETWORKSETTINGS[]; -//extern char TEXT_BLUETOOTHSETTINGS[]; -//extern char TEXT_BLESETTINGS[]; -//extern char TEXT_CLOUDSETTINGS[]; -extern char TEXT_TIME[]; -extern char TEXT_MODESSETTINGS[]; -extern char TEXT_CONTROLLERHARDWARESETTINGS[]; -extern char TEXT_BOARDCOMPUTERHARDWARESETTINGS[]; -extern char TEXT_AUTOCONNECTBMS[]; -extern char TEXT_BUZZER[]; -extern char TEXT_FRONTLED[]; -extern char TEXT_BACKLED[]; -//extern char TEXT_ABOUT[]; -//extern char TEXT_BACK[]; - -//ControllerHardwareSettings -//extern char TEXT_CONTROLLERHARDWARESETTINGS[]; -extern char TEXT_WHEELDIAMETERMM[]; -extern char TEXT_WHEELDIAMETERINCH[]; -extern char TEXT_NUMMAGNETPOLES[]; -extern char TEXT_SETENABLED[]; -extern char TEXT_SETINVERTED[]; -extern char TEXT_SWAPFRONTBACK[]; -#ifdef FEATURE_CAN -extern char TEXT_FRONTSENDCAN[]; -extern char TEXT_BACKSENDCAN[]; -extern char TEXT_CANTRANSMITTIMEOUT[]; -extern char TEXT_CANRECEIVETIMEOUT[]; -#endif -//extern char TEXT_BACK[]; - -//StationWifiSettingsMenu -extern char TEXT_STATIONWIFISETTINGS[]; -extern char TEXT_WIFISTAENABLED[]; -extern char TEXT_WIFITRIGGERSCAN[]; -extern char TEXT_WIFISCANRESULTS[]; -//extern char TEXT_BACK[]; - -//DemosMenu -//extern char TEXT_DEMOS[]; -extern char TEXT_STARFIELD[]; -extern char TEXT_PINGPONG[]; -extern char TEXT_SPIRO[]; -extern char TEXT_GAMEOFLIFE[]; -//extern char TEXT_BACK[]; - -//BuzzerMenu -//extern char TEXT_BUZZER[]; -extern char TEXT_FRONTFREQ[]; -extern char TEXT_FRONTPATTERN[]; -extern char TEXT_BACKFREQ[]; -extern char TEXT_BACKPATTERN[]; -extern char TEXT_REVERSEBEEP[]; -extern char TEXT_REVERSEBEEPFREQ0[]; -extern char TEXT_REVERSEBEEPFREQ1[]; -extern char TEXT_REVERSEBEEPDURATION0[]; -extern char TEXT_REVERSEBEEPDURATION1[]; -//extern char TEXT_BACK[]; - -//LimitsSettingsMenu -//extern char TEXT_LIMITSSETTINGS[]; -extern char TEXT_IMOTMAX[]; -extern char TEXT_IDCMAX[]; -extern char TEXT_NMOTMAXKMH[]; -extern char TEXT_NMOTMAX[]; -extern char TEXT_FIELDWEAKMAX[]; -extern char TEXT_PHASEADVMAX[]; -//extern char TEXT_BACK[]; - -//DefaultModeSettingsMenu -//extern char TEXT_DEFAULTMODESETTINGS[]; -extern char TEXT_MODELMODE[]; -extern char TEXT_HYBRIDMODE[]; -extern char TEXT_SQUAREGAS[]; -extern char TEXT_SQUAREBREMS[]; -extern char TEXT_ENABLESMOOTHINGUP[]; -extern char TEXT_ENABLESMOOTHINGDOWN[]; -extern char TEXT_ENABLEFWSMOOTHINGUP[]; -extern char TEXT_ENABLEFWSMOOTHINGDOWN[]; -extern char TEXT_FWSMOOTHING_LIMIT[]; -extern char TEXT_SMOOTHINGVAL[]; -extern char TEXT_FRONTPERCENTAGE[]; -extern char TEXT_BACKPERCENTAGE[]; -extern char TEXT_ADDSCHWELLE[]; -extern char TEXT_SUBGASVAL[]; -extern char TEXT_SUBBRAKEVAL[]; -extern char TEXT_ADDGASVAL[]; -extern char TEXT_ADDBRAKEVAL[]; -extern char TEXT_HYBRIDENABLE[]; -extern char TEXT_HYBRIDACTIVATIONLIMIT[]; -extern char TEXT_HYBRIDDEACTIVATIONLIMIT[]; -extern char TEXT_LIMITS_TO_NEAR[]; - -extern char TEXT_HANDBREMSE_ENABLE[]; -extern char TEXT_HANDBREMSE_AUTOMATIC[]; -extern char TEXT_HANDBREMSE_VISUALIZE[]; -extern char TEXT_HANDBREMSE_MODE[]; -extern char TEXT_HANDBREMSE_TRIGGERTIMEOUT[]; -extern char TEXT_HANDBREMSE[]; -//extern char TEXT_BACK[]; - -//EnableMenu -//extern char TEXT_SETENABLED[]; -extern char TEXT_ENABLEFRONTLEFT[]; -extern char TEXT_ENABLEFRONTRIGHT[]; -extern char TEXT_ENABLEBACKLEFT[]; -extern char TEXT_ENABLEBACKRIGHT[]; -//extern char TEXT_BACK[]; - -//GametrakModeSettingsMenu -extern char TEXT_GAMETRAKMODESETTINGS[]; - -//GenericWifiSettingsMenu -extern char TEXT_GENERICWIFISETTINGS[]; -//extern char TEXT_BACK[]; - -//GraphsMenu -//extern char TEXT_GRAPHS[]; -extern char TEXT_GAS[]; -extern char TEXT_BREMS[]; -extern char TEXT_POTIS[]; -extern char TEXT_AVGSPEED[]; -extern char TEXT_AVGSPEEDKMH[]; -extern char TEXT_SUMCURRENT[]; -extern char TEXT_FRONTVOLTAGE[]; -extern char TEXT_BACKVOLTAGE[]; -extern char TEXT_VOLTAGES[]; -extern char TEXT_BMSVOLTAGE[]; -extern char TEXT_BMSCURRENT[]; -extern char TEXT_BMSPOWER[]; -extern char TEXT_SUMCURRENTSCOMPARISON[]; -extern char TEXT_MOTORCURRENTS[]; -extern char TEXT_RSSI[]; -//extern char TEXT_BACK[]; - -//InvertMenu -//extern char TEXT_SETINVERTED[]; -extern char TEXT_INVERTFRONTLEFT[]; -extern char TEXT_INVERTFRONTRIGHT[]; -extern char TEXT_INVERTBACKLEFT[]; -extern char TEXT_INVERTBACKRIGHT[]; -//extern char TEXT_BACK[]; - -//LarsmModeSettingsMenu -extern char TEXT_LARSMMODESETTINGS[]; -//extern char TEXT_MODELMODE[]; -extern char TEXT_SETMODE[]; -extern char TEXT_SETITERATIONS[]; -//extern char TEXT_BACK[]; - -//MotortestModeSettingsMenu -extern char TEXT_MOTORTESTMODESETTINGS[]; -extern char TEXT_MOTORTESTMAXPWM[]; -extern char TEXT_MOTORTESTMULTIPLIKATOR[]; - -//LedstripMenu -extern char TEXT_LEDSTRIP[]; -extern char TEXT_LEDANIMATION[]; -extern char TEXT_BRAKELIGHTS[]; -extern char TEXT_BLINKANIMATION[]; -extern char TEXT_ANIMATION_TYPE[]; -extern char TEXT_LEDSCOUNT[]; -extern char TEXT_CENTEROFFSET[]; -extern char TEXT_SMALLOFFSET[]; -extern char TEXT_BIGOFFSET[]; -extern char TEXT_LEDSTRIP_MILLIAMP[]; -extern char TEXT_BLINKBEEP[]; -extern char TEXT_FULLBLINK[]; -extern char TEXT_LEDSTRIP_STVO[]; -extern char TEXT_STVO_FRONTOFFSET[]; -extern char TEXT_STVO_FRONTLENGTH[]; -extern char TEXT_STVO_ENABLEFRONTLIGHT[]; -extern char TEXT_ANIMATION_MULTIPLIER[]; -extern char TEXT_LEDSTRIP_BRIGHTNESS[]; -extern char TEXT_LEDSTRIP_ALLCUSTOMOFF[]; -extern char TEXT_LEDSTRIP_EN_BLINK_ANIM[]; -extern char TEXT_LEDSTRIP_CHANGE_OTA_ANIM[]; - -extern char TEXT_OTAANIM_NONE[]; -extern char TEXT_OTAANIM_PROGRESS[]; -extern char TEXT_OTAANIM_COLOR[]; -//extern char TEXT_BACK[]; - -//LedstripSelectAnimationMenu -extern char TEXT_SELECTANIMATION[]; -extern char TEXT_ANIMATION_DEFAULTRAINBOW[]; -extern char TEXT_ANIMATION_BETTERRAINBOW[]; -extern char TEXT_ANIMATION_SPEEDSYNCANIMATION[]; -extern char TEXT_ANIMATION_CUSTOMCOLOR[]; - -//LedstripSelectBlinkMenu -extern char TEXT_ANIMATION_BLINKNONE[]; -extern char TEXT_ANIMATION_BLINKLEFT[]; -extern char TEXT_ANIMATION_BLINKRIGHT[]; -extern char TEXT_ANIMATION_BLINKBOTH[]; - -//LockscreenSettingsMenu -extern char TEXT_LOCKSCREENSETTINGS[]; -extern char TEXT_ALLOWPRESETSWITCH[]; -extern char TEXT_KEEPLOCKED[]; -extern char TEXT_PINDIGIT0[]; -extern char TEXT_PINDIGIT1[]; -extern char TEXT_PINDIGIT2[]; -extern char TEXT_PINDIGIT3[]; -//extern char TEXT_BACK[]; - -//ModesSettingsMenu -//extern char TEXT_MODESSETTINGS[]; -extern char TEXT_DEFAULTMODESETTIGNS[]; -extern char TEXT_TEMPOMATMODESETTINGS[]; -//extern char TEXT_LARSMMODESETTINGS[]; -//extern char TEXT_GAMETRAKMODESETTINGS[]; -//extern char TEXT_BACK[]; - -//MosfetsMenu -//extern char TEXT_MOSFETS[]; -extern char TEXT_MOSFET0[]; -extern char TEXT_MOSFET1[]; -extern char TEXT_MOSFET2[]; - -//TempomatModeSettingsMenu -//extern char TEXT_TEMPOMATMODESETTINGS[]; -extern char TEXT_APPLY[]; -extern char TEXT_NCRUISEMOTTGT[]; -//extern char TEXT_MODELMODE[]; -//extern char TEXT_BACK[]; - -//WiFiSettingsMenu -//extern char TEXT_WIFISETTINGS[]; -//extern char TEXT_GENERICWIFISETTINGS[]; -//extern char TEXT_BACK[]; - -//BoardcomputerHardwareSettingsMenu -//extern char TEXT_BOARDCOMPUTERHARDWARESETTINGS[]; -//extern char TEXT_LOCKSCREENSETTINGS[]; -extern char TEXT_CALIBRATE[]; -extern char TEXT_SAMPLECOUNT[]; -extern char TEXT_GASMIN[]; -extern char TEXT_GASMAX[]; -extern char TEXT_BREMSMIN[]; -extern char TEXT_BREMSMAX[]; -extern char TEXT_DPADDEBOUNCE[]; -extern char TEXT_GAMETRAKCALIBRATE[]; -extern char TEXT_SETGAMETRAKXMIN[]; -extern char TEXT_SETGAMETRAKXMAX[]; -extern char TEXT_SETGAMETRAKYMIN[]; -extern char TEXT_SETGAMETRAKYMAX[]; -extern char TEXT_SETGAMETRAKDISTMIN[]; -extern char TEXT_SETGAMETRAKDISTMAX[]; -extern char TEXT_TIMERS[]; -//extern char TEXT_BACK[]; - -//ProfilesMenu -//extern char TEXT_PROFILES[]; -extern char TEXT_PROFILE0[]; -extern char TEXT_PROFILE1[]; -extern char TEXT_PROFILE2[]; -extern char TEXT_PROFILE3[]; -//extern char TEXT_BACK[]; - -//PresetsMenu -//extern char TEXT_PRESETS[]; -extern char TEXT_DEFAULTEVERYTHING[]; -extern char TEXT_DEFAULTLIMITS[]; -extern char TEXT_KIDSLIMITS[]; -extern char TEXT_DEFAULTPOTI[]; -extern char TEXT_DEFAULTCONTROLLERHARDWARE[]; -extern char TEXT_MOSFETSOFFCONTROLLERHARDWARE[]; -extern char TEXT_SPINNERCONTROLLERHARDWARE[]; -extern char TEXT_DEFAULTBOARDCOMPUTERHARDWARE[]; -extern char TEXT_DEFAULTDEFAULTMODE[]; -extern char TEXT_SINUSOIDALDEFAULTMODE[]; -extern char TEXT_DEFAULTTEMPOMATMODE[]; -extern char TEXT_DEFAULTLARSMMODE[]; -extern char TEXT_STREET[]; -extern char TEXT_SIDEWALK[]; -extern char TEXT_POLICE[]; -extern char TEXT_RACE[]; - -//SelectModeMenu -//extern char TEXT_SELECTMODE[]; -extern char TEXT_DEFAULT[]; -extern char TEXT_TEMPOMAT[]; -extern char TEXT_LARSM[]; -extern char TEXT_REMOTECONTROL[]; -extern char TEXT_GAMETRAK[]; -extern char TEXT_MOTORTEST[]; -//extern char TEXT_BACK[]; - -//TimersMenu -//extern char TEXT_TIMERS[]; -extern char TEXT_STATSUPDATERATE[]; -//extern char TEXT_BACK[]; - -//TimeSettingsMenu -//extern char TEXT_TIME[]; -extern char TEXT_OFFSET[]; -extern char TEXT_DAYLIGHTSAVINGMODE[]; -extern char TEXT_NTPENABLED[]; -extern char TEXT_NTPSERVER[]; -extern char TEXT_NTPMODE[]; -extern char TEXT_NTPINTERVAL[]; -//extern char TEXT_BACK[]; - -//ChangeValueDisplay -extern char TEXT_OFF[]; -extern char TEXT_MASTER[]; -extern char TEXT_SLAVE[]; - -//Crashmenu -extern char TEXT_CRASHMENU[]; -extern char TEXT_CRASH_ASSERT[]; -extern char TEXT_CRASH_DIVZERO[]; - -//SelectBuildServerMenu -extern char TEXT_SELECTBUILDSERVERMENU[]; -extern char TEXT_NOBUILDSERVERCONFIGURED[]; - -//Otamenu -extern char TEXT_UPDATENOW[]; -extern char TEXT_SELECTBUILD[]; -extern char TEXT_OTA_NOBUILDSERVERAVAILABLE[]; -extern char TEXT_OTA_NOBUILDSERVERSELECTED[]; -extern char TEXT_OTA_NOCONNECTION[]; -extern char TEXT_OTA_WAITFORRESPONSE[]; - -//LedstripColorMenu -extern char TEXT_LEDSTRIPCOLORMENU[]; - -//StatisticsMenu -extern char TEXT_STATISTICSMENU[]; -extern char TEXT_STATSSAVE[]; -extern char TEXT_STATSCLEAR[]; - -#ifdef FEATURE_CAN -extern char TEXT_POWERSUPPLY[]; -#endif -extern char TEXT_REENABLE_MENUITEMS[]; - -//SelectBuildserverBranchMenu -extern char TEXT_SELECT_BRANCH[]; -extern char TEXT_SELECT_BRANCH_CLEAR[]; - -//QrCodeDebug -extern char TEXT_QRCODE_DEBUG[]; - -// TaskmanagerMenu -extern char TEXT_TASKMANAGER[]; - -//GreenPassMenu -extern char TEXT_GREENPASS[]; -extern char TEXT_ADDCERT[]; -extern char TEXT_DELCERT[]; - -//EspNowMenu -extern char TEXT_ESPNOW[]; -extern char TEXT_ESPNOW_MENU[]; -extern char TEXT_ESPNOW_RECEIVETS[]; -extern char TEXT_ESPNOW_RECEIVETSFROMBOBBY[]; -extern char TEXT_ESPNOW_SENDTSMSG[]; - -//EspNowSettingsMenu -extern char TEXT_ESPNOW_SETTINGS[]; -extern char TEXT_ESPNOW_SYNCTIME[]; -extern char TEXT_ESPNOW_SYNCWITHOTHERS[]; -extern char TEXT_ESPNOW_SYNCBLINK[]; -} // namespace bobbytexts - -using namespace bobbytexts; From 7536e1be9ac73ef58536250bb3b59bd93b4c142c Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 30 Dec 2021 03:23:54 +0100 Subject: [PATCH 5/6] Quick fix with plugins --- main/displays/lockscreen.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/main/displays/lockscreen.cpp b/main/displays/lockscreen.cpp index 7142770..5990a20 100644 --- a/main/displays/lockscreen.cpp +++ b/main/displays/lockscreen.cpp @@ -10,6 +10,9 @@ #include "displays/menus/mainmenu.h" #include "displays/calibratedisplay.h" #include "bobbybuttons.h" +#ifdef LOCKSCREEN_PLUGIN +#include "ledstripdefines.h" +#endif void Lockscreen::start() { From e1a44e0138f4fa8d51b388a128fbdc48f219adbc Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 30 Dec 2021 03:50:43 +0100 Subject: [PATCH 6/6] Smaller changes --- components/esp-gui-lib | 2 +- config_feedc0de.cmake | 5 +++-- main/displays/menus/mainmenu.cpp | 4 ---- main/displays/statusdisplay.cpp | 19 +++++-------------- main/displays/statusdisplay.h | 3 --- 5 files changed, 9 insertions(+), 24 deletions(-) diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 8914f2c..8c450b8 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 8914f2cc3bebe516c28159ba5abb7dd96a63624b +Subproject commit 8c450b8116d2aa1c982843a0b6144f626b721301 diff --git a/config_feedc0de.cmake b/config_feedc0de.cmake index 438c036..5372cac 100644 --- a/config_feedc0de.cmake +++ b/config_feedc0de.cmake @@ -80,7 +80,7 @@ set(BOBBYCAR_BUILDFLAGS -DFEATURE_LEDBACKLIGHT -DPINS_LEDBACKLIGHT=23 -DLEDBACKLIGHT_INVERTED - -DFEATURE_GARAGE +# -DFEATURE_GARAGE -DFEATURE_NTP -DFEATURE_WIRELESS_CONFIG -DFEATURE_LEDSTRIP @@ -93,5 +93,6 @@ set(BOBBYCAR_BUILDFLAGS -DOLD_NVS -DFEATURE_DNS_NS # -DSWITCH_BLINK -# -DFEATURE_ESPNOW +# -DFEATURE_IS_MIR_EGAL_OB_DER_WEBSERVER_KORREKT_ARBEITET + -DFEATURE_ESPNOW ) diff --git a/main/displays/menus/mainmenu.cpp b/main/displays/menus/mainmenu.cpp index c22001d..024fc6b 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/displays/menus/mainmenu.cpp @@ -1,7 +1,5 @@ #include "mainmenu.h" -// esp-idf includes - // 3rdparty lib includes #include "actions/switchscreenaction.h" #include "icons/back.h" @@ -88,8 +86,6 @@ MainMenu::MainMenu() { using namespace espgui; - ESP_LOGI(TAG, "called"); - // constructMenuItem>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); #ifdef FEATURE_LEDSTRIP diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index bf00284..308aff1 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -1,5 +1,8 @@ #include "statusdisplay.h" +// esp-idf includes +#include + // 3rdparty lib includes #include #include @@ -26,11 +29,6 @@ namespace { constexpr const char * const TAG = "STATUS"; } // namespace -StatusDisplay::~StatusDisplay() -{ - ESP_LOGI(TAG, "called"); -} - void StatusDisplay::initScreen() { Base::initScreen(); @@ -139,7 +137,7 @@ void StatusDisplay::redraw() } else { - ESP_LOGW("BOBBY", "get_sta_ap_info() failed with %.*s", result.error().size(), result.error().data()); + ESP_LOGW(TAG, "get_sta_ap_info() failed with %.*s", result.error().size(), result.error().data()); goto showStaStatus; } } @@ -158,7 +156,7 @@ showStaStatus: m_labelIpAddress.redraw(wifi_stack::toString(result->ip)); else { - ESP_LOGW("BOBBY", "get_ip_info() failed with %.*s", result.error().size(), result.error().data()); + ESP_LOGW(TAG, "get_ip_info() failed with %.*s", result.error().size(), result.error().data()); goto clearIp; } } @@ -187,13 +185,6 @@ clearIp: m_labelProfile.redraw(profile ? std::to_string(*profile) : "-"); } -void StatusDisplay::stop() -{ - Base::stop(); - - ESP_LOGI(TAG, "called"); -} - void StatusDisplay::buttonPressed(espgui::Button button) { Base::buttonPressed(button); diff --git a/main/displays/statusdisplay.h b/main/displays/statusdisplay.h index b6a3acd..e810b0d 100644 --- a/main/displays/statusdisplay.h +++ b/main/displays/statusdisplay.h @@ -22,11 +22,8 @@ class StatusDisplay : public BobbyDisplay using Base = BobbyDisplay; public: - ~StatusDisplay() override; - void initScreen() override; void redraw() override; - void stop() override; void buttonPressed(espgui::Button button) override;