diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index e7296af..f924ef8 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -197,3 +197,4 @@ struct HandbremsEnabledAccessor : public RefAccessorSaveSettings { bool &g struct HandbremsModeAccessor : public RefAccessorSaveSettings { HandbremseMode &getRef() const override { return settings.handbremse.mode; } }; struct HandbremsTimeoutAccessor : public RefAccessorSaveSettings { uint16_t &getRef() const override { return settings.handbremse.triggerTimeout; } }; struct HandbremsAutomaticAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.handbremse.automatic; } }; +struct HandbremsVisualizeAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.handbremse.visualize; } }; diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/displays/menus/handbremssettingsmenu.cpp index 214735c..227d176 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/displays/menus/handbremssettingsmenu.cpp @@ -45,6 +45,7 @@ HandbremsSettingsMenu::HandbremsSettingsMenu() { constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsEnabledAccessor>>(); constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsAutomaticAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsVisualizeAccessor>>(); constructMenuItem>>(); constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); diff --git a/main/displays/statusdisplay.cpp b/main/displays/statusdisplay.cpp index 3fc02f9..cb0b697 100644 --- a/main/displays/statusdisplay.cpp +++ b/main/displays/statusdisplay.cpp @@ -70,10 +70,10 @@ void StatusDisplay::initScreen() void StatusDisplay::redraw() { Base::redraw(); - if (modes::defaultMode.overrideHandbremse || handbremse::handbremseAngezogen) - tft.fillRect(0, 0, tft.width(), 2, TFT_RED); + if (settings.handbremse.enable && settings.handbremse.visualize && (modes::defaultMode.overrideHandbremse || handbremse::handbremseAngezogen)) + tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_RED); else - tft.fillRect(0, 0, tft.width(), 2, TFT_BLACK); + tft.fillRect(0, tft.height()-6, tft.width(), 6, TFT_BLACK); tft.setTextFont(2); m_labelRawGas.redraw(raw_gas ? std::to_string(*raw_gas) : "?"); diff --git a/main/presets.h b/main/presets.h index ff3651b..578bc5f 100644 --- a/main/presets.h +++ b/main/presets.h @@ -239,7 +239,8 @@ constexpr Settings::Handbremse defaultHandbremse { .mode = HandbremseMode::MOSFETS_OFF, .triggerTimeout = 10, .automatic = false, - .enable = false + .enable = false, + .visualize = true, }; #ifdef FEATURE_LEDSTRIP diff --git a/main/settings.h b/main/settings.h index 3ad1568..6ba38b4 100644 --- a/main/settings.h +++ b/main/settings.h @@ -220,6 +220,7 @@ struct Settings uint16_t triggerTimeout; bool automatic; bool enable; + bool visualize; } handbremse; template @@ -356,6 +357,7 @@ void Settings::executeForEveryCommonSetting(T &&callable) callable("handBremsA", handbremse.automatic); callable("handBremsM", handbremse.mode); callable("handBremsT", handbremse.triggerTimeout); + callable("handBremsV", handbremse.visualize); } template diff --git a/main/texts.cpp b/main/texts.cpp index dea0f47..48b14f5 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -223,8 +223,9 @@ 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 Handbrems"; -char TEXT_HANDBREMSE_AUTOMATIC[] = "Automatic Handbrems"; +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_BACK[] = "Back"; diff --git a/main/texts.h b/main/texts.h index 75750ac..d260a23 100644 --- a/main/texts.h +++ b/main/texts.h @@ -224,6 +224,7 @@ 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[];