cangen: allow DLC > 8 in increment generation mode if -8 option is given
Currently, the -8 option allows DLCs greater than 8 in mix mode only. Add the option to also generate such DLCs in increment mode. e.g.: 'cangen -8 -Li can0' Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>pull/260/head
parent
fcc9a89c6e
commit
1e2c96e494
17
cangen.c
17
cangen.c
|
|
@ -386,7 +386,6 @@ int main(int argc, char **argv)
|
|||
|
||||
while (running) {
|
||||
frame.flags = 0;
|
||||
ccf->len8_dlc = 0;
|
||||
|
||||
if (count && (--count == 0))
|
||||
running = 0;
|
||||
|
|
@ -428,6 +427,8 @@ int main(int argc, char **argv)
|
|||
ccf->len8_dlc = frame.len;
|
||||
|
||||
frame.len = 8; /* for about 50% of the frames */
|
||||
} else {
|
||||
ccf->len8_dlc = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -507,12 +508,20 @@ resend:
|
|||
if (dlc_mode == MODE_INCREMENT) {
|
||||
|
||||
incdlc++;
|
||||
incdlc %= CAN_MAX_RAW_DLC + 1;
|
||||
|
||||
if (canfd && !mix) {
|
||||
incdlc &= 0xF;
|
||||
if (canfd && !mix)
|
||||
frame.len = can_dlc2len(incdlc);
|
||||
else if (len8_dlc) {
|
||||
if (incdlc > CAN_MAX_DLEN) {
|
||||
frame.len = CAN_MAX_DLEN;
|
||||
ccf->len8_dlc = incdlc;
|
||||
} else {
|
||||
incdlc %= 9;
|
||||
frame.len = incdlc;
|
||||
ccf->len8_dlc = 0;
|
||||
}
|
||||
} else {
|
||||
incdlc %= CAN_MAX_DLEN + 1;
|
||||
frame.len = incdlc;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue