Code: Select all
8182873 Message P-CAN received Id=1, Len=4 0 0 0 0
8182873 Message P-CAN received Id=2, Len=4 0 0 0 4
8182873 Message P-CAN received Id=3, Len=4 0 0 0 8
8182873 Message P-CAN received Id=2, Len=4 0 0 0 4
8182873 Message P-CAN received Id=3, Len=4 0 0 0 8
Is there any fix available?
You could see a code that we accept only messages with stsResult==PCAN_ERROR_OK.
Code: Select all
TPCANStatus stsResult = CAN_Read(myObj->m_Channel, &PeakCanMsg, &TimestampBuffer);
while(stsResult==PCAN_ERROR_OK && PeakCanMsg.LEN<=sizeof(MessageCanUDP::Payload))
{
MessageCanUDP *pMsg = new MessageCanUDP;
pMsg->CobID = PeakCanMsg.ID;
pMsg->Type = PeakCanMsg.MSGTYPE;
pMsg->Length = PeakCanMsg.LEN;
memcpy(pMsg->Payload, PeakCanMsg.DATA, PeakCanMsg.LEN);
pMsg->Timemark = TimestampBuffer.micros + 1000*TimestampBuffer.millis + 1000000*TimestampBuffer.millis_overflow;
{ // locked scope, do not remove curly braces.
CritSectionLocker Lck(myObj->ListLocker);
myObj->RxList.push_back(pMsg);
}
myObj->PacketCounter++;
myObj->m_WaitCondition->SetEvent();
ErrorCount = 0;
stsResult = CAN_Read(myObj->m_Channel, &PeakCanMsg, &TimestampBuffer);
}