Re: Two questions

Herman Bruyninckx <[email protected]> Mon, 14 Nov 2005 19:34:25 +0100 (CET)
Newsgroups gmane.science.robotics.orocos.user
Message-ID <[email protected]>
On Mon, 14 Nov 2005, Patrycjusz Szczepaniak wrote:

[...]
> I have an Orocos application and a device driver that is a module(is a
> part of a Linux kernel). I want this Orocos application to work in a hard
> real-time. AFAIK to do that I need to write an Orocos device driver that
> will be a part of Orocos. Could you tell me how to write a device driver
> in Orocos? And how to do it so the driver could handle interrupts in
> RTAI? Mabe you could point me manuals/howtos/documents?
>
There is nothing special about a device driver "in Orocos": you have your
normal realtime device driver, and wrap the provided generic interfaces
around it (e.g., analog in and out, encoder, ...).

It is possible that your driver requires working with interrupts or even
have its own realtime thread. This is not visible from the Orocos hardware
interface.

Of course, you _could_ use the Orocos "Task" primitive to implement a
driver (if that Task offers the advanced abstract OS primitives you would
like to use, such as commands or events = interrupts), but since that
driver is always very hardware-specific, this would not end up in the
Orocos source tree.

But make sure that your driver is really realtime, if you want to use it in
a realtime Orocos task. Normal Linux drivers are almost never usable as
realtime drivers...

Feel free to post a mail with more details about your specific driver:
there will be many people on this list with similar questions, or with
enough curiosity to get to know what hardware is being used for control :-)

Herman

--
   K.U.Leuven, Mechanical Eng.,  Mechatronics & Robotics Research Group
     <http://people.mech.kuleuven.be/~bruyninc> Tel: +32 16 322480
_______________________________________________
Orocos mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm