Added hybrid driving mode options
This commit is contained in:
@ -126,6 +126,7 @@ struct CloudSendRateAccessor : public RefAccessorSaveSettings<int16_t> { int16_t
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
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 DefaultModeHybridModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.hybrid.hybridMode; } };
|
||||||
struct DefaultModeSquareGasAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareGas; } };
|
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 DefaultModeSquareBremsAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.defaultMode.squareBrems; } };
|
||||||
|
|
||||||
@ -144,6 +145,10 @@ struct DefaultModeGas2WertAccessor : public RefAccessorSaveSettings<int16_t> { i
|
|||||||
struct DefaultModeBrems1WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems1_wert; } };
|
struct DefaultModeBrems1WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems1_wert; } };
|
||||||
struct DefaultModeBrems2WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems2_wert; } };
|
struct DefaultModeBrems2WertAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.defaultMode.brems2_wert; } };
|
||||||
|
|
||||||
|
struct DefaultModeEnableHybridAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.hybrid.enable; } };
|
||||||
|
struct DefaultModeHybridActivationLimitAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hybrid.activationLimit; } };
|
||||||
|
struct DefaultModeHybridDeactivationLimitAccessor : public RefAccessorSaveSettings<int16_t> { int16_t &getRef() const override { return settings.hybrid.deactivationLimit; } };
|
||||||
|
|
||||||
struct TempomatModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.tempomatMode.modelMode; } };
|
struct TempomatModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.tempomatMode.modelMode; } };
|
||||||
|
|
||||||
struct LarsmModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.larsmMode.modelMode; } };
|
struct LarsmModeModelModeAccessor : public RefAccessorSaveSettings<UnifiedModelMode> { UnifiedModelMode &getRef() const override { return settings.larsmMode.modelMode; } };
|
||||||
|
@ -29,6 +29,13 @@ using DefaultModeModelModeChangeDisplay = makeComponent<
|
|||||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||||
>;
|
>;
|
||||||
|
using DefaultModeHybridModelModeChangeDisplay = makeComponent<
|
||||||
|
ChangeValueDisplay<UnifiedModelMode>,
|
||||||
|
StaticText<TEXT_HYBRIDMODE>,
|
||||||
|
DefaultModeHybridModelModeAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
|
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||||
|
>;
|
||||||
using DefaultModeSmoothingChangeDisplay = makeComponent<
|
using DefaultModeSmoothingChangeDisplay = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SMOOTHINGVAL>,
|
StaticText<TEXT_SMOOTHINGVAL>,
|
||||||
@ -92,6 +99,20 @@ using DefaultModeBrems2WertChangeDisplay = makeComponent<
|
|||||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||||
>;
|
>;
|
||||||
|
using DefaultModeHybridActivationLimitChangeDisplay = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_HYBRIDACTIVATIONLIMIT>,
|
||||||
|
DefaultModeHybridActivationLimitAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
|
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||||
|
>;
|
||||||
|
using DefaultModeHybridDeactivationLimitChangeDisplay = makeComponent<
|
||||||
|
ChangeValueDisplay<int16_t>,
|
||||||
|
StaticText<TEXT_HYBRIDDEACTIVATIONLIMIT>,
|
||||||
|
DefaultModeHybridDeactivationLimitAccessor,
|
||||||
|
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||||
|
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||||
|
>;
|
||||||
|
|
||||||
class DefaultModeSettingsMenu :
|
class DefaultModeSettingsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
@ -102,12 +123,14 @@ public:
|
|||||||
DefaultModeSettingsMenu()
|
DefaultModeSettingsMenu()
|
||||||
{
|
{
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDMODE>, SwitchScreenAction<DefaultModeHybridModelModeChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDENABLE>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FWSMOOTHING_LIMIT, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor>, SwitchScreenAction<DefaultModeFwSmoothingLowerLimitChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FWSMOOTHING_LIMIT, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor>, SwitchScreenAction<DefaultModeFwSmoothingLowerLimitChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SMOOTHINGVAL, DefaultModeSmoothingAccessor>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SMOOTHINGVAL, DefaultModeSmoothingAccessor>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FRONTPERCENTAGE, DefaultModeFrontPercentageAccessor>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FRONTPERCENTAGE, DefaultModeFrontPercentageAccessor>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>>();
|
||||||
@ -117,6 +140,8 @@ public:
|
|||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBBRAKEVAL, DefaultModeBrems2WertAccessor>, SwitchScreenAction<DefaultModeBrems2WertChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBBRAKEVAL, DefaultModeBrems2WertAccessor>, SwitchScreenAction<DefaultModeBrems2WertChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDGASVAL, DefaultModeGas1WertAccessor>, SwitchScreenAction<DefaultModeGas1WertChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDGASVAL, DefaultModeGas1WertAccessor>, SwitchScreenAction<DefaultModeGas1WertChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDBRAKEVAL, DefaultModeBrems1WertAccessor>, SwitchScreenAction<DefaultModeBrems1WertChangeDisplay>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDBRAKEVAL, DefaultModeBrems1WertAccessor>, SwitchScreenAction<DefaultModeBrems1WertChangeDisplay>>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDACTIVATIONLIMIT, DefaultModeHybridActivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridActivationLimitChangeDisplay>>>();
|
||||||
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDDEACTIVATIONLIMIT, DefaultModeHybridDeactivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridDeactivationLimitChangeDisplay>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -265,6 +265,13 @@ constexpr Settings::Battery defaultBattery {
|
|||||||
.applyCalibration = true
|
.applyCalibration = true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
constexpr Settings::Hybrid defaultHybrid {
|
||||||
|
.hybridMode = UnifiedModelMode::FocTorque,
|
||||||
|
.enable = false,
|
||||||
|
.activationLimit = 1000,
|
||||||
|
.deactivationLimit = 950,
|
||||||
|
};
|
||||||
|
|
||||||
constexpr Settings defaultSettings {
|
constexpr Settings defaultSettings {
|
||||||
#ifdef FEATURE_BMS
|
#ifdef FEATURE_BMS
|
||||||
.autoConnectBms = false,
|
.autoConnectBms = false,
|
||||||
@ -291,6 +298,7 @@ constexpr Settings defaultSettings {
|
|||||||
.ledstrip = defaultLedstrip,
|
.ledstrip = defaultLedstrip,
|
||||||
#endif
|
#endif
|
||||||
.battery = defaultBattery,
|
.battery = defaultBattery,
|
||||||
|
.hybrid = defaultHybrid,
|
||||||
.lockscreen = defaultLockscreen
|
.lockscreen = defaultLockscreen
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -184,6 +184,13 @@ struct Settings
|
|||||||
bool applyCalibration;
|
bool applyCalibration;
|
||||||
} battery;
|
} battery;
|
||||||
|
|
||||||
|
struct Hybrid {
|
||||||
|
UnifiedModelMode hybridMode;
|
||||||
|
bool enable;
|
||||||
|
int16_t activationLimit;
|
||||||
|
int16_t deactivationLimit;
|
||||||
|
} hybrid;
|
||||||
|
|
||||||
struct LockscreenSettings {
|
struct LockscreenSettings {
|
||||||
bool allowPresetSwitch;
|
bool allowPresetSwitch;
|
||||||
std::array<int8_t, 4> pin;
|
std::array<int8_t, 4> pin;
|
||||||
@ -301,6 +308,11 @@ void Settings::executeForEveryCommonSetting(T &&callable)
|
|||||||
callable("batB50VCal", battery.back50VoltCalibration);
|
callable("batB50VCal", battery.back50VoltCalibration);
|
||||||
callable("applyBatCal", battery.applyCalibration);
|
callable("applyBatCal", battery.applyCalibration);
|
||||||
|
|
||||||
|
callable("hybridMode", hybrid.hybridMode);
|
||||||
|
callable("hybridEn", hybrid.enable);
|
||||||
|
callable("hybridAcL", hybrid.activationLimit);
|
||||||
|
callable("hybridDeacL", hybrid.deactivationLimit);
|
||||||
|
|
||||||
callable("lockAlwPresetSw", lockscreen.allowPresetSwitch);
|
callable("lockAlwPresetSw", lockscreen.allowPresetSwitch);
|
||||||
callable("lockscreenPin", lockscreen.pin);
|
callable("lockscreenPin", lockscreen.pin);
|
||||||
}
|
}
|
||||||
|
@ -195,6 +195,7 @@ 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_MODELMODE[] = "Model mode";
|
constexpr char TEXT_MODELMODE[] = "Model mode";
|
||||||
|
constexpr char TEXT_HYBRIDMODE[] = "Hybrid mode";
|
||||||
constexpr char TEXT_SQUAREGAS[] = "Square gas";
|
constexpr char TEXT_SQUAREGAS[] = "Square gas";
|
||||||
constexpr char TEXT_SQUAREBREMS[] = "Square brems";
|
constexpr char TEXT_SQUAREBREMS[] = "Square brems";
|
||||||
constexpr char TEXT_ENABLESMOOTHINGUP[] = "Enable up smoothing";
|
constexpr char TEXT_ENABLESMOOTHINGUP[] = "Enable up smoothing";
|
||||||
@ -210,6 +211,9 @@ constexpr char TEXT_SUBGASVAL[] = "Add Gas";
|
|||||||
constexpr char TEXT_SUBBRAKEVAL[] = "Add Brake";
|
constexpr char TEXT_SUBBRAKEVAL[] = "Add Brake";
|
||||||
constexpr char TEXT_ADDGASVAL[] = "Sub Gas";
|
constexpr char TEXT_ADDGASVAL[] = "Sub Gas";
|
||||||
constexpr char TEXT_ADDBRAKEVAL[] = "Sub Brake";
|
constexpr char TEXT_ADDBRAKEVAL[] = "Sub Brake";
|
||||||
|
constexpr char TEXT_HYBRIDENABLE[] = "Enable Hybrid mode";
|
||||||
|
constexpr char TEXT_HYBRIDACTIVATIONLIMIT[] = "Hybrid activation-limit";
|
||||||
|
constexpr char TEXT_HYBRIDDEACTIVATIONLIMIT[] = "Hybrid deactivation-limit";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
//DynamicDebugMenu
|
//DynamicDebugMenu
|
||||||
|
Reference in New Issue
Block a user