DataField -> NamedField<FieldType>
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
#ifndef DATAFIELD_HPP
|
||||
#define DATAFIELD_HPP
|
||||
#ifndef NAMEDFIELD_HPP
|
||||
#define NAMEDFIELD_HPP
|
||||
|
||||
#include "touchgfx/TypedText.hpp"
|
||||
#include "touchgfx/Unicode.hpp"
|
||||
@ -21,10 +21,10 @@ CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission,
|
||||
DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh,
|
||||
DF_Speed, DF_BBal);
|
||||
|
||||
enum class DataFieldKind { Float, Bool, Text, Int };
|
||||
enum class NamedFieldKind { Float, Bool, Text, Int };
|
||||
|
||||
struct DataFieldDescription {
|
||||
DataFieldKind kind;
|
||||
struct NamedFieldDescription {
|
||||
NamedFieldKind kind;
|
||||
const char *title;
|
||||
size_t int_digits;
|
||||
size_t decimal_digits;
|
||||
@ -32,23 +32,26 @@ struct DataFieldDescription {
|
||||
void *(*getValue)(void);
|
||||
};
|
||||
|
||||
extern DataFieldDescription dataFieldDescs[];
|
||||
extern NamedFieldDescription dataFieldDescs[];
|
||||
|
||||
class DataField {
|
||||
template <class T> class NamedField {
|
||||
public:
|
||||
virtual ~DataField() {}
|
||||
NamedField(const NamedFieldDescription *fieldDescs);
|
||||
virtual ~NamedField() {}
|
||||
|
||||
void setType(DataFieldType type);
|
||||
DataFieldType getType();
|
||||
void setType(T type);
|
||||
T getType();
|
||||
|
||||
virtual void updateValue();
|
||||
|
||||
protected:
|
||||
const NamedFieldDescription *fieldDescs;
|
||||
|
||||
touchgfx::Unicode::UnicodeChar titleBuffer[16];
|
||||
touchgfx::Unicode::UnicodeChar valueBuffer[16];
|
||||
|
||||
DataFieldType type;
|
||||
const DataFieldDescription *desc;
|
||||
T type;
|
||||
const NamedFieldDescription *desc;
|
||||
union {
|
||||
float f;
|
||||
int b;
|
||||
@ -68,4 +71,4 @@ private:
|
||||
void updateValueBuffer();
|
||||
};
|
||||
|
||||
#endif // DATAFIELD_HPP
|
||||
#endif // NAMEDFIELD_HPP
|
||||
Reference in New Issue
Block a user