![]() |
![]() |
![]() |
![]() |
3 REFERENCE
This chapter provides a detailed description of the CCD software programmatic interface, namely functions, programs (including Command Definition Tables), scripts and include files, together with various template files.
3.1 Functions
Functions provided by the CCD software are grouped in the library libccd.a, available on Workstation only.
The functions provided by the CCD software to external software are:
1. ccdCheckSetup. It checks the validity of a complete setup and returns also some computed values, such as the estimated read-out time.
The LCU Image Processing User Functions are located in the binary file ccdipUSR (automatically loaded at boot time):
This function estimates the sky background and computes the second-order moment of the intensity distribution, a 2D Gaussian fit delivers centroid and FWHM
This function processes the stripes obtained during a multiple exposure. It performs the centroid calculation on each stripe.
The function ccdipUsrFuncTemplate is a template for LCU real-time image processing functions.
In addition, the library libccdObj.a provides functions specialized in the detection of objects within images. They are:
2. ccdObjBright. Detects objects in a frame from a FITS file and returns location and intensity of the brightest one.
3. ccdObjClose. Detects objects in a frame from a FITS file and returns location and intensity of the closest one to a reference point.
#include "ccd.h"
ccsCOMPL_STAT ccdCheckSetup (
ccdCONFIG *config,
ccdSETUP *setup,
ccdSETUPRES *results,
ccsERROR *error
)
ccsCOMPL_STAT ccdCheckSetupWindow (
ccdCONFIG *config,
ccdSETUP *setup,
ccdSETUPRES *results,
ccsERROR *error
)
These functions perform a static check of the defined setup parameters
against the configuration. This check does NOT do any dynamic check
against the current state of the camera.
The check is stopped after the first error detection and the function
returns with FAILURE.
ccdCheckSetup checks a complete setup. It also returns values derived
from the setup parameters.
ccdCheckSetupWindow checks only the part of the setup concerning
the windowed readout.
IN config information about camera configuration (see ccdGetConf)
INOUT setup structure containing exposure setup (see ccd.h)
OUT results structure containing check results (see ccd.h)
OUT error error structure
#include "ccd.h"
....
ccdCAMERA camera = {"ccdFors", ccsLOCAL_ENV};
ccdCONFIG config;
ccdSETUP setup;
ccdSETUPRES results;
ccsERROR error;
....
if (ccdGetConf(&camera, &config, &error) == FAILURE)
{
... handle failure
}
....
fill in values in setup structure
....
if (ccdCheckSetup(&config, &setup, &results, &error) == FAILURE)
{
... handle failure
}
This function returns the name of the only CCD process communicating
with external sw through the CCS message system to control a specific
CCD camera.
IN camera name of the camera used
OUT procName name of the Command Interface process for camera used
#include "ccd.h"
....
ccdCAMERA camera = {"ccdFors", ccsLOCAL_ENV};
ccsPROCESS ccdProcess;
....
ccdGetCIName(camera.name, ccdProcess);
... ccdProcess is now set to "ccdconCI_ccdFors"
This function returns information concerning the configuration of a
CCD camera, which might be needed by software packages using the CCD sw.
IN camera structure containing the following elements:
name name of the camera used
envName name of the CCS environment where CCD software runs
It can be set to ccsLOCAL_ENV for local env.
OUT config information about camera configuration
OUT error error structure
#include "ccd.h"
....
ccdCAMERA camera = {"ccdFors", ccsLOCAL_ENV};
ccdCONFIG config;
ccsERROR error;
....
if (ccdGetConf(&camera, &config, &error) == FAILURE)
{
... handle failure
}
#include "ccd.h"
#include "ccdipAG.h"
ccsCOMPL_STAT ccdipAG (ccdIPIMAGE *img,ccdipAGBUF *agb,ccsERROR *err)
This function determines the Error Vector to the object contained
in the image in the vicinity of the Reference Point:
- error vector
<img> IN image to process
<agb> INOUT AG data
<err> OUT error structure
The debug flag ccdDEBUG_IP_USER (see ccdInternal.h) may be set to trace
3.1.5 ccdipAG.h
/*******************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdipAG.h,v 1.56 1998/09/17 08:53:15 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pduhoux 27/05/98 created
*/
/*
***********************************************************************
* Auto Guiding : data structure & function prototype
*----------------------------------------------------------------------
*/
#ifndef CCDIP_AG_H
#define CCDIP_AG_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
vltDOUBLE xErrVec,yErrVec; /* error vector */
} ccdipAGBUF;
ccsCOMPL_STAT ccdipAG (ccdIPIMAGE *img, ccdipAGBUF *agb, ccsERROR *err);
#ifdef __cplusplus
}
#endif
#endif /*!CCDIP_AG_H*/
#include "ccd.h"
#include "ccdipCV.h"
ccsCOMPL_STAT ccdipCV (ccdIPIMAGE *img,ccdipCVBUF *cvb,ccsERROR *err)
This function checks the validity of the Centroid with respect
to the given validation criteria.
<img> IN image to process
<cvb> INOUT Centroid Validation limits
<err> OUT error structure
If any of the validation criterium is set to zero, the check against
this criterium is skipped.
<cvb->minNumPix> : minimum number of valid pixels
<cvb->minSNR> : minimum SNR
<cvb->maxFWHM> : maximum image size in pixels
<cvb->maxElongation> : maximum image elongation in pixels (> 1)
<cvb->maxOffset> : maximum error vector length in pixels
Whenever a criterium is not satisfied, the Intensity of the
centroid is set to ZERO.
3.1.7 ccdipCV.h
/*******************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdipCV.h,v 1.56 1998/09/17 08:53:16 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pduhoux 17/09/98 created
*/
/*
***********************************************************************
* Centroid Validation : data structure & function prototype
*----------------------------------------------------------------------
*/
#ifndef CCDIP_CV_H
#define CCDIP_CV_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
vltINT32 minNumPix;
vltDOUBLE minSNR;
vltDOUBLE maxFWHM;
vltDOUBLE maxElongation;
vltDOUBLE maxOffset;
} ccdipCVBUF;
ccsCOMPL_STAT ccdipCV (ccdIPIMAGE *img, ccdipCVBUF *cvb, ccsERROR *err);
#ifdef __cplusplus
}
#endif
#endif /*!CCDIP_CV_H*/
#include "ccd.h"
#include "ccdipIQE.h"
ccsCOMPL_STAT ccdipIQE (ccdIPIMAGE *img,ccdipIQEBUF *iqeb,ccsERROR *err)
This function determines the Image Quality for the object contained
in the image in the vicinity of the Reference Point:
- position
- FWHM on both axis
- orientation angle
- peak intensity
- backGroung intensity
Each value is given with Standard Deviation
The function ccdipIQE works on the 2D image
<img> IN image to process
<iqeb> INOUT IQE data
<err> OUT error structure
3.1.9 ccdipIQE.h
/*******************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdipIQE.h,v 1.56 1998/09/17 08:53:15 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pduhoux 27/05/98 created
*/
/*
***********************************************************************
* Image Quality Estimation : data structure & function prototype
*----------------------------------------------------------------------
*/
#ifndef CCDIP_IQE_H
#define CCDIP_IQE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
vltDOUBLE xMPos,xMPos_SD; /* mean X position */
vltDOUBLE yMPos,yMPos_SD; /* mean Y position */
vltDOUBLE xFWHM,xFWHM_SD; /* gauss fit X FWHM */
vltDOUBLE yFWHM,yFWHM_SD; /* gauss fit Y FWHM */
vltDOUBLE ObjAngle,ObjAngle_SD; /* orientation [degrees] */
vltDOUBLE ObjPeak,ObjPeak_SD; /* peak intensity */
vltDOUBLE BGnd,BGnd_SD; /* back ground level */
} ccdipIQEBUF;
ccsCOMPL_STAT ccdipIQE (ccdIPIMAGE *img, ccdipIQEBUF *iqeb, ccsERROR *err);
#ifdef __cplusplus
}
#endif
#endif /*!CCDIP_IQE_H*/
#include "ccd.h"
#include "ccdipWCE.h"
ccsCOMPL_STAT ccdipWCE (ccdIPIMAGE *img,ccdipWCEBUF *wceb,ccsERROR *err)
This function computes for each stripe in the window:
- the position of the center of mass (centroid / center of gravity)
- the number of valid pixels in the stripe
- raw intensity/pixel + sigma
- sky background estimation/pixel + sigma
- SNR & FWHM estimations
<img> IN pointer to image description
<wceb> INOUT WCE data
<err> OUT error stack (unused)
SUCCESS always
FAILURE if the image data type should differ from vltINT8, vltINT16
or vltFLOAT. This exceptional case is probably an advice of
memory corruption, or an indication that the application may
have modified the <img> structure.
3.1.11 ccdipWCE.h
/*******************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdipWCE.h,v 1.56 1998/09/17 08:53:15 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* pduhoux 27/05/98 created
*/
/*
***********************************************************************
* Wavefront Coherence Estimation : data structure & function prototype
*----------------------------------------------------------------------
*/
#ifndef CCDIP_WCE_H
#define CCDIP_WCE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
/*
* This structure contains the results of the coherence mode centroid
* computation for one stripe:
*/
vltDOUBLE flux; /* Raw Average ADC counts / pixel */
vltDOUBLE sigma; /* Standard-Deviation on the flux */
vltDOUBLE BckGnd,BckGnd_SD; /* Back Ground estimation + Std Dev */
vltDOUBLE xFWHM,yFWHM; /* X & Y FWHM on object */
vltDOUBLE SNR; /* Signal-to-Noise Ratio */
vltINT32 numPix; /* Number of valid pixels in image */
vltDOUBLE cenVal,xCen,yCen; /* Location of Centroid relative */
/* to stripe LL corner */
} ccdipSTRIPE;
typedef struct
{
/*
* This structure contains the results of the coherence mode centroid
* computation:
* - numStripe : number of stripes
* - lenStripe : height of stripes
* - expTimeDef: expTime / stripe
* - expTime : effective expTime / stripe
* - numValPix : number of valid pixels in each stripe
* (pix - bckGnd) > thrMin
* When more than 1 spot, forced to -1
* - xCen,yCen : coordinates of spot centroid relative to LL corner
* of the stripe.
*/
ccsTIMEVAL utcStart; /* UTC of first stripe */
vltINT32 numStripe; /* Number of stripes */
vltINT32 lenStripe; /* Height of stripes */
vltDOUBLE lapTime; /* Effective Time between stripe */
vltDOUBLE expTime; /* Effective expTime/stripe */
ccdipSTRIPE stripe[2][ccdMAXINTEGR]; /* Centroid / stripe / window */
} ccdipWCEBUF;
ccsCOMPL_STAT ccdipWCE (ccdIPIMAGE *img, ccdipWCEBUF *iqeb, ccsERROR *err);
#ifdef __cplusplus
}
#endif
#endif /*!CCDIP_WCE_H*/
#include "ccd.h"
ccsCOMPL_STAT ccdipUsrFuncTemplate (
ccdIPIMAGE *image,
void *usrBuffer,
ccsERROR *error
)
This function logs the content of the <usrBuffer>, expected as a char ptr
<image> INOUT pointer to image description structure (see ccd.h).
<usrBuffer> INOUT user defined I/O buffer
<error> OUT error stack
The debug flag ccdDEBUG_IP_USER (see ccdInternal.h) may be set to trace
the function progress.
#include "ccd.h"
ccsCOMPL_STAT ccdObjAll(char *file,
const ccdOBJMETHOD *method,
vltINT32 *objectsN,
ccdOBJECT **objects,
ccsERROR *error)
This function uses the ccdMidasObj.prg on-line Midas procedure to
determine the position of stars in an image stored in a FITS file.
This function assumes that a Midas session is already running in
background and the pco process is active in the current CCS environment.
The memory space pointed by the parameter "objects" is allocated by this
function. It is released with the next call.
IN file name of the FITS file contianing image
IN method contains parameters needed to find the objects
procId ID number (between 0 and 99) of the running Midas
threshAbs if ccsTRUE, threshVal is interpreted as an absolute
threshold value
if ccsFALSE, the threshold is computed as threshVal *
image standard deviation
threshVal threshold value. The meaning depends on the value of
threshAbs
OUT objectsN number of objects detected
OUT objects array of objectsN elements, each consisting of:
xPos location of object along x axis
yPos location of object along y axis
intensity intensity of object
OUT error error structure
The following working files are created by the Midas procedure used.
midasObj0001.bdf image in bdf format for Midas
midasObj0001SKY.tbl table containing intermediate sky parameters
midasObj0001CAT.tbl table containing final object parameters
#include "ccd.h"
....
char imageFile[256];
ccdOBJMETHOD method;
vltINT32 objectsN;
ccdOBJECT *objects;
ccsERROR error;
....
strcpy(imageFile, "myFile.fits");
method.procId = 50;
method.threshAbs = ccsFALSE;
method.threshVal = 3;
if (ccdObjAll(imageFile, &method, &objectsN, &objects, &error) != SUCCESS)
{
printf("Error. Exit\n");
return(EXIT_FAILURE);
}
for (i=0 ; i<objectsN; i++)
{
printf("Object #%3d position X %6.2f Y %6.2f intensity %6.2f\n",
i, objects[i].xPos, objects[i].yPos,
objects[i].intensity);
}
....
ccdObjBright, ccdObjClose
ccdObjDisplay
ccdMidasBgStart.sh
ccdMidasObj.prg
Midas ROMAFIT package (Midas Manual Volume B)
ccdTestObj for an example of application using it
#include "ccd.h"
ccsCOMPL_STAT ccdObjBright(char *file,
const ccdOBJMETHOD *method,
ccdOBJECT *object,
ccsERROR *error)
This function uses the ccdMidasObj.prg on-line Midas procedure to
determine the position of stars in an image stored in a FITS file and
returns position and intensity of the brightest one.
This function assumes that a Midas session is already running in
background and the pco process is active in the current CCS environment.
IN file name of the FITS file contianing image
IN method contains parameters needed to find the objects
procId ID number (between 0 and 99) of the running Midas
threshAbs if ccsTRUE, threshVal is interpreted as an absolute
threshold value
if ccsFALSE, the threshold is computed as threshVal *
image standard deviation
threshVal threshold value. The meaning depends on the value of
threshAbs
OUT object info about brightest object, consisting of:
xPos location of object along x axis (-1 if no object found)
yPos location of object along y axis (-1 if no object found)
intensity intensity of object (-1 if no object found)
OUT error error structure
The following working files are created by the Midas procedure used.
midasObj0001.bdf image in bdf format for Midas
midasObj0001SKY.tbl table containing intermediate sky parameters
midasObj0001CAT.tbl table containing final object parameters
#include "ccd.h"
....
char imageFile[256];
ccdOBJMETHOD method;
ccdOBJECT object;
ccsERROR error;
....
strcpy(imageFile, "myFile.fits");
method.procId = 50;
method.threshAbs = ccsFALSE;
method.threshVal = 3;
if (ccdObjBright(imageFile, &method, &object, &error) != SUCCESS)
{
printf("Error. Exit\n");
return(EXIT_FAILURE);
}
printf("Brightest Object position X %6.2f Y %6.2f intensity %6.2f\n",
object.xPos, object.yPos, object.intensity);
....
ccdObjAll, ccdObjClose
ccdMidasObj.prg
Midas ROMAFIT package (Midas Manual Volume B)
ccdTestObj for an example of application using it
#include "ccd.h"
ccsCOMPL_STAT ccdObjClose(char *file,
const ccdOBJMETHOD *method,
ccdOBJECT *reference,
ccdOBJECT *object,
ccsERROR *error)
This function uses the ccdMidasObj.prg on-line Midas procedure to
determine the position of stars in an image stored in a FITS file and
returns position and intensity of the one closest to the specified
reference position
This function assumes that a Midas session is already running in
background and the pco process is active in the current CCS environment.
IN file name of the FITS file contianing image
IN method contains parameters needed to find the objects
procId ID number (between 0 and 99) of the running Midas
threshAbs if ccsTRUE, threshVal is interpreted as an absolute
threshold value
if ccsFALSE, the threshold is computed as threshVal *
image standard deviation
threshVal threshold value. The meaning depends on the value of
threshAbs
OUT reference info about reference position, consisting of:
xPos position along x axis
yPos position along y axis
intensity not used
OUT object info about closest object, consisting of:
xPos location of object along x axis (-1 if no object found)
yPos location of object along y axis (-1 if no object found)
intensity intensity of object (-1 if no object found)
OUT error error structure
The following working files are created by the Midas procedure used.
midasObj0001.bdf image in bdf format for Midas
midasObj0001SKY.tbl table containing intermediate sky parameters
midasObj0001CAT.tbl table containing final object parameters
#include "ccd.h"
....
char imageFile[256];
ccdOBJMETHOD method;
ccdOBJECT object;
ccsERROR error;
....
strcpy(imageFile, "myFile.fits");
method.procId = 50;
method.threshAbs = ccsFALSE;
method.threshVal = 3;
reference.xPos = 200;
reference.yPos = 150;
if (ccdObjClose(imageFile, &method, &reference, &object, &error)
!= SUCCESS)
{
printf("Error. Exit\n");
return(EXIT_FAILURE);
}
printf("Object reference position X %6.2f Y %6.2f\n",
reference.xPos, reference.yPos);
printf("Object closest position X %6.2f Y %6.2f intensity %6.2f\n",
object.xPos, object.yPos, object.intensity);
....
ccdObjAll, ccdObjClose
ccdMidasObj.prg
Midas ROMAFIT package (Midas Manual Volume B)
ccdTestObj for an example of application using it
This function uses the ccdDisplayMidasObj.prg on-line Midas procedure to
display the image analysed with ccdObjAll and show with circles the
location of the objects found.
IN file name of the FITS file contianing image
IN procId ID number (between 0 and 99) of the running Midas
OUT error error structure
The following working files are assumed to be present.
midasObj0001.bdf image in bdf format for Midas
midasObj0001SKY.tbl table containing intermediate sky parameters
midasObj0001CAT.tbl table containing final object parameters
#include "ccd.h"
....
char imageFile[256];
ccsERROR error;
....
strcpy(imageFile, "myFile.fits");
if (ccdObjDisplay(imageFile, 50, &error) != SUCCESS)
{
printf("Error. Exit\n");
return(EXIT_FAILURE);
}
....
ccdObjAll
ccdDisplayMidasObj.prg
Midas ROMAFIT package (Midas Manual Volume B)
ccdTestObj for an example of application using it
3.2 Programs
The name of all CCD processes within their respective environment is built as <program name>_$CCDNAME.
The only program representing the Command Interface to external application software is ccdconCI, which runs on Workstation. The corresponding process for the camera myccd is therefore ccdconCI_myccd.
The script ccdDcsCdt.h, called within ccdDcsStart.sh, creates in $INTROOT/CDT (or $VLTROOT/CDT) the CDTs for the CCD camera processes as symbolic links to the CDT of the respective program (e.g. ccdconCI_myccd.cdt is created as symbolic link to ccdconCI.cdt).
3.2.1 Command Definition Table for program ccdconCI
//************************************************************************
// E.S.O. - VLT project
//
// "@(#) $Id: ccdconCI.cdt,v 2.2 1998/09/10 14:24:39 vltsccm Exp $"
//
// Command definition table for program ccdconCI (main task WS CCD software).
//
// who when what
// ------------- -------- --------------------------------------------
// A.Longinotti 14/11/94 First version
// C.Cumani 05/04/95 keywords reordered to follow FEB95 rel.
// A.Longinotti 04/08/95 Updated according to INS common sw specs 2.0
// A.Longinotti 01/02/96 Uncommented PAR_MAX_REPETITION for SETUP
// A.Longinotti 04/06/96 OBJECTS, OBJBRGT, OBJCLOS removed (SPR960204)
// expoId removed for CONT (SPR960292)
// A.Longinotti 12/07/96 added WAIT
// A.Longinotti 13/12/96 added STANDAL
// A.Longinotti 16/12/96 added parameter archive to STANDAL
// A.Longinotti 17/01/97 default for param. 'at' set to "now" (SPR960680)
// P.Duhoux 13/02/97 added param <literal> to STATUS & WAIT commands
// for reply format specification
// P.Duhoux 14/02/97 added cmd ONLINE = OPERATE (SPR970045)
// P.Duhoux 12/03/97 added cmd STARTTL/STOPTL and STARTTM/STOPTM for
// Telemetry & Temperature monitoring
// P.Duhoux 12/03/97 added cmd OFF = PDOWN
// A.Longinotti 18/04/97 Improved description of DUMP (SPR960680)
// A.Longinotti 23/05/97 Added test command DEBUG
// P.Duhoux 04/03/98 Improved description of STOP (SPR980004)
// P.Duhoux 12/08/98 Improved description of BIAS,DISPLAY,FLAT,
// STARTAG & STARTLP (SPR980415)
// P.Duhoux 12/08/98 Added command STPWAIT (SPR980004)
//------------------------------------------------------------------------
//==========================================================================
PUBLIC_COMMANDS
//==========================================================================
// Standard application commands (see CCS User Manual)
//==========================================================================
//==========================================================================
COMMAND= EXIT
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT= A
HELP_TEXT =
Terminate the whole CCD sw
One reply only at end of execution
@
//==========================================================================
// Standard INS commands for DCS (see INS common sw 2.0 04/05/95)
//==========================================================================
COMMAND= ABORT
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_OPTIONAL= YES
PAR_DEF_VAL= 0
REPLY_FORMAT = A
HELP_TEXT=
Abort exposure with ID <expoId> (default last started exposure).
Image data are lost.
One reply only at end of execution
----> Currently parameter expoId ignored. Assumed always 0 <----
@
//==========================================================================
COMMAND= CONT
SYNONYMS= continue
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT = A
HELP_TEXT=
Continue a paused exposure at a given optional time. Default is 'now'
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
Available only for CCD equipped with a shutter.
One reply only at end of execution
@
//===================================================================
COMMAND= DUMP
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Dump the last acquired image to disk (same directory where all other images
are stored, see UM, file name as from last SETUP command submitted).
Should be used only for recovery purposes, after DCS got stuck or did not
succeed in obtaining the image.
One reply only at end of execution
@
//===================================================================
COMMAND= END
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
End the current exposure(s) and read out the data.
One reply only at end of execution
@
//===================================================================
COMMAND= INIT
SYNONYMS= initialize, initialization
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
HELP_TEXT=
Initialize the functions contained in the list of arguments.
One reply only at end of execution
----> Currently parameter function ignored. Assumed always "all" <----
@
//===================================================================
COMMAND= OFF
SYNONYMS= off
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Bring the system to operational state LOADED
One reply only at end of execution
@
//===================================================================
COMMAND= OPERATE
SYNONYMS= online
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Bring the system to operational state OPERATING=ONLINE
One reply only at end of execution
@
//===================================================================
COMMAND= ONLINE
SYNONYMS= online
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Bring the system to operational state OPERATING=ONLINE
One reply only at end of execution
@
//===================================================================
COMMAND= PAUSE
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT = A
HELP_TEXT=
Pause an exposure at given optional time. Default is 'now'.
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
Available only for CCD equipped with a shutter.
One reply only at end of execution
@
//===================================================================
COMMAND= PDOWN
SYNONYMS= off
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Bring the system to operational state LOADED
One reply only at end of execution
@
//===================================================================
COMMAND= PXQUERY
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= window
PAR_TYPE= INTEGER
PAR_OPTIONAL= NO
PAR_MAX_REPETITION= 4
REPLY_FORMAT = B
HELP_TEXT=
Query the raw value of one or more pixels, given the detector coordinates
of the window.
One reply only at end of execution
----> WS simulation only ! <----
@
//===================================================================
COMMAND= SELFTST
SYNONYMS= selftest
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
HELP_TEXT=
Execute a self-test (sw and hw) of the function(s) specified
One reply only at end of execution
----> WS simulation only ! <----
----> Currently parameter function ignored. Assumed always "all" <----
@
//===================================================================
COMMAND= SETUP
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_OPTIONAL= YES
PAR_DEF_VAL= -1
PAR_NAME= file
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_MAX_REPETITION= 999
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_MAX_REPETITION= 999
PAR_NAME= noMove
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
PAR_NAME= check
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT = A
HELP_TEXT=
Set-up the functions as listed.
Parameter expoId: -1 = next exposure to start; 0 = last exposure started;
or current expoId when exposure is running.
One reply only at end of execution
----> Currently parameter noMove ignored. Always FALSE considered <----
----> Currently parameter check ignored. Always FALSE considered <----
The full list of setup keywords can be found in the file :
$INS_ROOT/SYSTEM/COMMON/SETUPFILES/DET/ccdSetupComplete.det
@
//===================================================================
COMMAND= STANDBY
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Bring the system to operational state STAND-BY
One reply only at end of execution
@
//===================================================================
COMMAND= START
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT = A
REPLY_PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 11
HELP_TEXT=
Start an exposure at given optional time. Default is 'now'.
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
One reply only when exposure started.
@
//===================================================================
COMMAND= STATUS
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_OPTIONAL= YES
PAR_DEF_VAL= 0
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_MAX_REPETITION= 999
PAR_NAME= literal
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT = A
REPLY_PARAMETERS=
PAR_NAME= expStatus
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
PAR_NAME= funcStatus
PAR_TYPE= STRING
PAR_DEF_VAL= "DET.MODE 1 DET.STATE 0 DET.SHUT 0 DET.TELE 0 DET.TEMP 0"
DISPLAY_FORMAT= "Exposure status %d. Function(s) status %s"
HELP_TEXT=
Get the status of the functions in the list of arguments.
Parameter function; currently implemented:
DET.MODE
DET.STATE
DET.SHUT
NOT IMPLEMENTED YET: The last parameter <literal> specifies the format of the enumerated types:
omitted : numeric [default]
set : literal [numerical values coded as strings]
@
//==========================================================================
// Commands defined only by CCD sw
//==========================================================================
//==========================================================================
COMMAND= BIAS
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT= A
REPLY_PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
HELP_TEXT =
Start a bias exposure using the actual setup with overloaded keywords
at given optional time and save in LCU memory as Bias image.
The current setup is overloaded with the setup 'ccdCmdBias.det':
DET.EXP.TYPE "Dark"; # Exposure type is DARK/BIAS
DET.EXP.NREP 1; # Single exposure
DET.FRAM.TYPE "Bias"; # Frame type is BIAS
DET.WIN1.UIT1 0.000; # Integration time is ZERO
DET.WIN1.BIAS F; # No bias correction
DET.WIN1.FLATF F; # No flat field correction
DET.WIN1.MINMAX F; # No search for extrema
DET.WIN1.IPFUNC "None"; # No User-Defined IP function
DET.WIN1.IPBUFF "None"; # No User-Defined data buffer
DET.WIN1.CENTROID "none"; # No centroiding calculation
DET.WIN2.BIAS F; # No bias correction
DET.WIN2.FLATF F; # No flat field correction
DET.WIN2.MINMAX F; # No search for extrema
DET.WIN2.IPFUNC "None"; # No User-Defined IP function
DET.WIN2.IPBUFF "None"; # No User-Defined data buffer
DET.WIN2.CENTROID "none"; # No centroiding calculation
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
One reply only when exposure started
@
//===================================================================
COMMAND= DISPLAY
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT = A
REPLY_PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
HELP_TEXT=
Start an exposure using the actual setup with overloaded keywords and
display the image on main RTD frame (frame ID 0).
The current setup is overloaded with the setup 'ccdCmdFlat.det':
DET.EXP.NREP 1; # Single exposure
DET.FRAM.FITSMTD 0; # Image data is not saved on disk
DET.DISPLAY 0; # Image data is display on RTD main frame
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
One reply only when exposure started
----> Currently parameter "at" ignored. Assumed always "now" <----
@
//===================================================================
COMMAND= ENHANCE
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT = A
HELP_TEXT=
Do a bias subtraction and flat field division to last acquired image
----> WS simulation only ! <----
@
//==========================================================================
COMMAND= FLAT
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT= A
REPLY_PARAMETERS=
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
HELP_TEXT =
Start one normal exposure using the actual setup with overloaded keywords
and save it in LCU memory as Flat Field image.
The current setup is overloaded with the setup 'ccdCmdFlat.det':
DET.EXP.TYPE "Normal"; # Exposure type is Normal
DET.EXP.NREP 1; # Single exposure
DET.FRAM.TYPE "FF"; # Frame type is FLAT
DET.WIN1.BIAS F; # No bias correction
DET.WIN1.FLATF F; # No flat field correction
DET.WIN1.MINMAX F; # No search for extrema
DET.WIN1.IPFUNC "None"; # No User-Defined IP function
DET.WIN1.IPBUFF "None"; # No User-Defined data buffer
DET.WIN1.CENTROID "none"; # No centroiding calculation
DET.WIN2.BIAS F; # No bias correction
DET.WIN2.FLATF F; # No flat field correction
DET.WIN2.MINMAX F; # No search for extrema
DET.WIN2.IPFUNC "None"; # No User-Defined IP function
DET.WIN2.IPBUFF "None"; # No User-Defined data buffer
DET.WIN2.CENTROID "none"; # No centroiding calculation
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
One reply only when exposure started
@
//==========================================================================
COMMAND= GRAB
SYNONYMS= GrabImage
FORMAT= A
PARAMETERS=
PAR_NAME= frameId
PAR_TYPE= INTEGER
PAR_OPTIONAL= YES
PAR_DEF_VAL= 0
PAR_NAME= file
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "grab.fits"
REPLY_FORMAT= A
HELP_TEXT =
Save the image currently being displayed on disk file in FITS format.
One reply only at end of operation
@
//==========================================================================
COMMAND= STANDAL
SYNONYMS= StandAlone
FORMAT= A
PARAMETERS=
PAR_NAME= on
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
PAR_NAME= archive
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT= A
HELP_TEXT =
It sets a flag, indicating if the CCD camera is used as stand-alone instrument
or not (default not). If option 'on' is selected, FITS HIERARCH info
is not written in a separate file, but in the image file.
If option 'archive' is selected, Archive is informed when a new file is
completed.
One reply only when commands completed.
@
//==========================================================================
COMMAND= STARTAG
SYNONYMS= autoguide
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT= A
HELP_TEXT =
Start an infinite loop of repeated exposures using the actual setup
with overloaded keywords at given optional time.
The current setup is overloaded with the setup 'ccdCmdStartAg.det':
DET.EXP.TYPE "Normal"; # Exposure type is Normal
DET.EXP.NREP 0; # Infinite loop of exposures
DET.FRAM.FITSMTD 0; # Image data is not saved on disk
DET.WIN1.CENTROID "threshold"; # Centroiding calculation method
DET.WIN1.BACKGND -1; # Estimate sky background on window corners
DET.WIN1.THRMIN -3; # Threshold at 3 sigma of sky
DET.FRAM.XFERSYN F; # Asynchronous image transfer
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
An infinite loop is started, consisting of:
- Exposure using the actual setup with overloaded keywords
- Computation of error vector
- Storage of results in the LCU database.
One reply only when exposure started
@
//==========================================================================
COMMAND= STARTLP
SYNONYMS= startloop
FORMAT= A
PARAMETERS=
PAR_NAME= at
PAR_TYPE= STRING
PAR_OPTIONAL= YES
PAR_DEF_VAL= "now"
REPLY_FORMAT= A
HELP_TEXT =
Start an infinite loop of repeated exposures using the actual setup
with overloaded keywords at given optional time.
The current setup is overloaded with the setup 'ccdCmdStartLp.det':
DET.EXP.NREP 0; # Infinite loop of exposures
DET.FRAM.FITSMTD 0; # Image data is not saved on disk
The time parameter <at> shall comply ISO8601, ie YYYY-MM-DDThh:mm:ss.uuu
An infinite loop is started, consisting of:
- Exposure using the actual setup with overloaded keywords
One reply only when exposure started
@
//==========================================================================
COMMAND = STARTWP
SYNONYMS = startwipe
FORMAT = A
PARAMETERS =
PAR_NAME = periodic
PAR_UNIT =
PAR_TYPE = INTEGER
PAR_RANGE =
PAR_DEF_VAL = 0
REPLY_FORMAT = A
HELP_TEXT =
Wipe chip(s) once or periodically. On each wipe cycle the chips are
wiped as often as specified in DB attribute readout.nWipes without delay
in between. In case of periodic wiping the period is defined in DB attribute
readout.wipePeriod.
Parameter periodic: 1 = periodic wipe; 0 = one-shot only
Two replies: one as soon first wipe has started, the other when
it has finished.
@
//==========================================================================
COMMAND = STOP
SYNONYMS =
FORMAT = A
PARAMETERS =
REPLY_FORMAT = A
HELP_TEXT =
Stop in an orderly way any on-going activity.
This command has little effect on single exposures.
For exposure loop, the STOP takes effect at completion of the last
started exposure. Thus, when STOP returns the last reply, it does not imply
that the loop is completed. This check is achieved with the WAIT command.
The recommended sequence is STOP + WAIT 0,Global (+ END)
One reply only at end of execution
@
//==========================================================================
COMMAND = STOPWP
SYNONYMS = stopwipe
FORMAT = A
PARAMETERS =
REPLY_FORMAT = A
HELP_TEXT =
Stop in an orderly way (let last iteration complete) a periodical wipe
One reply only at end of execution
@
//==========================================================================
COMMAND = WAIT
SYNONYMS =
FORMAT = A
PARAMETERS =
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
PAR_NAME= waitMode
PAR_TYPE= STRING
PAR_DEF_VAL= "Single"
PAR_NAME= literal
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT = A
REPLY_PARAMETERS=
PAR_NAME= expStatus
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
// Two replies, one at beginning, the other at end of execution
HELP_TEXT =
Wait for exposure completion and returns exposure status
Parameter expoId indicates the ID of exposure to wait for (see START).
0 means: last started exposure.
Parameter waitMode can have values:
"Single": wait until the current repetition is completed
"Global": wait until all repetitions are completed.
It makes sense only if the setup parameter DET.EXP.NREP is > 1.
NOT IMPLEMETED YET: The last parameter <literal> specifies the format of the reply:
omitted: the reply is numeric [default]
set : the reply is literal [numerical value coded as string]
@
//==========================================================================
COMMAND = STPWAIT
SYNONYMS = stpwait
FORMAT = A
PARAMETERS =
PAR_NAME= expoId
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
PAR_NAME= literal
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT = A
REPLY_PARAMETERS=
PAR_NAME= expStatus
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
// Two replies, one at beginning, the other at end of execution
HELP_TEXT =
Stop exposure loop & Wait for exposure completion and returns exposure status.
This command has little effect on single exposures.
For exposure loop, the STPWAIT takes effect at completion of the last
started exposure. STPWAIT returns the last reply when the last exposure is
completed. Equivalent to the sequence STOP + WAIT 0,Global
Parameter expoId indicates the ID of exposure to wait for (see START).
0 means: last started exposure.
NOT IMPLEMETED YET: The last parameter <literal> specifies the format of the reply:
omitted: the reply is numeric [default]
set : the reply is literal [numerical value coded as string]
@
//==========================================================================
COMMAND= STARTTL
SYNONYMS = telemon
FORMAT = A
PARAMETERS =
PAR_NAME = period
PAR_TYPE = INTEGER
PAR_DEF_VAL = 0
REPLY_FORMAT = A
HELP_TEXT =
Start monitoring of telemetry values
One reply only at end of execution
@
//==========================================================================
COMMAND= STOPTL
SYNONYMS = telstop
FORMAT = A
PARAMETERS =
REPLY_FORMAT = A
HELP_TEXT =
Stop monitoring of telemetry values
One reply only at end of execution
@
//==========================================================================
COMMAND= STARTTM
SYNONYMS = tempmon
FORMAT = A
PARAMETERS =
PAR_NAME = period
PAR_TYPE = INTEGER
PAR_DEF_VAL = 0
REPLY_FORMAT = A
HELP_TEXT =
Start monitoring of temperature values
One reply only at end of execution
@
//==========================================================================
COMMAND= STOPTM
SYNONYMS = tmpstop
FORMAT = A
PARAMETERS =
REPLY_FORMAT = A
HELP_TEXT =
Stop monitoring of temperature values
One reply only at end of execution
@
//==========================================================================
MAINTENANCE_COMMANDS
//==========================================================================
// Standard application commands (see CCS User Manual)
//==========================================================================
//==========================================================================
COMMAND= BREAK
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT= A
HELP_TEXT=
Break execution of current command.
@
//==========================================================================
COMMAND= KILL
SYNONYMS=
FORMAT= A
PARAMETERS=
REPLY_FORMAT= A
HELP_TEXT=
Kill this task
@
//==========================================================================
// Standard INS commands for DCS (see INS common sw 2.0 04/05/95)
//==========================================================================
//===================================================================
COMMAND= DISABLE
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
//AL950804 Not allowed with PAR_MAX_REPETITION
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
HELP_TEXT=
Disable access to one or more CCD functions (e.g. shutter)
One reply only at end of execution
----> WS simulation only ! <----
@
//===================================================================
COMMAND= ENABLE
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
// One reply only at end of execution
HELP_TEXT=
Enables the access to the functions contained in the list of arguments.
----> WS simulation only ! <----
@
//===================================================================
COMMAND= SIM
SYNONYMS= simulate, simulation
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
HELP_TEXT=
Put the functions contained in the list of arguments into simulation mode.
One reply only at end of execution
----> Not implemented yet <----
@
//===================================================================
COMMAND= STOPSIM
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= function
PAR_TYPE= STRING
PAR_OPTIONAL= YES
// PAR_DEF_VAL= "all"
PAR_MAX_REPETITION= 999
REPLY_FORMAT = A
HELP_TEXT=
Stop the simulation for the functions contained in the list of arguments.
One reply only at end of execution
----> Not implemented yet <----
@
//===================================================================
COMMAND= VERBOSE
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= on
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
PAR_NAME= off
PAR_TYPE= LOGICAL
PAR_OPTIONAL= YES
REPLY_FORMAT = A
HELP_TEXT=
Set verbose mode on/off. If no parameter passed, return current verbose mode
One reply only at end of execution
----> WS simulation only ! <----
@
//==========================================================================
// Commands defined only by CCD sw
//==========================================================================
//==========================================================================
COMMAND= PROCESS
SYNONYMS=
FORMAT= A
REPLY_FORMAT= A
HELP_TEXT =
Make pre-processing of last image read.
One reply only at end of execution
----> WS simulation only ! <----
@
//==========================================================================
//==========================================================================
COMMAND= VERSION
SYNONYMS=
FORMAT= A
REPLY_FORMAT= A
REPLY_PARAMETERS=
PAR_NAME= ccdVersion
PAR_TYPE= STRING
PAR_DEF_VAL= "CCD SW simulated"
HELP_TEXT =
Return current version of the CCD sw
One reply only at end of execution
@
//==========================================================================
TEST_COMMANDS
//==========================================================================
// Commands defined only by CCD sw
//==========================================================================
//==========================================================================
COMMAND= CONFIG
SYNONYMS= configure
FORMAT= A
REPLY_FORMAT= A
// One reply only at end of execution
HELP_TEXT =
Read again configuration of the system: a change has been done
----> Not implemented yet <----
@
//==========================================================================
COMMAND= DEBUG
SYNONYMS=
FORMAT= A
PARAMETERS=
PAR_NAME= level
PAR_TYPE= INTEGER
PAR_DEF_VAL= 0
REPLY_FORMAT= A
HELP_TEXT =
Define debugging level.
One reply only at end of execution
@
//==========================================================================
//
// _o0o_
3.3 Scripts
The scripts available on Workstation are:
This shell script installs all files needed to run a CCD system in the
root directory for the instrument it belongs to. Additionally, it
stores in the on-line database the values contained in configuration
files.
<DbFile> Name of the .dbcfg file in $VLTROOT/config containing DB
init values.
<ins_root_dir> root directory for the instrument the CCD belongs to
Default: $INS_ROOT (env. variable)
$VLTROOT/config/ccd*.dbcfg
Files containing on-line database initialisation values for CCD systems
known.
For technical CCDs there is one file for each system available. They
normally do not need to be changed by the user. The name is
ccdTec<nn>.dbcfg whereby <nn> is the number of camera head.
Example: head number 21 ---> ccdTec21.dbcfg
For scientific CCDs there is one file for each system to be delivered.
They normally have to be checked and possibly modified by experts of
the specific CCD system. The name is ccdSci<id>.dbcfg whereby <id> is
a symbolic name of the system.
Example: Fors CCD ---> ccdSciFors.dbcfg
INTROOT integration root directory
CCDNAME CCD camera name
RTAPENV CCD Rtap environment name
INS_ROOT default instrument root directory
> ccdInstall.sh ccdTec21.dbcfg $INS_ROOT
Install all what needed for technical CCD head 21
> ccdInstall.sh ccdSciFors.dbcfg
Install all what needed for Fors scientific CCD
This shell script performs a startup of CCD DCS.
No CCD stand-alone module is started.
To be run once at startup only!
It performs the following steps:
1 - Load database configuration values on WS
2 - Run warm startup (ccdDcsWarmStart.sh)
<camera> camera name, also root point in DB (default env. var. CCDNAME)
<WS env.> name of workstation environment (default env. var. RTAPENV)
If value is 0, no action on WS part of CCD sw is taken
<LCU env.> name of LCU environment (default env. var. CCDLENV)
If value is 0, no action on LCU part of CCD sw is taken
<INS root> INS_ROOT environment variable
kill kill all already running processes before starting
INTROOT integration root directory
CCDNAME default for camera name (e.g. ccdFors)
RTAPENV default for WS local environment (e.g. wte13)
CCDLENV default for LCU environment (e.g lte25)
INS_ROOT default root directory for instrument data
If this script is run twice or more, the system may not behave properly
any more. In this case better to shutdown the whole system and restart it
again.
> ccdDcsStart.sh ccdFors wte13 lte25
Start the CCD DCS sw both at WS and LCU level
for camera "ccdFors", WS environment wte13, LCU environment lte25
> ccdDcsStart.sh ccdFors wte13 0
Start the CCD DCS sw at WS level only
for camera "ccdFors", WS environment wte13
> ccdDcsStart.sh ccdFors wte13 0 $INS_ROOT kill
Kill and restart the CCD DCS sw at WS level only
for camera "ccdFors", WS environment wte13
> ccdDcsStart.sh ccdFors 0 lte25
Start the CCD DCS sw at LCU level only
for camera "ccdFors", LCU environment lte25
This shell script performs a shut-down of CCD DCS.
If doess the following steps:
1 - Verify if the main process is running.
2 - Try to terminate CCD processes in a 'soft' way (command EXIT)
3 - Try to terminate CCD processes in a 'hard' way (command KILL) (opt.)
4 - Disable scanning of data from LCU to WS
<camera> camera name, also root point in DB (default env. var. CCDNAME)
<WS env.> name of workstation environment (default env. var. RTAPENV).
If value is 0, no action on WS part of CCD sw is taken
<LCU env.> name of LCU environment (default env. var. CCDLENV)
If value is 0, no action on LCU part of CCD sw is taken
kill kill all processes
CCDNAME default for camera name (e.g. ccdFors)
RTAPENV default for WS local environment (e.g. wte13)
CCDLENV default for LCU environment (e.g lte25)
The "kill" options should be used with care. By killing processes
'blindly', the system could remain in a dangerous state. To be used
only to recover when the system gets stuck.
> ccdDcsStop.sh ccdFors wte13 lte25
Terminate in a 'soft' way the CCD sw both at WS and LCU level
for camera "ccdFors", WS environment wte13, LCU environment lte25
> ccdDcsStop.sh ccdFors wte13 lte25 kill
Terminate in a 'hard' way the CCD sw both at WS and LCU level
for camera "ccdFors", WS environment wte13, LCU environment lte25
> ccdDcsStop.sh ccdFors wte13 0 kill
Terminate in a 'hard' way the CCD sw at WS level only
for camera "ccdFors", WS environment wte13
> ccdDcsStop.sh ccdFors 0 lte25
Terminate in a 'soft' way the CCD sw at LCU level only
for camera "ccdFors", LCU environment lte25
This shell script reads some values from the CCD WS database and
stores them into <file> using the utility dbBackup
<camera> camera name, also root point in DB (default env. var. CCDNAME)
<env> environment where to read from (default env. var. RTAPENV)
<file> name of backup file
(default INS_ROOT/SYSTEM/COMMON/CONFIGFILES/<camera>.dbcfg)
CCDNAME default for camera name (e.g. ccdFors)
RTAPENV default environment (e.g.wte16)
INS_ROOT default for instrument root directory
This shell script configures the Scan System to retrieve DB values
for the CCD LCU to WS.
<camera> camera name, also root point in DB (default env. var. CCDNAME)
<WS env.> name of workstation environment (default env. var. RTAPENV)
<LCU env.> name of LCU environment (default env. var. CCDLENV)
<option> a add entries to scan list
c clean entries from scan list
d disable scanning from the LCU
e enable scanning from the LCU
default: a
CCDNAME default for camera name (e.g. ccdFors)
RTAPENV default for WS local environment (e.g. wte13)
CCDLENV default for LCU environment (e.g lte25)
1 - It is assumed here that CCD branch in the LCU database is attached
directly to the root point (not a sub-point of something else).
2 - If this script is run twice or more, the system may not behave properly
any more. In this case better to shutdown the whole system and restart
it again.
ccdDcsScan.sh ccdFors wte13 lte25
Add entries for LCU lte25 and WS wte13 camera ccdFors
ccdDcsScan.sh ccdFors wte13 lte25 c
Clean entries for LCU lte25 and WS wte13 camera ccdFors
ccdDcsScan.sh 0 wte13 lte25 d
Disable scanning from LCU lte25 to WS wte13
ccdDcsScan.sh 0 wte13 lte25 e
Enable scanning from LCU lte25 to WS wte13
This shell script configures the Scan System to retrieve DB values
from the CCD LCU to WS (stand-alone part only).
<camera> camera name, also root point in DB (default env. var. CCDNAME)
<WS env.> name of workstation environment (default env. var. RTAPENV)
<LCU env.> name of LCU environment (default env. var. CCDLENV)
<option> a add entries to scan list
c clean entries from scan list
d disable scanning from the LCU
e enable scanning from the LCU
default: a
CCDNAME default for camera name (e.g. ccdFors)
RTAPENV default for WS local environment (e.g. wte13)
CCDLENV default for LCU environment (e.g lte25)
1 - It is assumed here that CCD branch in the LCU database is attached
directly to the root point (not a sub-point of something else).
2 - If this script is run twice or more, the system may not behave properly
any more. In this case better to shutdown the whole system and restart
it again.
ccdosScan.sh ccdFors wte13 lte25
Add entries for LCU lte25 and WS wte13 camera ccdFors
ccdosScan.sh ccdFors wte13 lte25 c
Clean entries for LCU lte25 and WS wte13 camera ccdFors
ccdosScan.sh ccdFors wte13 lte25 e
Enable entries for LCU lte25 and WS wte13 camera ccdFors
This shell script starts a Midas session in background mode
and the VLT pco program to communicate with it.
<unit ID> is the Midas unit (00 to 99) to be started. Default : 50
> ccdMidasBgStart.sh
Start pco and Background Midas session with default unit 50.
> ccdMidasBgStart.sh 51
Start pco and Background Midas session with unit 51.
This shell script stops a Midas session running in background mode.
<unit ID> is the Midas unit (00 to 99) to be stopped. Default : 50
> ccdMidasBgStop.sh
Stop Background Midas session default unit 50.
> ccdMidasBgStopt.sh 51
Stop Background Midas session unit 51.
Currently there are problems with resource releasing when one tries
to terminate a Midas background session (SPR 960690).
This script just brings back the background MIdas session to
foreground.
This shell script writes in the WS CCD OLDB the values of attributes
related to the display of World Coordinates with rtd.
It is meant as a utility to applications having to configure the
WCS parameters for the camera used.
<camera> camera name, also root point in DB
<WS env.> name of workstation environment
<xrefpix> X Coordinate of Reference Pixel
<yrefpix> Y Coordinate of Reference Pixel
<secpix> Number of arcseconds per pixel
<rotate> Rotation angle (clockwise positive) in degrees
<equinox> Equinox of coordinates, 1950 and 2000 supported
<epoch> Epoch of coordinates, used for FK4/FK5 conversion
<proj> Projection
> ccdDcsWcs.sh ccdTEC wtccds 200.0 145.0 0.3 0.0 1950 0.0 PIXEL
Reference pixel [200.0;145.0]
Each pixel covers 0.3 arcseconds
Rotation angle is 0.0 degrees
Equinox of ccordinates set to 1950
Epoch of ccordinates set to 0.0
Projection set to PIXEL
This shell script writes in the WS CCD OLDB the value of the attribute
related to the FITS logging of main info.
An update of the $INS_ROOT/SYSTEM/COMMON/CONFIGFILES/<camera>.dbcfg file
is performed. As well a snap of the WS CCD OLDB is made.
It is meant as a utility to applications having to configure the
logMask parameter for the camera used.
<camera> camera name, also root point in DB
<WS env.> name of workstation environment
<logMask> Mask for FITS logging
3.4 GUI classes
The following GUI classes, built with the VLT panel editor (see [22]) for being used within bigger application panels, are included in the library libccdGuiPublic.tcl:
ccdExpStatus_uifClass - GUI class for CCD exposure status display
Application panels who intend to use this class, must register to the
library libccdGuiPublic.tcl.
All database attributes defined within this class are relative to the
root point of the camera used. Therefore, when importing an instance of
this class in a panel, the Database Current Working Point must be set
accordingly. For example, if the camera used is called "myccd", then
the CWP has to be <alias>myccd.
Note 1: The class shows the contents of the Workstation on-line database.
The CCS Scan System must be enabled and working in order to
retrieve the correct values from the CCD LCU.
Note 2: The class works only with exposures under the point
exposures:exposure_1
This class displays only output fields.
In the order from top to button, left to right:
"Exposure status"
String showing the current exposure status (updated on change).
"Remaining time (sec)"
Remaining integration time (sec) (updated on polling).
"Loop count"
Current repetition of the defined exposure (updated on polling).
The attributes updated with a polling mechanism have a fixed polling rate.
The change of values, although faster in the database, might be shown on
the panel with some delay (up to 2 seconds).
ccdIpStatus_uifClass - GUI class for CCD image processing status display
Application panels who intend to use this class, must register to the
library libccdGuiPublic.tcl.
All database attributes defined within this class are relative to the
point images:process relative to the root point of the camera used.
Therefore, when importing an instance of this class in a panel, the
Database Current Working Point must be set accordingly.
For example, if the camera used is called "myccd", then
the CWP has to be <alias>myccd:images:process.
Note: The class shows the contents of the Workstation on-line database.
The CCS Scan System must be enabled and working in order to
retrieve the correct values from the CCD LCU.
This class displays only output fields.
In the order from top to button, left to right:
"Min"
Minimum pixel value over the image (updated on polling).
"Max"
Maximum pixel value over the image (updated on polling).
"Average"
Average pixel value over the image (updated on polling).
"Sigma"
Standard deviation of pixel values over the image (updated on polling).
"# of pixels"
Number of pixels above threshold (updated on polling).
"X-Err"
X component of the error vector computed by the centroiding
algorythm on LCU (updated on polling).
"Y-Err"
Y component of the error vector computed by the centroiding
algorythm on LCU (updated on polling).
"Intensity"
Intensity of the pixel closest to the centroid position computed
on LCU. If set to 0, it indicates that no object has been detected.
(updated on polling).
The attributes updated with a polling mechanism have a fixed polling rate.
The change of values, although faster in the database, might be shown on
the panel with some delay (up to 2 seconds).
ccdExpSetup_uifClass - GUI class for CCD exposure setup display
Application panels who intend to use this class, must register to the
library libccdGuiPublic.tcl.
All database attributes defined within this class are relative to the
root point of the camera used.
Therefore, when importing an instance of this class in a panel, the
Database Current Working Point must be set accordingly.
For example, if the camera used is called "myccd", then
the CWP has to be <alias>myccd.
Note: The class shows the contents of the Workstation on-line database.
The CCS Scan System must be enabled and working in order to
retrieve the correct values from the CCD LCU.
This class displays only output fields.
In the order from top to button, left to right:
"Time(sec)"
Exposure time in seconds as defined by the user
"Repetitions"
Number of times the same exposure has to be repeated. A value of 0
means that the exposure has to be repeated forever until a STOP
command is issued
"File"
File where the last image has been saved.
ccdReadoutSetup_uifClass - GUI class for CCD readout setup display
Application panels who intend to use this class, must register to the
library libccdGuiPublic.tcl.
All database attributes defined within this class are relative to the
root point of the camera used.
Therefore, when importing an instance of this class in a panel, the
Database Current Working Point must be set accordingly.
For example, if the camera used is called "myccd", then
the CWP has to be <alias>myccd.
Note: The class shows the contents of the Workstation on-line database.
The CCS Scan System must be enabled and working in order to
retrieve the correct values from the CCD LCU.
This class displays only output fields.
In the order from top to button, left to right:
"Speed"
Readout speed as defined by the user
"Binning"
"X"
Horizontal binning factor as defined by the user
"Y"
Vertical binning factor as defined by the user
"Window"
"#"
Window index followed by field indicating if the window is enabled
(YES) or not (NO)
"DimX"
Horizontal window size
"DimY"
Vertical window size
"FirstX"
Horizontal coordinate of window lower left corner
"FirstY"
Vertical coordinate of window lower left corner
3.5 Include files
All definitions needed by applications using the CCD software are contained in the file ccd.h.
It includes the files ccdDbPublic.h, which contains definitions of public database points/attributes, ccdErrors.h, which contains the CCD error codes, and ccdObj.h, which contains the definitions used by the library libccdObj.a.
These files only are considered public and must be used by external applications.
Other include files are installed as well, since they are needed by more than one CCD software module; nevertheless they are considered as private files to the CCD software: external applications are not allowed to use information contained in them, and therefore they are not documented in this section.
3.5.1 ccd.h
/*************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccd.h,v 2.4 1998/09/18 08:57:18 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* alongino 24/07/95 created
* alongino 17/08/95 ccdCAMERANAME_LEN moved from ccdInternal.h
* alongino 18/08/95 SETUP parameters moved from ccdInternal.h and modified
* alongino 23/08/95 added ccdSETUPRES and ccdCheckSetup
* alongino 24/08/95 added ccdWINDOW and ccdSETUP
* modified macro for commands (added CMD in front)
* alongino 31/08/95 added ccdFITSHIERSUFF
* alongino 04/09/95 ccdGetIndexFromId moved from ccdInternal.h
* alongino 29/09/95 ccdDatabase.h replaced with ccdDbPublic.h
* alongino 30/01/96 added definitions for command parameters
* pduhoux 07/03/96 removed 'const' from prototypes
* pduhoux 24/05/96 added WAIT modes
* alongino 10/06/96 moved from module ccdcon to ccd
* alongino 09/07/96 added ccdIP_NO_USER_FUN and ccdIP_NO_USER_BUF
* alongino 12/07/96 added ccdCMD_WAIT
* pduhoux 22/07/96 added doTransfer/doProcess flags in ccdSETUPRES
* alongino 09/10/96 DET.FRAM.TYPE DET.FRAM.BIAS DET.FRAM.FLATF implemented
* pduhoux 11/11/96 added setup parameters to ccdIPIMAGE data structure
* alongino 15/11/96 added ccdObj.h
* alongino 13/12/96 added ccdCMD_STAND_ALONE
* alongino 16/12/96 added parameters for ccdCMD_STAND_ALONE
* pduhoux 17/01/97 added macro ccdMAXLENFILE = 31 (SPR960683)
* pduhoux 12/02/97 added setup macros ccdTIME_START/REP/DEF
* pduhoux 04/03/97 added ccdPROCESS data structure
* replaced IP setup by array for multiple window IP
* pduhoux 12/03/97 VERSION_DATE is MAY97
* pduhoux 12/03/97 added cmd STARTTL/STOPTL and STARTTM/STOPTM
* moved cmd OFF/ONLINE from ccdInternal.h
* pduhoux 13/03/97 removed setup keywords for former one window processing
* pduhoux 14/03/97 added ccdKEY_TMPSTAT & ccdKEY_TELSTAT for STATUS cmd
* pduhoux 16/04/97 added <gainIndex> in ccdCONFCLOCK
* pduhoux 02/06/97 new data structure ccdIPIMAGE
* enhanced ccdSETUP/ccdPROCESS data structures
* pduhoux 30/06/97 added <timeDefIdem>, <linesToShiftType> and
* <linesToShiftMulti[]> in ccdSETUP data structure
* added setup macros ccdEXP_STEP_DEF, ccdTIME_DEF_IDEM,
* ccdTIME_DEF1 to ccdTIME_DEF10, ccdREAD_SHIFT_TYPE,
* ccdREAD_SHIFT1 to ccdREAD_SHIFT10
* pduhoux 30/06/97 added <elAdu[]> in ccdCONFCLOCK
* pduhoux 26/07/97 added ccdTHRMIN_5SIGMA_WINDOW_SELF/PREV
* added setup macro ccdREAD_IMAGE_SIM
* added field <fileNameSimu> in ccdSETUP
* pduhoux 04/08/97 generalized support to ccdTHRMIN & ccdBACKGND
* pduhoux 16/09/97 removed timeStart from ccdSETUP (unused)
* pduhoux 10/11/97 moved ccdVERSION & ccdVERSION_DATE to
* ccdint/include/ccdintDefines.h
* alongino 09/05/98 ccdIPEXPOSURE enhanced with more time info
* alongino 12/05/98 added ccdDO_WIPE and ccdXFER_SYNC
* wipeTime and itSync in ccdSETUP
* pduhoux 25/05/98 added some fields in ccdIPEXPOSURE
* pduhoux 12/08/98 added command ccdCMD_STOP_WAIT (STPWAIT)
* renamed DET.WINi.ASUIT into DET.WINi.ASUIT1
*/
/*************************************************************************
* This file contains all definitions used by external modules using the
* CCD sw
*************************************************************************/
#ifndef CCD_H
#define CCD_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* CCS & LCC header files
*/
#include "CCS.h"
#include "cai.h"
/*
* CCD header files
*/
#include "ccdDbPublic.h"
#include "ccdErrors.h"
#include "ccdObj.h"
/* CCD module name */
#define ccdMODULE "ccd"
/*
* Constants
*/
#define ccdENV_LENV "CCDLENV" /* name of env. var. for LCU env. */
#define ccdENV_DID "CCDDID" /* name of env. var. for Dictionary */
#define ccdDID "CCDDCS" /* name of default CCD Data Dictionary */
#define ccdCAT slxDETECTOR /* name of FITS category */
#define ccdEXP_NEXT -1 /* ID for next exposure to start */
#define ccdEXP_LAST 0 /* ID for last started exposure */
#define ccdCAMERANAME_LEN 8 /* maximum length of camera name */
#define ccdMAXLENFILE 31 /* maximum length of FITS file names */
#define ccdMAXBINX 8 /* maximum binning allowed along x */
#define ccdMAXBINY 8 /* maximum binning allowed along y */
#define ccdFITSHIERSUFF "det" /* suffix for FITS HIER DET file */
#define ccdDCSHEADLINES 21 /* lines written by CCD DCS in FITS header */
#define ccdDCSXTNDLINES 22 /* lines written by CCD DCS in FITS header */
/* XTENSION part */
/* commands implemented */
#define ccdCMD_ABORT "ABORT"
#define ccdCMD_BIAS "BIAS"
#define ccdCMD_CONTINUE "CONT"
#define ccdCMD_DISPLAY "DISPLAY"
#define ccdCMD_DUMP "DUMP"
#define ccdCMD_END "END"
#define ccdCMD_EXIT "EXIT"
#define ccdCMD_FLAT "FLAT"
#define ccdCMD_GRAB "GRAB"
#define ccdCMD_INIT "INIT"
#define ccdCMD_OFF "OFF"
#define ccdCMD_ONLINE "ONLINE"
#define ccdCMD_OPERATE "OPERATE"
#define ccdCMD_PAUSE "PAUSE"
#define ccdCMD_PDOWN "PDOWN"
#define ccdCMD_SETUP "SETUP"
#define ccdCMD_STAND_ALONE "STANDAL"
#define ccdCMD_STANDBY "STANDBY"
#define ccdCMD_START "START"
#define ccdCMD_STARTAG "STARTAG"
#define ccdCMD_STARTLP "STARTLP"
#define ccdCMD_START_WIPE "STARTWP"
#define ccdCMD_STARTTL "STARTTL"
#define ccdCMD_STARTTM "STARTTM"
#define ccdCMD_STATUS "STATUS"
#define ccdCMD_STOP "STOP"
#define ccdCMD_STOP_WAIT "STPWAIT"
#define ccdCMD_STOP_WIPE "STOPWP"
#define ccdCMD_STOPTL "STOPTL"
#define ccdCMD_STOPTM "STOPTM"
#define ccdCMD_VERS "VERSION"
#define ccdCMD_WAIT "WAIT"
/* commands implemented in WS simulation only (not supported by LCU yet ) */
#define ccdCMD_DISABLE "DISABLE"
#define ccdCMD_ENABLE "ENABLE"
#define ccdCMD_ENHANCE "ENHANCE"
#define ccdCMD_PROCESS "PROCESS"
#define ccdCMD_PXQUERY "PXQUERY"
#define ccdCMD_SELFTST "SELFTST"
#define ccdCMD_VERBOSE "VERBOSE"
/* commands not yet implemented */
#define ccdCMD_CONFIG "CONFIG"
#define ccdCMD_SIM "SIM"
#define ccdCMD_STOPSIM "STOPSIM"
/* parameters */
/* command ccdCMD_STATUS */
#define ccdPAR_STATUS_EXPOID "expoId" /* exposure ID parameter name */
#define ccdPAR_STATUS_FUNCTION "function" /* function parameter name */
/* paremeters currently used for ccdPAR_STATUS_FUNCTION */
#define ccdALL "all"
#define ccdGLOBAL "global"
#define ccdKEY_OPMODE "DET.MODE" /* see also ccdOPMODE */
#define ccdKEY_OPSTATE "DET.STATE" /* see also ccdSTATE */
#define ccdKEY_SHTSTAT "DET.SHUT" /* see also ccdSHT_STATUS */
#define ccdKEY_TMPSTAT "DET.TEMP" /* Temperature values */
#define ccdKEY_TELSTAT "DET.TELE" /* Telemetry values */
/* reply parameters for ccdCMD_STATUS */
#define ccdPAR_STATUS_EXPSTATUS "expStatus" /* exposure status par. name */
/* see also ccdEXP_xxx */
#define ccdPAR_STATUS_FUNCSTATUS "funcStatus" /* function status par. name */
/* command ccdCMD_SETUP */
#define ccdPAR_SETUP_EXPOID "expoId" /* exposure ID parameter name */
#define ccdPAR_SETUP_FILE "file" /* setup file parameter name */
#define ccdPAR_SETUP_FUNCTION "function" /* setup function name */
#define ccdPAR_SETUP_CHECK "check" /* setup check required */
/* command ccdCMD_START */
#define ccdPAR_START_AT "at" /* start at UTC */
/* paremeters currently used for ccdPAR_SETUP_FUNCTION */
#define ccdEXP_TYPE "DET.EXP.TYPE" /* exposure type */
/* see also ccdEXPTYPE */
#define ccdEXP_STEP_DEF "DET.WIN1.NDIT" /* Number of steps for MULTI */
#define ccdTIME_DEF_IDEM "DET.WIN1.ASUIT1" /* integration time as UIT1 */
#define ccdTIME_DEF_BASE "DET.WIN1.UIT"
#define ccdTIME_DEFi "DET.WIN1.UIT%i" /* integration time */
#define ccdTIME_DEF "DET.WIN1.UIT1" /* integration time single */
#define ccdREPEAT_DEF "DET.EXP.NREP" /* exp. repetition count */
/* see also ccdREPEAT_FOREVER */
#define ccdDO_WIPE "DET.EXP.WIPETIM" /* wipe at the begin of exp. */
#define ccdTIME_REP "DET.EXP.TIMEREP" /* Interval between 2 exposures*/
#define ccdFILE_UNC "DET.FRAM.FITSUNC" /* file for uncompr. image data*/
#define ccdDISK_SAVE "DET.FRAM.FITSMTD" /* disk save method */
#define ccdXFER_SYNC "DET.FRAM.XFERSYN" /* image transfer synchronous */
/* see also ccdDISKSAVE */
#define ccdSAMPLE "DET.FRAM.SAMPLE" /* transfer sampling rate */
#define ccdDISPLAY "DET.DISPLAY" /* real-time display frame Id */
/* see also ccdNO_DISPLAY */
#define ccdREAD_CLOCK "DET.READ.CLKIND" /* clock index */
#define ccdREAD_GAIN "DET.OUT1.GAININD" /* readout gain */
#define ccdREAD_FRAME_TYPE "DET.FRAM.TYPE" /* frame type */
/* see also ccdFRAME_xxx */
#define ccdREAD_SHIFT_TYPE "DET.READ.SHIFTYP" /* line shift type for MULTI */
#define ccdREAD_SHIFT_BASE "DET.READ.SHIFT" /* line shift */
#define ccdREAD_SHIFTi "DET.READ.SHIFT%i" /* line shift step #i */
#define ccdREAD_IMAGE_SIM "DET.READ.SIMIMG" /* image to load for ACE sim */
/*===========*/
/* WINDOW #1 */
/*===========*/
#define ccdREAD_WIN1_BIN_X "DET.WIN1.BINX" /* readout x binning */
#define ccdREAD_WIN1_BIN_Y "DET.WIN1.BINY" /* readout y binning */
#define ccdREAD_WIN1_ENAB "DET.WIN1.ST" /* enabled flag */
#define ccdREAD_WIN1_FIR_X "DET.WIN1.STRX" /* first x pixel */
#define ccdREAD_WIN1_DIM_X "DET.WIN1.NX" /* x dimensions */
#define ccdREAD_WIN1_FIR_Y "DET.WIN1.STRY" /* first y pixel */
#define ccdREAD_WIN1_DIM_Y "DET.WIN1.NY" /* y dimensions */
#define ccdPROC_WIN1_MINMAX "DET.WIN1.MINMAX" /* search image extrema */
#define ccdPROC_WIN1_BIAS "DET.WIN1.BIAS" /* bias subtraction wanted */
#define ccdPROC_WIN1_FLAT "DET.WIN1.FLATF" /* flat field division wanted */
#define ccdPROC_WIN1_CENTROID "DET.WIN1.CENTROID"/* type of centroiding */
/* see also ccdCENTROID_xxx */
#define ccdPROC_WIN1_REF_X "DET.WIN1.REFX" /* X ref. star for centroiding */
#define ccdPROC_WIN1_REF_Y "DET.WIN1.REFY" /* Y ref. star for centroiding */
#define ccdPROC_WIN1_USERFUNC "DET.WIN1.IPFUNC" /* User Function name */
#define ccdPROC_WIN1_USERBUFF "DET.WIN1.IPBUFF" /* User Buffer name */
#define ccdPROC_WIN1_THRMIN "DET.WIN1.THRMIN" /* threshold for min intensity */
#define ccdPROC_WIN1_THRMAX "DET.WIN1.THRMAX" /* threshold for max intensity */
#define ccdPROC_WIN1_BACKGND "DET.WIN1.BACKGND" /* sky background */
#define ccdPROC_WIN1_IPLLX "DET.WIN1.IPLLX" /* proc subWin offsets */
#define ccdPROC_WIN1_IPLLY "DET.WIN1.IPLLY" /* proc subWin offsets */
#define ccdPROC_WIN1_IPURX "DET.WIN1.IPURX" /* proc subWin offsets */
#define ccdPROC_WIN1_IPURY "DET.WIN1.IPURY" /* proc subWin offsets */
/*===========*/
/* WINDOW #2 */
/*===========*/
#define ccdREAD_WIN2_BIN_X "DET.WIN2.BINX" /* readout x binning */
#define ccdREAD_WIN2_BIN_Y "DET.WIN2.BINY" /* readout y binning */
#define ccdREAD_WIN2_ENAB "DET.WIN2.ST" /* enabled flag */
#define ccdREAD_WIN2_FIR_X "DET.WIN2.STRX" /* first x pixel */
#define ccdREAD_WIN2_DIM_X "DET.WIN2.NX" /* x dimensions */
#define ccdREAD_WIN2_FIR_Y "DET.WIN2.STRY" /* first y pixel */
#define ccdREAD_WIN2_DIM_Y "DET.WIN2.NY" /* y dimensions */
#define ccdPROC_WIN2_MINMAX "DET.WIN2.MINMAX" /* search image extrema */
#define ccdPROC_WIN2_BIAS "DET.WIN2.BIAS" /* bias subtraction wanted */
#define ccdPROC_WIN2_FLAT "DET.WIN2.FLATF" /* flat field division wanted */
#define ccdPROC_WIN2_CENTROID "DET.WIN2.CENTROID"/* type of centroiding */
/* see also ccdCENTROID_xxx */
#define ccdPROC_WIN2_REF_X "DET.WIN2.REFX" /* X ref. star for centroiding */
#define ccdPROC_WIN2_REF_Y "DET.WIN2.REFY" /* Y ref. star for centroiding */
#define ccdPROC_WIN2_USERFUNC "DET.WIN2.IPFUNC" /* User Function name */
#define ccdPROC_WIN2_USERBUFF "DET.WIN2.IPBUFF" /* User Buffer name */
#define ccdPROC_WIN2_THRMIN "DET.WIN2.THRMIN" /* threshold for min intensity */
#define ccdPROC_WIN2_THRMAX "DET.WIN2.THRMAX" /* threshold for max intensity */
#define ccdPROC_WIN2_BACKGND "DET.WIN2.BACKGND" /* sky background */
#define ccdPROC_WIN2_IPLLX "DET.WIN2.IPLLX" /* proc subWin offsets */
#define ccdPROC_WIN2_IPLLY "DET.WIN2.IPLLY" /* proc subWin offsets */
#define ccdPROC_WIN2_IPURX "DET.WIN2.IPURX" /* proc subWin offsets */
#define ccdPROC_WIN2_IPURY "DET.WIN2.IPURY" /* proc subWin offsets */
/* paremeters foreseen but not used (the list is not finalized) */
#define ccdREADPIX "DET.READ.NO" /* pixel readout times (skip) */
#define ccdMPPMODE "DET.READ.MODE" /* mpp mode */
#define ccdFILE_COM "DET.FRAM.FITSCMP" /* file for compr. image data */
/* command ccdCMD_START */
#define ccdPAR_START_EXPOID "expoId" /* exposure ID parameter name */
/* command ccdCMD_VERS */
#define ccdPAR_VERS_CCDVERS "ccdVersion" /* version of CCD software */
/* parameters for ccdCMD_STAND_ALONE */
#define ccdPAR_STANDAL_ON "on" /* stand-alone flag */
#define ccdPAR_STANDAL_ARC "archive" /* archive images */
/*
* exposure status (ccdPAR_STATUS_EXPSTATUS). Bit-field
*/
#define ccdEXP_NONE 0
#define ccdEXP_INACTIVE 1
#define ccdEXP_PENDING 2
#define ccdEXP_INTEGRATING 4
#define ccdEXP_PAUSED 8
#define ccdEXP_READING 16
#define ccdEXP_PROCESSING 32
#define ccdEXP_TRANSFERING 64
#define ccdEXP_COMPLETED 128
#define ccdEXP_FAILED 256
#define ccdEXP_ABORTED 512
#define ccdEXP_LOOP_FINITE 1024
#define ccdEXP_LOOP_INFINITE 2048
#define ccdEXP_DONE \
(ccdEXP_COMPLETED | ccdEXP_FAILED | ccdEXP_ABORTED)
#define ccdEXP_RUNNING \
(ccdEXP_PENDING | ccdEXP_INTEGRATING | ccdEXP_PAUSED | \
ccdEXP_READING | ccdEXP_PROCESSING | ccdEXP_TRANSFERING )
#define ccdEXP_LOOP \
(ccdEXP_LOOP_FINITE | ccdEXP_LOOP_INFINITE)
/*
* Infinite loop (ccdREPEAT_DEF)
*/
#define ccdREPEAT_FOREVER 0
/*
* Display types
*/
#define ccdNO_DISPLAY -1
/*
* Wait modes
*/
#define ccdWAIT_SINGLE 0
#define ccdWAIT_GLOBAL 1
#define ccdWAIT_SINGLE_STR "Single"
#define ccdWAIT_GLOBAL_STR "Global"
/* ccdEXP_TYPE */
typedef enum
{
ccdEXP_NORMAL = 1,
ccdEXP_DARK,
ccdEXP_MULTI
} ccdEXPTYPE;
#define ccdEXP_NORMAL_STR "Normal"
#define ccdEXP_DARK_STR "Dark"
#define ccdEXP_MULTI_STR "Multiple" /* not implemented yet */
typedef char ccdCAMERANAME[ccdCAMERANAME_LEN + 1]; /* name of CCD camera */
/* operational modes */
typedef enum /* possible operational modes */
{
ccdNOT_AVAILABLE = 1, /* CCD sw is not available */
ccdNORMAL, /* CCD sw and hw available */
ccdSIM_WS, /* LCU CCD sw is simulated at WS level */
ccdSIM_LCU, /* CCD hw is simulated at LCU level */
ccdSIM_ACE /* CCD hw is simulated at ACE level */
} ccdOPMODE;
/*
* operational states
*/
typedef enum {
ccdUNKNOWN = ccsSTATE_UNK, /* unknown */
ccdOFF = ccsSTATE_OFF, /* terminating */
ccdLOADED = ccsSTATE_LOADED, /* need to be initialised */
ccdSTANDBY = ccsSTATE_STANDBY, /* stand-by */
ccdONLINE = ccsSTATE_ONLINE, /* ready for exposures */
} ccdSTATE;
#define ccdOPERATING ccsSTATE_ONLINE
/*
* shutter status definition
*/
typedef enum
{
ccdSHT_ERROR = -1,
ccdSHT_CLOSED,
ccdSHT_OPENED,
ccdSHT_CLOSING,
ccdSHT_OPENING
} ccdSHT_STATUS;
/* Various ways of saving an image in disk file(s) */
typedef enum
{
ccdDISK_NONE = 0,
ccdDISK_COMPRESS, /* not implemented yet */
ccdDISK_UNCOMPRESS,
ccdDISK_BOTH /* not implemented yet */
} ccdDISKSAVE;
#define ccdDISK_NONE_STR "None"
#define ccdDISK_COMPRESS_STR "Compress"
#define ccdDISK_UNCOMPRESS_STR "Uncompress"
#define ccdDISK_BOTH_STR "Both"
/*
* Frame type (for storage in LCU memory, see setup param. ccdREAD_FRAME_TYPE)
*/
#define ccdFRAME_NORMAL "Normal" /* normal frame: temporary storage */
#define ccdFRAME_BIAS "Bias" /* reference bias frame: permanent storage */
#define ccdFRAME_DARK "Dark" /* dark frame: permanent storage */
#define ccdFRAME_FLAT "FF" /* reference flatfield frame: permanent storage */
typedef enum
{
ccdFRM_NORMAL = 0,
ccdFRM_BIAS,
ccdFRM_DARK,
ccdFRM_FLAT
} ccdFRMTYPE;
/*
* Multi-Step Integration time
*/
#define ccdEXPTIME_IDEM ccsTRUE /* use DET.WIN1.UIT1 for all steps */
#define ccdEXPTIME_LIST ccsFALSE /* use DET.WIN1.UITi as defined */
/*
* Line Shift type
*/
/* Setup values for Line Shift type */
typedef enum
{
ccdLINE_SHIFT_ALT = -1, /* use DET.READ.SHIFT1 alt. pos & neg*/
/* Alternate exposure mode */
ccdLINE_SHIFT_IDEM = 0, /* use DET.READ.SHIFT1 for all steps */
/* Focus & Sky Coherence modes */
ccdLINE_SHIFT_LIST = 1 /* use DET.READ.SHIFTi as defined */
} ccdLINESHIFT_TYPE;
#define ccdLINE_SHIFT_ALT_STR "alternate"
#define ccdLINE_SHIFT_IDEM_STR "idem"
#define ccdLINE_SHIFT_LIST_STR "list"
/*
* Centroiding type (see setup param. ccdIP_CENTROID)
*/
typedef enum
{
ccdCENTROID_NONE = 0,
ccdCENTROID_STANDARD,
ccdCENTROID_THRESHOLD
} ccdCENTYPE;
#define ccdCEN_NONE_STR "none" /* no centroiding calculation */
#define ccdCEN_STANDARD_STR "standard" /* standard centroiding calc. */
#define ccdCEN_THRESHOLD_STR "threshold" /* standard centroiding calc. */
/*
* Maximum Threshold :
* ===================
* - Ignored in the current implementation
*/
/*
* Minimum Threshold :
* ===================
* => value >= 0 : use this value
* => value within the integer range [-1;-9] :
* the threshold min is preset to N StdDev of Intensity distribution
* over this window
* => value within the integer range [-11;-19] :
* the threshold min is preset to N StdDev of Intensity distribution
* over the first window
* This setting is only valid for the second window
*/
/* The following macros are standard settings */
#define ccdTHRMIN_3SIGMA_WINDOW_SELF -3
#define ccdTHRMIN_3SIGMA_WINDOW_PREV -13
#define ccdTHRMIN_5SIGMA_WINDOW_SELF -5
#define ccdTHRMIN_5SIGMA_WINDOW_PREV -15
/*
* BackGround :
* ============
* => value within the >= 0 : use this value
* => value set to -1 :
* the BackGround is preset to the Average Intensity
* over this window
* => value set to -11 :
* the BackGround is preset to the Average Intensity
* over the first window
* This setting is only valid for the second window
*/
/* The following macros are standard settings */
#define ccdBCKGND_FLUX_WINDOW_SELF -1
#define ccdBCKGND_FLUX_WINDOW_PREV -11
/* real-time image processing user function definitions */
#define ccdIP_NO_USER_FUN "None" /* no user function to be called */
#define ccdIP_NO_USER_BUF "None" /* user function has no buffer */
/*
* IMAGE PROCESSING DATA STRUCTURES
* --------------------------------
* The coordinates are, unless specified, absolute to the lower left corner
* of the detector. This pixel has the coordinates (1,1).
*/
typedef struct
{
/*
* The exposure structure provides general information on the
* exposure.
*/
ccdEXPTYPE expType;
vltINT32 stepsDef; /* number of steps (MULTI) */
ccsTIMEVAL wipeStart; /* actual wipe start time (UTC) */
vltDOUBLE wipeTime; /* actual wipe duration */
ccsTIMEVAL expStart; /* actual integration start time (UTC) */
vltDOUBLE expTime; /* Effective exposure time */
vltDOUBLE expTimeMulti[ccdMAXINTEGR];
vltINT32 shiftLine[ccdMAXINTEGR];
ccsTIMEVAL shiftStart[ccdMAXINTEGR]; /* Line shift start time (UTC) */
vltDOUBLE shiftTime; /* Effective line shift time */
ccsTIMEVAL readStart; /* actual readout start time (UTC) */
vltDOUBLE readTime; /* actual readout duration */
ccsTIMEVAL procStart; /* actual image proc. start time (UTC) */
} ccdIPEXPOSURE;
/* data types */
typedef enum
{
ccdIMAGE_CHAR = 0, /* 8 bit unsigned */
ccdIMAGE_INT, /* 16 bit signed */
ccdIMAGE_FLOAT /* 32 bit floating point */
} ccdIMAGE_REP;
typedef struct
{
/*
* The window structure describes the current window passed to the
* IP function. Besides the information on the window position on
* the detector and its dimensions, available are also the window
* index (starting from 0 as first window defined), the pixel
* representation (integer 8 or 16 bits, or 32-bit floating point)
* which is required for proper casting of the data pointer.
*/
vltINT32 winNum; /* Window index */
ccdIMAGE_REP pixelRep; /* Pixel value representation */
vltINT32 xPos,yPos; /* Location of lower left corner */
vltINT32 xDim,yDim; /* Window dimension */
void *data; /* Pointer to image data */
} ccdIPWINDOW;
typedef struct
{
/*
* The setup structure contains the setup parameters used by the
* image processing functions.
*/
vltINT32 llx,lly; /* Offset to Lower Left corner */
vltINT32 urx,ury; /* Offset to Upper Right corner */
vltDOUBLE xRef,yRef; /* Reference point */
vltDOUBLE minThr,maxThr; /* Thresholds */
vltDOUBLE bckGnd; /* Estimation of Sky Back Ground */
} ccdIPSETUP;
typedef struct
{
/*
* The result structure is filled in according to the setup
* The first part (STATISTICS) is automatically updated
* whenever the centroid calculation or a user-function is
* invoked.
* Since the two advanced image processing functions
* ccdipAG(3) and ccdipIQE(3) have the same interface (ccdIPUSERFUNC),
* it is possible to design a more complex function complying the
* interface and invoking these functions in the processing sequence.
* However, the designer has to considere the computation times which
* are involved (for 20x20 window) :
* ccdipAG : <20ms
* ccdipIQE : 800ms
*/
/* STATISTICS : ccdipStatistic() */
vltDOUBLE max; /* First Maximum Intensity */
vltDOUBLE xMax,yMax; /* Location */
vltDOUBLE min; /* First Minimum Intensity */
vltDOUBLE xMin,yMin; /* Location */
vltDOUBLE flux; /* Raw Average ADC counts / pixel */
vltDOUBLE sigma; /* Standard-Deviation on the flux */
vltINT32 numSpot; /* Number of spots in image */
vltINT32 numPix; /* Number of valid pixels in image */
/* CENTROID : ccdipCentroid() or ccdipAG() or ccdipWCE() */
vltDOUBLE cen; /* Centroid Intensity (closest pixel) */
vltDOUBLE xCen,yCen; /* Location */
vltDOUBLE xErr,yErr; /* Error vector (relative to Ref Point)*/
vltDOUBLE SNR; /* Signal-to-Noise Ratio */
vltDOUBLE xFWHM,yFWHM; /* FWHM estimation */
/* ANALYSIS : ccdipIQE() */
vltDOUBLE xFWHM_SD,yFWHM_SD; /* FWHM Std Dev */
vltDOUBLE ObjAngle,ObjAngle_SD;/* Object position angle + Std Dev */
/* BACKGROUND : ccdipBackground() */
vltDOUBLE BckGnd,BckGnd_SD; /* Back Ground estimation + Std Dev */
} ccdIPRESULT;
typedef struct
{
ccdIPEXPOSURE exposure;
ccdIPWINDOW window;
ccdIPSETUP setup[ccdMAXWINDOW];
ccdIPRESULT result[ccdMAXWINDOW];
} ccdIPIMAGE;
/* Function prototype for LCU real-time image processing user function */
typedef ccsCOMPL_STAT (* ccdIPUSERFUNC)(ccdIPIMAGE *,void *,ccsERROR *);
/* info about chip configuration */
typedef struct
{
vltLOGICAL available; /* available */
vltINT32 xLocation; /* x location in mosaic */
vltINT32 yLocation; /* y location in mosaic */
} ccdCONFCHIP;
/* info about chip configuration */
typedef struct
{
vltLOGICAL available; /* available */
vltINT32 chipIndex; /* index of chip it belongs to */
vltINT32 xLocation; /* x location in mosaic */
vltINT32 yLocation; /* y location in mosaic */
vltINT32 leftToRight; /* horizontal readout direction */
vltINT32 downToUp; /* vertical readout direction */
vltINT32 xPrescan; /* prescan pixels along x */
vltINT32 yPrescan; /* prescan pixels along y */
vltINT32 xPix; /* active pixels along x */
vltINT32 yPix; /* active pixels along y */
vltINT32 xOverscan; /* overscan pixels along x */
vltINT32 yOverscan; /* overscan pixels along y */
} ccdCONFOUTPUT;
/* info about clock pattern */
typedef struct
{
vltBYTES16 description; /* description of clock pattern used */
vltINT32 firstOutput; /* output generating first pixel value*/
vltINT32 gainIndex; /* default gain index */
vltINT32 nWindows; /* maximum number of windows supported*/
vltINT32 adcTime; /* usec needed to digitize one pixel */
vltINT32 lineShiftMode; /* supported line shift mode */
vltLOGICAL outEnab[ccdMAXOUTPUT];/* outputs enabled */
vltDOUBLE elAdu[ccdMAXOUTPUT];
} ccdCONFCLOCK;
/* info about camera shutter */
typedef struct
{
vltLOGICAL available; /* available */
} ccdCONFSHUTTER;
/* info about camera configuration */
typedef struct
{
ccdCAMERANAME name; /* camera name */
ccsENVNAME envName; /* environment name */
} ccdCAMERA;
/* info about camera configuration */
typedef struct
{
vltLOGICAL frameTransfer; /* frame transfer CCD */
vltLOGICAL skipper; /* skipper CCD */
vltLOGICAL mpp; /* mpp mode supported */
vltINT32 xPixels; /* Number of columns */
vltINT32 yPixels; /* Number of rows */
vltINT32 bitsPixel; /* ADC resolution */
vltINT32 numOutputs; /* Number of outputs */
ccdCONFCHIP chip[ccdMAXCHIPS]; /* single chip description */
ccdCONFOUTPUT output[ccdMAXOUTPUT];/* single output description */
ccdCONFCLOCK clock[ccdMAXCLOCKS]; /* single clock pattern information */
ccdCONFSHUTTER shutter; /* shutter information */
} ccdCONFIG;
/* window readout definition */
typedef struct
{
vltLOGICAL enabled; /* this window is enabled for readout */
vltLOGICAL idem; /* same binning as Window #1 */
vltINT32 xBinning; /* horizontal binning factor */
vltINT32 yBinning; /* vertical binning factor */
vltINT32 xFirst; /* first column */
vltINT32 xDim; /* number of columns */
vltINT32 yFirst; /* first row */
vltINT32 yDim; /* number of rows */
} ccdWINDOW;
/* window process definition */
typedef struct
{
vltLOGICAL minMax; /* do MinMax */
vltLOGICAL bias; /* do Bias correction */
vltLOGICAL dark; /* do Dark correction */
vltLOGICAL flat; /* do Flat Field correction */
vltINT32 averageN; /* do average over N frames */
vltINT32 centroiding; /* do Centroid calculation (mode) */
vltDOUBLE centrRefX; /* Reference Point X */
vltDOUBLE centrRefY; /* Reference Point Y */
vltDOUBLE centrThreshMin; /* Centroid Threshold Min */
vltDOUBLE centrThreshMax; /* Centroid Threshold Max */
vltDOUBLE backGround; /* Sky BackGround */
vltBYTES32 userFuncName; /* User-Defined function name */
vltBYTES32 userBuffName; /* User-Defined buffer address */
vltINT32 procLLX,procLLY; /* Lower Left & Upper Right corners */
vltINT32 procURX,procURY; /* of Processing window (offset from */
/* physical window) */
} ccdPROCESS;
/* exposure setup parameters */
typedef struct
{
ccdEXPTYPE expType; /* exposure type */
vltINT32 stepsDef; /* number of steps (MULTI) */
vltINT32 repeatDef; /* repetition number (0 is forever) */
vltINT32 wipeTime; /* wipe wanted (>= 0) or not (<0) */
ccdFRMTYPE frameType; /* frame type */
vltLOGICAL timeDefIdem; /* exposure time UITi as UIT1 ? */
vltDOUBLE timeDef; /* exposure time (step 1) */
vltDOUBLE timeDefMulti[ccdMAXINTEGR];
/* exposure time (steps 2+ for MULTI) */
vltDOUBLE timeRepeat; /* sec between repeated exposures */
vltLOGICAL fitsInfoCollect;/* Collect info for FITS header */
vltLOGICAL tempExp; /* Store tmp. periodically during exposure */
vltINT32 tempSecs; /* sec between temperature checks */
vltLOGICAL teleExp; /* Store tel. periodically during exposure */
vltINT32 teleSecs; /* sec between telemetry checks */
/* IT : */
ccdDISKSAVE diskSave; /* disk save method */
vltBYTES32 fileNameUnComp; /* uncompressed FITS file name */
vltBYTES32 fileNameComp; /* compressed FITS file name */
vltINT32 pixRepr; /* # bit for representation */
vltINT32 bitShift; /* # bit shift for RTD */
vltINT32 compression; /* compression type */
vltINT32 sampling; /* 1 image transferred out of N read */
vltLOGICAL itSync; /* image transfer synchronous */
/* RTD : */
vltINT32 frameId; /* real-time display frame Id */
/* IP : */
ccdPROCESS process[ccdMAXWINDOW];/* single window setup */
/* RDT : */
vltINT32 linesToShiftType; /* how lines shall be shifted */
vltINT32 linesToShift; /* # lines to be shifted step 1 */
vltINT32 linesToShiftMulti[ccdMAXINTEGR];
/* # lines to be shifted steps 2+ */
vltINT32 readPixelN; /* # times the same pixel is read */
vltLOGICAL mpp; /* MPP mode flag */
vltINT32 clockIndex; /* readout clock to use */
vltINT32 gainIndex; /* readout gain index */
vltBYTES32 fileNameSimu; /* simulated image (ccdSIM_LCU) */
ccdWINDOW window[ccdMAXWINDOW]; /* single window setup */
} ccdSETUP;
/* results of setup check */
typedef struct
{
vltLOGICAL changed; /* some setup values have been changed*/
vltLOGICAL doTransfer; /* Image transfer required */
vltLOGICAL doProcess; /* Image processing required */
vltDOUBLE readTime; /* estimated readout time (sec) */
vltDOUBLE wipeTime; /* estimated wiping time (sec) */
} ccdSETUPRES;
/*
* Macros
*/
/*
* function prototypes
*/
/* Get information about a CCD camera configuration */
ccsCOMPL_STAT ccdGetConf ( ccdCAMERA *camera, ccdCONFIG *config,
ccsERROR *error);
/* Check a complete exposure setup */
ccsCOMPL_STAT ccdCheckSetup ( ccdCONFIG *config, ccdSETUP *setup,
ccdSETUPRES *results, ccsERROR *error);
/* Check the setup for a windowed readout */
ccsCOMPL_STAT ccdCheckSetupWindow ( ccdCONFIG *config, ccdSETUP *setup,
ccdSETUPRES *results, ccsERROR *error);
/* Get information about a CCD camera configuration */
void ccdGetCIName ( ccdCAMERANAME camera, ccsPROCNAME procName );
/* Extract index of DB point describing an exposure from the exposure ID */
vltINT32 ccdGetIndexFromId ( vltINT32 expId );
#ifdef __cplusplus
}
#endif
#endif /* ! CCD_H */
3.5.2 ccdDbPublic.h
/*************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdDbPublic.h,v 2.4 1998/09/18 08:57:19 vltsccm Exp $"
*
* who when what
* -------- -------- ----------------------------------------------
* alongino 31/08/94 created
* alongino 19/05/95 modified while rearranging database for dbLoader
* alongino 18/07/95 ccdMAXEXP added
* alongino 20/07/95 ccdMAXOUTCHIP added
* alongino 29/09/95 changed name from ccdDbDimensions.h to ccdDbPublic.h
* added macros for public part of the database
* pduhoux 30/01/96 added macro ccdDB_EXP_FILECOM
* alongino 21/02/96 added macros define ccdDB_IP_XCEN ccdDB_IP_YCEN
* ccdDB_IP_CENVAL
* pduhoux 28/05/96 added macros ccdDB_STA_FAILURE_LCU/WS
* alongino 18/07/96 added macro ccdDB_STA_EXPID
* P.Duhoux 21/01/97 moved ccdDB_WCS_RA & DEC for WorldCoord attributes
* from ccdDatabase.h
* P.Duhoux 27/02/97 Added macros for images:process_2 attributes
* ccdDB_IP2_
* P.Duhoux 04/03/97 Renamed point <process> into <process:window_1>
* alongino 26/05/97 ccdDB_IP_USERBUFFER removed (SPR 970177)
* same for ccdDB_IP_OBJNUMBER and ccdDB_IP_OBJECTS
* P.Duhoux 02/06/97 added ccdDB_IP_FLUX & ccdDB_IP_NUMPIX
* P.Duhoux 21/07/97 added ccdDB_IP_SNR
* P.Duhoux 12/08/97 added ccdDB_STA_INITDONE
* P.Duhoux 09/10/97 added ccdDB_STA_XXX1 for full path to exposure_1 attr.
* added ccdDB_IPxxx for extrema
* added ccdDB_STA_TELMESSAGE & ccdDB_STA_TMPMESSAGE
*/
/*************************************************************************
* This file contains all definitions for CCD database public attributes
*************************************************************************/
#ifndef CCDDBPUBLIC_H
#define CCDDBPUBLIC_H
/*
* Definition of database vector and table dimensions. Keep consistant !
* NOTE: This file is used by dbLoader as well. Nothing else than define
* instructions or comment lines are possible here.
*/
/* These constants are actually not used directly in the database definition
* files, but the database itself supports configuration for these values
* only. To increase capabilities, modifications in the class definition
* files are needed as well, in particular ccdDETECTOR and ccdEXPOSURES
*/
#define ccdMAXCHIPS 1 /* maximum number of chips in one mosaic */
#define ccdMAXWINDOW 2 /* maximum number of windows for one readout */
#define ccdMAXCLOCKS 10 /* maximum number of clock patterns */
#define ccdMAXEXP 2 /* maximum number of expositions */
/* These constants are used directly in the database definition files */
#define ccdMAXLINKS 15 /* maximum number of transputer links to ACE */
#define ccdMAXLENMSG 32 /* maximum length of message to/from ACE */
#define ccdMAXGAIN 8 /* maximum number of possible gains */
#define ccdMAXOUTCHIP 4 /* maximum number of outputs in one chip */
#define ccdMAXOUTPUT 4 /* maximum number of outputs in mosaic */
#define ccdMAXOBJECTS 100 /* maximum number of objects in image proc. */
#define ccdMAXINTEGR 10 /* maximum number of integrations in one exp. */
#define ccdMAXIMAGES 100 /* maximum number of images in memory */
#define ccdMAXTELSRC 100 /* maximum number of telemetry sources */
#define ccdMAXTMPSRC 10 /* maximum number of temperature sensors */
/* Public part of the CCD database */
/* operational mode */
#define ccdDB_CON_OPMODE ".opMode"
/* system state */
#define ccdDB_STA_SYSTEM ".opState"
/* system errors */
#define ccdDB_STA_FAILURE_WS ".failureWs"
#define ccdDB_STA_FAILURE_LCU ".failureLcu"
/* default image file directory */
#define ccdDB_CON_IMGPATH "images.imageDirectory"
/* running exposures prefix */
#define ccdDB_EXP_POINT "exposures:exposure"
#define ccdDB_EXP_POINT1 "exposures:exposure_1"
/* exposure status - under ccdDB_EXP_POINT_<expIndex> */
#define ccdDB_STA_EXPOSURE "expStatus"
#define ccdDB_STA_EXPOSURE1 "exposures:exposure_1.expStatus"
/* exposure ID - under ccdDB_EXP_POINT_<expIndex> */
#define ccdDB_STA_EXPID "expId"
#define ccdDB_STA_EXPID1 "exposures:exposure_1.expId"
/* name of uncompressed FITS file */
#define ccdDB_EXP_FILEUNC "transfer.fileNameUnComp"
#define ccdDB_EXP_FILEUNC1 "exposures:exposure_1:transfer.fileNameUnComp"
/* Shared Memory Id associated to the Frame (with rtdServer) */
#define ccdDB_EXP_SHMID "display.shmId"
#define ccdDB_EXP_SHMID1 "exposures:exposure_1:display.shmId"
/* Extrema */
#define ccdDB_IP_XMIN "images:process:window_1.ipXMin"
#define ccdDB_IP1_XMIN ccdDB_IP_XMIN
#define ccdDB_IP2_XMIN "images:process:window_2.ipXMin"
#define ccdDB_IP_YMIN "images:process:window_1.ipYMin"
#define ccdDB_IP1_YMIN ccdDB_IP_YMIN
#define ccdDB_IP2_YMIN "images:process:window_2.ipYMin"
#define ccdDB_IP_MINVAL "images:process:window_1.ipMinVal"
#define ccdDB_IP1_MINVAL ccdDB_IP_MINVAL
#define ccdDB_IP2_MINVAL "images:process:window_2.ipMinVal"
#define ccdDB_IP_XMAX "images:process:window_1.ipXMax"
#define ccdDB_IP1_XMAX ccdDB_IP_XMAX
#define ccdDB_IP2_XMAX "images:process:window_2.ipXMax"
#define ccdDB_IP_YMAX "images:process:window_1.ipYMax"
#define ccdDB_IP1_YMAX ccdDB_IP_YMAX
#define ccdDB_IP2_YMAX "images:process:window_2.ipYMax"
#define ccdDB_IP_MAXVAL "images:process:window_1.ipMaxVal"
#define ccdDB_IP1_MAXVAL ccdDB_IP_MAXVAL
#define ccdDB_IP2_MAXVAL "images:process:window_2.ipMaxVal"
/* Centroiding Error vector */
#define ccdDB_IP_XCEN "images:process:window_1.ipXCen"
#define ccdDB_IP1_XCEN ccdDB_IP_XCEN
#define ccdDB_IP2_XCEN "images:process:window_2.ipXCen"
#define ccdDB_IP_YCEN "images:process:window_1.ipYCen"
#define ccdDB_IP1_YCEN ccdDB_IP_YCEN
#define ccdDB_IP2_YCEN "images:process:window_2.ipYCen"
/* Intensity of image center, as computed from centroiding algorythm */
#define ccdDB_IP_CENVAL "images:process:window_1.ipCenVal"
#define ccdDB_IP1_CENVAL ccdDB_IP_CENVAL
#define ccdDB_IP2_CENVAL "images:process:window_2.ipCenVal"
/* Average flux / pixel */
#define ccdDB_IP_FLUX "images:process:window_1.ipFlux"
#define ccdDB_IP1_FLUX ccdDB_IP_FLUX
#define ccdDB_IP2_FLUX "images:process:window_2.ipFlux"
/* Standard Deviation of Pixel Intensity */
#define ccdDB_IP_STDDEV "images:process:window_1.ipStdDev"
#define ccdDB_IP1_STDDEV ccdDB_IP_STDDEV
#define ccdDB_IP2_STDDEV "images:process:window_2.ipStdDev"
/* Signal-to-Noise Ratio */
#define ccdDB_IP_SNR "images:process:window_1.ipSNR"
#define ccdDB_IP1_SNR ccdDB_IP_SNR
#define ccdDB_IP2_SNR "images:process:window_2.ipSNR"
/* number of pixels between the thresholds */
#define ccdDB_IP_NUMPIX "images:process:window_1.ipNumPix"
#define ccdDB_IP1_NUMPIX ccdDB_IP_NUMPIX
#define ccdDB_IP2_NUMPIX "images:process:window_2.ipNumPix"
/* Background estimation */
#define ccdDB_IP_BGND "images:process:window_1.ipBGnd"
#define ccdDB_IP1_BGND ccdDB_IP_BGND
#define ccdDB_IP2_BGND "images:process:window_2.ipBGnd"
/* StdDev on Background */
#define ccdDB_IP_BGND_SD "images:process:window_1.ipBGnd_SD"
#define ccdDB_IP1_BGND_SD ccdDB_IP_BGND_SD
#define ccdDB_IP2_BGND_SD "images:process:window_2.ipBGnd_SD"
/* Object FWHM X estimation */
#define ccdDB_IP_FWHM_X "images:process:window_1.ipFWHM_X"
#define ccdDB_IP1_FWHM_X ccdDB_IP_FWHM_X
#define ccdDB_IP2_FWHM_X "images:process:window_2.ipFWHM_X"
/* Object FWHM Y estimation */
#define ccdDB_IP_FWHM_Y "images:process:window_1.ipFWHM_Y"
#define ccdDB_IP1_FWHM_Y ccdDB_IP_FWHM_Y
#define ccdDB_IP2_FWHM_Y "images:process:window_2.ipFWHM_Y"
/* attributes for WCS handling */
#define ccdDB_WCS_RA "wcs.ra"
#define ccdDB_WCS_DEC "wcs.dec"
/*
* Attributes supposed to be used ONLY within GUI panels
*/
/* remaining exposure time for each step - under ccdDB_EXP_POINT_<expIndex> */
#define ccdDB_STA_TIMEREM "timeRem"
#define ccdDB_STA_TIMEREM1 "exposures:exposure_1.timeRem"
/* % of image transf. */
#define ccdDB_IT_STA_PERC "images:transfer.percent"
/* last line transf. */
#define ccdDB_IT_STA_LINE "images:transfer.last"
/* shutter status */
#define ccdDB_STA_SHTSTATUS "shutter.status"
/* telemetry status message */
#define ccdDB_STA_TELMESSAGE "telemetry.message"
/* temperature status message */
#define ccdDB_STA_TMPMESSAGE "temperature.message"
#endif /* ! CCDDBPUBLIC_H */
3.5.3 ccdErrors.h
/***********************************************************
# "@(#) $Id: ccdErrors.h,v 2.4 1998/09/18 08:57:18 vltsccm Exp $"
#
# Error Include File Created on Sep 10 15:44:33 1998
#
# This file has been generated by a utility
#
# !!!!!!!!!!! DO NOT MANUALLY EDIT THIS FILE !!!!!!!!!!!
#
***********************************************************/
#ifndef ccdERRORS_H
#define ccdERRORS_H
#define ccdERR_BUSY 1
#define ccdERR_CMD_EXECUTE 2
#define ccdERR_CMD_IGNORED 3
#define ccdERR_CMD_UNKNOWN 4
#define ccdERR_CMD_WARNING 5
#define ccdERR_DB_ROOT 6
#define ccdERR_DB_CONSISTENCY 7
#define ccdERR_DB_READ 8
#define ccdERR_DB_WRITE 9
#define ccdERR_ENV_UNKNOWN 10
#define ccdERR_INVALID_ARGUMENT 11
#define ccdERR_NOT_IMPLEMENTED 12
#define ccdERR_OPEN_FILE 13
#define ccdERR_OPMODE 14
#define ccdERR_OPSTATE 15
#define ccdERR_SETUP 16
#define ccdERR_STATUS 17
#define ccdERR_TIMEOUT 18
#define ccdERR_PARAM_INVALID 19
#define ccdERR_PARAM_RANGE 20
#define ccdERR_CCS_CALL 101
#define ccdERR_CD_SET 102
#define ccdERR_CONFIGURATION 103
#define ccdERR_CMD_LIST_FULL 104
#define ccdERR_CMD_LIST_NOT_FOUND 105
#define ccdERR_ENV 106
#define ccdERR_ENV_GET 107
#define ccdERR_ENV_VAR 108
#define ccdERR_ENV_IT 109
#define ccdERR_FITS_FILE 110
#define ccdERR_FITS_KEYWORD 111
#define ccdERR_IMAGE 112
#define ccdERR_IMAGE_INFO 113
#define ccdERR_MSG_ADD 114
#define ccdERR_MSG_ADD_CMD 115
#define ccdERR_MSG_COMM 116
#define ccdERR_MSG_NOT_FOUND 117
#define ccdERR_MSG_RCV 118
#define ccdERR_MSG_RPLY 119
#define ccdERR_NOT_INIT 120
#define ccdERR_NOT_ONLINE 121
#define ccdERR_PIXELS 122
#define ccdERR_RPLY 123
#define ccdERR_RPLY_EXEC 124
#define ccdERR_RPLY_LENGTH 125
#define ccdERR_RPLY_SEND 126
#define ccdERR_RPLY_UNEXP 127
#define ccdERR_RPLY_UNEXP_LAST 128
#define ccdERR_SETUP_FILE 129
#define ccdERR_SETUP_PAR 130
#define ccdERR_SHARED_MEMORY 131
#define ccdERR_STATE_EXEC 132
#define ccdERR_TIME 133
#define ccdERR_NO_DISPLAY 134
#define ccdERR_TIMES_NOT_ALIGNED 135
#define ccdERR_TASK_SPAWN 201
#define ccdERR_TASK_EXISTS 202
#define ccdERR_TASK_NAME 203
#define ccdERR_NO_MEMORY 204
#define ccdERR_FIND_SYMBOL 205
#define ccdERR_VX_CALL 206
#define ccdERR_SEMAPHORE 207
#define ccdERR_ENVIRONMENT 208
#define ccdERR_ACE_CALL 209
#define ccdERR_DCL_CALL 211
#define ccdERR_LCC_CALL 212
#define ccdERR_INT_CALL 213
#define ccdERR_USR_CALL 214
#define ccdERR_INIT_MODULE 215
#define ccdERR_MSG_TYPE 218
#define ccdERR_FIND_FILE 219
#define ccdERR_READ_FILE 220
#define ccdERR_SEND_DATA 221
#define ccdERR_FORMAT 226
#define ccdERR_REPLY 227
#define ccdERR_STARTUP 228
#define ccdERR_TIMER 229
#define ccdERR_SEND_COMMAND 230
#define ccdERR_IMAGE_LIST 231
#define ccdERR_ID 232
#define ccdERR_IMAGE_MISMATCH 233
#define ccdERR_TELEMETRY 234
#define ccdERR_TEMPERATURE 235
#endif
3.5.4 ccdObj.h
/*************************************************************************
* E.S.O. - VLT project
*
* "@(#) $Id: ccdObj.h,v 1.76 1997/08/28 11:10:20 vltsccm Exp $"
*
* who when what
* ----------- -------- ----------------------------------------------
* A.Longinotti 12/11/96 created
* A.Longinotti 28/04/97 removed pco.h. Problems on Solaris
*/
/*************************************************************************
* This file contains all definitions used by the library ccdObj
*************************************************************************/
#ifndef CCDOBJ_H
#define CCDOBJ_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* CCS & LCC header files
*/
#include "CCS.h"
/*
* CCD header files
*/
/*
* Constants
*/
/*
* Types definitions
*/
typedef struct /* parameters needed to find objects */
{
vltUINT8 procId; /* Midas unit ID (between 0 and 99) */
vltLOGICAL threshAbs; /* meaning of threshVal */
vltINT32 threshVal; /* intensity threshold */
} ccdOBJMETHOD;
typedef struct /* object information */
{
vltFLOAT xPos; /* position along x axis (pixel coord.) */
vltFLOAT yPos; /* position along y axis (pixel coord.) */
vltFLOAT intensity; /* intensity */
} ccdOBJECT;
/*
* function prototypes
*/
/* Get all objects detected in an image */
ccsCOMPL_STAT ccdObjAll(
char *file, /* name of FITS file containing image */
const ccdOBJMETHOD *method, /* parameters needed for the computation */
vltINT32 *objectsN, /* number of objects found */
ccdOBJECT **objects, /* info about objects found */
ccsERROR *error); /* error structure */
/* Get the brightest object in an image */
ccsCOMPL_STAT ccdObjBright(
char *file, /* name of FITS file containing image */
const ccdOBJMETHOD *method, /* parameters needed for the computation */
ccdOBJECT *object, /* info about object found */
ccsERROR *error); /* error structure */
/* Get the closest object to a reference point in an image */
ccsCOMPL_STAT ccdObjClose(
char *file, /* name of FITS file containing image */
const ccdOBJMETHOD *method, /* parameters needed for the computation */
ccdOBJECT *reference, /* reference position */
ccdOBJECT *object, /* info about object found */
ccsERROR *error); /* error structure */
/* Display the image analysed with all objects detected */
ccsCOMPL_STAT ccdObjDisplay(
char *file, /* name of FITS file containing image */
vltUINT8 procId, /* Midas unit ID */
ccsERROR *error); /* error structure */
#ifdef __cplusplus
}
#endif
#endif /* ! CCDOBJ_H */
3.6 Database
This section contains the manual pages for:
It also contains examples (to be used as templates) of:
3.6.1 ccdCAMERADCS
//**********************************************************************
//* E.S.O. - VLT project
//*
//* "@(#) $Id: ccdCAMERADCS.class,v 2.4 1998/09/18 08:56:58 vltsccm Exp $"
//*
//* who when what
//* -------- -------- ----------------------------------------------
//* A.Longinotti 18/05/95 created
//* P.Duhoux 21/01/97 added point 'wcs' for World Coordinates
//* P.Duhoux 16/09/97 added attr 'logMask' for FITS logging
//* P.Duhoux 11/11/97 added attr 'installed' for FITS DET.DATE
//*
//************************************************************************
//* NAME
//* ccdCAMERADCS - Common class definitions for DCS of a complete CCD camera
//*
//* SYNOPSIS
//* #include <ccdCAMERADCS.class>
//*
//* PARENT CLASS
//* None
//*
//* DESCRIPTION
//* This class defines the attributes for any CCD camera DCS part only
//* The camera cannot be used in stand-alone
//*
//* CAUTIONS
//* none
//*
//* EXAMPLES
//*
//* SEE ALSO
//* ccdCAMERA.class
//*
//* BUGS
//*
//*------------------------------------------------------------------------
#ifndef ccdCAMERADCS_CLASS
#define ccdCAMERADCS_CLASS
#include "ccdLCUWSAPPLICATION.class"
#include "ccdEXPOSURES.class"
#include "ccdIMAGES.class"
#include "ccdDETECTOR.class"
#include "ccdREADOUT.class"
#include "ccdSHUTTER.class"
#include "ccdTEMPERATURE.class"
#include "ccdTELEMETRY.class"
#include "ccdCRYOSTAT.class"
#include "ccdACE.class"
#include "ccdWORLDCOORD.class"
CLASS ccdLCUWSAPPLICATION ccdCAMERADCS
BEGIN
ATTRIBUTE Bytes16 description // Location, purpose, etc.
ATTRIBUTE Bytes16 id // unique identification code
ATTRIBUTE Bytes16 date // commissioning date
ATTRIBUTE Bytes32 installed // installation date
ATTRIBUTE Bytes8 logMask // Fits Log Mask
ATTRIBUTE ccdEXPOSURES exposures // exposures info
ATTRIBUTE ccdIMAGES images // images info
ATTRIBUTE ccdDETECTOR detector // detector data
ATTRIBUTE ccdREADOUT readout // readout sub-system
ATTRIBUTE ccdSHUTTER shutter // shutter sub-system
ATTRIBUTE ccdTEMPERATURE temperature // temperature sub-system
ATTRIBUTE ccdTELEMETRY telemetry // telemetry sub-system
ATTRIBUTE ccdCRYOSTAT cryostat // cryostat characteristics
ATTRIBUTE ccdACE ace // ACE characteristics
ATTRIBUTE ccdWORLDCOORD wcs // World Coordinates
END
#endif /*!ccdCAMERADCS_CLASS*/
// *___oOo___*
3.6.2 ccdCAMERA
//**********************************************************************
//* E.S.O. - VLT project
//*
//* "@(#) $Id: ccdCAMERA.class,v 2.4 1998/09/18 08:56:57 vltsccm Exp $"
//*
//* who when what
//* -------- -------- ----------------------------------------------
//* A.Longinotti 18/05/95 created
//*
//************************************************************************
//* NAME
//* ccdCAMERA - Common class definitions for a CCD stand-alone camera
//*
//* SYNOPSIS
//* #include <ccdCAMERA.class>
//*
//* PARENT CLASS
//* None
//*
//* DESCRIPTION
//* This class defines the attributes for any CCD camera system
//* stand-alone
//*
//* CAUTIONS
//* none
//*
//* EXAMPLES
//*
//* SEE ALSO
//*
//* BUGS
//*
//*------------------------------------------------------------------------
#ifndef ccdCAMERA_CLASS
#define ccdCAMERA_CLASS
#include "ccdCAMERADCS.class"
#include "ccdOBSERVATIONS.class"
CLASS ccdCAMERADCS ccdCAMERA
BEGIN
ATTRIBUTE ccdOBSERVATIONS observations // observations info
END
#endif /*!ccdCAMERA_CLASS*/
// *___oOo___*
This template can be used to generate a complete branch for a CCD
camera.
The user should just include this file in his .db file and define
the following macros:
CCDNAME name of the camera. It becomes the alias of the CCD DB root
CCDROOT absolute path of the CCD DB root
#define CCDNAME ccdtest \\ camera name
#define CCDROOT :Appl_data:ccdtest \\ CCD DB root
#include "ccd.db"
3.6.4 Example for DATABASE.db file
//*****************************************************************************
//* E.S.O. - VLT project
//*
//* "@(#) $Id: DATABASE.db,v 1.60 1997/11/12 14:12:08 vltsccm Exp $"
//*
//* who when what
//* -------- -------- ----------------------------------------------
//* alongino 11/04/97 created as templated for CCD stand-alone system
//*
//************************************************************************
// VLT COMMON SOFTWARE
//************************************************************************
// Loads classes definition from standard file
#include "CCS.db"
//
// USER.db contains necessary points for CCS, but requiring editing to match
// installed configuration.
#include "USER.db"
//************************************************************************
// APPLICATION SOFTWARE
//************************************************************************
//
// Load branches needed by your application
// Replace "myccd" with actual camera name
#define CCDNAME myccd
#define CCDROOT :myccd
#include "ccd.db"
// If you want a second CCD:
// 1) Replace "myccd2" with actual camera name
// 2) Uncomment next lines
//#undef CCDNAME
//#undef CCDROOT
//#define CCDNAME myccd2
//#define CCDROOT :myccd2
//#include "ccd.db"
// ___oOo___
3.6.5 Example for USER.db file
//*****************************************************************************
//* E.S.O. - VLT project
//*
//* "@(#) $Id: USER.db,v 1.60 1997/11/12 14:12:08 vltsccm Exp $"
//*
//* who when what
//* -------- -------- -----------------------------------------------
//* alongino 11/04/97 created as template for CCD stand-alone system
//*
//**************************************************************************
// Loads classes definition from standard file
#include "CCS.db"
//
// **************************************************************************
// Points needed by LCC, but requiring editing to match user installed config.
// **************************************************************************
//
//
//**************************************************************************
// SCAN SYSTEM points
//**************************************************************************
//
//
// Replace hereafter "wmyccd" by the name of the Workstation environment
// the LCU shall report to.
POINT "<VLT scan dev>" "LAN:wmyccd"
BEGIN
ALIAS "wmyccd"
END
// ___oOo___
3.7 Setup files
This section contains an example of a complete CCD DCS setup file.
3.7.1 ccdSetupComplete.det
PAF.HDR.START; # Start of PAF Header
PAF.TYPE "Detector Setup"; # Type of PAF
PAF.ID " "; # ID for PAF
PAF.NAME " "; # Name of PAF
PAF.DESC " "; # Short description of PAF
PAF.CRTE.NAME " "; # Name of creator
PAF.CRTE.DAYTIM " "; # Civil Time for creation
PAF.LCHG.NAME " "; # Name of person/appl. changing
PAF.LCHG.DAYTIM " "; # Timestamp of last change
PAF.CHCK.NAME " "; # Name of appl. checking
PAF.HDR.END; # End of PAF Header
DET.EXP.TYPE "Normal "; # Exposure type
DET.EXP.NREP 1; # number of repeated exposures
DET.READ.CLKIND 1; # Index of clock pattern used
DET.OUT1.GAININD 8; # Gain index for output
DET.FRAM.FITSMTD 2; # Data storage method
DET.FRAM.FITSUNC "myImage.fits"; # File name for uncompressed data
DET.DISPLAY 0; # real-time image display frame ID
DET.WIN1.BINX 1; # Binning factor along X
DET.WIN1.BINY 1; # Binning factor along Y
DET.FRAM.SAMPLE 1; # Image sampling on workstation
DET.FRAM.TYPE "Normal "; # Type of frame
DET.EXP.TIMEREP 0.00; # Time between two repeated exposures
DET.READ.SIMIMG " "; # Simulation file name
DET.FRAM.XFERSYN "T"; # If T, image transfer occurs synchronously
DET.EXP.WIPETIM 0; # wipe before starting exposure in a loop
DET.WIN1.ST "F"; # If T, window enabled
DET.WIN1.STRX 200; # Lower left pixel in X
DET.WIN1.NX 20; # # of pixels along X
DET.WIN1.STRY 300; # Lower left pixel in Y
DET.WIN1.NY 20; # # of pixels along Y
DET.WIN1.CENTROID "none "; # type of centroiding calculation
DET.WIN1.REFX 50.00; # X position of reference
DET.WIN1.REFY 100.00; # Y position of reference
DET.WIN1.MINMAX "F"; # image extrema search performed
DET.WIN1.IPFUNC "None "; # user defined function name
DET.WIN1.IPBUFF "None "; # buffer variable in user function
DET.WIN1.BIAS "F"; # bias frame subtraction performed
DET.WIN1.FLATF "F"; # flat field division performed
DET.WIN1.BACKGND 0.000000; # sky background
DET.WIN1.THRMIN 0.000000; # lower threshold
DET.WIN1.IPLLX 0; # X offset from bottom left for proc. sub-window
DET.WIN1.IPLLY 0; # Y offset from bottom left for proc. sub-window
DET.WIN1.IPURX 0; # X offset from top right for proc. sub-window
DET.WIN1.IPURY 0; # Y offset from top right for proc. sub-window
DET.WIN2.ST "F"; # If T, window enabled
DET.WIN2.STRX 1; # Lower left pixel in X
DET.WIN2.NX 20; # # of pixels along X
DET.WIN2.STRY 1; # Lower left pixel in Y
DET.WIN2.NY 20; # # of pixels along Y
DET.WIN2.CENTROID "none "; # type of centroiding calculation
DET.WIN2.REFX 1.00; # X position of reference
DET.WIN2.REFY 1.00; # Y position of reference
DET.WIN2.MINMAX "F"; # image extrema search performed
DET.WIN2.IPFUNC "None "; # user defined function name
DET.WIN2.IPBUFF "None "; # buffer variable in user function
DET.WIN2.BIAS "F"; # bias frame subtraction performed
DET.WIN2.FLATF "F"; # flat field division performed
DET.WIN2.BACKGND 0.000000; # sky background
DET.WIN2.THRMIN 0.000000; # lower threshold
DET.WIN2.IPLLX 0; # X offset from bottom left for proc. sub-window
DET.WIN2.IPLLY 0; # Y offset from bottom left for proc. sub-window
DET.WIN2.IPURX 0; # X offset from top right for proc. sub-window
DET.WIN2.IPURY 0; # Y offset from top right for proc. sub-window
DET.WIN1.NDIT 1; # # of subintegrations
DET.WIN1.ASUIT1 "T"; # All UITi as UIT1 else as defined in UITi
DET.READ.SHIFTYP "list "; # Line shift type
DET.READ.SHIFT1 0; # Lines shifted between integration
DET.WIN1.UIT1 1.000; # user defined subintegration time
# --- oOo ---
3.8 Image files
This section contains examples of:
3.8.1 Example of FITS header standard keywords written by CCD DCS
SIMPLE = T / Standard FITS format (NOST-100.0)
BITPIX = 16 / # of bits storing pix values
NAXIS = 2 / # of axes in frame
NAXIS1 = 592 / # pixels/axis
NAXIS2 = 578 / # pixels/axis
ORIGIN = 'ESO ' / European Southern Observatory
DATE = '1997-11-19T10:18:39.535' / UT date when this file was written
CRVAL1 = 1.0 / value of X ref pixel
CRPIX1 = 1.0 / X Ref. pixel of center of rotation
CDELT1 = 1.0 / Binning factor
CTYPE1 = 'PIXEL ' / Pixel coordinate system
CRVAL2 = 1.0 / value of X ref pixel
CRPIX2 = 1.0 / X Ref. pixel of center of rotation
CDELT2 = 1.0 / Binning factor
CTYPE2 = 'PIXEL ' / Pixel coordinate system
BSCALE = 1.0 / pixel=FITS*BSCALE+BZERO
BZERO = 0.0 / pixel=FITS*BSCALE+BZERO
MJD-OBS = 50771.42960247 / MJD start (1997-11-19T10:18:37.653)
DATE-OBS= '1997-11-19T10:18:37.653' / Date of observation
EXPTIME = 1.0004 / Total integration time
3.8.2 Example of FITS hierarchical keywords written by CCD DCS
HIERARCH ESO DET ID = 'CCD ACE - Rev 2.5' / Detector system Id
HIERARCH ESO DET NAME = 'ccdUvSR - tccd_ace$20' / Name of system
HIERARCH ESO DET DATE = '1997-11-19T10:16:23.000' / Installation date
HIERARCH ESO DET DID = 'ESO-VLT-DIC.CCDDCS - Rev 2.5' / Ddictionary
HIERARCH ESO DET BITS = 12 / Bits per pixel readout
HIERARCH ESO DET SOFW MODE = 'Normal ' / CCD sw operational mode
HIERARCH ESO DET CHIP FRMXFER= T / chip is of frame transfer type
HIERARCH ESO DET CHIP1 ID = 'tccd$58 ' / Detector chip identification
HIERARCH ESO DET CHIP1 NAME = 'djo_LARGE' / Detector chip name
HIERARCH ESO DET CHIP1 X = 1 / X location in array
HIERARCH ESO DET CHIP1 Y = 1 / Y location in array
HIERARCH ESO DET CHIP1 NX = 592 / # of pixels along X
HIERARCH ESO DET CHIP1 NY = 578 / # of pixels along Y
HIERARCH ESO DET CHIP1 PSZX = 22.0 / Size of pixel in X
HIERARCH ESO DET CHIP1 PSZY = 22.0 / Size of pixel in Y
HIERARCH ESO DET EXP NO = 11 / Unique exposure ID number
HIERARCH ESO DET EXP TYPE = 'Normal ' / Exposure type
HIERARCH ESO DET EXP DUMDIT = 3 / # of dummy readouts
HIERARCH ESO DET EXP RDTTIME = 0.916 / image readout time
HIERARCH ESO DET EXP XFERTIM = 1.032 / image transfer time
HIERARCH ESO DET READ MODE = 'normal ' / Readout method
HIERARCH ESO DET READ CLOCK = 'acetecL.clk' / Readout clock pattern used
HIERARCH ESO DET READ SPEED = 'fast ' / Readout speed
HIERARCH ESO DET READ PIXTIME= 2.0 / Pixel digitalization time [us]
HIERARCH ESO DET OUT1 NAME = 'A ' / Description of output
HIERARCH ESO DET OUT1 CHIP = 1 / index of chip it belongs to
HIERARCH ESO DET OUT1 X = 1 / X location of output
HIERARCH ESO DET OUT1 Y = 1 / Y location of output
HIERARCH ESO DET OUT1 NX = 592 / valid pixels along X
HIERARCH ESO DET OUT1 NY = 578 / valid pixels along Y
HIERARCH ESO DET OUT1 PRSCX = 0 / Prescan region in X
HIERARCH ESO DET OUT1 OVSCX = 0 / Overscan region in X
HIERARCH ESO DET OUT1 CONAD = 5.00 / Conversion from electrons to ADUs
HIERARCH ESO DET OUT1 GAININD= 8 / Gain index for output
HIERARCH ESO DET FRAM ID = 1 / Image sequencial number
HIERARCH ESO DET FRAM TYPE = 'Normal ' / Type of frame
HIERARCH ESO DET WINDOWS = 1 / # of windows readout
HIERARCH ESO DET WIN1 STRX = 1 / Lower left pixel in X
HIERARCH ESO DET WIN1 STRY = 1 / Lower left pixel in Y
HIERARCH ESO DET WIN1 NX = 592 / # of pixels along X
HIERARCH ESO DET WIN1 NY = 578 / # of pixels along Y
HIERARCH ESO DET WIN1 BINX = 1 / Binning factor along X
HIERARCH ESO DET WIN1 BINY = 1 / Binning factor along Y
HIERARCH ESO DET WIN1 NDIT = 1 / # of subintegrations
HIERARCH ESO DET WIN1 UIT1 = 1.000 / user defined subintegration time
HIERARCH ESO DET WIN1 DIT1 = 1.0004 / actual subintegration time
HIERARCH ESO DET WIN1 DKTM = 1.0004 / Dark current time
HIERARCH ESO DET TMP1 ID = 'House ' / ID of temperature sensor
HIERARCH ESO DET TMP1 START = 295.95 / Temperature at exposure start
HIERARCH ESO DET TMP1 END = 295.98 / Temperature at exposure completion
HIERARCH ESO DET TMP2 ID = 'Chip ' / ID of temperature sensor
HIERARCH ESO DET TMP2 START = 229.07 / Temperature at exposure start
HIERARCH ESO DET TMP2 END = 229.00 / Temperature at exposure completion
3.9 Log files
This section contains examples of:
3.9.1 Example of FITS log from a Scientific CCD
16:17:55>-START DET SOFW / CCD control sw started [SUSI]
16:17:55> DET SOFW ID = $Revision: 1.84 $ / CCD control program name-version [SUSI]
16:17:55> DET SOFW MODE = ACE simulated / CCD sw operational mode [SUSI]
16:17:55> DET STATE = LOADED / CCD sw state [SUSI]
16:17:55>/UNFORSEEN: LCU & WS times are not aligned [SUSI]
16:17:55>/RECOVERY: LCU time set to 1997-11-05T16:17:55 [SUSI]
16:17:55>/Time Accuracy = 10 ms [SUSI]
16:18:28>-CHANGE DET STATE / CCD sw state change [SUSI]
16:18:28> DET SHUT TYPE = motorDriven / type of shutter [SUSI]
16:18:28> DET SHUT ID = Susi / Shutter unique identifier [SUSI]
16:18:28> DET TELE NO = 72 / # of sources active [SUSI]
16:18:28> DET TELE TOLE = 0.10 / Telemetry variation tolerance [SUSI]
16:18:28> DET TLM1 NAME = Bias_1 / Description of telemetry param. [SUSI]
16:18:28> DET TLM1 ID = AGND / ID of telemetry sensor [SUSI]
16:18:28> DET TLM2 NAME = Bias_2 / Description of telemetry param. [SUSI]
16:18:28> DET TLM2 ID = TENVOLT / ID of telemetry sensor [SUSI]
.....
16:18:28> DET TLM71 NAME = Clock_24_L / Description of telemetry param. [SUSI]
16:18:28> DET TLM71 ID = CLK23_LOW / ID of telemetry sensor [SUSI]
16:18:28> DET TLM72 NAME = Clock_24_H / Description of telemetry param. [SUSI]
16:18:28> DET TLM72 ID = CLK23_HIGH / ID of telemetry sensor [SUSI]
16:18:28>/No Bias Frame found [SUSI]
16:18:28>/No Flat Field found [SUSI]
16:18:28> DET STATE = STANDBY / CCD sw state [SUSI]
16:18:28>-CHANGE DET STATE / CCD sw state change [SUSI]
16:18:29>/World Coordinates: Enabled [SUSI]
16:18:29> DET STATE = ONLINE / CCD sw state [SUSI]
.....
16:20:51>-START DET EXP / Start exposure [SUSI]
16:20:51> DET EXP NO = 211 / Unique exposure ID number [SUSI]
16:20:51>-START DET CHIP.WIPE / CCD start wipe action [SUSI]
16:20:51> DET CHIP.WIPE STATUS = DONE / CCD wipe completed [SUSI]
16:20:51>-OPEN DET SHUT / CCD shutter open [SUSI]
16:20:52>-PAUSE DET EXP / Pause exposure [SUSI]
16:20:52>-CLOSE DET SHUT / CCD shutter closed [SUSI]
16:20:57>-RESUME DET EXP / Continue exposure [SUSI]
16:20:57>-OPEN DET SHUT / CCD shutter open [SUSI]
16:21:27>-CLOSE DET SHUT / CCD shutter closed [SUSI]
16:21:27>-START DET CHIP.READ / start readout of CCD chip [SUSI]
16:21:27>-START DET TRANS / CCD data transfer started [SUSI]
16:21:28> DET CHIP.READ STATUS = DONE / CCD chip readout completed [SUSI]
16:21:28> DET TRANS STATUS = DONE / CCD data transfer completed [SUSI]
16:21:28> DET EXP STATUS = DONE / Exposure completed [SUSI]
.....
11:38:24>-CHANGE DET STATE / CCD sw state change [SUSI]
11:38:26> DET STATE = OFF / CCD sw state [SUSI]
3.9.2 Example of FITS log from a Technical CCD
11:07:27>-START DET SOFW / CCD control sw started [UT1AG]
11:07:27> DET SOFW ID = CCD Rev 2.5 / CCD control program name-version [UT1AG]
11:07:27> DET SOFW MODE = Normal / CCD sw operational mode [UT1AG]
11:07:27> DET STATE = LOADED / CCD sw state [UT1AG]
11:07:20>/Time Accuracy = given by TIM [UT1AG]
11:07:30>-CHANGE DET STATE / CCD sw state change [UT1AG]
11:07:31>/ACE program 'acetec.btl' loaded from /INTROOT [UT1AG]
11:07:31>/DSP program 'acetecL.clk' loaded from /INTROOT [UT1AG]
11:07:34> DET TELE NO = 48 / # of sources active [UT1AG]
11:07:34> DET TELE TOLE = 0.10 / Telemetry variation tolerance [UT1AG]
11:07:34> DET TLM1 NAME = Bias_1 / Description of telemetry param. [UT1AG]
11:07:34> DET TLM1 ID = UDC0 / ID of telemetry sensor [UT1AG]
11:07:34> DET TLM2 NAME = Bias_2 / Description of telemetry param. [UT1AG]
11:07:34> DET TLM2 ID = UDC1_PD / ID of telemetry sensor [UT1AG]
.....
11:07:34> DET TLM47 NAME = Clock_16_L / Description of telemetry param. [UT1AG]
11:07:34> DET TLM47 ID = CLK15_L_RG / ID of telemetry sensor [UT1AG]
11:07:34> DET TLM48 NAME = Clock_16_H / Description of telemetry param. [UT1AG]
11:07:34> DET TLM48 ID = CLK15_H_RG / ID of telemetry sensor [UT1AG]
11:07:34> DET TEMP NO = 2 / # of sensors active [UT1AG]
11:07:34> DET TEMP TOLE = 0.50 / Temperature variation tolerance [UT1AG]
11:07:34> DET TMP1 NAME = House_1 / Description of temperature sensor [UT1AG]
11:07:34> DET TMP1 ID = House / ID of temperature sensor [UT1AG]
11:07:34> DET TMP2 NAME = Chip_1 / Description of temperature sensor [UT1AG]
11:07:34> DET TMP2 ID = Chip / ID of temperature sensor [UT1AG]
11:07:34>/No Bias Frame found [UT1AG]
11:07:34>/No Flat Field found [UT1AG]
11:07:34> DET STATE = STANDBY / CCD sw state [UT1AG]
11:07:35>-CHANGE DET STATE / CCD sw state change [UT1AG]
11:07:35> DET TEMP INT = 60.0 / temperature reading period [UT1AG]
11:07:35>-START DET TEMP / Temperature monitoring is active [UT1AG]
11:07:35> DET TMP1 PARM = 281.22 / Current value temperature sensor [UT1AG]
11:07:35> DET TMP2 PARM = 232.18 / Current value temperature sensor [UT1AG]
11:07:35>/World Coordinates: Enabled [UT1AG]
11:07:35> DET STATE = ONLINE / CCD sw state [UT1AG]
.....
11:18:37>-START DET EXP / Start exposure [UT1AG]
11:18:37> DET EXP NO = 11 / Unique exposure ID number [UT1AG]
11:18:37> DET TMP1 START = 265.40 / Temperature at exposure start [UT1AG]
11:18:37> DET TMP2 START = 235.19 / Temperature at exposure start [UT1AG]
11:18:37>-START DET CHIP WIPE / CCD start wipe action [UT1AG]
11:18:37> DET CHIP WIPE STATUS = DONE / CCD wipe completed [UT1AG]
11:18:38>-START DET CHIP READ / start readout of CCD chip [UT1AG]
11:18:38>-START DET TRANS / CCD data transfer started [UT1AG]
11:18:39> DET CHIP READ STATUS = DONE / CCD chip readout completed [UT1AG]
11:18:40> DET TMP1 END = 263.39 / Temperature at exposure completion [UT1AG]
11:18:40> DET TMP2 END = 228.01 / Temperature at exposure completion [UT1AG]
11:18:40> DET TRANS STATUS = DONE / CCD data transfer completed [UT1AG]
11:18:40> DET EXP STATUS = DONE / Exposure completed [UT1AG]
.....
11:22:51> DET EXP NO = 141 / Unique exposure ID number [UT1AG]
11:22:51> DET EXP REPEAT = infinite / number of repeated exposures [UT1AG]
11:22:51>-START DET CHIP WIPE / CCD start wipe action [UT1AG]
11:22:51> DET CHIP WIPE STATUS = DONE / CCD wipe completed [UT1AG]
11:23:01>-STOP DET EXP / Stop integration / loop [UT1AG]
11:23:01> DET EXP NREP = 428 / number of repeated exposures [UT1AG]
11:23:01> DET EXP STATUS = DONE / Exposure completed [UT1AG]
.....
11:43:57>/UNFORSEEN: TMP1 (Chip_1) : 238.4 K - Out of range 200.0 to 238.0 K [UT1AG]
11:44:54> DET TMP1 PARM = 269.91 / Current value temperature sensor [UT1AG]
.....
11:46:15>-CHANGE DET STATE / CCD sw state change [UT1AG]
11:46:15>-STOP DET TEMP / Temperature monitoring has been stopped [UT1AG]
11:46:16> DET STATE = OFF / CCD sw state [UT1AG]
3.10 Configuration files
This section contains examples of files needed to configure the environment where the CCD software is supposed to run.
3.10.1 Example for LCU bootScript file
#! VxWorks
#******************************************************************************
# E.S.O. - VLT project
#
# "@(#) $Id: bootScript,v 1.60 1997/11/12 14:12:09 vltsccm Exp $"
#
# THIS IS A GENERATED FILE - DO NOT EDIT (unless you know how)
#
# Created by
# User: pduhoux
# Host: te49
# Date: Fri Nov 7 08:31:58 MEZ 1997
# Tool: vccConfigLcu
# Proc: vccConfigLcuGenerateBootScript 2.7
#
#::: VCCDATA :::
# vLcuEnv: lte53
# vLcuHost: te53
# vLcuIPaddr: 134.171.12.189
# vLcuHost0: te53
# vLcuIPaddr0: 134.171.12.189
# vLcuHost1:
# vLcuIPaddr1:
# vLcuHost2:
# vLcuIPaddr2:
# vLcuTCPport: 2160
# vLcuCpu: MC68040
# vLcuType: 68k
# vLcuBsp: mv167
# vBwsEnv: wccd
# vBwsHost: te49
# vBwsIPaddr: 134.171.12.184
# vBwsTCPport: 2301
# vBwsCpu: hppa
# vBwsType: hp9700
# vGateway:
# BOOTROOT: /diskd/vlt/data
# BOOTHOME: /diskd/vlt/data/ENVIRONMENTS/lte53
# VXROOT: /diskb/vw5.3/target
# vVltHost: te49
# vVltIPaddr: 134.171.12.184
# VLTROOT: /diskd/vlt/NOV97
# vIntHost: te49
# vIntIPaddr: 134.171.12.184
# INTROOT: /diskb/introot/pduhoux/introot
# vModHost: te49
# vModIPaddr: 134.171.12.184
# MODROOT:
# vSysmodlist: lcudrv lculog lqs tim lcc cai scan b016
# vUsrmodlist: ntp ccd
# vDevlist: {? /tim}
#
#::: ROOT :::
putenv "BOOTROOT=/diskd/vlt/data"
putenv "BOOTHOME=/diskd/vlt/data/ENVIRONMENTS/lte53"
putenv "VLTROOT=/VLTROOT"
putenv "INTROOT=/INTROOT"
#putenv "MODROOT=/MODROOT"
#::: NETWORK :::
nfsIdSet 138 /* vx */
nfsAuthUnixSet "te49",138,300 /* vx,vlt */
nfsMount "te49","/diskd/vlt/data",0
hostAdd "te49","134.171.12.184"
nfsAuthUnixSet "te49",138,300 /* vx,vlt */
nfsMount "te49","/diskd/vlt/NOV97","/VLTROOT"
hostAdd "te49","134.171.12.184"
nfsAuthUnixSet "te49",138,300 /* vx,vlt */
nfsMount "te49","/diskb/introot/pduhoux/introot","/INTROOT"
#::: LCUBOOT :::
cd getenv("VLTROOT")
ld 0,1,"vw/bin/MC68040/lcuboot"
lcubootLogInit
#::: ENVIRONMENT :::
putenv "CPU=MC68040"
putenv "LOCALENV=lte53"
putenv "LOCALTCPPORT=2160"
putenv "HOSTENV=wccd"
putenv "HOSTTCPPORT=2301"
putenv "LOCALHOST=te53"
putenv "LOCALIPADDRESS=134.171.12.189"
#putenv "LOCALHOST_1="
#putenv "LOCALIPADDRESS_1="
#putenv "LOCALHOST_2="
#putenv "LOCALIPADDRESS_2="
lcubootAutoEnvInit /* set rest of variables automatically */
#::: MODULES :::
lcubootAutoLoad 1,"lcudrv",0
lcubootAutoLoad 1,"lculog",0
lcubootAutoLoad 1,"lqs",0
# auto-install with defered loading for driver: tim
lcubootAutoLoad 1,"lcc",0
lcubootAutoLoad 1,"cai",0
lcubootAutoLoad 1,"scan",0
lcubootAutoLoad 1,"b016",0
lcubootAutoLoad 1,"ntp",0
lcubootAutoLoad 1,"ccd",0
# Initialize System-Modules:
lcubootAutoCdBoot 1,"lcudrv.boot"
< lcudrv.boot
lcubootAutoCdBoot 1,"lculog.boot"
< lculog.boot
lcubootAutoCdBoot 1,"lqs.boot"
< lqs.boot
lcubootAutoCdBoot 1,"tim.boot"
< tim.boot
lcubootAutoCdBoot 1,"lcc.boot"
< lcc.boot
lcubootAutoCdBoot 1,"cai.boot"
< cai.boot
lcubootAutoCdBoot 1,"scan.boot"
< scan.boot
lcubootAutoCdBoot 1,"b016.boot"
< b016.boot
#::: DEVICES :::
#lcubootAutoDevCheck "/tim",-1
#::: USER :::
# Initialize User-Modules:
lcubootAutoCdBoot 1,"ntp.boot"
< ntp.boot
lcubootAutoCdBoot 1,"ccd.boot"
< ccd.boot
# Execute User-Script:
cd getenv("BOOTHOME")
#< userScript
#::: TERMINATION :::
taskDelay 100
lcubootAutoSpawn 1,"tLccResumeInit",80,0x18,40000,"lccResumeInit"
lcubootAutoExec 1,"lccWaitInit"
lcubootLogFinish
# ___END_OF_BOOT_SCRIPT___
3.11 Error message files
3.11.1 ccd_ERRORS
#
# Version Id. is specified at the end of the file
#
# Error Definition File Created on Oct 9 12:41:59 1997
#
# This file has been generated by a utility
#
# !!!!!!!!!!! DO NOT MANUALLY EDIT THIS FILE !!!!!!!!!!!
#
###########################################################
1 W {}
ccdERR_BUSY : Cannot process command '%.16s' - Process already executing
ccdERR_BUSY.hlp
2 S {}
ccdERR_CMD_EXECUTE : Failed executing command '%.16s' - %.80s
ccdERR_CMD_EXECUTE.hlp
3 W {}
ccdERR_CMD_IGNORED : Command '%.16s' ignored - %.80s
ccdERR_CMD_IGNORED.hlp
4 S {}
ccdERR_CMD_UNKNOWN : Unknown command '%.16s'
ccdERR_CMD_UNKNOWN.hlp
5 W {}
ccdERR_CMD_WARNING : Command '%.16s' returned warning - %.80s
ccdERR_CMD_WARNING.hlp
6 F {}
ccdERR_DB_ROOT : Wrong root database point '%.80s'
ccdERR_DB_ROOT.hlp
7 F {}
ccdERR_DB_CONSISTENCY : Expected %.80s - Check module version with system manager
ccdERR_DB_CONSISTENCY.hlp
8 F {}
ccdERR_DB_READ : Failed to read database attribute '%.80s'
ccdERR_DB_READ.hlp
9 F {}
ccdERR_DB_WRITE : Failed to write database attribute '%.80s'
ccdERR_DB_WRITE.hlp
10 F {}
ccdERR_ENV_UNKNOWN : Unknown environment variable '%.80s'
ccdERR_ENV_UNKNOWN.hlp
11 S {}
ccdERR_INVALID_ARGUMENT : Invalid argument '%.80s' - %.80s
ccdERR_INVALID_ARGUMENT.hlp
12 F {}
ccdERR_NOT_IMPLEMENTED : Feature '%.80s' not implemented
ccdERR_NOT_IMPLEMENTED.hlp
13 F {}
ccdERR_OPEN_FILE : Cannot open file '%.80s' - %.80s
ccdERR_OPEN_FILE.hlp
14 F {}
ccdERR_OPMODE : Illegal operational mode '%d' - %.80s
ccdERR_OPMODE.hlp
15 S {}
ccdERR_OPSTATE : Illegal operational state '%.20s' - %.80s
ccdERR_OPSTATE.hlp
16 F {}
ccdERR_SETUP : Inconsistent setup - Check parameters
ccdERR_SETUP.hlp
17 S {}
ccdERR_STATUS : Illegal %.20s status - %.80s
ccdERR_STATUS.hlp
18 S {}
ccdERR_TIMEOUT : Timeout waiting for %.80s
ccdERR_TIMEOUT.hlp
19 S {}
ccdERR_PARAM_INVALID : Invalid parameter '%.80s' - %80s
ccdERR_PARAM_INVALID.hlp
20 S {}
ccdERR_PARAM_RANGE : Parameter out of range '%.80s' = %.80s - %.80s
ccdERR_PARAM_RANGE.hlp
101 F {}
ccdERR_CCS_CALL : CCS service call failed : %.80s
ccdERR_CCS_CALL.hlp
102 F {}
ccdERR_CD_SET : Error setting current working directory to %.256s
ccdERR_CD_SET.hlp
103 S {}
ccdERR_CONFIGURATION : %.80s
ccdERR_CONFIGURATION.hlp
104 F {}
ccdERR_CMD_LIST_FULL : List of commands waiting for termination of image transfer full.
ccdERR_CMD_LIST_FULL.hlp
105 F {}
ccdERR_CMD_LIST_NOT_FOUND : %.20s not found in the list of commands waiting for termination of image transfer.
ccdERR_CMD_LIST_NOT_FOUND.hlp
106 F {}
ccdERR_ENV : Environment not completely defined or not properly set.
ccdERR_ENV.hlp
107 F {}
ccdERR_ENV_GET : Failed to get environment information for program %20s
ccdERR_ENV_GET.hlp
108 F {}
ccdERR_ENV_VAR : Environment variable %.20s not defined. Needed to proceed.
ccdERR_ENV_VAR.hlp
109 F {}
ccdERR_ENV_IT : Failed to get environment information for image transfer sub-system.
ccdERR_ENV_IT.hlp
110 S {}
ccdERR_FITS_FILE : Error during operations on FITS file %.256s
ccdERR_FITS_FILE.hlp
111 S {}
ccdERR_FITS_KEYWORD : Error with FITS keyword %.20s
ccdERR_FITS_KEYWORD.hlp
112 S {}
ccdERR_IMAGE : Error while transfering next image
ccdERR_IMAGE.hlp
113 S {}
ccdERR_IMAGE_INFO : Error retrieving image information
ccdERR_IMAGE_INFO.hlp
114 F {}
ccdERR_MSG_ADD : Error trying to allocate memory space for a new message.
ccdERR_MSG_ADD.hlp
115 F {}
ccdERR_MSG_ADD_CMD : Failed adding new command %.16s from process %d environment %.20s to the list of pending messages
ccdERR_MSG_ADD_CMD.hlp
116 F {}
ccdERR_MSG_COMM : Failed in sending command %.16s to process %.20s environment %.20s
ccdERR_MSG_COMM.hlp
117 F {}
ccdERR_MSG_NOT_FOUND : Message %.256s of type %d, ID %d from environment %.20s not found in pending messages list
ccdERR_MSG_NOT_FOUND.hlp
118 S {}
ccdERR_MSG_RCV : Failed while getting new message
ccdERR_MSG_RCV.hlp
119 S {}
ccdERR_MSG_RPLY : Failed sending reply to command %.16s to process number %d environment %.20s
ccdERR_MSG_RPLY.hlp
120 F {}
ccdERR_NOT_INIT : System not initialised (see command INIT). Command %.16s cannot be executed.
ccdERR_NOT_INIT.hlp
121 S {}
ccdERR_NOT_ONLINE : System not online (see command ONLINE). Command %.16s cannot be executed
ccdERR_NOT_ONLINE.hlp
122 S {}
ccdERR_PIXELS : Wrong amount of data received from LCU: %d pixels instead of %d
ccdERR_PIXELS.hlp
123 S {}
ccdERR_RPLY : Error returned or timeout in reply from process %d environment %.20s to command %.16s
ccdERR_RPLY.hlp
124 F {}
ccdERR_RPLY_EXEC : Failed executing action after reply to command %.16s sent by process %d environment %.20s
ccdERR_RPLY_EXEC.hlp
125 F {}
ccdERR_RPLY_LENGTH : Unexpected length of reply message=%d. Expected %d bytes
ccdERR_RPLY_LENGTH.hlp
126 F {}
ccdERR_RPLY_SEND : Error trying to send a reply to command originator
ccdERR_RPLY_SEND.hlp
127 S {}
ccdERR_RPLY_UNEXP : Unexpected reply to command %.16s from process %d environment %.20s
ccdERR_RPLY_UNEXP.hlp
128 S {}
ccdERR_RPLY_UNEXP_LAST : Unexpected last reply to command %.16s from process %d environment %.20s
ccdERR_RPLY_UNEXP_LAST.hlp
129 F {}
ccdERR_SETUP_FILE : Error during %.80s operation with setup file %.256s
ccdERR_SETUP_FILE.hlp
130 F {}
ccdERR_SETUP_PAR : Missing parameter value for setup parameter %.80s
ccdERR_SETUP_PAR.hlp
131 S {}
ccdERR_SHARED_MEMORY : Failed during operation with shared memory %.20s
ccdERR_SHARED_MEMORY.hlp
132 F {}
ccdERR_STATE_EXEC : Failed executing action after reaching new state
ccdERR_STATE_EXEC.hlp
133 W {}
ccdERR_TIME : %.80s
ccdERR_TIME.hlp
134 S {}
ccdERR_NO_DISPLAY : No image currently displayed on frame ID %d
noHelp
135 S {}
ccdERR_TIMES_NOT_ALIGNED : LCU & WS times are not aligned - %.80s
ccdERR_TIMES_NOT_ALIGNED.hlp
201 S {}
ccdERR_TASK_SPAWN : Failed to spawn task '%.20s'
ccdERR_TASK_SPAWN.hlp
202 S {}
ccdERR_TASK_EXISTS : Task '%.20s' already exists
ccdERR_TASK_EXISTS.hlp
203 S {}
ccdERR_TASK_NAME : Cannot retrieve camera name from task '%.20s'
ccdERR_TASK_NAME.hlp
204 S {}
ccdERR_NO_MEMORY : Failed to allocate memory for %.80s
ccdERR_NO_MEMORY.hlp
205 S {}
ccdERR_FIND_SYMBOL : Cannot find symbol '%.20s' in global symbol table
ccdERR_FIND_SYMBOL.hlp
206 S {}
ccdERR_VX_CALL : Call to VxWorks function '%.20s' failed - %.80s
ccdERR_VX_CALL.hlp
207 S {}
ccdERR_SEMAPHORE : Failed to take semaphore '%.20s' - %.80s
ccdERR_SEMAPHORE.hlp
208 S {}
ccdERR_ENVIRONMENT : Expected valid environment variable '%.20s'
ccdERR_ENVIRONMENT.hlp
209 S {}
ccdERR_ACE_CALL : ACE call failed : %.80s
ccdERR_ACE_CALL.hlp
211 S {}
ccdERR_DCL_CALL : DCL call failed : %.80s
ccdERR_DCL_CALL.hlp
212 S {}
ccdERR_LCC_CALL : LCC service call failed : %.80s
ccdERR_LCC_CALL.hlp
213 S {}
ccdERR_INT_CALL : Failed to %.256s
ccdERR_INT_CALL.hlp
214 S {}
ccdERR_USR_CALL : Failed to process user function %.80s
ccdERR_USR_CALL.hlp
215 S {}
ccdERR_INIT_MODULE : Failed to initialize module '%.20s' - %.80s
ccdERR_INIT_MODULE.hlp
218 S {}
ccdERR_MSG_TYPE : %.80s
ccdERR_MSG_TYPE.hlp
219 S {}
ccdERR_FIND_FILE : Cannot find file '%.80s'
ccdERR_FIND_FILE.hlp
220 W {}
ccdERR_READ_FILE : Failed to read from file '%.80s'
ccdERR_READ_FILE.hlp
221 S {}
ccdERR_SEND_DATA : %.80s
ccdERR_SEND_DATA.hlp
226 W {}
ccdERR_FORMAT : Invalid command parameter format - %.80s
ccdERR_FORMAT.hlp
227 W {}
ccdERR_REPLY : Error reply received on %.80s command to %.80s
ccdERR_REPLY.hlp
228 W {}
ccdERR_STARTUP : %.80s
ccdERR_STARTUP.hlp
229 W {}
ccdERR_TIMER : %.80s
ccdERR_TIMER.hlp
230 S {}
ccdERR_SEND_COMMAND : Failed to send %.20s command to %.80s
ccdERR_SEND_COMMAND.hlp
231 W {}
ccdERR_IMAGE_LIST : %.80s
ccdERR_IMAGE_LIST.hlp
232 S {}
ccdERR_ID : Invalid %.20s ID = %.80s
ccdERR_ID.hlp
233 W {}
ccdERR_IMAGE_MISMATCH : %.80s
noHelp
234 W {}
ccdERR_TELEMETRY : %.256s
noHelp
235 W {}
ccdERR_TEMPERATURE : %.256s
noHelp
#
# "@(#) $Id: ccd_ERRORS,v 1.88 1997/11/12 15:04:11 vltsccm Exp $"
![]() Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |
![]() |
![]() |
![]() |
![]() |