From 9b99fafe1a88571c4ca202505f76e09af257d0b4 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Sun, 22 Jul 2012 13:06:06 +0200 Subject: [PATCH] cangen: Enable sending of RTR CAN frames Signed-off-by: Rostislav Lisovy Signed-off-by: Oliver Hartkopp --- cangen.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cangen.c b/cangen.c index 4f37808..efb8251 100644 --- a/cangen.c +++ b/cangen.c @@ -101,6 +101,7 @@ void print_usage(char *prg) " write() syscalls)\n"); fprintf(stderr, " -x (disable local loopback of " "generated CAN frames)\n"); + fprintf(stderr, " -R (send RTR frame)\n"); fprintf(stderr, " -v (increment verbose level for " "printing sent CAN frames)\n\n"); fprintf(stderr, "Generation modes:\n"); @@ -141,6 +142,7 @@ int main(int argc, char **argv) unsigned char dlc_mode = MODE_RANDOM; unsigned char loopback_disable = 0; unsigned char verbose = 0; + unsigned char rtr_frame = 0; int count = 0; uint64_t incdata = 0; @@ -165,7 +167,7 @@ int main(int argc, char **argv) signal(SIGHUP, 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) { case 'i': @@ -224,6 +226,10 @@ int main(int argc, char **argv) loopback_disable = 1; break; + case 'R': + rtr_frame = 1; + break; + case 'p': polltimeout = strtoul(optarg, NULL, 10); break; @@ -268,6 +274,9 @@ int main(int argc, char **argv) frame.can_id &= CAN_SFF_MASK; } + if (rtr_frame) + frame.can_id |= CAN_RTR_FLAG; + if (extended) frame.can_id |= CAN_EFF_FLAG; -- 2.39.2