Main Page | Data Structures | File List | Data Fields | Globals

AzCamUtils - AzCam CCD Camera Client API

Version 1.6.0

Author:
R. Pogge, OSU Astronomy Dept. (pogge@astronomy.ohio-state.edu)
Date:
2005 May 17

Overview

AzCam is a software data acquisition system developed by the University of Arizona's Imaging Technology Laboratory (ITL) to operate CCDs using Astronomical Research Cameras, Inc. controllers. ARC controllers are more colloquially known as "Leach Controllers". The AzCam software was developed by Michael Lesser at the ITL.

The main program is the AzCamServer application that runs on the same physical host with the PCI fiber interface to the ARC controller. This server has a TCP socket interface that allows remote client applications to connect and issue commands to control the CCD camera. The AzCamServer application runs on Windows XP systems (there is currently no Linux version of the PCI card device drivers).

The ITL also provides a version of AzCamTool, a LabView GUI application with the camera systems. This is available on both Windows and Linux versions, but requires the LabView runtime engine to execute.

To provide a general interface for the purposes of using an AzCam server-operated CCD camera with the current OSU Astronomy Department data-acquisition systems, we developed this C-language application programming interface (API) for AzCam. The features implemented in this API are more fully described in the AzCam Programmers Reference Manual available from the AzCam website.

API Components

The OSU AzCam client API consists of two components:
     server.c     - Server Control and Database Functions
     image.c      - Image Writing Functions
     exposure.c   - Exposure and Detector Control Functions
     ccdtemp.c    - Temperature Control Functions
     azcamutils.c - Additional Utility Functions
     iosubs.c     - TCP socket routines providing a common 
                      communication layer
     azcam.h      - API header file
  

The API functions encapsulate most of the basic functions of the AzCam server, hiding the socket communications layer beneath the API layer functions, and which know how to process any status returns from the commands into data members of the azcam struct, or returned as data to the calling application. Most API function names recapitulate single AzCam server commands, while others are "meta" commands that incorporate one or more functions. Not all AzCam server functions have their own API routines, for example, the ARC Controller commands are accessed via the ARCCommand() function. Defined parameters are provided to give "macro" versions of all AzCam server numerical codes, making programming more straightforward.

The iosubs.c functions provide the TCP socket communications layer, providing commands for initializing and closing a socket connection, read, writing, and handling command transmission, including communication timeout handling.

The main camera parameters are stored in an instance of an azcam struct which provide all of the information needed to interact with the server, and carries all of the basic camera parameters.

Compilation and Dependencies

The Make for this library compiles the code using g++. There are no external libraries required to link with libazcam.a in its current version.

Notes

Modification History

  2005 May 6 - initial development [rwp/osu]
  2005 May 13 - first field-test version [rwp/osu]
  2005 May 17 - final organization of the API [rwp/osu]
  

Generated on Tue May 24 13:55:30 2005 for AzCam CCD Camera Client API by  doxygen 1.4.2