node2.html
Next: RPC Communications Up: The CAMP Slow Control Previous: Initial Requirements
Prototype
For reasons of portability, availability of useful code libraries and facilities, and personal preference, C was the language of choice for all new code.
The first implementation of CAMP consisted of a server process which maintained global memory sections containing the configuration database, and client applications which mapped to the global sections and used mailbox communication for requests to the server (see Fig. ). There was one ``system" section describing the configuration and one section for each instrument.
One type of variable was implemented, a numeric variable, with attributes including polling rate, logging flag and alarm flag. Variables could be flagged for logging by different data acquisition systems. This was necessary because the two different data acquisition types (TD-SR and I-SR) in use at TRIUMF can potentially run concurrently. Variables could also be flagged for halting either type of data acquisition using alarms and alarm tolerance.
Instrument drivers were linked statically with the server, and did little more than allow for setting and reading of one of the instrument's variables per request. Interface-specific information was incorporated into the instrument drivers. A library was written to perform RS-232-C communication synchronously or asynchronously via LAT or local serial ports. GPIB was implemented via a Kinetic Systems 3388 module in CAMAC using an existing library written in FORTRAN. The MODAS CAMIF CAMAC library, written in MACRO, was used for CAMAC operations. [3]
A textual user interface was written using the portable ``curses" windowing library. The ability to save, load and modify configurations online was implemented. Furthermore, files could be saved and loaded on a per-instrument basis.
Data Acq. Group
Sun Oct 15 01:58:10 PDT 1995