On 06/27/2011 07:39 PM, Andrew Tannenbaum wrote:
> Wolfgang Grandegger wrote:
>> On 06/16/2011 05:20 PM, Andrew Tannenbaum wrote:
>>> I was trying to use the Xenomai RT-Socket-CAN rtcanrecv in a Tcl/Tk
>>> script GUI wrapper.
>>>
>>> rtcanrecv uses printf to stdout, and it line-buffers when attached to a
>>> tty, but it uses larger buffers (so it is unusable) when run from a
>>> script with no tty.
>>>
>>> Tcl does stdio with pipes rather than ptys (that is, Tcl thinks it has
>>> no tty for stdio). I think both bash and perl use ptys (and so don't
>>> have this problem). I haven't done a more thorough survey, but that's
>>> not the point.
>>>
>>> I think it would be nice to modify rtcanrecv so it can write stdout in
>>> line-buffered mode. If you think this is a good idea, please either set
>>> line buffering with
>>>
>>> setvbuf(stdout, NULL, _IOLBF, 0);
>>>
>>> at the top of src/utils/can/rtcanrecv.c:rt_task() or
>>>
>>> fflush(stdout);
>>>
>>> after the printf("\n") at the bottom of rt_task(), or you could add a
>>> command line getopt option for line-buffering that would do one of the
>>> above.
>>
>> I would prefer the latter, patches are welcome. Be aware that using
>> printf will switch to secondary mode which should be avoided if
>> real-time is required.
>>
>> Wolfgang.
>>
>
> Wolfgang,
>
> rtcanrecv already exists using printf, I'm just changing the buffering.
> I added a -L (line-buffer) getopt switch (default=off), as you
> suggested. I added it to the C source and the man page.
>
> Attached are two diff patch files, one for rtcanrecv.c and one for
> rtcanrecv.man.in . I see there is a generated version of the html man
> page in the tar file, I assume that is created automatically, so I
> didn't patch it. I created the patches within the folders containing
> the source files, and I diffed from filenames foo.orig to foo. I am not
> aware of the naming protocol for patches in the development tree, but
> these are simple patches so I hope they are sufficient.
Hi,
These patches look fine though we prefer usually to generate them such
that they can be applied with patch -p1. git makes them that way.
Anyway, Wolfgang, if you are OK with the patches I will merge them.
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help