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) {
|
while (running) {
|
||||||
frame.flags = 0;
|
frame.flags = 0;
|
||||||
ccf->len8_dlc = 0;
|
|
||||||
|
|
||||||
if (count && (--count == 0))
|
if (count && (--count == 0))
|
||||||
running = 0;
|
running = 0;
|
||||||
|
|
@ -428,6 +427,8 @@ int main(int argc, char **argv)
|
||||||
ccf->len8_dlc = frame.len;
|
ccf->len8_dlc = frame.len;
|
||||||
|
|
||||||
frame.len = 8; /* for about 50% of the frames */
|
frame.len = 8; /* for about 50% of the frames */
|
||||||
|
} else {
|
||||||
|
ccf->len8_dlc = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -507,12 +508,20 @@ resend:
|
||||||
if (dlc_mode == MODE_INCREMENT) {
|
if (dlc_mode == MODE_INCREMENT) {
|
||||||
|
|
||||||
incdlc++;
|
incdlc++;
|
||||||
|
incdlc %= CAN_MAX_RAW_DLC + 1;
|
||||||
|
|
||||||
if (canfd && !mix) {
|
if (canfd && !mix)
|
||||||
incdlc &= 0xF;
|
|
||||||
frame.len = can_dlc2len(incdlc);
|
frame.len = can_dlc2len(incdlc);
|
||||||
|
else if (len8_dlc) {
|
||||||
|
if (incdlc > CAN_MAX_DLEN) {
|
||||||
|
frame.len = CAN_MAX_DLEN;
|
||||||
|
ccf->len8_dlc = incdlc;
|
||||||
} else {
|
} else {
|
||||||
incdlc %= 9;
|
frame.len = incdlc;
|
||||||
|
ccf->len8_dlc = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
incdlc %= CAN_MAX_DLEN + 1;
|
||||||
frame.len = incdlc;
|
frame.len = incdlc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue