Add screen for configuring vehicle parameters
This commit is contained in:
@ -20,6 +20,8 @@ CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission,
|
||||
DF_TireTempRL, DF_TireTempRR, DF_MinCellVolt, DF_MaxCellTemp,
|
||||
DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh,
|
||||
DF_Speed, DF_BBal);
|
||||
CountedEnum(ParamFieldType, size_t, PF_BBAL, PF_TC1, PF_TC2, PF_TORQUEMAP,
|
||||
PF_TEST1, PF_TEST2, PF_TEST3, PF_TEST4);
|
||||
|
||||
enum class NamedFieldKind { Float, Bool, Text, Int };
|
||||
|
||||
@ -33,6 +35,7 @@ struct NamedFieldDescription {
|
||||
};
|
||||
|
||||
extern NamedFieldDescription dataFieldDescs[];
|
||||
extern NamedFieldDescription paramFieldDescs[];
|
||||
|
||||
template <class T> class NamedField {
|
||||
public:
|
||||
@ -40,7 +43,7 @@ public:
|
||||
virtual ~NamedField() {}
|
||||
|
||||
void setType(T type);
|
||||
T getType();
|
||||
const T &getType();
|
||||
|
||||
virtual void updateValue();
|
||||
|
||||
|
||||
23
TouchGFX/gui/include/gui/containers/ConfigItem.hpp
Normal file
23
TouchGFX/gui/include/gui/containers/ConfigItem.hpp
Normal file
@ -0,0 +1,23 @@
|
||||
#ifndef CONFIGITEM_HPP
|
||||
#define CONFIGITEM_HPP
|
||||
|
||||
#include "gui/common/NamedField.hpp"
|
||||
#include <gui_generated/containers/ConfigItemBase.hpp>
|
||||
|
||||
class ConfigItem : public ConfigItemBase, public NamedField<ParamFieldType> {
|
||||
public:
|
||||
ConfigItem();
|
||||
virtual ~ConfigItem() {}
|
||||
|
||||
virtual void initialize() override;
|
||||
|
||||
void setSelected(int selected);
|
||||
|
||||
protected:
|
||||
private:
|
||||
virtual void typeUpdated() override;
|
||||
virtual void titleBufferUpdated() override;
|
||||
virtual void valueBufferUpdated() override;
|
||||
};
|
||||
|
||||
#endif // CONFIGITEM_HPP
|
||||
@ -0,0 +1,36 @@
|
||||
#ifndef VEHICLECONFIGPRESENTER_HPP
|
||||
#define VEHICLECONFIGPRESENTER_HPP
|
||||
|
||||
#include <gui/model/ModelListener.hpp>
|
||||
#include <mvp/Presenter.hpp>
|
||||
|
||||
using namespace touchgfx;
|
||||
|
||||
class VehicleConfigView;
|
||||
|
||||
class VehicleConfigPresenter : public touchgfx::Presenter, public ModelListener
|
||||
{
|
||||
public:
|
||||
VehicleConfigPresenter(VehicleConfigView& v);
|
||||
|
||||
/**
|
||||
* The activate function is called automatically when this screen is "switched in"
|
||||
* (ie. made active). Initialization logic can be placed here.
|
||||
*/
|
||||
virtual void activate();
|
||||
|
||||
/**
|
||||
* The deactivate function is called automatically when this screen is "switched out"
|
||||
* (ie. made inactive). Teardown functionality can be placed here.
|
||||
*/
|
||||
virtual void deactivate();
|
||||
|
||||
virtual ~VehicleConfigPresenter() {};
|
||||
|
||||
private:
|
||||
VehicleConfigPresenter();
|
||||
|
||||
VehicleConfigView& view;
|
||||
};
|
||||
|
||||
#endif // VEHICLECONFIGPRESENTER_HPP
|
||||
@ -0,0 +1,29 @@
|
||||
#ifndef VEHICLECONFIGVIEW_HPP
|
||||
#define VEHICLECONFIGVIEW_HPP
|
||||
|
||||
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
|
||||
#include <gui_generated/vehicleconfig_screen/VehicleConfigViewBase.hpp>
|
||||
|
||||
class VehicleConfigView : public VehicleConfigViewBase {
|
||||
public:
|
||||
VehicleConfigView();
|
||||
virtual ~VehicleConfigView() {}
|
||||
virtual void setupScreen() override;
|
||||
virtual void tearDownScreen() override;
|
||||
|
||||
void paramsUpdateItem(ConfigItem &item, int16_t itemIndex) override;
|
||||
|
||||
void selectPrevParam() override;
|
||||
void selectNextParam() override;
|
||||
void decParam() override;
|
||||
void incParam() override;
|
||||
void confirmParam() override;
|
||||
|
||||
protected:
|
||||
private:
|
||||
int selectedParam;
|
||||
|
||||
void updateSelectedParam(int select);
|
||||
};
|
||||
|
||||
#endif // VEHICLECONFIGVIEW_HPP
|
||||
Reference in New Issue
Block a user