next up previous contents
Next: 2. User's Guide Up: CFHT Director/Agent Model Revision Previous: List of Figures   Contents

Subsections

1. Introduction

How to use this manual

  1. The first section (the one you are reading now) explains what the director program is all about.
  2. The User's Guide contains mostly the same information you can get from director by invoking it with the ``-h'' command line option. There is also some information here on how to make sure you are running the right version of the program.
  3. The Programmers Guide contains information of interest to anyone writing and agent (explained below) or wanting to adapt an existing CLI driven program to run under director.
  4. The Director section contains a summary of new features that director brings to the CFHT observing software, and some notes to myself on what needs to be fixed or implemented. If you find a bug not listed in this section, please let me know about it.
  5. Any addition reference material, including where to get and how to build and install director, will be found in the Appendix.

1.1 Motivation

Let's say you want to write a program to control some new piece of hardware. You've never even seen this thing operate, and you just want to be able to send some commands at it to see if it works. Without thinking ahead to how this hardware might need to interact with other pieces of a software system, or how it might have to eventually accept commands from a graphical user interface or a script, your first instinct might be to write a quick and easy self-contained program that displays a menu or command prompt of the functions that this hardware accepts, takes commands on the input and prints feedback on the output (with standard things like printf() or perror() if you're using C). Once you have this thing running, it is all you'd need to verify that everything is working.

The motivation behind director is to allow a simple program like this to function in a more complex environment, such as CFHT's Pegasus observing sessions.

1.2 Unix Shell Comparison

Director is essentially just an interactive shell. Like other interactive unix shells (csh, sh, etc.):

Director differs from other unix shells in the following ways:

1.3 Communications

There are three main types of messages and data being passed around. Director provides a very simple and easy to manage answer for the first, but the main improvements in efficiency and sophistication need to be made in the last two. Director itself does not address these issues! It does not handle state information, nor does it parse or in anyway interpret (beyond colorizing) the responses coming back from the Agent!

  1. Command / Response <-- Director
  2. State Information
  3. Data Feed

These are topics for other papers, but NOAO's Mosaic Data Handling system could be used to speed up the Data Feed, and State Information could be handled by EPICS channel access. See below under future possibilities... director might be able to act as the go-between for the Agents by broadcasting state information for them to channel access. It is not clear if this is a good idea though. Finally, neither director nor channel access are suitable for a data feed. Keep in mind that everything here is dealing only with Command / Response issues. For a detailed diagram showing how commands and responses flow in and out of director, see figure 3.

Figure 3: Command and Response Flow
\begin{figure}
\begin{center}
\epsfig {file=director.eps, height=8.7in}\end{center}\end{figure}


next up previous contents
Next: 2. User's Guide Up: CFHT Director/Agent Model Revision Previous: List of Figures   Contents
Sidik Isani
2001-04-27