on preStart
{
if (linRegisterOnFrameResponseDataChangedCallback("OnFrameResponseDataChanged"))
{
write("linRegisterOnFrameResponseDataChangedCallback succeeded.");
}
else
{
write("linRegisterOnFrameResponseDataChangedCallback failed.");
}
}
void OnFrameResponseDataChanged(linFrame* frm)
{
byte checksum;
dword i;
if (frm.id != 50 || frm.msgChannel != 1)
{
// filter for one specific frame
return;
}
// pseudo checksum calculation over bytes 1 - dlc
checksum = 0x55;
for (i = 1; i < frm.dlc; i++)
{
checksum ^= frm.byte(i);
}
// set first byte of frame to calculated checksum
frm.byte(0) = checksum;
}