Added setFromDouble
This commit is contained in:
@@ -341,7 +341,7 @@ void BCMainWindow::onSyncDeviceView()
|
|||||||
for( const BCValuePtr& value : currentList )
|
for( const BCValuePtr& value : currentList )
|
||||||
{
|
{
|
||||||
// wir setzen auf 'lesen'
|
// wir setzen auf 'lesen'
|
||||||
value->getValueFlags().setFlag( BCValue::Flag::ReadMe );
|
value->setFlag( BCValue::Flag::ReadMe );
|
||||||
|
|
||||||
// statt '_transmitter.onUpdateValue( value )' müssen wir hier
|
// statt '_transmitter.onUpdateValue( value )' müssen wir hier
|
||||||
// über emit requestValueUpdate() zur Thread sysnchronisation
|
// über emit requestValueUpdate() zur Thread sysnchronisation
|
||||||
|
|||||||
@@ -151,14 +151,15 @@ void BCTransmitter::onUpdateValue( BCValuePtrConst valuePtr)
|
|||||||
uint32_t newValue = value.getRawValue();
|
uint32_t newValue = value.getRawValue();
|
||||||
BCValue::Flag newState = BCValue::Flag::Failed;
|
BCValue::Flag newState = BCValue::Flag::Failed;
|
||||||
|
|
||||||
if(value.getValueFlags().testFlag( BCValue::Flag::WriteMe ) )
|
|
||||||
|
if(value.testFlag( BCValue::Flag::WriteMe ) )
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
// oder sollen wir hier beides erlauben ? readFlag & writeFlag ?
|
// oder sollen wir hier beides erlauben ? readFlag & writeFlag ?
|
||||||
// Was kommt dann zuerst? Schreiben und lesen als verify ?
|
// Was kommt dann zuerst? Schreiben und lesen als verify ?
|
||||||
|
|
||||||
else if( value.getValueFlags().testFlag( BCValue::Flag::ReadMe ) )
|
else if( value.testFlag( BCValue::Flag::ReadMe ) )
|
||||||
{
|
{
|
||||||
// wir sind hier im anderen thread! nicht einfach so reinschreiben, nur lesen
|
// wir sind hier im anderen thread! nicht einfach so reinschreiben, nur lesen
|
||||||
TransmitResult result = value.isWord() ? readWordValue( devID, regID ) : readByteValue( devID, regID );
|
TransmitResult result = value.isWord() ? readWordValue( devID, regID ) : readByteValue( devID, regID );
|
||||||
|
|||||||
40
bcvalue.cpp
40
bcvalue.cpp
@@ -63,19 +63,47 @@ bool BCValue::isReadOnly() const
|
|||||||
return _valueFlags.testFlag(BCValue::Flag::ReadOnly);
|
return _valueFlags.testFlag(BCValue::Flag::ReadOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool BCValue::testFlag( BCValue::Flag flag ) const
|
||||||
|
{
|
||||||
|
return _valueFlags.testFlag( flag );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BCValue::setFlag( BCValue::Flag flag, bool state) const
|
||||||
|
{
|
||||||
|
_valueFlags.setFlag( flag, state );
|
||||||
|
}
|
||||||
|
|
||||||
void BCValue::setFromDouble( double value )
|
void BCValue::setFromDouble( double value )
|
||||||
{
|
{
|
||||||
if( _optMin.has_value() && _optMax.has_value() )
|
//if( _isReadOnly)
|
||||||
|
switch(_valueType)
|
||||||
{
|
{
|
||||||
|
|
||||||
double min = _optMin.value();
|
// wir betrachten plain
|
||||||
double max = _optMax.value();
|
|
||||||
|
|
||||||
value = qBound( min,value,max);
|
case ValueType::Bool :
|
||||||
|
_rawValue = value >0 ? 1 : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ValueType::Plain :
|
||||||
|
case ValueType::Number:
|
||||||
|
case ValueType::Float:
|
||||||
|
|
||||||
|
if( _optMin.has_value() && _optMax.has_value() )
|
||||||
|
{
|
||||||
|
|
||||||
|
double min = _optMin.value();
|
||||||
|
double max = _optMax.value();
|
||||||
|
|
||||||
|
value = qBound( min,value,max);
|
||||||
|
}
|
||||||
|
_rawValue = value / _factor;
|
||||||
|
|
||||||
|
default :
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
_rawValue = value / _factor;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ public:
|
|||||||
bool isWord() const;
|
bool isWord() const;
|
||||||
bool isReadOnly() const;
|
bool isReadOnly() const;
|
||||||
|
|
||||||
Flags& getValueFlags() const noexcept { return _valueFlags; }
|
bool testFlag( Flag flag ) const;
|
||||||
void setValueFlags(Flags newFlags) { _valueFlags = newFlags; }
|
void setFlag( Flag flag, bool state=true ) const;
|
||||||
|
|
||||||
BCDevice::ID getDeviceID() const noexcept { return _deviceID; }
|
BCDevice::ID getDeviceID() const noexcept { return _deviceID; }
|
||||||
BC::ID getRegisterID() const noexcept { return _registerID; }
|
BC::ID getRegisterID() const noexcept { return _registerID; }
|
||||||
|
|||||||
Reference in New Issue
Block a user