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