cangen: Enable sending of RTR CAN frames

Signed-off-by: Rostislav Lisovy <lisovy@gmail.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
pull/7/head
Oliver Hartkopp 2012-07-22 13:06:06 +02:00
parent 98930f1403
commit 9b99fafe1a
1 changed files with 10 additions and 1 deletions

View File

@ -101,6 +101,7 @@ void print_usage(char *prg)
" write() syscalls)\n"); " write() syscalls)\n");
fprintf(stderr, " -x (disable local loopback of " fprintf(stderr, " -x (disable local loopback of "
"generated CAN frames)\n"); "generated CAN frames)\n");
fprintf(stderr, " -R (send RTR frame)\n");
fprintf(stderr, " -v (increment verbose level for " fprintf(stderr, " -v (increment verbose level for "
"printing sent CAN frames)\n\n"); "printing sent CAN frames)\n\n");
fprintf(stderr, "Generation modes:\n"); fprintf(stderr, "Generation modes:\n");
@ -141,6 +142,7 @@ int main(int argc, char **argv)
unsigned char dlc_mode = MODE_RANDOM; unsigned char dlc_mode = MODE_RANDOM;
unsigned char loopback_disable = 0; unsigned char loopback_disable = 0;
unsigned char verbose = 0; unsigned char verbose = 0;
unsigned char rtr_frame = 0;
int count = 0; int count = 0;
uint64_t incdata = 0; uint64_t incdata = 0;
@ -165,7 +167,7 @@ int main(int argc, char **argv)
signal(SIGHUP, sigterm); signal(SIGHUP, sigterm);
signal(SIGINT, sigterm); signal(SIGINT, sigterm);
while ((opt = getopt(argc, argv, "ig:eI:L:D:xp:n:vh?")) != -1) { while ((opt = getopt(argc, argv, "ig:eI:L:D:xp:n:vRh?")) != -1) {
switch (opt) { switch (opt) {
case 'i': case 'i':
@ -224,6 +226,10 @@ int main(int argc, char **argv)
loopback_disable = 1; loopback_disable = 1;
break; break;
case 'R':
rtr_frame = 1;
break;
case 'p': case 'p':
polltimeout = strtoul(optarg, NULL, 10); polltimeout = strtoul(optarg, NULL, 10);
break; break;
@ -268,6 +274,9 @@ int main(int argc, char **argv)
frame.can_id &= CAN_SFF_MASK; frame.can_id &= CAN_SFF_MASK;
} }
if (rtr_frame)
frame.can_id |= CAN_RTR_FLAG;
if (extended) if (extended)
frame.can_id |= CAN_EFF_FLAG; frame.can_id |= CAN_EFF_FLAG;