From dd3608a09debff312a907f4e3451478a9c5ec8e9 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Fri, 9 Sep 2022 00:14:19 +0200 Subject: [PATCH] Add setting to enable/disable remote control in default mode --- main/accessors/settingsaccessors.h | 1 + main/displays/menus/defaultmodesettingsmenu.cpp | 2 ++ main/modes/defaultmode.cpp | 2 +- main/presets.h | 1 + main/profilesettings.h | 2 ++ 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/main/accessors/settingsaccessors.h b/main/accessors/settingsaccessors.h index 8a62d17..5bf059d 100644 --- a/main/accessors/settingsaccessors.h +++ b/main/accessors/settingsaccessors.h @@ -132,6 +132,7 @@ struct UdpUseStdStringAccessor : public NewSettingsAccessor { ConfigWrappe // DefaultMode struct DefaultModeModelModeAccessor : public RefAccessorSaveSettings { UnifiedModelMode &getRef() const override { return profileSettings.defaultMode.modelMode; } }; +struct DefaultModeAllowRemoteControlAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return profileSettings.defaultMode.allowRemoteControl; } }; struct DefaultModeSquareGasAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return profileSettings.defaultMode.squareGas; } }; struct DefaultModeSquareBremsAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return profileSettings.defaultMode.squareBrems; } }; diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index fb5d540..23e0483 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -20,6 +20,7 @@ namespace { constexpr char TEXT_DEFAULTMODESETTIGNS[] = "Default mode settings"; constexpr char TEXT_MODELMODE[] = "Model mode"; +constexpr char TEXT_ALLOWREMOTECONTROL[] = "Allow remote control"; constexpr char TEXT_SQUAREGAS[] = "Square gas"; constexpr char TEXT_SQUAREBREMS[] = "Square brems"; constexpr char TEXT_ENABLESMOOTHINGUP[] = "Enable up smoothing"; @@ -120,6 +121,7 @@ using namespace espgui; DefaultModeSettingsMenu::DefaultModeSettingsMenu() { constructMenuItem, PushScreenAction>>(); + constructMenuItem, BobbyCheckbox, DefaultModeAllowRemoteControlAccessor>>(); constructMenuItem, BobbyCheckbox, DefaultModeSquareGasAccessor>>(); constructMenuItem, BobbyCheckbox, DefaultModeSquareBremsAccessor>>(); constructMenuItem, BobbyCheckbox, DefaultModeEnableSmoothingUpAccessor>>(); diff --git a/main/modes/defaultmode.cpp b/main/modes/defaultmode.cpp index 93c28cf..bfd1593 100644 --- a/main/modes/defaultmode.cpp +++ b/main/modes/defaultmode.cpp @@ -261,7 +261,7 @@ void DefaultMode::update() } } - if (m_remoteCommand && espchrono::ago(m_timestamp) < 500ms) + if (profileSettings.defaultMode.allowRemoteControl && m_remoteCommand && espchrono::ago(m_timestamp) < 500ms) { controllers.front.command.left.pwm += m_remoteCommand->frontLeft; controllers.front.command.right.pwm += m_remoteCommand->frontRight; diff --git a/main/presets.h b/main/presets.h index 16534e2..f826825 100644 --- a/main/presets.h +++ b/main/presets.h @@ -58,6 +58,7 @@ constexpr ProfileSettings::ControllerHardware spinnerControllerHardware { constexpr ProfileSettings::DefaultMode defaultDefaultMode { .modelMode = UnifiedModelMode::FocTorque, // profileSetting + .allowRemoteControl = true, .squareGas = true, .squareBrems = true, .enableSmoothingUp = true, // profileSetting diff --git a/main/profilesettings.h b/main/profilesettings.h index d21409e..c46d7d3 100644 --- a/main/profilesettings.h +++ b/main/profilesettings.h @@ -24,6 +24,7 @@ struct ProfileSettings struct DefaultMode { UnifiedModelMode modelMode; + bool allowRemoteControl; bool squareGas; bool squareBrems; bool enableSmoothingUp; @@ -110,6 +111,7 @@ void ProfileSettings::executeForEveryProfileSetting(T &&callable) callable("default.brems1_", defaultMode.brems1_wert); callable("default.brems2_", defaultMode.brems2_wert); callable("default.squareG", defaultMode.squareGas); + callable("default.alwRemo", defaultMode.allowRemoteControl); callable("default.squareB", defaultMode.squareBrems); callable("tempoma.modelMo", tempomatMode.modelMode);