This server is a central source for state data for aircraft/spacecraft, and management of multiple client data requests.
The purpose of this software is to decouple display and data interface functions by developing a central data server. By using the centralized data server, flight displays can be easily transferred between simulators and research airplanes without having to reprogram flight display graphics. Therefore, to drive flight displays, only a single software interface needs to be written to communicate with the data server. Further, the interface to the server has the ability to add and remove variables from the data server in real-time. This allows for great flexibility in the use of the data server. This design allows data to be centrally recorded and played back on the flight deck displays for later analysis by researchers.
The data server provides three basic functions: data server, data playback, and data recording. The data server can be accessed by two methods: a local, shared memory connection, or a remote network connection. This is done automatically by the software, and is based on the host name of where the server resides. The low-level network interface is handled by Remote Procedure Call (RPC). Once a connection is made to the server, data can be placed or read from the server. Currently, the data server supports integer, long, float, and double data types.
Data is stored on the server via a “key” and value. The key is a user-defined name. For example, an aircraft simulator could create a float variable named “AirspeedKnots” and place the value of 140.0 in the data value. Then, any clients requesting the value of the key “AirspeedKnots” would retrieve the current airspeed value.
Data values can be recorded at a userdefined rate. For example, the user can record data at 20 frames per second, and the data will be recorded to an ASCII file. Files are automatically time and date stamped for easy reference. In addition, the user can specify text tags to help identify a particular recording. Being an ASCII file adds great flexibility in that the user can create interfaces to read the data. For example, a MATLAB script can be written to read the file and analyze the data in MATLAB. The software also has the ability to snapshot a single frame of data on a button click.
The data recording files created by the data server can be directly read into the server to drive data. This is particularly useful in testing displays. The playback of data has VCR-type controls that allow the user to stop, pause, and play the data. Another advantage of recording in ASCII format is that users can create playback files and load them directly into the data server. To help clients easily connect to the server, a library has been developed that allows easy access. A few simple commands allow access to many of the server functions.
This work was done by Jarvis Arthur, Steven Williams, and Kevin Shelton of Langley Research Center; and Robert Normal of Boeing. LAR-17851-1