Dropped BCAbstractTransmitter, simplified code.
This commit is contained in:
@@ -137,21 +137,17 @@ void BCTransmitter::processValue()
|
||||
|
||||
else if( value.state.testFlag( BCValue::State::ReadMe ) )
|
||||
{
|
||||
|
||||
/*
|
||||
// wir sind hier im anderen thread! nicht einfach so reinschreiben, nur lesen
|
||||
TransmitResult result = valueType.readValueFunc( *this, devID, regID );
|
||||
TransmitResult result = value.isWord ? readWordValue( devID, regID ) : readByteValue( devID, regID );
|
||||
if( result.has_value() )
|
||||
{
|
||||
newVisibleValue = valueType.formatValue( result.value() );
|
||||
newVisibleValue = value.formatValue( result.value() );
|
||||
newState = BCValue::State::InSync;
|
||||
}
|
||||
else
|
||||
{
|
||||
newState = BCValue::State::Failed;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
emit valueUpdated( value.deviceID, value.indexRow, newState, newVisibleValue );
|
||||
@@ -165,30 +161,30 @@ void BCTransmitter::processValue()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief BCTransmitter::readByte
|
||||
* NEIN NEIN NEIN!
|
||||
* Reicht den read request an den aktuellen Treiber weiter. Wird von aussen, von der readValueFunc des ValueTypes
|
||||
* aufgerufen, deshalb public.
|
||||
*/
|
||||
|
||||
TransmitResult BCTransmitter::readByte( uint32_t deviceID, uint8_t registerID ) const
|
||||
TransmitResult BCTransmitter::readByteValue( uint32_t deviceID, uint8_t registerID )
|
||||
{
|
||||
qDebug() << " --- YES: Read ByteValue: " << registerID;
|
||||
// Wir lesen nur ein Byte und gut.
|
||||
return _canDriver->readRawByte( deviceID, registerID );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief BCTransmitter::writeByte
|
||||
* Reicht den write request an den aktuellen Treiber weiter. Wird von aussen, von der writeValueFunc des ValueTypes
|
||||
* aufgerufen, deshalb public.
|
||||
*/
|
||||
|
||||
TransmitResult BCTransmitter::writeByte( uint32_t deviceID, uint8_t registerID , uint8_t value ) const
|
||||
TransmitResult BCTransmitter::readWordValue( uint32_t deviceID, uint8_t registerID )
|
||||
{
|
||||
return _canDriver->writeRawByte( deviceID, registerID, value );
|
||||
qDebug() << " --- YES: Read WordValue: " << registerID;
|
||||
|
||||
uint32_t result{};
|
||||
// hi byte Leseversuch.
|
||||
TransmitResult value = _canDriver->readRawByte( deviceID, registerID );
|
||||
// Fehler? dann weg
|
||||
if( !value)
|
||||
return std::unexpected( value.error() );
|
||||
// hi byte speichern
|
||||
result = *value << 8;
|
||||
// low byte, liegt im followup register: +1
|
||||
value = _canDriver->readRawByte( deviceID, registerID+1 );
|
||||
if( !value)
|
||||
return std::unexpected( value.error() );
|
||||
result += *value;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user