Manufacturing Engineering Laboratory National Institute of Standards and Technology
ISD Research Areas
ISD home About ISD ISD Research Areas ISD's Products and Services What's New in ISD Search ISD

 

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
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. For more info on posemath you may also want to check out: Karl Murphy's Posemath Examples
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.
Using generic.def for RCS Applications
Describes the RCS Directory structure and the use of generic.def to ease development of applications on multiple platforms and allow multiple programmers to work together more easily.
RCS Library Installation Instructions
Provides instructions for getting and making the RCS Library.
A Quick C++ Introduction for RCS Library Users
An introduction to C++ intended primarily for C programmers who need to learn just enough C++ to use the RCS Library. It covers the definition of classes, constructors, destructors, inheritance, and virtual functions.
RCS Library Version Functions
Documentation for some functions for determining at run-time which version of the RCS library your using.
EMC (Enhanced Machine Controller) links

Commercial Product Disclaimer
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
DISCLAIMER: This software was produced by the National Institute of Standards and Technology (NIST), an agency of the U.S. government, and by statute is not subject to copyright in the United States. Recipients of this software assume all responsibility associated with its operation, modification, maintenance, and subsequent redistribution.


Last Modified: March 5, 2006

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