Projects / RTLab


RTLab is an RTLinux/RTAI-based data acquisition and control application. It is designed to help experimenters design and implement their hard realtime control experiements using higher abstractions than the services offered by RTAI or RTLinux. It is split into two parts. One is a user-space series of C++ classes (written for Qt) which implement a reference application called DAQSystem which is designed to acquire analog input voltage data and display it on the screen. DAQSystem communicates with rtlab.o, the realtime kernel module which is the second part of RTLab. The rtlab.o realtime kernel part is a kernel module that loads into RTLinux or RTAI and is responsible for driving COMEDI hardware for the purposes of data acquisition and realtime control. The module is extensible and features a 'plugin' architecture so that scientists who are savvy C programmers can easily leverage the existing framework for their own custom experiment logic. Experiment logic is specified by writing a kernel modules that gets called back for each scan rtlab.o acquires from the COMEDI hardware. In addition, data visualization and storage facilities exist in user space so that experimenters can instantly see graphical plots of their analog input data as it comes in from the hardware.

Operating Systems

Recent releases

  •  25 Nov 2003 22:22

    Release Notes: All channel mapping logic has been moved into the kernel to make plugin writing much easier, as the kernel and userspace now always agree on channel ID numbers. Channel mapping maps real channel IDs on the DAQ card to any arbitrary channel ID in the user interface so that one can re-order the numbering of channel IDs. A bug in the resync channel action which caused DAQSystem to crash on Qt 3.2.x has been fixed.

    •  01 Oct 2003 06:09

      Release Notes: This version adds three new plugins for effecting some simple control experiments, makes the ~/.daq_system/ config.ini preferences file machine-specific (with inherited defaults), so that NIS-based home accounts don't have preferences files that clobber each other, optimizes some of the graphing code, fixes gcc 3.2 compiler warnings, adds install/uninstall to make system, moves all the plugins into a plugins/ directory, and makes adding new plugins easier.

      •  04 Mar 2003 03:41

        Release Notes: A non-Realtime build and running option was added, which means that DAQSystem can run by itself without a Realtime rtlab.o kernel module to drive data acquisition. While this makes control impossible, for straight Data Acquisition, it is actually quite good. All acquisition is done via the threaded class ComediCoprocess, implemented via userspace COMEDI Commands. Basically, this means you can run RTLab without RTLinux or RTAI.

        •  18 Jan 2003 03:36

          Release Notes: Two exported functions were added to rtlab.o: rtpp_set_callback_frequency() and rtp_get_callback_frequency() for manipulating the frequency at which modules built on top of rtlab execute at. Some of the error messaging was fixed to format more cleanly. More intelligent warnings were added about running two copies of DAQSystem at once on the same computer.


          Project Spotlight


          A Fluent OpenStack client API for Java.


          Project Spotlight

          TurnKey TWiki Appliance

          A TWiki appliance that is easy to use and lightweight.