/**************************************************************************/
/* CAN latency tester */
-/* Copyright (C) 2010, 2011, 2012 Michal Sojka, DCE FEE CTU Prague */
+/* Copyright (C) 2010, 2011, 2012, 2013 Michal Sojka, DCE FEE CTU Prague */
/* License: GPLv2 */
/**************************************************************************/
/* printf("Frame: %s\n", received); */
if (frame->can_id & CAN_EFF_FLAG) {
+ // bit 31 0
+ // [0] |...........................sBBBB| s = SOF, B = Base ID (11 bits)
+ // [1] |BBBBBBBSIEEEEEEEEEEEEEEEEEER10DLC4| S = SRR, I = IDE, E = Extended ID (18 bits), DLC4 = DLC
+ // [2] |00000000111111112222222233333333| Data bytes, MSB first
+ // [3] |44444444555555556666666677777777|
bitmap[0] =
((frame->can_id & CAN_EFF_MASK) >> 25);
bitmap[1] =
start = 27;
end = 64 + 8*frame->can_dlc;
} else {
+ // bit 31 0
+ // [0] |.............sIIIIIIIIIIIRE0DLC4| s = SOF, I = ID (11 bits), R = RTR, E = IDE, DLC4 = DLC
+ // [1] |00000000111111112222222233333333| Data bytes, MSB first
+ // [2] |44444444555555556666666677777777|
bitmap[0] =
(frame->can_id << 7) |
(!!(frame->can_id & CAN_RTR_FLAG)) << 6 |