All change value displays now have a confirm and errorOccured

This commit is contained in:
2021-12-29 22:26:44 +01:00
parent 4b9a36f507
commit da1927776e
23 changed files with 269 additions and 263 deletions

View File

@ -0,0 +1,53 @@
#include "changevaluedisplay_controlmode.h"
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <actions/setvalueaction.h>
#include <actions/backproxyaction.h>
#include <icons/back.h>
#include <futurecpp.h>
// local includes
#include "utils.h"
namespace espgui {
namespace {
constexpr const char * const TAG = "ESPGUI";
constexpr char TEXT_OPENMODE[] = "Open mode";
constexpr char TEXT_VOLTAGE[] = "Voltage";
constexpr char TEXT_SPEED[] = "Speed";
constexpr char TEXT_TORQUE[] = "Torque";
constexpr char TEXT_BACK[] = "Back";
} // namespace
ChangeValueDisplay<bobbycar::protocol::ControlMode>::ChangeValueDisplay()
{
using bobbycar::protocol::ControlMode;
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_OPENMODE>>>(ControlMode::OpenMode, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_VOLTAGE>>>(ControlMode::Voltage, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_SPEED>>>(ControlMode::Speed, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_TORQUE>>>(ControlMode::Torque, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<bobbycar::protocol::ControlMode>::start()
{
Base::start();
switch (const auto value = getValue())
{
using bobbycar::protocol::ControlMode;
case ControlMode::OpenMode: setSelectedIndex(0); break;
case ControlMode::Voltage: setSelectedIndex(1); break;
case ControlMode::Speed: setSelectedIndex(2); break;
case ControlMode::Torque: setSelectedIndex(3); break;
default:
ESP_LOGW(TAG, "Unknown ControlMode: %i", std::to_underlying(value));
setSelectedIndex(4);
}
}
} // namespace espgui

View File

@ -1,23 +1,22 @@
#pragma once
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <changevaluedisplay.h>
#include <menudisplay.h>
#include <confirminterface.h>
#include <errorhandlerinterface.h>
// local includes
#include "changevaluedisplay.h"
#include "menudisplay.h"
#include "utils.h"
#include "actions/setvalueaction.h"
#include "actions/backproxyaction.h"
#include "icons/back.h"
#include "texts.h"
#include "bobbycar-common.h"
namespace espgui {
template<>
class ChangeValueDisplay<bobbycar::protocol::ControlMode> :
public MenuDisplay,
public virtual AccessorInterface<bobbycar::protocol::ControlMode>,
public virtual ActionInterface
public virtual ConfirmInterface,
public virtual ErrorHandlerInterface
{
using Base = MenuDisplay;
@ -27,30 +26,4 @@ public:
void start() override;
};
ChangeValueDisplay<bobbycar::protocol::ControlMode>::ChangeValueDisplay()
{
using bobbycar::protocol::ControlMode;
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_OPENMODE>>>(ControlMode::OpenMode, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_VOLTAGE>>>(ControlMode::Voltage, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_SPEED>>>(ControlMode::Speed, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlMode>, StaticText<TEXT_TORQUE>>>(ControlMode::Torque, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<bobbycar::protocol::ControlMode>::start()
{
Base::start();
switch (const auto value = getValue())
{
using bobbycar::protocol::ControlMode;
case ControlMode::OpenMode: setSelectedIndex(0); break;
case ControlMode::Voltage: setSelectedIndex(1); break;
case ControlMode::Speed: setSelectedIndex(2); break;
case ControlMode::Torque: setSelectedIndex(3); break;
default:
ESP_LOGW("BOBBY", "Unknown ControlMode: %i", int(value));
setSelectedIndex(4);
}
}
} // namespace espgui

View File

@ -0,0 +1,50 @@
#include "changevaluedisplay_controltype.h"
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <actions/setvalueaction.h>
#include <actions/backproxyaction.h>
#include <icons/back.h>
#include <futurecpp.h>
// local includes
#include "utils.h"
namespace espgui {
namespace {
constexpr const char * const TAG = "ESPGUI";
constexpr char TEXT_COMMUTATION[] = "Commutation";
constexpr char TEXT_SINUSOIDAL[] = "Sinusoidal";
constexpr char TEXT_FIELDORIENTEDCONTROL[] = "Field oriented control";
constexpr char TEXT_BACK[] = "Back";
} // namespace
ChangeValueDisplay<bobbycar::protocol::ControlType>::ChangeValueDisplay()
{
using bobbycar::protocol::ControlType;
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_COMMUTATION>>>(ControlType::Commutation, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_SINUSOIDAL>>>(ControlType::Sinusoidal, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_FIELDORIENTEDCONTROL>>>(ControlType::FieldOrientedControl, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<bobbycar::protocol::ControlType>::start()
{
Base::start();
switch (const auto value = getValue())
{
using bobbycar::protocol::ControlType;
case ControlType::Commutation: setSelectedIndex(0); break;
case ControlType::Sinusoidal: setSelectedIndex(1); break;
case ControlType::FieldOrientedControl: setSelectedIndex(2); break;
default:
ESP_LOGW(TAG, "Unknown ControlType: %i", std::to_underlying(value));
setSelectedIndex(3);
}
}
} // namespace espgui

View File

@ -1,23 +1,22 @@
#pragma once
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <changevaluedisplay.h>
#include <menudisplay.h>
#include <confirminterface.h>
#include <errorhandlerinterface.h>
// local includes
#include "changevaluedisplay.h"
#include "menudisplay.h"
#include "utils.h"
#include "actions/setvalueaction.h"
#include "actions/backproxyaction.h"
#include "icons/back.h"
#include "texts.h"
#include "bobbycar-common.h"
namespace espgui {
template<>
class ChangeValueDisplay<bobbycar::protocol::ControlType> :
public MenuDisplay,
public virtual AccessorInterface<bobbycar::protocol::ControlType>,
public virtual ActionInterface
public virtual ConfirmInterface,
public virtual ErrorHandlerInterface
{
using Base = MenuDisplay;
@ -27,28 +26,4 @@ public:
void start() override;
};
ChangeValueDisplay<bobbycar::protocol::ControlType>::ChangeValueDisplay()
{
using bobbycar::protocol::ControlType;
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_COMMUTATION>>>(ControlType::Commutation, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_SINUSOIDAL>>>(ControlType::Sinusoidal, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<ControlType>, StaticText<TEXT_FIELDORIENTEDCONTROL>>>(ControlType::FieldOrientedControl, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<bobbycar::protocol::ControlType>::start()
{
Base::start();
switch (const auto value = getValue())
{
using bobbycar::protocol::ControlType;
case ControlType::Commutation: setSelectedIndex(0); break;
case ControlType::Sinusoidal: setSelectedIndex(1); break;
case ControlType::FieldOrientedControl: setSelectedIndex(2); break;
default:
ESP_LOGW("BOBBY", "Unknown ControlType: %i", int(value));
setSelectedIndex(3);
}
}
} // namespace espgui

View File

@ -3,16 +3,31 @@
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <actions/setvalueaction.h>
#include <actions/backproxyaction.h>
#include <icons/back.h>
#include <futurecpp.h>
// local includes
#include "utils.h"
#include "texts.h"
namespace espgui {
namespace {
constexpr const char * const TAG = "ESPGUI";
constexpr char TEXT_HANDBREMS_MOSFETS_OFF[] = "Mosfets off";
constexpr char TEXT_HANDBREMS_OPENMODE[] = "Open Mode";
constexpr char TEXT_HANDBREMS_SPEED0[] = "Speed 0";
constexpr char TEXT_HANDBREMSE[] = "Handbremse";
constexpr char TEXT_BACK[] = "Back";
} // namespace
ChangeValueDisplay<HandbremseMode>::ChangeValueDisplay()
{
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_MOSFETS_OFF>>>(HandbremseMode::MOSFETS_OFF, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_OPENMODE>>>(HandbremseMode::OPENMODE, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_SPEED0>>>(HandbremseMode::SPEED_0, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_MOSFETS_OFF>>>(HandbremseMode::MOSFETS_OFF, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_OPENMODE>>>(HandbremseMode::OPENMODE, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<HandbremseMode>, StaticText<TEXT_HANDBREMS_SPEED0>>>(HandbremseMode::SPEED_0, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
@ -26,8 +41,9 @@ void ChangeValueDisplay<HandbremseMode>::start()
case HandbremseMode::OPENMODE: setSelectedIndex(1); break;
case HandbremseMode::SPEED_0: setSelectedIndex(2); break;
default:
ESP_LOGW("BOBBY", "Unknown HandbremseMode: %i", int(value));
ESP_LOGW(TAG, "Unknown HandbremseMode: %i", std::to_underlying(value));
setSelectedIndex(3);
}
}
} // namespace espgui

View File

@ -1,21 +1,22 @@
#pragma once
// 3rdparty lib includes
#include "changevaluedisplay.h"
#include "menudisplay.h"
#include "actions/setvalueaction.h"
#include "actions/backproxyaction.h"
#include "icons/back.h"
#include <changevaluedisplay.h>
#include <menudisplay.h>
#include <confirminterface.h>
#include <errorhandlerinterface.h>
// local includes
#include "handbremse.h"
namespace espgui {
template<>
class ChangeValueDisplay<HandbremseMode> :
public MenuDisplay,
public virtual AccessorInterface<HandbremseMode>,
public virtual ActionInterface
public virtual ConfirmInterface,
public virtual ErrorHandlerInterface
{
using Base = MenuDisplay;
@ -24,4 +25,5 @@ public:
void start() override;
};
} // namespace espgui

View File

@ -0,0 +1,51 @@
#include "changevaluedisplay_larsmmode_mode.h"
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib inclues
#include <actions/setvalueaction.h>
#include <actions/backproxyaction.h>
#include <icons/back.h>
#include <futurecpp.h>
// local includes
#include "utils.h"
namespace espgui {
namespace {
constexpr const char * const TAG = "ESPGUI";
constexpr char TEXT_LARSMMODE1[] = "Mode1";
constexpr char TEXT_LARSMMODE2[] = "Mode2";
constexpr char TEXT_LARSMMODE3[] = "Mode3";
constexpr char TEXT_LARSMMODE4[] = "Mode4";
constexpr char TEXT_BACK[] = "Back";
} // namespace
ChangeValueDisplay<LarsmModeMode>::ChangeValueDisplay()
{
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE1>>>(LarsmModeMode::Mode1, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE2>>>(LarsmModeMode::Mode2, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE3>>>(LarsmModeMode::Mode3, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE4>>>(LarsmModeMode::Mode4, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<LarsmModeMode>::start()
{
Base::start();
switch (const auto value = getValue())
{
case LarsmModeMode::Mode1: setSelectedIndex(0); break;
case LarsmModeMode::Mode2: setSelectedIndex(1); break;
case LarsmModeMode::Mode3: setSelectedIndex(2); break;
case LarsmModeMode::Mode4: setSelectedIndex(3); break;
default:
ESP_LOGW(TAG, "Unknown LarsmModeMode: %i", std::to_underlying(value));
setSelectedIndex(4);
}
}
} // namespace espgui

View File

@ -1,22 +1,22 @@
#pragma once
#include <esp_log.h>
// 3rdparty lib inclues
#include <changevaluedisplay.h>
#include <menudisplay.h>
#include <confirminterface.h>
#include <errorhandlerinterface.h>
#include "changevaluedisplay.h"
#include "menudisplay.h"
#include "utils.h"
#include "actions/setvalueaction.h"
#include "actions/backproxyaction.h"
#include "icons/back.h"
#include "texts.h"
// local includes
#include "modes/larsmmode.h"
namespace espgui {
template<>
class ChangeValueDisplay<LarsmModeMode> :
public MenuDisplay,
public virtual AccessorInterface<LarsmModeMode>,
public virtual ActionInterface
public virtual ConfirmInterface,
public virtual ErrorHandlerInterface
{
using Base = MenuDisplay;
@ -26,28 +26,4 @@ public:
void start() override;
};
ChangeValueDisplay<LarsmModeMode>::ChangeValueDisplay()
{
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE1>>>(LarsmModeMode::Mode1, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE2>>>(LarsmModeMode::Mode2, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE3>>>(LarsmModeMode::Mode3, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<LarsmModeMode>, StaticText<TEXT_LARSMMODE4>>>(LarsmModeMode::Mode4, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
void ChangeValueDisplay<LarsmModeMode>::start()
{
Base::start();
switch (const auto value = getValue())
{
case LarsmModeMode::Mode1: setSelectedIndex(0); break;
case LarsmModeMode::Mode2: setSelectedIndex(1); break;
case LarsmModeMode::Mode3: setSelectedIndex(2); break;
case LarsmModeMode::Mode4: setSelectedIndex(3); break;
default:
ESP_LOGW("BOBBY", "Unknown LarsmModeMode: %i", int(value));
setSelectedIndex(4);
}
}
} // namespace espgui

View File

@ -3,18 +3,34 @@
// esp-idf includes
#include <esp_log.h>
// 3rdparty lib includes
#include <actions/setvalueaction.h>
#include <actions/backproxyaction.h>
#include <icons/back.h>
#include <futurecpp.h>
// local includes
#include "utils.h"
#include "texts.h"
namespace espgui {
namespace {
constexpr const char * const TAG = "ESPGUI";
constexpr char TEXT_COMMUTATION[] = "Commutation";
constexpr char TEXT_SINUSOIDAL[] = "Sinusoidal";
constexpr char TEXT_FOCVOLTAGE[] = "FOC/Voltage";
constexpr char TEXT_FOCSPEED[] = "FOC/Speed";
constexpr char TEXT_FOCTORQUE[] = "FOC/Torque";
constexpr char TEXT_BACK[] = "Back";
} // namespace
ChangeValueDisplay<UnifiedModelMode>::ChangeValueDisplay()
{
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_COMMUTATION>>>(UnifiedModelMode::Commutation, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_SINUSOIDAL>>>(UnifiedModelMode::Sinusoidal, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCVOLTAGE>>>(UnifiedModelMode::FocVoltage, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCSPEED>>>(UnifiedModelMode::FocSpeed, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCTORQUE>>>(UnifiedModelMode::FocTorque, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_COMMUTATION>>>(UnifiedModelMode::Commutation, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_SINUSOIDAL>>>(UnifiedModelMode::Sinusoidal, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCVOLTAGE>>>(UnifiedModelMode::FocVoltage, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCSPEED>>>(UnifiedModelMode::FocSpeed, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, SetValueAction<UnifiedModelMode>, StaticText<TEXT_FOCTORQUE>>>(UnifiedModelMode::FocTorque, *this, *this, *this);
constructMenuItem<makeComponentArgs<MenuItem, BackProxyAction, StaticText<TEXT_BACK>, StaticMenuItemIcon<&espgui::icons::back>>>(*this);
}
@ -30,8 +46,9 @@ void ChangeValueDisplay<UnifiedModelMode>::start()
case UnifiedModelMode::FocSpeed: setSelectedIndex(3); break;
case UnifiedModelMode::FocTorque: setSelectedIndex(4); break;
default:
ESP_LOGW("BOBBY", "Unknown UnifiedModelMode: %i", int(value));
ESP_LOGW(TAG, "Unknown UnifiedModelMode: %i", std::to_underlying(value));
setSelectedIndex(5);
}
}
} // namespace espgui

View File

@ -1,21 +1,22 @@
#pragma once
// 3rdparty lib includes
#include "changevaluedisplay.h"
#include "menudisplay.h"
#include "actions/setvalueaction.h"
#include "actions/backproxyaction.h"
#include "icons/back.h"
#include <changevaluedisplay.h>
#include <menudisplay.h>
#include <confirminterface.h>
#include <errorhandlerinterface.h>
// local includes
#include "unifiedmodelmode.h"
namespace espgui {
template<>
class ChangeValueDisplay<UnifiedModelMode> :
public MenuDisplay,
public virtual AccessorInterface<UnifiedModelMode>,
public virtual ActionInterface
public virtual ConfirmInterface,
public virtual ErrorHandlerInterface
{
using Base = MenuDisplay;
@ -24,4 +25,5 @@ public:
void start() override;
};
} // namespace espgui

View File

@ -19,7 +19,7 @@ void BobbyPopupDisplay::rawButtonReleased(uint8_t button)
void BobbyPopupDisplay::buttonPressed(espgui::Button button)
{
//Base::buttonPressed(button);
Base::buttonPressed(button);
buttonPressedCommon(button);
}

View File

@ -23,15 +23,15 @@ using DefaultModeModelModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<UnifiedModelMode>,
espgui::StaticText<TEXT_MODELMODE>,
DefaultModeModelModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>
>;
using DefaultModeHybridModelModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<UnifiedModelMode>,
espgui::StaticText<TEXT_HYBRIDMODE>,
DefaultModeHybridModelModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>
>;
using DefaultModeSmoothingChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
@ -126,8 +126,8 @@ DefaultModeSettingsMenu::DefaultModeSettingsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDENABLE>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HANDBREMSE>, SwitchScreenAction<HandbremsSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDENABLE>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HANDBREMSE>, SwitchScreenAction<HandbremsSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FWSMOOTHING_LIMIT, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor>, SwitchScreenAction<DefaultModeFwSmoothingLowerLimitChangeDisplay>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SMOOTHINGVAL, DefaultModeSmoothingAccessor>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FRONTPERCENTAGE, DefaultModeFrontPercentageAccessor>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>>();

View File

@ -28,8 +28,8 @@ using HandBremsModeChangeValueDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<HandbremseMode>,
espgui::StaticText<TEXT_HANDBREMSE_MODE>,
HandbremsModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<HandbremsSettingsMenu>>,
espgui::SwitchScreenAction<HandbremsSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<HandbremsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<HandbremsSettingsMenu>>
>;
class HandBremsModeText : public virtual espgui::TextInterface
{

View File

@ -6,7 +6,7 @@
class HandbremsSettingsMenu :
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_DEBUG>
public espgui::StaticText<TEXT_HANDBREMSE>
{
public:
HandbremsSettingsMenu();

View File

@ -19,15 +19,15 @@ using LarsmModeModelModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<UnifiedModelMode>,
espgui::StaticText<TEXT_MODELMODE>,
LarsmModeModelModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>,
espgui::SwitchScreenAction<LarsmModeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>
>;
using LarsmModeModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<LarsmModeMode>,
espgui::StaticText<TEXT_SETMODE>,
LarsmModeModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>,
espgui::SwitchScreenAction<LarsmModeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LarsmModeSettingsMenu>>
>;
using LarsmModeIterationsChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,

View File

@ -29,8 +29,8 @@ using TempomatModeModelModeChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<UnifiedModelMode>,
espgui::StaticText<TEXT_MODELMODE>,
TempomatModeModelModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<TempomatModeSettingsMenu>>,
espgui::SwitchScreenAction<TempomatModeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<TempomatModeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<TempomatModeSettingsMenu>>
>;
} // namespace

View File

@ -56,8 +56,8 @@ using DaylightSavingModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<espchrono::DayLightSavingMode>,
espgui::StaticText<TEXT_DAYLIGHTSAVINGMODE>,
DaylightSavingModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
espgui::SwitchScreenAction<TimeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>
>;
#ifdef FEATURE_NTP
@ -65,8 +65,8 @@ using TimeSyncModeChangeDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<sntp_sync_mode_t>,
espgui::StaticText<TEXT_NTPMODE>,
TimeSyncModeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
espgui::SwitchScreenAction<TimeSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>
>;
using TimeSyncIntervalChangeDisplay = espgui::makeComponent<

View File

@ -63,8 +63,8 @@ using ApAuthmodeChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<wifi_auth_mode_t>,
espgui::StaticText<TEXT_AUTHMODE>,
WifiApAuthmodeAccessor,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::SwitchScreenAction<WifiApSettingsMenu>
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
>;
} // namespace

View File

@ -4,6 +4,8 @@
#include "bobbycar-common.h"
#include "modeinterface.h"
enum class LarsmModeMode : uint8_t { Mode1, Mode2, Mode3, Mode4 };
class LarsmMode : public ModeInterface
{
using Base = ModeInterface;

View File

@ -23,8 +23,7 @@
#include "unifiedmodelmode.h"
#include "handbremse.h"
#include "ledstrip.h"
enum class LarsmModeMode : uint8_t { Mode1, Mode2, Mode3, Mode4 };
#include "modes/larsmmode.h"
struct Settings
{

View File

@ -234,6 +234,7 @@ char TEXT_HANDBREMSE_AUTOMATIC[] = "Automatic Handbremse";
char TEXT_HANDBREMSE_VISUALIZE[] = "Visualize Handbremse";
char TEXT_HANDBREMSE_MODE[] = "Handbrems Mode";
char TEXT_HANDBREMSE_TRIGGERTIMEOUT[] = "Handbrems Timeout";
char TEXT_HANDBREMSE[] = "Handbremse";
//char TEXT_BACK[] = "Back";
//DynamicDebugMenu
@ -448,62 +449,6 @@ char TEXT_OFF[] = "Off";
char TEXT_MASTER[] = "Master";
char TEXT_SLAVE[] = "Slave";
//ChangeValueDisplay<ControlMode>
char TEXT_OPENMODE[] = "Open mode";
char TEXT_VOLTAGE[] = "Voltage";
char TEXT_SPEED[] = "Speed";
char TEXT_TORQUE[] = "Torque";
//char TEXT_BACK[] = "Back";
//ChangeValueDisplay<ControlType>
char TEXT_COMMUTATION[] = "Commutation";
char TEXT_SINUSOIDAL[] = "Sinusoidal";
char TEXT_FIELDORIENTEDCONTROL[] = "Field oriented control";
//char TEXT_BACK[] = "Back";
//ChangeValueDisplay<HandbremseMode>
char TEXT_HANDBREMS_MOSFETS_OFF[] = "Mosfets off";
char TEXT_HANDBREMS_OPENMODE[] = "Open Mode";
char TEXT_HANDBREMS_SPEED0[] = "Speed 0";
char TEXT_HANDBREMSE[] = "Handbremse";
//ChangeValueDisplay<LarsmMode::Mode>
char TEXT_LARSMMODE1[] = "Mode1";
char TEXT_LARSMMODE2[] = "Mode2";
char TEXT_LARSMMODE3[] = "Mode3";
char TEXT_LARSMMODE4[] = "Mode4";
//char TEXT_BACK[] = "Back";
//ChangeValueDisplay<UnifiedModelMode>
//char TEXT_COMMUTATION[] = "Commutation";
//char TEXT_SINUSOIDAL[] = "Sinusoidal";
char TEXT_FOCVOLTAGE[] = "FOC/Voltage";
char TEXT_FOCSPEED[] = "FOC/Speed";
char TEXT_FOCTORQUE[] = "FOC/Torque";
//char TEXT_BACK[] = "Back";
//ChangeValueDisplay<wifi_mode_t>
char TEXT_WIFI_MODE_NULL[] = "WIFI_MODE_NULL";
char TEXT_WIFI_MODE_STA[] = "WIFI_MODE_STA";
char TEXT_WIFI_MODE_AP[] = "WIFI_MODE_AP";
char TEXT_WIFI_MODE_APSTA[] = "WIFI_MODE_APSTA";
//char TEXT_BACK[] = "Back";
//ChangeValueDisplay<wifi_power_t>
char TEXT_WIFI_POWER_19_5dBm[] = "19.5dBm";
char TEXT_WIFI_POWER_19dBm[] = "19dBm";
char TEXT_WIFI_POWER_18_5dBm[] = "18.5dBm";
char TEXT_WIFI_POWER_17dBm[] = "17dBm";
char TEXT_WIFI_POWER_15dBm[] = "15dBm";
char TEXT_WIFI_POWER_13dBm[] = "13dBm";
char TEXT_WIFI_POWER_11dBm[] = "11dBm";
char TEXT_WIFI_POWER_8_5dBm[] = "8.5dBm";
char TEXT_WIFI_POWER_7dBm[] = "7dBm";
char TEXT_WIFI_POWER_5dBm[] = "5dBm";
char TEXT_WIFI_POWER_2dBm[] = "2dBm";
char TEXT_WIFI_POWER_MINUS_1dBm[] = "-1dBm";
//char TEXT_BACK[] = "Back";
//Crashmenu
char TEXT_CRASHMENU[] = "Crash Menu";
char TEXT_CRASH_ASSERT[] = "assert(0)";

View File

@ -448,61 +448,6 @@ extern char TEXT_OFF[];
extern char TEXT_MASTER[];
extern char TEXT_SLAVE[];
//ChangeValueDisplay<ControlMode>
extern char TEXT_OPENMODE[];
extern char TEXT_VOLTAGE[];
extern char TEXT_SPEED[];
extern char TEXT_TORQUE[];
//extern char TEXT_BACK[];
//ChangeValueDisplay<ControlType>
extern char TEXT_COMMUTATION[];
extern char TEXT_SINUSOIDAL[];
extern char TEXT_FIELDORIENTEDCONTROL[];
//extern char TEXT_BACK[];
//ChangeValueDisplay<HandbremseMode>
extern char TEXT_HANDBREMS_MOSFETS_OFF[];
extern char TEXT_HANDBREMS_OPENMODE[];
extern char TEXT_HANDBREMS_SPEED0[];
//ChangeValueDisplay<LarsmMode::Mode>
extern char TEXT_LARSMMODE1[];
extern char TEXT_LARSMMODE2[];
extern char TEXT_LARSMMODE3[];
extern char TEXT_LARSMMODE4[];
//extern char TEXT_BACK[];
//ChangeValueDisplay<UnifiedModelMode>
//extern char TEXT_COMMUTATION[];
//extern char TEXT_SINUSOIDAL[];
extern char TEXT_FOCVOLTAGE[];
extern char TEXT_FOCSPEED[];
extern char TEXT_FOCTORQUE[];
//extern char TEXT_BACK[];
//ChangeValueDisplay<wifi_mode_t>
extern char TEXT_WIFI_MODE_NULL[];
extern char TEXT_WIFI_MODE_STA[];
extern char TEXT_WIFI_MODE_AP[];
extern char TEXT_WIFI_MODE_APSTA[];
//extern char TEXT_BACK[];
//ChangeValueDisplay<wifi_power_t>
extern char TEXT_WIFI_POWER_19_5dBm[];
extern char TEXT_WIFI_POWER_19dBm[];
extern char TEXT_WIFI_POWER_18_5dBm[];
extern char TEXT_WIFI_POWER_17dBm[];
extern char TEXT_WIFI_POWER_15dBm[];
extern char TEXT_WIFI_POWER_13dBm[];
extern char TEXT_WIFI_POWER_11dBm[];
extern char TEXT_WIFI_POWER_8_5dBm[];
extern char TEXT_WIFI_POWER_7dBm[];
extern char TEXT_WIFI_POWER_5dBm[];
extern char TEXT_WIFI_POWER_2dBm[];
extern char TEXT_WIFI_POWER_MINUS_1dBm[];
//extern char TEXT_BACK[];
//Crashmenu
extern char TEXT_CRASHMENU[];
extern char TEXT_CRASH_ASSERT[];