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
Vincent Mailhol 2020-11-04 01:51:30 +09:00 committed by Oliver Hartkopp
parent fcc9a89c6e
commit 1e2c96e494
1 changed files with 13 additions and 4 deletions

View File

@ -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;
}
}