Added settings toggles to enable / disable gas brems squaring
This commit is contained in:
@@ -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>>,
|
||||||
|
@@ -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;
|
||||||
|
@@ -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,
|
||||||
|
@@ -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;
|
||||||
|
@@ -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; } };
|
||||||
|
@@ -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";
|
||||||
|
Reference in New Issue
Block a user