From 455f98a4a04d4125d128f43e5603603c701d3e4f Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Tue, 20 Jul 2021 15:58:38 +0200 Subject: [PATCH] DefaultMode tempomat preperations --- main/CMakeLists.txt | 6 +- main/accessors/globalaccessors.h | 17 ++++++ main/{ => accessors}/settingsaccessors.h | 0 main/{ => accessors}/wifiaccessors.h | 0 .../actions/defaultmodeapplycurrspeedaction.h | 17 ++++++ main/displays/menus/bluetoothsettingsmenu.h | 2 +- .../menus/boardcomputerhardwaresettingsmenu.h | 2 +- main/displays/menus/buzzermenu.h | 2 +- .../menus/controllerhardwaresettingsmenu.h | 2 +- main/displays/menus/defaultmodesettingsmenu.h | 59 +++++++++++-------- main/displays/menus/enablemenu.h | 2 +- main/displays/menus/genericwifisettingsmenu.h | 2 +- main/displays/menus/invertmenu.h | 2 +- main/displays/menus/larsmmodesettingsmenu.h | 6 +- main/displays/menus/limitssettingsmenu.h | 8 +-- main/displays/menus/settingsmenu.h | 2 +- main/displays/menus/stationwifisettingsmenu.h | 2 +- .../displays/menus/tempomatmodesettingsmenu.h | 8 +-- main/displays/menus/timersmenu.h | 2 +- main/displays/menus/wifisettingsmenu.h | 2 +- main/modes/defaultmode.h | 19 ++++++ main/modes/gametrakmode.h | 7 +++ main/modes/ignoreinputmode.h | 2 + main/modes/larsmmode.h | 8 +++ main/modes/tempomatmode.h | 7 +++ main/textinterface.h | 11 ++++ main/texts.h | 25 ++++---- 27 files changed, 161 insertions(+), 61 deletions(-) create mode 100644 main/accessors/globalaccessors.h rename main/{ => accessors}/settingsaccessors.h (100%) rename main/{ => accessors}/wifiaccessors.h (100%) create mode 100644 main/actions/defaultmodeapplycurrspeedaction.h diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 9d1a746..764b930 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,5 +1,8 @@ set(headers accessorinterface.h + accessors/globalaccessors.h + accessors/settingsaccessors.h + accessors/wifiaccessors.h actioninterface.h actions/backproxyaction.h actions/bluetoothbeginaction.h @@ -12,6 +15,7 @@ set(headers actions/bmsturnoffdischargeaction.h actions/bmsturnonchargeaction.h actions/bmsturnondischargeaction.h + actions/defaultmodeapplycurrspeedaction.h actions/dummyaction.h actions/erasenvsaction.h actions/loadsettingsaction.h @@ -136,7 +140,6 @@ set(headers widgets/vumeter.h widgets/graph.h widgets/label.h - wifiaccessors.h esptexthelpers.h presets.h bluetoothtexthelpers.h @@ -159,7 +162,6 @@ set(headers ota.h serialhandler.h settings.h - settingsaccessors.h settingspersister.h settingsutils.h statistics.h diff --git a/main/accessors/globalaccessors.h b/main/accessors/globalaccessors.h new file mode 100644 index 0000000..5d2fb29 --- /dev/null +++ b/main/accessors/globalaccessors.h @@ -0,0 +1,17 @@ +#pragma once + +// local includes +#include "accessorinterface.h" +#include "globals.h" +#include "modes/defaultmode.h" + +namespace { + +struct AvgSpeedAccessor : public RefAccessor { float &getRef() const override { return avgSpeed; } }; +struct AvgSpeedKmhAccessor : public RefAccessor { float &getRef() const override { return avgSpeedKmh; } }; +struct SumCurrentAccessor : public RefAccessor { float &getRef() const override { return sumCurrent; } }; + +struct DefaultModeCruiseCtrlEnaAccessor : public RefAccessor { bool &getRef() const override { return modes::defaultMode.cruiseCtrlEna; } }; +struct DefaultModenCruiseMotTgtAccessor : public RefAccessor { int16_t &getRef() const override { return modes::defaultMode.nCruiseMotTgt; } }; + +} // namespace diff --git a/main/settingsaccessors.h b/main/accessors/settingsaccessors.h similarity index 100% rename from main/settingsaccessors.h rename to main/accessors/settingsaccessors.h diff --git a/main/wifiaccessors.h b/main/accessors/wifiaccessors.h similarity index 100% rename from main/wifiaccessors.h rename to main/accessors/wifiaccessors.h diff --git a/main/actions/defaultmodeapplycurrspeedaction.h b/main/actions/defaultmodeapplycurrspeedaction.h new file mode 100644 index 0000000..fb7adb6 --- /dev/null +++ b/main/actions/defaultmodeapplycurrspeedaction.h @@ -0,0 +1,17 @@ +#pragma once + +// local includes +#include "actioninterface.h" +#include "globals.h" +#include "modes/defaultmode.h" + +namespace { +class DefaultModeApplyCurrentSpeedAction : public virtual ActionInterface +{ +public: + void triggered() override + { + modes::defaultMode.nCruiseMotTgt = avgSpeed; + } +}; +} // namespace diff --git a/main/displays/menus/bluetoothsettingsmenu.h b/main/displays/menus/bluetoothsettingsmenu.h index f0df53d..090cc46 100644 --- a/main/displays/menus/bluetoothsettingsmenu.h +++ b/main/displays/menus/bluetoothsettingsmenu.h @@ -14,7 +14,7 @@ #endif #include "actions/switchscreenaction.h" #include "bluetoothtexthelpers.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" #include "icons/back.h" #include "texts.h" diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.h b/main/displays/menus/boardcomputerhardwaresettingsmenu.h index 140f1c9..dc97c04 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.h +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.h @@ -10,7 +10,7 @@ #include "icons/back.h" #include "checkboxicon.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/buzzermenu.h b/main/displays/menus/buzzermenu.h index b68a918..303e7bc 100644 --- a/main/displays/menus/buzzermenu.h +++ b/main/displays/menus/buzzermenu.h @@ -11,7 +11,7 @@ #include "icons/back.h" #include "texts.h" #include "globals.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/controllerhardwaresettingsmenu.h b/main/displays/menus/controllerhardwaresettingsmenu.h index 4199fa6..2781639 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.h +++ b/main/displays/menus/controllerhardwaresettingsmenu.h @@ -12,7 +12,7 @@ #include "icons/back.h" #include "texts.h" #include "globals.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/defaultmodesettingsmenu.h b/main/displays/menus/defaultmodesettingsmenu.h index e2c215d..9b17b78 100644 --- a/main/displays/menus/defaultmodesettingsmenu.h +++ b/main/displays/menus/defaultmodesettingsmenu.h @@ -10,7 +10,9 @@ #include "checkboxicon.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" +#include "accessors/globalaccessors.h" +#include "actions/defaultmodeapplycurrspeedaction.h" // forward declares namespace { @@ -21,68 +23,76 @@ class ModesSettingsMenu; namespace { using DefaultModeModelModeChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeModelModeAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeSmoothingChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeSmoothingAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeFrontPercentageChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeFrontPercentageAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeBackPercentageChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeBackPercentageAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeAddSchwelleChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeAddSchwelleAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeGas1WertChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeGas1WertAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeGas2WertChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeGas2WertAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeBrems1WertChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeBrems1WertAccessor, BackActionInterface>, SwitchScreenAction >; using DefaultModeBrems2WertChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, DefaultModeBrems2WertAccessor, BackActionInterface>, SwitchScreenAction >; +using DefaultModeCruiseMotTgtChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModenCruiseMotTgtAccessor, + BackActionInterface>, + SwitchScreenAction +>; + class DefaultModeSettingsMenu : public MenuDisplay, public StaticText, @@ -91,19 +101,22 @@ class DefaultModeSettingsMenu : public: DefaultModeSettingsMenu() { - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingAccessor>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeCruiseCtrlEnaAccessor>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, DefaultModeApplyCurrentSpeedAction>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingAccessor>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); } }; } // namespace diff --git a/main/displays/menus/enablemenu.h b/main/displays/menus/enablemenu.h index 9fdbfe4..956b25d 100644 --- a/main/displays/menus/enablemenu.h +++ b/main/displays/menus/enablemenu.h @@ -9,7 +9,7 @@ #include "checkboxicon.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/genericwifisettingsmenu.h b/main/displays/menus/genericwifisettingsmenu.h index 99901c7..fdb5bec 100644 --- a/main/displays/menus/genericwifisettingsmenu.h +++ b/main/displays/menus/genericwifisettingsmenu.h @@ -10,7 +10,7 @@ #include "checkboxicon.h" #include "icons/back.h" #include "wifitexthelpers.h" -#include "wifiaccessors.h" +#include "accessors/wifiaccessors.h" #include "texts.h" // forward declares diff --git a/main/displays/menus/invertmenu.h b/main/displays/menus/invertmenu.h index c498c23..70e7fd4 100644 --- a/main/displays/menus/invertmenu.h +++ b/main/displays/menus/invertmenu.h @@ -9,7 +9,7 @@ #include "checkboxicon.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/larsmmodesettingsmenu.h b/main/displays/menus/larsmmodesettingsmenu.h index 892dcfb..aab6728 100644 --- a/main/displays/menus/larsmmodesettingsmenu.h +++ b/main/displays/menus/larsmmodesettingsmenu.h @@ -8,7 +8,7 @@ #include "actions/switchscreenaction.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { @@ -19,7 +19,7 @@ class ModesSettingsMenu; namespace { using LarsmModeModelModeChangeDisplay = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, LarsmModeModelModeAccessor, BackActionInterface>, SwitchScreenAction @@ -47,7 +47,7 @@ class LarsmModeSettingsMenu : public: LarsmModeSettingsMenu() { - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); diff --git a/main/displays/menus/limitssettingsmenu.h b/main/displays/menus/limitssettingsmenu.h index 7c11107..1f176c9 100644 --- a/main/displays/menus/limitssettingsmenu.h +++ b/main/displays/menus/limitssettingsmenu.h @@ -8,7 +8,7 @@ #include "actions/switchscreenaction.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { @@ -17,12 +17,6 @@ class SettingsMenu; } // namespace namespace { -template -struct TextWithValueHelper : public virtual TextInterface -{ - std::string text() const override { return Tprefix + (' ' + std::to_string(Taccessor{}.getValue())); } -}; - using IMotMaxChangeScreen = makeComponent< ChangeValueDisplay, StaticText, diff --git a/main/displays/menus/settingsmenu.h b/main/displays/menus/settingsmenu.h index e96ba89..7a3157c 100644 --- a/main/displays/menus/settingsmenu.h +++ b/main/displays/menus/settingsmenu.h @@ -16,7 +16,7 @@ #include "icons/back.h" #include "texts.h" #include "globals.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/stationwifisettingsmenu.h b/main/displays/menus/stationwifisettingsmenu.h index 327b4a4..6bc87e9 100644 --- a/main/displays/menus/stationwifisettingsmenu.h +++ b/main/displays/menus/stationwifisettingsmenu.h @@ -13,7 +13,7 @@ #include "checkboxicon.h" #include "icons/back.h" #include "wifitexthelpers.h" -#include "wifiaccessors.h" +#include "accessors/wifiaccessors.h" #include "texts.h" // forward declares diff --git a/main/displays/menus/tempomatmodesettingsmenu.h b/main/displays/menus/tempomatmodesettingsmenu.h index af31cae..eda226d 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.h +++ b/main/displays/menus/tempomatmodesettingsmenu.h @@ -8,7 +8,7 @@ #include "actions/switchscreenaction.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { @@ -19,7 +19,7 @@ class ModesSettingsMenu; namespace { using TempomatModeModelModeChangeScreen = makeComponent< ChangeValueDisplay, - StaticText, + StaticText, TempomatModeModelModeAccessor, BackActionInterface>, SwitchScreenAction @@ -33,8 +33,8 @@ class TempomatModeSettingsMenu : public: TempomatModeSettingsMenu() { - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&icons::back>>>(); } }; } // namespace diff --git a/main/displays/menus/timersmenu.h b/main/displays/menus/timersmenu.h index 13c360d..204c1f2 100644 --- a/main/displays/menus/timersmenu.h +++ b/main/displays/menus/timersmenu.h @@ -7,7 +7,7 @@ #include "actions/switchscreenaction.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/displays/menus/wifisettingsmenu.h b/main/displays/menus/wifisettingsmenu.h index 5ea15c3..a9f0a1b 100644 --- a/main/displays/menus/wifisettingsmenu.h +++ b/main/displays/menus/wifisettingsmenu.h @@ -10,7 +10,7 @@ #include "icons/scan.h" #include "icons/back.h" #include "texts.h" -#include "settingsaccessors.h" +#include "accessors/settingsaccessors.h" // forward declares namespace { diff --git a/main/modes/defaultmode.h b/main/modes/defaultmode.h index 1d7d2a7..b18e1d1 100644 --- a/main/modes/defaultmode.h +++ b/main/modes/defaultmode.h @@ -13,7 +13,10 @@ namespace { class DefaultMode : public ModeInterface { + using Base = ModeInterface; + public: + void start() override; void update() override; const char *displayName() const override { return "Default"; } @@ -21,6 +24,9 @@ public: bool waitForGasLoslass{false}; bool waitForBremsLoslass{false}; + bool cruiseCtrlEna{false}; + int16_t nCruiseMotTgt{0}; + private: espchrono::millis_clock::time_point lastTime{espchrono::millis_clock::now()}; float lastPwm{0}; @@ -30,6 +36,13 @@ namespace modes { DefaultMode defaultMode; } +void DefaultMode::start() +{ + Base::start(); + cruiseCtrlEna = false; + nCruiseMotTgt = 0; +} + void DefaultMode::update() { if (!gas || !brems) @@ -41,6 +54,8 @@ void DefaultMode::update() motor.ctrlTyp = bobbycar::protocol::ControlType::FieldOrientedControl; motor.ctrlMod = bobbycar::protocol::ControlMode::OpenMode; motor.pwm = 0; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } else @@ -100,12 +115,16 @@ void DefaultMode::update() motor.ctrlTyp = pair.first; motor.ctrlMod = pair.second; motor.pwm = pwm / 100. * settings.defaultMode.frontPercentage; + motor.cruiseCtrlEna = cruiseCtrlEna; + motor.nCruiseMotTgt = nCruiseMotTgt; } for (bobbycar::protocol::serial::MotorState &motor : motorsInController(controllers.back)) { motor.ctrlTyp = pair.first; motor.ctrlMod = pair.second; motor.pwm = pwm / 100. * settings.defaultMode.backPercentage; + motor.cruiseCtrlEna = cruiseCtrlEna; + motor.nCruiseMotTgt = nCruiseMotTgt; } } diff --git a/main/modes/gametrakmode.h b/main/modes/gametrakmode.h index 28fa512..99f1e0f 100644 --- a/main/modes/gametrakmode.h +++ b/main/modes/gametrakmode.h @@ -20,6 +20,8 @@ namespace { #ifdef FEATURE_GAMETRAK class GametrakMode : public ModeInterface { + using Base = ModeInterface; + public: void start() override; void update() override; @@ -36,6 +38,7 @@ GametrakMode gametrakMode; void GametrakMode::start() { + Base::start(); m_flag = false; } @@ -50,6 +53,8 @@ void GametrakMode::update() motor.ctrlTyp = bobbycar::protocol::ControlType::FieldOrientedControl; motor.ctrlMod = bobbycar::protocol::ControlMode::OpenMode; motor.pwm = 0; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } else @@ -84,6 +89,8 @@ void GametrakMode::update() motor.ctrlTyp = bobbycar::protocol::ControlType::FieldOrientedControl; motor.ctrlMod = bobbycar::protocol::ControlMode::Speed; motor.pwm = pwm; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } diff --git a/main/modes/ignoreinputmode.h b/main/modes/ignoreinputmode.h index 638ad94..a4e2e11 100644 --- a/main/modes/ignoreinputmode.h +++ b/main/modes/ignoreinputmode.h @@ -32,6 +32,8 @@ void IgnoreInputMode::update() motor.ctrlTyp = m_ctrlTyp; motor.ctrlMod = m_ctrlMod; motor.pwm = m_pwm; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } fixCommonParams(); diff --git a/main/modes/larsmmode.h b/main/modes/larsmmode.h index 57e2e08..a866a41 100644 --- a/main/modes/larsmmode.h +++ b/main/modes/larsmmode.h @@ -9,6 +9,8 @@ namespace { class LarsmMode : public ModeInterface { + using Base = ModeInterface; + public: void start() override; void update() override; @@ -28,6 +30,8 @@ LarsmMode larsmMode; void LarsmMode::start() { + Base::start(); + adc1_filtered = 0.f; adc2_filtered = 0.f; speed = 0; @@ -45,6 +49,8 @@ void LarsmMode::update() motor.ctrlTyp = bobbycar::protocol::ControlType::FieldOrientedControl; motor.ctrlMod = bobbycar::protocol::ControlMode::OpenMode; motor.pwm = 0; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } else @@ -115,6 +121,8 @@ void LarsmMode::update() motor.ctrlTyp = pair.first; motor.ctrlMod = pair.second; motor.pwm = speed + weak; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } diff --git a/main/modes/tempomatmode.h b/main/modes/tempomatmode.h index 11df47e..615a85c 100644 --- a/main/modes/tempomatmode.h +++ b/main/modes/tempomatmode.h @@ -12,6 +12,8 @@ namespace { class TempomatMode : public ModeInterface { + using Base = ModeInterface; + public: void start() override; void update() override; @@ -27,6 +29,7 @@ TempomatMode tempomatMode; void TempomatMode::start() { + Base::start(); pwm = 0; } @@ -41,6 +44,8 @@ void TempomatMode::update() motor.ctrlTyp = bobbycar::protocol::ControlType::FieldOrientedControl; motor.ctrlMod = bobbycar::protocol::ControlMode::OpenMode; motor.pwm = 0; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } else @@ -62,6 +67,8 @@ void TempomatMode::update() motor.ctrlTyp = pair.first; motor.ctrlMod = pair.second; motor.pwm = pwm; + motor.cruiseCtrlEna = false; + motor.nCruiseMotTgt = 0; } } diff --git a/main/textinterface.h b/main/textinterface.h index fce1b01..dbe9f80 100644 --- a/main/textinterface.h +++ b/main/textinterface.h @@ -1,7 +1,12 @@ #pragma once +// system includes #include +// 3rdparty lib includes +#include + +// local includes #include "utils.h" namespace { @@ -80,4 +85,10 @@ public: return text; } }; + +template +struct TextWithValueHelper : public virtual TextInterface +{ + std::string text() const override { return fmt::format("{} {}", Tprefix, Taccessor{}.getValue()); } +}; } diff --git a/main/texts.h b/main/texts.h index e81a5f0..ece265e 100644 --- a/main/texts.h +++ b/main/texts.h @@ -146,18 +146,21 @@ constexpr char TEXT_DYNAMICMENU[] = "Dynamic menu"; //DefaultModeSettingsMenu //constexpr char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings"; -constexpr char TEXT_SETMODELMODE[] = "Set model mode"; +constexpr char TEXT_MODELMODE[] = "Model mode"; +constexpr char TEXT_CRUISECTRLENA[] = "Enable tempomat"; +constexpr char TEXT_NCRUISEMOTTGT[] = "Tempomat"; +constexpr char TEXT_APPLYCURRSPEED[] = "Apply"; constexpr char TEXT_SQUAREGAS[] = "Square gas"; constexpr char TEXT_SQUAREBREMS[] = "Square brems"; constexpr char TEXT_ENABLESMOOTHING[] = "Enable smoothing"; -constexpr char TEXT_SETSMOOTHING[] = "Set smoothing"; -constexpr char TEXT_SETFRONTPERCENTAGE[] = "Set front percentage"; -constexpr char TEXT_SETBACKPERCENTAGE[] = "Set back percentage"; -constexpr char TEXT_SETADDSCHWELLE[] = "Set add Schwelle"; -constexpr char TEXT_SETGAS1WERT[] = "Set Gas 1 Wert"; -constexpr char TEXT_SETGAS2WERT[] = "Set Gas 2 Wert"; -constexpr char TEXT_SETBREMS1WERT[] = "Set Brems 1 Wert"; -constexpr char TEXT_SETBREMS2WERT[] = "Set Brems 2 Wert"; +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_BACK[] = "Back"; //DynamicDebugMenu @@ -211,7 +214,7 @@ constexpr char TEXT_INVERTBACKRIGHT[] = "Invert back right"; //LarsmModeSettingsMenu constexpr char TEXT_LARSMMODESETTINGS[] = "Larsm mode settings"; -//constexpr char TEXT_SETMODELMODE[] = "Set model mode"; +//constexpr char TEXT_MODELMODE[] = "Model mode"; constexpr char TEXT_SETMODE[] = "Set mode"; constexpr char TEXT_SETITERATIONS[] = "Set iterations"; //constexpr char TEXT_BACK[] = "Back"; @@ -232,7 +235,7 @@ constexpr char TEXT_MOSFET2[] = "Mosfet2"; //TempomatModeSettingsMenu //constexpr char TEXT_TEMPOMATMODESETTINGS[] = "Tempomat mode settings"; -//constexpr char TEXT_SETMODELMODE[] = "Set model mode"; +//constexpr char TEXT_MODELMODE[] = "Model mode"; //constexpr char TEXT_BACK[] = "Back"; //WiFiSettingsMenu