X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/102b0fcc467c77d0a8f82cfee060353e3cf17261..c6d6f58c34e1b6a4c03d1e86d1abf48eeb6f5624:/lincan/utils/sendburst.c diff --git a/lincan/utils/sendburst.c b/lincan/utils/sendburst.c index 0e32b63..4d715d1 100644 --- a/lincan/utils/sendburst.c +++ b/lincan/utils/sendburst.c @@ -10,8 +10,11 @@ int canmsg_flags = 0; unsigned long canmsg_id = 5; +int block = 10; +int count = 0; int can_wait_sec = 1; +int o_sync_fl = 0; char *can_dev_name = "/dev/can0"; @@ -28,7 +31,10 @@ usage(void) printf(" -d, --device name of CAN device [/dev/can0]\n"); printf(" -i, --id ID of generated messages\n"); printf(" -f, --flags CAN filter flags\n"); + printf(" -s, --sync open in synchronous mode\n"); printf(" -w, --wait number of seconds to wait between messages\n"); + printf(" -b, --block number of messages in block\n"); + printf(" -c, --count number of sent blocks of messages\n"); printf(" -p, --prefix string prefix for output\n"); printf(" -V, --version show version\n"); printf(" -h, --help this usage screen\n"); @@ -40,7 +46,10 @@ int main(int argc, char *argv[]) { "uldev", 1, 0, 'd' }, { "id", 1, 0, 'i' }, { "flags", 1, 0, 'f' }, + { "sync", 0, 0, 's' }, { "wait", 1, 0, 'w' }, + { "block", 1, 0, 'b' }, + { "count", 1, 0, 'c' }, { "prefix",1, 0, 'p' }, { "version",0,0, 'V' }, { "help", 0, 0, 'h' }, @@ -51,7 +60,7 @@ int main(int argc, char *argv[]) struct canmsg_t sendmsg={0,0,5,0,8,{1,2,3,4,5,6,7,8}}; int fd, ret,i,j; - while ((opt = getopt_long(argc, argv, "d:i:f:w:p:Vh", + while ((opt = getopt_long(argc, argv, "d:i:f:sw:b:c:p:Vh", &long_opts[0], NULL)) != EOF) switch (opt) { case 'd': can_dev_name=optarg; @@ -62,9 +71,18 @@ int main(int argc, char *argv[]) case 'f': canmsg_flags = strtol(optarg,NULL,0); break; + case 's': + o_sync_fl = 1; + break; case 'w': can_wait_sec = strtol(optarg,NULL,0); break; + case 'b': + block = strtol(optarg,NULL,0); + break; + case 'c': + count = strtol(optarg,NULL,0); + break; case 'p': prt_prefix_in = optarg; break; @@ -77,7 +95,7 @@ int main(int argc, char *argv[]) exit(opt == 'h' ? 0 : 1); } - if ((fd=open(can_dev_name, O_RDWR)) < 0) { + if ((fd=open(can_dev_name, O_RDWR | (o_sync_fl? O_SYNC:0))) < 0) { perror("open"); printf("Error opening %s\n", can_dev_name); exit(1); @@ -87,7 +105,7 @@ int main(int argc, char *argv[]) j=0; while (1) { - for(i=0;i<10;i++) { + for(i=0;i