CIRSI - system software

Martin Beckett - 16 September, 1996, version 1

Aims:

This document describes the components of the camera software.

Operating system

The main factor determining the operating system is the camera interface hardware, for the AstroCam 4100 controller used to drive the Hawaii arrays in CIRSI this is a PCI device, this bus is found in PC's ( and Alpha workstations ), the Ultrapix controller for the autoguide CCD and the RISC controller for the NICMOS device in COHSI are only used with PC's.

On the PC hardware there are a choice of operating systems:

Windows NT is not possible because device drivers are not available.

Device drivers are available for the PCI card for Win95 and Linux.

Camera microcode

The programs which produce the clocking schemes needed to operate the arrays are written in a hardware specific language ( SAM = HAWAII, RISC = NICMOS ). They are generally developed separately and downloaded as blocks into the controller at run time. The higher level software interacts with these programs by setting the values of various parameters which select features such as the region to read or the pixel rate.

Kernel packages

The main software system consists of a set of object classes which describe an image, the camera or astronomical configuration or any other self contained part of the camera. Access to the components of these objects is only through a strictly defined class interface. This provides a very reliable system and allows easy upgrades during the project without breaking existing code. Written in C++ these components are designed to operate across PC/workstation architecture.

Currently the image package is largely complete and work has started on the camera package. More details of the PCI card are needed to determine what functions to support.

These classes would be used on the camera and autoguider system and on COHSI. The camera class internal operation changes with each controller but the user interface to it remains as similair as possible.

Tcl interface

Tcl is an extensible scripting language produced by Sun but available on a range of systems. The kernel routines are used to provide a series of self contained packages which add new commands and features to Tcl. Packages are being produced to handle images, camera configuration and operation and file handling including FITS.

The Tcl interface provides transparent operation of scripts and commands across a range of platforms and allows a single application to run across a number of networked machines. An integral part of Tcl is TK a windows toolkit which allows graphical user interfaces to be written from within a simple scripting language,

Operating commands

Written in TCL scripting language, using both built-in TCL language features and new camera specific commands. This system has direct access to the camera and is responsible for storing the data in an acceptable form for the analysis system. A range of TCL scripts will be built up to support engineering and astronomical use of the camera. A graphical user interface written in TK can access the TCL commands to produce an astronomer friendly user interface at the telescope.

Data reduction commands

Data reduction will generally be carried out on the camera system using programs written in the Tcl scripting language ( mostly for engineering image analysis ) or under an IRAF system ( for most astronomical analysis ). The network transparent nature of the Tcl language means that the camera system and IRAF can be running on the same computer or on separate machines under different operating systems.

Telescope interface

The observing run should be controllable from an application familiar to the astronomers/users. An observation will generally require a number of parameters, region to read, exposure time, sky positions etc. these can be entered either through the Tcl command line on the camera control computer, from a GUI or from any other familiar environment. An IRAF task could be used to enter the parameters using the epar mechanism, which would then be sent to the camera control software where they could be translated into camera commands. The repetitive nature of the mosaic observations mean that a programmable or scripting facility is needed for the observations and close integration with the telescope pointing commands is required.

In order to support the operation on a range of telescopes with different telescope control systems a client-server architecture is used for the telescope interface. The camera control system will send network messages to a program running on the local telescope control computer. This will translate the message containing the new position into the local telescope control language. In this way we can support a range of different telescope environments without having to port any of the messaging systems to new hardware.

Changes

  1. Adapted from CIRSI review
$Id: overview.htm,v 1.1 1997/02/27 21:06:21 optics Exp $