70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
#include <bcvaluetype.h>
|
|
#include <bcdatavalue.h>
|
|
|
|
|
|
BCValueType::BCValueType()
|
|
{
|
|
|
|
}
|
|
|
|
BCValueType::BCValueType( QString unitLabel_, double factor_, optDouble min_, optDouble max_ )
|
|
: unitLabel{unitLabel_}, factor{factor_}, min{min_}, max{max_}
|
|
{
|
|
|
|
}
|
|
|
|
QString BCValueType::formatValue( uint32_t value ) const
|
|
{
|
|
if( factor == 1 )
|
|
return QString::number( value );
|
|
|
|
double result = value * factor;
|
|
return QString::number(result, 'f', 2);
|
|
}
|
|
/// ----
|
|
|
|
BCValueTypeByte::BCValueTypeByte( QString unitLabel_, double factor_, optDouble min_, optDouble max_ )
|
|
: BCValueType{ unitLabel_, factor_, min_, max_}
|
|
{
|
|
|
|
}
|
|
|
|
QString BCValueTypeByte::createStringValue( const BCAbstractTransmitter& transmitter, uint32_t deviceID, uint8_t registerID ) const
|
|
{
|
|
uint32_t result = transmitter.readRawByte( deviceID, registerID );
|
|
return formatValue( result );
|
|
}
|
|
|
|
/// ----
|
|
|
|
BCValueTypeWord::BCValueTypeWord( QString unitLabel_, double factor_, optDouble min_, optDouble max_ )
|
|
: BCValueType{ unitLabel_, factor_, min_, max_}
|
|
{
|
|
|
|
}
|
|
|
|
QString BCValueTypeWord::createStringValue( const BCAbstractTransmitter& transmitter, uint32_t deviceID, uint8_t registerID ) const
|
|
{
|
|
//getValue(CONSOLE, CONSOLE_SN_PN_HI) << 8) + getValue(CONSOLE, CONSOLE_SN_PN_LO)),
|
|
// hi byte
|
|
uint32_t result = transmitter.readRawByte( deviceID, registerID ) << 8;
|
|
// low byte, use followup register: +1
|
|
result += transmitter.readRawByte( deviceID, registerID+1 );
|
|
|
|
return formatValue( result );
|
|
}
|
|
|
|
/// ----
|
|
|
|
BCValueTypeODO::BCValueTypeODO( QString unitLabel_, double factor_, optDouble min_, optDouble max_ )
|
|
: BCValueType{ unitLabel_, factor_, min_, max_}
|
|
{
|
|
|
|
}
|
|
|
|
QString BCValueTypeODO::createStringValue( const BCAbstractTransmitter& transmitter, uint32_t deviceID, uint8_t registerID ) const
|
|
{
|
|
return "0x0";
|
|
}
|
|
|