Added settings toggles to enable / disable gas brems squaring

This commit is contained in:
2020-06-28 04:42:01 +02:00
parent d21d36585a
commit 83229cd5c1
6 changed files with 17 additions and 5 deletions

View File

@@ -88,6 +88,8 @@ class DefaultModeSettingsMenu :
public BackActionInterface<SwitchScreenAction<ModesSettingsMenu>>, public BackActionInterface<SwitchScreenAction<ModesSettingsMenu>>,
public StaticMenuDefinition< public StaticMenuDefinition<
makeComponent<MenuItem, StaticText<TEXT_SETMODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>, makeComponent<MenuItem, StaticText<TEXT_SETMODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>,
makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>,
makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHING>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingAccessor>, makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHING>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingAccessor>,
makeComponent<MenuItem, StaticText<TEXT_SETSMOOTHING>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>, makeComponent<MenuItem, StaticText<TEXT_SETSMOOTHING>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_SETFRONTPERCENTAGE>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>, makeComponent<MenuItem, StaticText<TEXT_SETFRONTPERCENTAGE>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>,

View File

@@ -47,15 +47,15 @@ void DefaultMode::update()
brems = 0; brems = 0;
} }
const auto gas_squared = (gas * gas) / 1000; const auto gas_processed = settings.defaultMode.squareGas ? (gas * gas) / 1000.f : gas;
const auto brems_squared = (brems * brems) / 1000; const auto brems_processed = settings.defaultMode.squareBrems ? (brems * brems) / 1000 : brems;
const auto now = millis(); const auto now = millis();
float pwm; float pwm;
if (gas_squared >= settings.defaultMode.add_schwelle) if (gas_processed >= settings.defaultMode.add_schwelle)
{ {
pwm = (gas_squared/1000.*settings.defaultMode.gas1_wert) + (brems_squared/1000.*settings.defaultMode.brems1_wert); pwm = (gas_processed/1000.*settings.defaultMode.gas1_wert) + (brems_processed/1000.*settings.defaultMode.brems1_wert);
if (settings.defaultMode.enableSmoothing && (pwm > 1000. || lastPwm > 1000.)) if (settings.defaultMode.enableSmoothing && (pwm > 1000. || lastPwm > 1000.))
{ {
@@ -72,7 +72,7 @@ void DefaultMode::update()
} }
} }
else else
pwm = (gas_squared/1000.*settings.defaultMode.gas2_wert) - (brems_squared/1000.*settings.defaultMode.brems2_wert); pwm = (gas_processed/1000.*settings.defaultMode.gas2_wert) - (brems_processed/1000.*settings.defaultMode.brems2_wert);
lastPwm = pwm; lastPwm = pwm;
lastTime = now; lastTime = now;

View File

@@ -107,6 +107,8 @@ constexpr Settings::BoardcomputerHardware defaultBoardcomputerHardware {
constexpr Settings::DefaultMode defaultDefaultMode { constexpr Settings::DefaultMode defaultDefaultMode {
.modelMode = UnifiedModelMode::FocTorque, .modelMode = UnifiedModelMode::FocTorque,
.squareGas = true,
.squareBrems = true,
.enableSmoothing = true, .enableSmoothing = true,
.smoothing = 20, .smoothing = 20,
.frontPercentage = 100, .frontPercentage = 100,
@@ -120,6 +122,8 @@ constexpr Settings::DefaultMode defaultDefaultMode {
constexpr Settings::DefaultMode sinusoidalDefaultMode { constexpr Settings::DefaultMode sinusoidalDefaultMode {
.modelMode = UnifiedModelMode::Sinusoidal, .modelMode = UnifiedModelMode::Sinusoidal,
.squareGas = true,
.squareBrems = true,
.enableSmoothing = true, .enableSmoothing = true,
.smoothing = 20, .smoothing = 20,
.frontPercentage = 100, .frontPercentage = 100,

View File

@@ -72,6 +72,8 @@ struct Settings
struct DefaultMode { struct DefaultMode {
UnifiedModelMode modelMode; UnifiedModelMode modelMode;
bool squareGas;
bool squareBrems;
bool enableSmoothing; bool enableSmoothing;
int16_t smoothing; int16_t smoothing;
int16_t frontPercentage; int16_t frontPercentage;

View File

@@ -83,6 +83,8 @@ struct DisplayUpdateRateAccessor : public RefAccessorSaveSettings<int16_t> { int
struct DisplayRedrawRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayRedrawRate; } }; struct DisplayRedrawRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.boardcomputerHardware.timersSettings.displayRedrawRate; } };
struct DefaultModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.defaultMode.modelMode; } }; struct DefaultModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.defaultMode.modelMode; } };
struct DefaultModeSquareGasAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareGas; } };
struct DefaultModeSquareBremsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareBrems; } };
struct DefaultModeEnableSmoothingAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableSmoothing; } }; struct DefaultModeEnableSmoothingAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.enableSmoothing; } };
struct DefaultModeSmoothingAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.smoothing; } }; struct DefaultModeSmoothingAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.smoothing; } };
struct DefaultModeFrontPercentageAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.frontPercentage; } }; struct DefaultModeFrontPercentageAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.frontPercentage; } };

View File

@@ -141,6 +141,8 @@ constexpr char TEXT_DYNAMICMENU[] = "Dynamic menu";
//DefaultModeSettingsMenu //DefaultModeSettingsMenu
//constexpr char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings"; //constexpr char TEXT_DEFAULTMODESETTINGS[] = "Default mode settings";
constexpr char TEXT_SETMODELMODE[] = "Set model mode"; constexpr char TEXT_SETMODELMODE[] = "Set model mode";
constexpr char TEXT_SQUAREGAS[] = "Square gas";
constexpr char TEXT_SQUAREBREMS[] = "Square brems";
constexpr char TEXT_ENABLESMOOTHING[] = "Enable smoothing"; constexpr char TEXT_ENABLESMOOTHING[] = "Enable smoothing";
constexpr char TEXT_SETSMOOTHING[] = "Set smoothing"; constexpr char TEXT_SETSMOOTHING[] = "Set smoothing";
constexpr char TEXT_SETFRONTPERCENTAGE[] = "Set front percentage"; constexpr char TEXT_SETFRONTPERCENTAGE[] = "Set front percentage";