Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

RCS Design Tool Instructions

The RCS Design Tool Instructions


The National Institute of Standards and Technology (NIST) has been using the Real-time Control System (RCS) Reference Model Architecture for building control systems based on a hierarchy of cyclically executing control modules. The RCS-Design tool is a Java-based program that allows users to layout a hierarchy of these controllers and automatically generate the source code, makefiles and configuration files needed to build and run the application.


A drop down list in the upper right corner of the design tool allows the user to select from several different views.
The Hierarchy view contains a large blue area on the right where a graphic of the hierarchy will be shown, and some controls for adding modules/commands on the left.(See Picture.)
The options view allows the user modify miscellaneous options.(See Picture.)
The loops view allows the user to group modules in loops that are run inside the same process and set some options for the loop. (See Picture.)
NML Code Generation
The NML Code Generation view allows the user to generate NML update functions, format functions and constructors in C++ or Java. (See Picture.)
Files View
The files view allows the user to view or edit all of the files in the project created by the RCS-Design tool. (See Picture.)Top Buttons
A row of usa-buttons on the top is available regardless of selected view.
Create Source
Create all the source and configuration files in the application.
Print the graphic of the hierarchy.
Run the makefile interpreter to compile the application.
Run the application and the diagnostics tool to control it.
Import another controller into this application. A dialog window will open for the user to select the ".cfg" file of the controller to import. The top-level module of the selected controller will be added as a subordinate of the currently selected module.
Open the ".cfg" of a controller to view/modify.
Begin working on a new application.

Hierarchy View

The hierachy view provides a graphic of the controller's hierachy. Subordinates are placed below their supervisor with a line connecting them. Supervisors send commands to thier subordinates and monitor the subordinates status. The currently selected module will be black.

The module can be selected either by clicking on its icon or its name in the modules list. To add an additional module, enter the name in the text field under "Add Module". It will be a subordinate of the currently selected module. A module can be deleted by selecting it and clicking the "Delete Module" usa-button.

Under the "Delete Module" usa-button is a drop down list that allows the user to select what information is displayed about the current module. There are the following choices:

This option provides a list of subordinates. The hierarchy can be reorganized by selecting and deselecting subordinates in the list.
This option provides a list of commands that the module will accept. Commands can be added or deleted from the list.
Aux. Channel
This option provides a list of auxilliary channels. Auxilliary channels provide a general method of communication that can be used between any two modules regardless of where they are in the hierarchy.

Options View

The following is a list of options that can be controlled from this view: (Many of these options can also be set on the command-line when the RCS-Design tool is run as a stand-alone application.)

Application Directory
The directory where the release version of the application should be placed.
User Directory
The directory where the development version for this user should be placed.
RCS Library Directory
The directory where the RCS Library is installed.
Application Name
A name that is used in several source files to keep the files in this application unique. It is recommended that the name contain no spaces or punctuation. It must be less than 5 characters to work in DOS.
C++ Source File Extension
The extension to use for C++ source files. (ie. .cpp, .C, .cc)
C++ Header File Extension
The extension to use for C++ header files. (ie. .hpp, .h, .hh)
C++ Object File Extension
The extension that your C++ compiler adds to object files. (ie, .o, .obj)
Make Command
A command that when executed will invoke the makefile interpreter. There are some scripts included in the RCS library to solve some problems that occur on some systems when the make interpreter is invoked directly.
Run Command
A command to execute to run the application. A script-file is normally automatically generated for this purpose.
Platforms List
For each platform there is a directory for object files and a .def file which specifies the compiler options, what compiler to use etc. The user can build the same application for multiple platforms by just selecting different platforms before each "make".
Replace Existing File
When a file already exist and the user tries to create the file again either though the "Files View" or with the "Create Source" the tool can either replace it with an updated version, leave it alone or ask the user.
Use Merger
If this checkbox is checked then whenever the tool replaces a file it will do a line-by-line comparison of the new file with the old file and attempt to preserve user edits in the old file and merge the two together.
Make Backups
When the tool replaces an existing file it will first rename the file according to the following formula if this checkbox is checked:
<original file name>+".~n~", where n is an integer that makes the backup unique.
(This preserves your work but can create a large number of backup files, all the backups can be deleted by clicking the "Remove Backups" usa-button.)
Development Platform
If UNIX is selected the makefiles generated are compatible with the GNU make program, if Windows 95/NT is selected the makefiles will be compatible with NMAKE a program that comes with Microsoft Visual C++.
List the extra object libraries that should be linked into your application.
List the extra directories where the compiler should look for include files.
Print out a variety of messages as you use the tool for debugging the tool.

Loops View

The loops view allows the user to group modules into loops. Each loop may have a differnt cycle time.

NML Code Generation

See Code Generation Instructions 

Files View

The files view allows you to see and update each of the files in the application. If the file does not exist or is not up-to-date when you select it from the list it will be created and displayed. Otherwise, it will just be displayed. If you edit code in the text area you can save your changes with the "Save" usa-button. To reintegrate changes from one of the other views click the "Update" usa-button.

Last Modified: 04/09/98

If you have questions or comments regarding this page or you would like to be notified of changes to the RCS library via email, please contact Will Shackleford at shackle [at] (shackle[at]cme[dot]nist[dot]gov)

Created July 11, 2014, Updated January 6, 2017