Limits menu now shows live values in menu items
This commit is contained in:
@ -17,44 +17,50 @@ class SettingsMenu;
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
template<const char *Tprefix, typename Taccessor>
|
||||||
|
struct TextWithValueHelper : public virtual TextInterface
|
||||||
|
{
|
||||||
|
String text() const override { return Tprefix + (' ' + String{Taccessor{}.getValue()}); }
|
||||||
|
};
|
||||||
|
|
||||||
using IMotMaxChangeScreen = makeComponent<
|
using IMotMaxChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETIMOTMAX>,
|
StaticText<TEXT_IMOTMAX>,
|
||||||
IMotMaxAccessor,
|
IMotMaxAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
>;
|
>;
|
||||||
using IDcMaxChangeScreen = makeComponent<
|
using IDcMaxChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETIDCMAX>,
|
StaticText<TEXT_IDCMAX>,
|
||||||
IDcMaxAccessor,
|
IDcMaxAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
>;
|
>;
|
||||||
using NMotMaxKmhChangeScreen = makeComponent<
|
using NMotMaxKmhChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETNMOTMAXKMH>,
|
StaticText<TEXT_NMOTMAXKMH>,
|
||||||
NMotMaxKmhAccessor,
|
NMotMaxKmhAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
>;
|
>;
|
||||||
using NMotMaxRpmChangeScreen = makeComponent<
|
using NMotMaxRpmChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETNMOTMAX>,
|
StaticText<TEXT_NMOTMAX>,
|
||||||
NMotMaxRpmAccessor,
|
NMotMaxRpmAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
>;
|
>;
|
||||||
using FieldWeakMaxChangeScreen = makeComponent<
|
using FieldWeakMaxChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETFIELDWEAKMAX>,
|
StaticText<TEXT_FIELDWEAKMAX>,
|
||||||
FieldWeakMaxAccessor,
|
FieldWeakMaxAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
>;
|
>;
|
||||||
using PhaseAdvMaxChangeScreen = makeComponent<
|
using PhaseAdvMaxChangeScreen = makeComponent<
|
||||||
ChangeValueDisplay<int16_t>,
|
ChangeValueDisplay<int16_t>,
|
||||||
StaticText<TEXT_SETPHASEADVMAX>,
|
StaticText<TEXT_PHASEADVMAX>,
|
||||||
PhaseAdvMaxAccessor,
|
PhaseAdvMaxAccessor,
|
||||||
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
BackActionInterface<SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
SwitchScreenAction<LimitsSettingsMenu>
|
SwitchScreenAction<LimitsSettingsMenu>
|
||||||
@ -68,13 +74,13 @@ class LimitsSettingsMenu :
|
|||||||
public:
|
public:
|
||||||
LimitsSettingsMenu()
|
LimitsSettingsMenu()
|
||||||
{
|
{
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETIMOTMAX>, SwitchScreenAction<IMotMaxChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IMOTMAX, IMotMaxAccessor>, SwitchScreenAction<IMotMaxChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETIDCMAX>, SwitchScreenAction<IDcMaxChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IDCMAX, IDcMaxAccessor>, SwitchScreenAction<IDcMaxChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETNMOTMAXKMH>, SwitchScreenAction<NMotMaxKmhChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAXKMH, NMotMaxKmhAccessor>, SwitchScreenAction<NMotMaxKmhChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETNMOTMAX>, SwitchScreenAction<NMotMaxRpmChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAX, NMotMaxRpmAccessor>, SwitchScreenAction<NMotMaxRpmChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETFIELDWEAKMAX>, SwitchScreenAction<FieldWeakMaxChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FIELDWEAKMAX, FieldWeakMaxAccessor>, SwitchScreenAction<FieldWeakMaxChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SETPHASEADVMAX>, SwitchScreenAction<PhaseAdvMaxChangeScreen>>>();
|
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_PHASEADVMAX, PhaseAdvMaxAccessor>, SwitchScreenAction<PhaseAdvMaxChangeScreen>>>();
|
||||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
|
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
14
src/texts.h
14
src/texts.h
@ -130,13 +130,13 @@ constexpr char TEXT_REVERSEBEEPDURATION1[] = "Reverse beep duration1";
|
|||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
//LimitsSettingsMenu
|
//LimitsSettingsMenu
|
||||||
//constexpr char TEXT_LIMITSSETTINGS[] = "Common settings";
|
//constexpr char TEXT_LIMITSSETTINGS[] = "Limit settings";
|
||||||
constexpr char TEXT_SETIMOTMAX[] = "Set iMotMax";
|
constexpr char TEXT_IMOTMAX[] = "iMotMax";
|
||||||
constexpr char TEXT_SETIDCMAX[] = "Set iDcMax";
|
constexpr char TEXT_IDCMAX[] = "iDcMax";
|
||||||
constexpr char TEXT_SETNMOTMAXKMH[] = "Set nMotMax (kmh)";
|
constexpr char TEXT_NMOTMAXKMH[] = "nMotMaxKmh";
|
||||||
constexpr char TEXT_SETNMOTMAX[] = "Set nMotMax";
|
constexpr char TEXT_NMOTMAX[] = "nMotMax";
|
||||||
constexpr char TEXT_SETFIELDWEAKMAX[] = "Set fieldWeakMax";
|
constexpr char TEXT_FIELDWEAKMAX[] = "fldWkMax";
|
||||||
constexpr char TEXT_SETPHASEADVMAX[] = "Set phaseAdvMax";
|
constexpr char TEXT_PHASEADVMAX[] = "phsAdvMax";
|
||||||
//constexpr char TEXT_BACK[] = "Back";
|
//constexpr char TEXT_BACK[] = "Back";
|
||||||
|
|
||||||
//DebugMenu
|
//DebugMenu
|
||||||
|
Reference in New Issue
Block a user