|
1 |
| -#define MAX_BITS_CAN_PACKET (64+44+25) |
| 1 | +#define MAX_BITS_CAN_PACKET (200) |
2 | 2 |
|
3 | 3 | // returns out_len
|
4 | 4 | int do_bitstuff(char *out, char *in, int in_len) {
|
@@ -71,8 +71,19 @@ int get_bit_message(char *out, CAN_FIFOMailBox_TypeDef *to_bang) {
|
71 | 71 | // test packet
|
72 | 72 | int dlc_len = to_bang->RDTR & 0xF;
|
73 | 73 | len = append_int(pkt, len, 0, 1); // Start-of-frame
|
74 |
| - len = append_int(pkt, len, to_bang->RIR >> 21, 11); // Identifier |
75 |
| - len = append_int(pkt, len, 0, 3); // RTR+IDE+reserved |
| 74 | + |
| 75 | + if (to_bang->RIR & 4) { |
| 76 | + // extended identifier |
| 77 | + len = append_int(pkt, len, to_bang->RIR >> 21, 11); // Identifier |
| 78 | + len = append_int(pkt, len, 3, 2); // SRR+IDE |
| 79 | + len = append_int(pkt, len, (to_bang->RIR >> 3) & ((1<<18)-1), 18); // Identifier |
| 80 | + len = append_int(pkt, len, 0, 3); // RTR+r1+r0 |
| 81 | + } else { |
| 82 | + // standard identifier |
| 83 | + len = append_int(pkt, len, to_bang->RIR >> 21, 11); // Identifier |
| 84 | + len = append_int(pkt, len, 0, 3); // RTR+IDE+reserved |
| 85 | + } |
| 86 | + |
76 | 87 | len = append_int(pkt, len, dlc_len, 4); // Data length code
|
77 | 88 |
|
78 | 89 | // append data
|
|
0 commit comments