Real-Time Control Systems Library –– Software and Documentation

The Real-Time Control Systems library is an archive of free C++, Java and Ada code, scripts, tools, makefiles, and documentation developed to aid programmers of software to be used in real-time control systems (especially those using the Reference Model Architecture for Intelligent Systems Design).

The following documents describe the library in more detail:

Diagnostics Tool (Hierarchy View) Diagnostics Tool (Graph View)

Download

NML Tutorial
A 90-page tutorial presentation on NML (PDF format)
Report Bugs/Get Support
----
The NML Programmer's Guide (C++ Version)
Describes the use of the Neutral Message Language(NML) components of the library and related parts of the Communication Management System(CMS). It includes distributed application development in C++ and creating custom NML vocabularies. (Examples and function prototypes are given in C++.)
The NML Programmer's Guide (Java Version)
Describes the use of the Neutral Message Language(NML) components of the library and related parts of the Communication Management System(CMS). It includes distributed application development in Java and creating custom NML vocabularies. (Examples and function prototypes are given in Java.)
The NML Programmer's Guide (Ada Version)
Describes the use of the Neutral Message Language(NML) components of the library and related parts of the Communication Management System(CMS). It includes distributed application development in Ada and creating custom NML vocabularies. (Examples and function prototypes are given in Ada.) Added October 24,2004
The NML Configuration Files
Describes writing an NML Configuration file and the options available. Updated March,2006
The Version 2.0 NML Configuration File Format and Tool
Describes a newer experimental version of the NML Configuration file, the options available and a tool needed to convert the new format to the old format.
The NML Configuration Server
Describes a program that can be used instead of or in addition to NML Configuration files. It determines the information normally stored in a configuration file as NML applications run. Added April,2004
NML Message Files
Describes the file format, API for reading and writing and tools for displaying data in NML Packed Message Files. Added June,2009
The NML_SET class
The NML Set class is a class intended to make it easier to write applications to monitor or interact with multiple NML buffers especially when the number of such buffers is not fixed or known when the application starts. It is designed to work with the NML Configuration Server. Added July,2004
NML support for XML
Describes a number of ways NML can be used to read or send XML.
NML Subdivisions
Describes some extensions to NML that allow advanced users to access subdivisions within an NML buffer.
The NML Query/Reply Service
Describes some extensions to NML that allow advanced users to create Query/Reply Services more easily.
NML Performance Results
A summary of the results of some performance tests run on NML, including some hints at optimizing NML and running your own tests.
Supplementary NML Timing Diagnostics Tools
Describes some tools and configuration options that allow users to obtained detailed information on the timing of reads and writes to thier NML buffers.
NML Code Generator Instructions
Instructions for using the NML Code Generator to create C++ update and format functions or Java NML definitions. Updated March,2006
NML_MODULE
Describes the NML_MODULE base class which can be used to provide a template or framework for RCS applications.
RCS Java-based Diagnostics Tool
A tool written as a java applet that allows programmers to see the status and send commands to any RCS module.
RCS Java-based Diagnostics Tool Instructions
Instructions on how to build applications for use with the diagnostics tool.
RCS-Design Tool
A tool written as a java applet that allows programmers to create RCS applications graphically and generates source code.
RCS-Design Tool Instructions
Instructions on how to build applications with the RCS-Design tool.
RCS Data Plotter
A Java applet which plots data on a cartesian or polar graph, read either in real-time or from a text file.
Socket Interface to NML
Describes how to connect to an NML server using sockets directly. This information should also be useful for other languages where the C++ NML client interface is not available.
RCS Posemath Library
A library of classes for representing positions, rotations, and translations in a variety of coordinate systems and the functions to add/subtract/multiply/divide/convert them.
RCS Library Lower Level Utilities
Describes many of the lower level utilities used to create the NODE, CMS, and NML components of the RCS Library but which may be useful on their own. Includes timers, semaphores, linked-lists, printing, and windows functions.
RCS Library Installation Instructions
Provides instructions for getting and making the RCS Library.
RCS Library Version Functions
Documentation for some functions for determining at run-time which version of the RCS library your using.

Commercial Product Disclaimer
Certain commercial equipment, instruments, or materials are identified in this paper to specify the experimental procedure adequately. Such identification is not intended to imply recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that the materials or equipment identified are necessarily the best available for the purpose.
Software Disclaimer/Copywrite Release
This software was developed at the National Institute of Standards and Technology by employees of the Federal Government in the course of their official duties. Pursuant to title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain. NIST Real-Time Control System software is an experimental system. NIST assumes no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic. We would appreciate acknowledgement if the software is used. This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.

Last Modified: July 16, 2014

If you have questions or comments regarding this page please contact Will Shackleford at shackle@nist.gov