Ajout plus de traces pour debug Modbus
This commit is contained in:
parent
cec26f952b
commit
9cc2c4d16b
@ -168,7 +168,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
|
|||||||
//Validate data range
|
//Validate data range
|
||||||
if(!mModbusRepo->IsHRValid(StartAdress,1))
|
if(!mModbusRepo->IsHRValid(StartAdress,1))
|
||||||
{
|
{
|
||||||
qDebug("Reg invalid");
|
CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register in Rx Write Single Register req. Address: %d",StartAdress));
|
||||||
//Send negative response
|
//Send negative response
|
||||||
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
|
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
|
||||||
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER);
|
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_WRITE_SINGLE_REGISTER);
|
||||||
@ -180,10 +180,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
|
|||||||
|
|
||||||
//Write register data
|
//Write register data
|
||||||
mModbusRepo->WriteHRData(StartAdress,1,data);
|
mModbusRepo->WriteHRData(StartAdress,1,data);
|
||||||
if(StartAdress == 2000)
|
|
||||||
{
|
|
||||||
qDebug("debug... 2000");
|
|
||||||
}
|
|
||||||
|
|
||||||
CEngLog::instance()->AddLogString(QString().sprintf("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data()));
|
CEngLog::instance()->AddLogString(QString().sprintf("Slave Rx Write Single Register. Address: %d, Value: 0x%s",StartAdress, data.toHex().data()));
|
||||||
CEngLog::instance()->AddLogString(QString().sprintf("Data: %s\n",data.toHex().data()));
|
CEngLog::instance()->AddLogString(QString().sprintf("Data: %s\n",data.toHex().data()));
|
||||||
@ -213,7 +210,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
|
|||||||
//Validate nb of registers
|
//Validate nb of registers
|
||||||
if(NbRegisters < 1 || NbRegisters > 0x7D || ByteCount != (NbRegisters*2))
|
if(NbRegisters < 1 || NbRegisters > 0x7D || ByteCount != (NbRegisters*2))
|
||||||
{
|
{
|
||||||
qDebug("Invalid register number or byte count ");
|
CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register nb or byte count in multiple registers write req. ByteCount: %d, Nb Reg: %d",ByteCount, NbRegisters));
|
||||||
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE);
|
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE);
|
||||||
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
|
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
|
||||||
return 0;
|
return 0;
|
||||||
@ -222,7 +219,7 @@ int CModbusBackend::AnalyzeModbusRequest(CModbusTransaction Transaction)
|
|||||||
//Validate data range
|
//Validate data range
|
||||||
if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters))
|
if(!mModbusRepo->IsHRValid(StartAdress,NbRegisters))
|
||||||
{
|
{
|
||||||
qDebug("Reg invalid");
|
CEngLog::instance()->AddLogString(QString().sprintf("Slave invalid register in multiple registers write req. Address: %d, Nb Reg: %d",StartAdress, NbRegisters));
|
||||||
//Send negative response
|
//Send negative response
|
||||||
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
|
SendErrorResponse(Transaction,MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS);
|
||||||
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
|
ModbusRequestException(MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS,MODBUS_FCT_WRITE_MULTIPLE_REGISTERS);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user