Configuration Server (cfgsrv)

The configuration server is a net work server that provides the interface to the real-time host for the Control Panel and HMI operations. It provides all the necessary services to configure and run a test session. It should be the only access mechanism into the real-time system for configuration purposes.

The cfgsrv program does not require real-time privilege. It runs on non-shielded CPU 0. It will start the sched process to run a test session and runs as root in order to do so.

Client applications such as the Control Center connect to cfgsrv using a TCP/IP socket on port 9205. This connection is known as the command connection and is used to send commands and exchange configuration information.

Protocol

The command protocol between a client and the server is an ASCII protocol exchanging requests and responses. All requests are specified by a unique keyword. The server acknowledges the request via a reply containing a numerical completion code. A positive code denotes success; a negative code denotes that an error occurred. When the request is successful, the client is expected to process the rest of the data buffer accompanying the reply. The configuration APIs handle all this transparently for the user.

Configuration APIs

All the functionality of the database configuration and test running have been wrapped in C and Java configuration APIs. A client program should not send messages directly on the connected socket, but use the API calls instead See the configuration APIs reference manuals for a complete description of the programming interface.

Data Updates

The configuration server also sends updates of RTDB values to clients, such as the Real-Time Viewer or HMI displays, wishing to display the data in real-time. The data is sent in binary form for continuous update at the rate of the simulation loop or in ASCII form for a single value update. The updates are sent on a different TCP/IP connection and port than the command connection described above.

Upon receipt of a refresh request for a specific RTDB item on the command port, the configuration server ill open a connection back to the client if one does not already exist. Once the connection is established, all data updates are sent to the client on that port. This connection is unidirectional only and is used to send updated data from the server to the client. It cannot be used to send packets from the client to the server.

The configuration server also sends refreshes of log messages so that the log messages generated by the RT host can be viewed in real-time on a remote GUI.

Security

The configuration server administrators access the real-time host via a login/password mechanism. A user must first log in to the real-time host before gaining access to any of the services provided by the configuration server. Three levels of privileges are supported:

Administrator

An administrator can configure the real time host. He can create/delete/modify RTDB items and mapping information, add scripts and models, and create and run tests. He can also add or delete real-time host users and change their privilege level.

Operator

An operator can start and stop a test run, but cannot modify the database.

Monitor

A monitor can only visualize a running test. He cannot modify the RTDB or start or stop a test.