What is the messages per second (msgs/s) that the current code can achieve?
If your parsing/processing code can't handle more than 25 messages a second, then no amount of buffering is going to help.
Code:
case Can_Msgs.mMAP_SPEED_INFO.msg_id:
RawCanData = xDataConv.data_to_ui64(CanData);
i = filt_CParsDbcFile.Search4Message(uMsgId);
if ( i != -1 )
{
Can_Msgs.mMAP_SPEED_INFO.last_receive_time = GetTickCount();
j = filt_CParsDbcFile.Search4Signal(uMsgId,"MapCrntPstSpdLimVld" );
if( j != -2 )
{
Startbit = (63-((int)filt_CParsDbcFile.m_pSigDescs[j].startByte*8))-(7-(int)filt_CParsDbcFile.m_pSigDescs[j].startBit);
Can_Msgs.mMAP_SPEED_INFO.MapCrntPstSpdLimVld = xDataConv.get_bool(RawCanData, Startbit);
}
}
break;
That code needs to be profiled to see what's taking so long. If that code can't handle 25 msgs/s, then which part is taking so long?
gg