Updated ValueHandling.

This commit is contained in:
Christoph Holzheuer
2026-01-07 17:13:35 +01:00
parent 7d43b0a694
commit 3bdc491830
17 changed files with 152 additions and 150 deletions

View File

@@ -30,7 +30,7 @@
***************************************************************************/
#include <QDebug>
#include <//qDebug>
#include <bcdrivertinycan.h>
#include <can_drv.h>
@@ -180,22 +180,22 @@ BCDriver::DriverStateResult BCDriverTinyCan::setConsoleSlaveMode()
uint32_t console = static_cast<uint32_t>(BCDevice::ID::Console);
uint8_t slaveFlag = static_cast<uint8_t> (BC::ID::Cons_Status_Slave);
qDebug() << "XXX BCDriverTinyCan::Driver Init: putting Console in slave mode ... ";
//qDebug() << "XXX BCDriverTinyCan::Driver Init: putting Console in slave mode ... ";
TransmitResult isSlave = 0;
// Already slave?
isSlave = readRawByte( console, slaveFlag );
if( isSlave.has_value() )
{
qDebug() << "Console responded: " << isSlave.value();
//qDebug() << "Console responded: " << isSlave.value();
if( isSlave.value() == 1 )
{
qDebug() << "Console already in slave mode. good!";
//qDebug() << "Console already in slave mode. good!";
return DriverState::DeviceReady;
}
}
qDebug() << "BCDriverTinyCan::BCDriverTinyCan::XXX Driver Init: putting Console in slave mode ... ";
//qDebug() << "BCDriverTinyCan::BCDriverTinyCan::XXX Driver Init: putting Console in slave mode ... ";
unsigned int retry = cTimeOuts;
@@ -237,7 +237,7 @@ void BCDriverTinyCan::resetDriver()
TransmitResult BCDriverTinyCan::readRawByte( uint32_t deviceID, uint8_t registerID ) const
{
qDebug() << " --- CAN Read Byte: Device: "<< deviceID << " register: " << registerID << " TRY! ";
//qDebug() << " --- CAN Read Byte: Device: "<< deviceID << " register: " << registerID << " TRY! ";
struct TCanMsg msg;
int err, retry = 20;
@@ -258,7 +258,7 @@ TransmitResult BCDriverTinyCan::readRawByte( uint32_t deviceID, uint8_t register
bc::delay_millis( cTIMEOUT_MS );
if (timeout == -1)
qDebug() << "error: could not send value to node ";
//qDebug() << "error: could not send value to node ";
retry:
@@ -268,34 +268,34 @@ retry:
if (timeout == -1)
{
qDebug() << "error: no response from node";
//qDebug() << "error: no response from node";
return 0;
}
if ((err = CanReceive(0, &msg, 1)) > 0)
{
qDebug() << " retry: " << retry << " BIB:" << BC::ID::ID_Bib << " msg.Id: " << msg.Id << " msg.MsgLen: " << msg.MsgLen << " msg.MsgData[1]: " << msg.MsgData[1] << " reg: " << reg;
//qDebug() << " retry: " << retry << " BIB:" << BC::ID::ID_Bib << " msg.Id: " << msg.Id << " msg.MsgLen: " << msg.MsgLen << " msg.MsgData[1]: " << msg.MsgData[1] << " reg: " << reg;
if (--retry && (msg.Id != (uint32_t)BC::ID::ID_Bib|| msg.MsgLen != 4 || msg.MsgData[1] != reg))
goto retry;
if (!retry)
{
qDebug() << "XXX error: no response from node: " << err;
//qDebug() << "XXX error: no response from node: " << err;
return 0;
}
qDebug() << " --- CAN Read Byte: Device: "<< deviceID << " register: " << registerID << " BYTE: " << (uint32_t) msg.MsgData[3];
//qDebug() << " --- CAN Read Byte: Device: "<< deviceID << " register: " << registerID << " BYTE: " << (uint32_t) msg.MsgData[3];
return (unsigned int) msg.MsgData[3];
}
else
{
qDebug() << "Error:" <<err;
//qDebug() << "Error:" <<err;
}
return 0;
/*
//TransmitResult
qDebug() << " --- BCDriverTinyCan::readRawByte DriverState: " << getDriverState();
//qDebug() << " --- BCDriverTinyCan::readRawByte DriverState: " << getDriverState();
if( _driverState <DriverState::Opened )
return std::unexpected(QString("readRawValue error: driver not loaded." ) );
@@ -337,15 +337,15 @@ retry:
// message empfangen
int err = ::CanReceive( 0, &msg, 1 );
//qDebug() << "HÄÄ ?" << err << "reg: "<< registerID <<" timeOuts: " << timeOuts;
////qDebug() << "HÄÄ ?" << err << "reg: "<< registerID <<" timeOuts: " << timeOuts;
if( err < 0 )
//throw BCException( "getValue error: could not receive value" );
qDebug( "getValue error: could not receive value" );
//qDebug( "getValue error: could not receive value" );
//qDebug() << "HÄÄ 2" <<msg.Id;
//qDebug() << "HÄÄ 2" <<msg.MsgLen;
//qDebug() << "HÄÄ 2" <<msg.MsgData[1];
////qDebug() << "HÄÄ 2" <<msg.Id;
////qDebug() << "HÄÄ 2" <<msg.MsgLen;
////qDebug() << "HÄÄ 2" <<msg.MsgData[1];
//if( err > 0 )
if( --retries && ( msg.Id != BIB || msg.MsgLen != 4 || msg.MsgData[1] != registerID ) )
@@ -354,7 +354,7 @@ retry:
if( !timeOuts )
return std::unexpected(QString("CAN response errror: timeout" ));
qDebug() << " --- CAN Read Byte: " << (uint32_t) msg.MsgData[3] << " Device:: "<< deviceID << " register: " << registerID;
//qDebug() << " --- CAN Read Byte: " << (uint32_t) msg.MsgData[3] << " Device:: "<< deviceID << " register: " << registerID;
return (uint32_t) msg.MsgData[3];
*/
}
@@ -367,7 +367,7 @@ TransmitResult BCDriverTinyCan::writeRawByte( uint32_t deviceID, uint8_t registe
if( _driverState <DriverState::Opened )
return std::unexpected(QString("readRawValue error: driver not loaded." ) );
qDebug() << " --- BCDriverTinyCan writeRawValue: " << value;
//qDebug() << " --- BCDriverTinyCan writeRawValue: " << value;
::TCanMsg msg;
int timeout_count = cTIMEOUT_COUNT;