Added setFromDouble
This commit is contained in:
@@ -341,7 +341,7 @@ void BCMainWindow::onSyncDeviceView()
|
||||
for( const BCValuePtr& value : currentList )
|
||||
{
|
||||
// wir setzen auf 'lesen'
|
||||
value->getValueFlags().setFlag( BCValue::Flag::ReadMe );
|
||||
value->setFlag( BCValue::Flag::ReadMe );
|
||||
|
||||
// statt '_transmitter.onUpdateValue( value )' müssen wir hier
|
||||
// über emit requestValueUpdate() zur Thread sysnchronisation
|
||||
|
||||
@@ -151,14 +151,15 @@ void BCTransmitter::onUpdateValue( BCValuePtrConst valuePtr)
|
||||
uint32_t newValue = value.getRawValue();
|
||||
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 ?
|
||||
// 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
|
||||
TransmitResult result = value.isWord() ? readWordValue( devID, regID ) : readByteValue( devID, regID );
|
||||
|
||||
30
bcvalue.cpp
30
bcvalue.cpp
@@ -63,8 +63,33 @@ bool BCValue::isReadOnly() const
|
||||
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 )
|
||||
{
|
||||
//if( _isReadOnly)
|
||||
switch(_valueType)
|
||||
{
|
||||
|
||||
// wir betrachten plain
|
||||
|
||||
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() )
|
||||
{
|
||||
|
||||
@@ -73,9 +98,12 @@ void BCValue::setFromDouble( double value )
|
||||
|
||||
value = qBound( min,value,max);
|
||||
}
|
||||
|
||||
_rawValue = value / _factor;
|
||||
|
||||
default :
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +104,8 @@ public:
|
||||
bool isWord() const;
|
||||
bool isReadOnly() const;
|
||||
|
||||
Flags& getValueFlags() const noexcept { return _valueFlags; }
|
||||
void setValueFlags(Flags newFlags) { _valueFlags = newFlags; }
|
||||
bool testFlag( Flag flag ) const;
|
||||
void setFlag( Flag flag, bool state=true ) const;
|
||||
|
||||
BCDevice::ID getDeviceID() const noexcept { return _deviceID; }
|
||||
BC::ID getRegisterID() const noexcept { return _registerID; }
|
||||
|
||||
Reference in New Issue
Block a user