Backup.
This commit is contained in:
101
bcdataitem.h
101
bcdataitem.h
@@ -66,6 +66,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
class BCDataItem;
|
||||
|
||||
using optDouble = std::optional<double>;
|
||||
|
||||
struct BCDataType
|
||||
@@ -75,43 +77,63 @@ struct BCDataType
|
||||
|
||||
public:
|
||||
|
||||
enum class TypeID : uint8_t
|
||||
{
|
||||
Invalid = 0x0,
|
||||
Text,
|
||||
Number,
|
||||
Float,
|
||||
Byte,
|
||||
Word,
|
||||
Quad,
|
||||
Percent,
|
||||
KWh,
|
||||
Watt,
|
||||
Km,
|
||||
Kmh,
|
||||
Mm,
|
||||
Sec,
|
||||
SoC,
|
||||
Odo,
|
||||
Assist,
|
||||
AssistFac,
|
||||
Date
|
||||
};
|
||||
Q_ENUM(TypeID)
|
||||
|
||||
BCDataType();
|
||||
BCDataType( TypeID ID_, QString unitLabel_="", optDouble factor_=std::nullopt, optDouble min_=std::nullopt, optDouble max_= std::nullopt );
|
||||
BCDataType( QString unitLabel_, double factor_= 1.0, optDouble min_=std::nullopt, optDouble max_= std::nullopt );
|
||||
|
||||
TypeID ID{TypeID::Invalid};
|
||||
QString unitLabel;
|
||||
optDouble factor;
|
||||
double factor;
|
||||
optDouble min;
|
||||
optDouble max;
|
||||
|
||||
virtual double readValue( const BCAbstractTransmitter& transmitter ) = 0;
|
||||
virtual void writeValue( const BCAbstractTransmitter& transmitter ) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct BCDataTypeByte : public BCDataType
|
||||
{
|
||||
/*
|
||||
double readValue( const BCAbstractTransmitter& transmitter, const BCDA ) override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void writeValue( const BCAbstractTransmitter& transmitter ) override;
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
};
|
||||
|
||||
struct ODO : public BCDataType
|
||||
{
|
||||
double readValue( const BCAbstractTransmitter& transmitter ) override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void writeValue( const BCAbstractTransmitter& transmitter ) override;
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
struct Long : public BCDataType
|
||||
{};
|
||||
|
||||
struct Fitz : public BCDataType
|
||||
{};
|
||||
|
||||
struct Fatz : public BCDataType
|
||||
{};
|
||||
|
||||
using BCTypeVariant = std::variant<BCDataType,ODO,Long,Fitz,Fatz>;
|
||||
|
||||
// really needed?
|
||||
using BCDataTypeCRef = std::optional<std::reference_wrapper<const BCDataType>>;
|
||||
//using BCDataTypeCRef = std::optional<std::reference_wrapper<const BCTypeVariant>>;
|
||||
|
||||
|
||||
class BCDataItem
|
||||
@@ -119,13 +141,15 @@ class BCDataItem
|
||||
|
||||
public:
|
||||
|
||||
BCDataItem( const BCDataType& valueType_, BCDevice::ID deviceID_, BC::ID registerID_ );
|
||||
BCDataItem( const BCDataType* valueType_, BCDevice::ID deviceID_, BC::ID registerID_ );
|
||||
|
||||
void readRawValue( const BCAbstractTransmitter& transmitter ) const;
|
||||
void writeRawValue( const BCAbstractTransmitter& transmitter ) const;
|
||||
void readRawValueX( const BCAbstractTransmitter& transmitter ) const;
|
||||
void writeRawValueX( const BCAbstractTransmitter& transmitter ) const;
|
||||
// void reset()
|
||||
|
||||
BCDataTypeCRef valueType;
|
||||
//const BCDataType& valueType;
|
||||
//BCDataTypeCRef valueType;
|
||||
const BCDataType* valueType{};
|
||||
BCDevice::ID deviceID{BCDevice::ID::Invalid};
|
||||
BC::ID registerID{BC::ID::Invalid};
|
||||
int rowInModel{-1};
|
||||
@@ -144,13 +168,10 @@ public:
|
||||
Q_DECLARE_METATYPE(BCDataItem*)
|
||||
|
||||
|
||||
struct BCDataParams
|
||||
{
|
||||
QString ID;
|
||||
QString Label;
|
||||
QString Default;
|
||||
QString UnitType;
|
||||
};
|
||||
using BCDataList = QVector<BCDataItem>;
|
||||
|
||||
|
||||
|
||||
|
||||
// abbreviations:
|
||||
// SOC = State Of Charge
|
||||
@@ -168,7 +189,7 @@ constexpr auto to_u(E e) noexcept {
|
||||
}
|
||||
*/
|
||||
|
||||
using BCDataList = QVector<BCDataItem>;
|
||||
|
||||
|
||||
|
||||
#endif // BCDATAITEM_H
|
||||
|
||||
Reference in New Issue
Block a user