The ESI Spectrograph Online Documentation

Dispatcher2 Overview

The dispatcher is an interface process that services hardware control and status requests from remote processes. It communicates with the remote processes via MUSIC (a Multi-User System for Instrument Control) messages sent via the traffic process. The connection between traffic and the dispatchers is via standard TCP/IP sockets. The remote processes usually use the Keck Tasking Library (KTL) and an instrument FITS input/output routine database library (FIORD library) to handle the MUSIC interface with the dispatcher.

The dispatcher has special I/O routines designed to communicate with an instrument's mechanical and electronic hardware, excluding the CCD control system, via whatever communication interface the hardware uses. The only hardware the dispatcher communicates with at this time is Galil DMC-1500 series motor controllers via Lantronix ETS series terminal servers. The motor controllers provide control and access to a variety of devices including mechanical stages, lamps and environmental sensors. The terminal servers provide a socket based interface to the serial ports of the motor controller; they handle the required low-level serial protocols with the motor controllers, freeing the dispatchers from the task. The dispatchers communication needs are reduced to making a socket connection to a port on a terminal server which is connected to controller and handling the Galil command line protocol with the controller.

Although one dispatcher can handle communication with more than one controller at a time, it is more efficient to run a separate dispatcher for each controller. This is due to the slow rate of communication via serial connections to the controllers (19.2 baud), which limits the dispatcher's reaction speed to requests from remote processes.

The dispatcher is written in C. It was developed and tested on Sun systems running Solaris and has been built and tested on Linux systems. The dispatcher has been designed to be as platform independent as possible. It can be built with little or most likely no modification on any machine with a C compiler and standard set of libraries.

The Observer documents are hand-written. The Technical Documents are produced from plain text files in the CVS source tree by some Tcl scripts written at UCO/Lick Observatory. The Reference Documents are mostly generated by software from data in a relational database. Individual authors are responsible for the content of the Observer and Technical Documentation. The Lick SPG as a whole is responsible for the content of the Reference doco. Send mail to de@ucolick.org to report inconsistencies or errors in the documentation.