cangen: added -b switch enabling bitrate switch in canfd frames.
Signed-off-by: Sven Schmitt <sven.schmitt@gmx.net> Acked-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>pull/16/head
parent
3f04e8a1fe
commit
4a154cf3c4
18
cangen.c
18
cangen.c
|
|
@ -84,8 +84,10 @@ void print_usage(char *prg)
|
|||
fprintf(stderr, " -e (generate extended frame mode "
|
||||
"(EFF) CAN frames)\n");
|
||||
fprintf(stderr, " -f (generate CAN FD CAN frames)\n");
|
||||
fprintf(stderr, " -b (generate CAN FD CAN frames"
|
||||
" with bitrate switch (BRS))\n");
|
||||
fprintf(stderr, " -R (send RTR frame)\n");
|
||||
fprintf(stderr, " -m (mix -e -f -R frames)\n");
|
||||
fprintf(stderr, " -m (mix -e -f -b -R frames)\n");
|
||||
fprintf(stderr, " -I <mode> (CAN ID"
|
||||
" generation mode - see below)\n");
|
||||
fprintf(stderr, " -L <mode> (CAN data length code (dlc)"
|
||||
|
|
@ -136,6 +138,7 @@ int main(int argc, char **argv)
|
|||
unsigned char ignore_enobufs = 0;
|
||||
unsigned char extended = 0;
|
||||
unsigned char canfd = 0;
|
||||
unsigned char brs = 0;
|
||||
unsigned char mix = 0;
|
||||
unsigned char id_mode = MODE_RANDOM;
|
||||
unsigned char data_mode = MODE_RANDOM;
|
||||
|
|
@ -170,7 +173,7 @@ int main(int argc, char **argv)
|
|||
signal(SIGHUP, sigterm);
|
||||
signal(SIGINT, sigterm);
|
||||
|
||||
while ((opt = getopt(argc, argv, "ig:efmI:L:D:xp:n:vRh?")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "ig:ebfmI:L:D:xp:n:vRh?")) != -1) {
|
||||
switch (opt) {
|
||||
|
||||
case 'i':
|
||||
|
|
@ -189,6 +192,11 @@ int main(int argc, char **argv)
|
|||
canfd = 1;
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
brs = 1; /* bitrate switch implies CAN FD */
|
||||
canfd = 1;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
mix = 1;
|
||||
canfd = 1; /* to switch the socket into CAN FD mode */
|
||||
|
|
@ -356,6 +364,8 @@ int main(int argc, char **argv)
|
|||
if (canfd){
|
||||
mtu = CANFD_MTU;
|
||||
maxdlen = CANFD_MAX_DLEN;
|
||||
if (brs)
|
||||
frame.flags |= CANFD_BRS;
|
||||
} else {
|
||||
mtu = CAN_MTU;
|
||||
maxdlen = CAN_MAX_DLEN;
|
||||
|
|
@ -476,7 +486,9 @@ resend:
|
|||
i = random();
|
||||
extended = i&1;
|
||||
canfd = i&2;
|
||||
rtr_frame = ((i&12) == 12); /* reduce RTR frames to 1/4 */
|
||||
if (canfd)
|
||||
brs = i&4;
|
||||
rtr_frame = ((i&24) == 24); /* reduce RTR frames to 1/4 */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue