In xenomai-2.5.5.2/src/utils/can/rtcansend.c, the code that handles
local loopback mode looks like this:
static void print_usage(char *prg)
{
...
" -L, --loopback=0|1 switch local loopback off or on\n"
...
}
static int loopback=-1;
switch (opt) {
...
case 'L':
loopback = strtoul(optarg, NULL, 0);
break;
...
}
...
if (loopback >= 0) {
ret = rt_dev_setsockopt(s, SOL_CAN_RAW, CAN_RAW_LOOPBACK,
&loopback, sizeof(loopback));
if (ret < 0) {
fprintf(stderr, "rt_dev_setsockopt: %s\n", strerror(-ret));
goto failure;
}
if (verbose)
printf("Using loopback=%d\n", loopback);
}
It looks like the default value for loopback is -1, and if you set it to
0 or 1, it turns loopback on, which seems strange. I don't understand
rt_dev_setsockopt() fully, so I'm not sure if it's a bug - I don't know
if -1 and 0 and 1 are three separate loopback states, but I think it
merits attention. I think either the code is wrong or the help string
and man page are not clear.
-Andy
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help