Add setting to enable/disable remote control in default mode

This commit is contained in:
2022-09-09 00:14:19 +02:00
parent 6a2720c437
commit dd3608a09d
5 changed files with 7 additions and 1 deletions

View File

@@ -132,6 +132,7 @@ struct UdpUseStdStringAccessor : public NewSettingsAccessor<bool> { ConfigWrappe
// DefaultMode
struct DefaultModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return profileSettings.defaultMode.modelMode; } };
struct DefaultModeAllowRemoteControlAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return profileSettings.defaultMode.allowRemoteControl; } };
struct DefaultModeSquareGasAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return profileSettings.defaultMode.squareGas; } };
struct DefaultModeSquareBremsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return profileSettings.defaultMode.squareBrems; } };

View File

@@ -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<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, PushScreenAction<DefaultModeModelModeChangeDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ALLOWREMOTECONTROL>, BobbyCheckbox, DefaultModeAllowRemoteControlAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, BobbyCheckbox, DefaultModeSquareGasAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, BobbyCheckbox, DefaultModeSquareBremsAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGUP>, BobbyCheckbox, DefaultModeEnableSmoothingUpAccessor>>();

View File

@@ -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;

View File

@@ -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

View File

@@ -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);