cangen: Added '-n <count>' commandline option analogue to candump tool.
Inspired by Uwe Bonnes.pull/7/head
parent
33ff70f940
commit
5d1dbedd19
16
cangen.c
16
cangen.c
|
|
@ -95,6 +95,8 @@ void print_usage(char *prg)
|
||||||
" generation mode - see below)\n");
|
" generation mode - see below)\n");
|
||||||
fprintf(stderr, " -p <timeout> (poll on -ENOBUFS to write frames"
|
fprintf(stderr, " -p <timeout> (poll on -ENOBUFS to write frames"
|
||||||
" with <timeout> ms)\n");
|
" with <timeout> ms)\n");
|
||||||
|
fprintf(stderr, " -n <count> (terminate after <count> CAN frames "
|
||||||
|
"- default infinite)\n");
|
||||||
fprintf(stderr, " -i (ignore -ENOBUFS return values on"
|
fprintf(stderr, " -i (ignore -ENOBUFS return values on"
|
||||||
" write() syscalls)\n");
|
" write() syscalls)\n");
|
||||||
fprintf(stderr, " -x (disable local loopback of "
|
fprintf(stderr, " -x (disable local loopback of "
|
||||||
|
|
@ -139,6 +141,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;
|
||||||
|
int count = 0;
|
||||||
uint64_t incdata = 0;
|
uint64_t incdata = 0;
|
||||||
|
|
||||||
int opt;
|
int opt;
|
||||||
|
|
@ -157,7 +160,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:vh?")) != -1) {
|
while ((opt = getopt(argc, argv, "ig:eI:L:D:xp:n:vh?")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
|
|
||||||
case 'i':
|
case 'i':
|
||||||
|
|
@ -220,6 +223,14 @@ int main(int argc, char **argv)
|
||||||
polltimeout = strtoul(optarg, NULL, 10);
|
polltimeout = strtoul(optarg, NULL, 10);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
count = atoi(optarg);
|
||||||
|
if (count < 1) {
|
||||||
|
print_usage(basename(argv[0]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case '?':
|
case '?':
|
||||||
case 'h':
|
case 'h':
|
||||||
default:
|
default:
|
||||||
|
|
@ -302,6 +313,9 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
while (running) {
|
while (running) {
|
||||||
|
|
||||||
|
if (count && (--count == 0))
|
||||||
|
running = 0;
|
||||||
|
|
||||||
if (id_mode == MODE_RANDOM) {
|
if (id_mode == MODE_RANDOM) {
|
||||||
|
|
||||||
frame.can_id = random();
|
frame.can_id = random();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue