A system for recording and viewing events in a distributed data acqusition environment has been developed at the Aerodynamics Laboratory of the Institute for Aerospace Research, National Research Council of Canada. The system has been designed to capture and record asynchronous events generated by multiple programs and users, and to allow a simple, intuitive and platform-independent method of examining events of specific interest.
The necessity of a method of capturing and recording events became obvious during the early stages of the development of a new distributed data acquisition system (DAS) for the 2m x 3m Low Speed Wind Tunnel in the Aerodynamics Laboratory. At that time, the DAS consisted of a Silicon Graphics® Unix® workstation named jabba, a PC running QNX® simply called QNX, two PCs running LabVIEW® on Windows NT® named m2-aerotech and m2-wtdas-inf and several other NT-PCs used as smart terminals (Fig. 1). Jabba was responsible for data storage and visualization, configuration file manipulation, and this event system. QNX was the central system that acquired wind tunnel data using a Neff® front end, and was also the source of control and pacing commands for m2-aerotech, the computer responsible for model attitude control. The last major system, m2-wtdas-inf, was the new infrastructure support computer that was under development to replace QNX.
Because of the asynchronous nature of the various subsystems (model motion, force and moment data acquisition, data visualization etc.) and their relative independence, it became imperative to have a central agent to whom errors, warnings and other notification information could be reported. This central information log is not only valuable as a record of routine events, but is critical to understanding and debugging problems arising from the complex interactions between the subsystems. The rapid resolution of any uncertainties in the data acquisition and visualization process is of extreme importance in maintaining and enhancing the efficiency of any cost-intensive facility.
In keeping with the fundamental design philosophy of platform-independence, the system was implemented using industry standard methods and protocols. The interprocess communication (IPC) is done using the Transmission Control Protocol / Internet Protocol (TCP/IP), and the user interaction is handled by the Hypertext Transfer Protocol (HTTP), the Common Gateway Interface (CGI), the Hypertext Markup Language (HTML) and the World Wide Web browser, Netscape Navigator®.
Perl (Wall, Christiansen and Schwartz, 1996) was chosen to be the primary programming language, supplemented with JavaScript (Flanagan, 1997) for the dynamic web content. These choices were made because these languages excel at the manipulation of ASCII data and the creation, delivery and manipulation of HTML pages. Subroutines to easily allow generation of events have also been written in C (Kernighan and Ritchie, 1978) and LabVIEW (Wells and Travis, 1997).
The �look and feel� of the user interface and the basic design of the code have been created to be consistent with previously developed web-based applications (Jenkins, 1998).