Driver fixes.

This commit is contained in:
2026-01-09 10:47:29 +01:00
parent c81c38f780
commit 2547ed6e1c
13 changed files with 101 additions and 146 deletions

View File

@@ -151,7 +151,7 @@ BCDriver::DriverStateResult BCDriverTinyCan::loadDriver()
return _driverState;
};
qDebug() << " --- DIRVER: " << cMHS_DRIVERNAME;
qDebug() << " --- DRIVER: " << cMHS_DRIVERNAME;
// #1. erstmal komplett zurücksetzen
resetDriver();
@@ -178,25 +178,18 @@ BCDriver::DriverStateResult BCDriverTinyCan::loadDriver()
BCDriver::DriverStateResult BCDriverTinyCan::setConsoleSlaveMode()
{
// Wir versuchen ein Test-Byte zu lesen, hier: einfach die Hardware
// Revision der Console.
uint32_t console = static_cast<uint32_t>(BCDevice::ID::Console);
uint8_t slaveFlag = static_cast<uint8_t> (BC::ID::Cons_Status_Slave);
unsigned int retry = cTimeOuts;
TransmitResult isSlave = 0;
// Already slave?
isSlave = readRawByte( console, slaveFlag );
if( isSlave.has_value() )
{
//qDebug() << "Console responded: " << isSlave.value();
if( isSlave.value() == 1 )
{
//qDebug() << "Console already in slave mode. good!";
return DriverState::DeviceReady;
}
}
//qDebug() << "BCDriverTinyCan::BCDriverTinyCan::XXX Driver Init: putting Console in slave mode ... ";
unsigned int retry = cTimeOuts;
if( isSlave.has_value() && isSlave.value() == 1 )
goto happyEnd;
do
{
@@ -207,11 +200,17 @@ BCDriver::DriverStateResult BCDriverTinyCan::setConsoleSlaveMode()
} while( retry-- && !(*isSlave) );
bc::delay_millis( 500 ); // give the Console some time to settle
//if( !isSlave )
//emit statusHint( QString("putting Console in slave mode ") + (isSlave ? "done" : "failed") );
if( isSlave.has_value() && isSlave.value() == 1 )
goto happyEnd;
// ist das jetzt irgendwie schlimm, wenn wir keine slave Console haben
return isSlave ? DriverState::DeviceReady : DriverState::Opened;
return DriverState::Opened;
happyEnd:
_driverState = DriverState::DeviceReady;
return DriverState::DeviceReady;
}
@@ -239,8 +238,6 @@ TransmitResult BCDriverTinyCan::readRawByte( uint32_t deviceID, uint8_t register
if( _driverState <DriverState::Opened )
return std::unexpected(QString("readRawValue error: Treiber nicht geladen." ) );
unsigned char receipient = (unsigned char ) deviceID;
::TCanMsg msg;
// msg verpacken