Main Page | Class List | Directories | File List | Class Members | File Members

vectors.c File Reference

Concrete Definition of INDI transfer objects (INDI is the XML based protocol we are using). More...

#include "indidevapi.h"
#include "eventloop.h"
#include "indicom.h"
#include "vectors.h"

Variables

ISwitch aCCUSwitches []
ISwitchVectorProperty vCCUSwitches = { mydev, "CCUSwitches", "Bits", "CCU", IP_RO, ISR_NOFMANY, 0, IPS_IDLE, aCCUSwitches, NARRAY(aCCUSwitches), "",0}
ISwitch aCCUResetSwitches []
ISwitchVectorProperty vCCUResetSwitches
INumber aInstCtrlNumbers []
INumberVectorProperty vInstCtrlNumbers = { mydev, "InstCtrlNumbers", "Fixed", "InstCtrl" , IP_RO, 0, IPS_IDLE, aInstCtrlNumbers, NARRAY(aInstCtrlNumbers), "", 0}
INumber aInstCtrlNumbersRW []
INumberVectorProperty vInstCtrlNumbersRW = { mydev, "InstCtrlNumbersRW", "Editable", "InstCtrl" , IP_RW, 0, IPS_IDLE, aInstCtrlNumbersRW, NARRAY(aInstCtrlNumbersRW), "", 0}
INumber aTelescopeNumbers []
INumberVectorProperty vTelescopeNumbers = { mydev, "TelescopeNumbers", "Fixed", "Telescope" , IP_RO, 0, IPS_IDLE, aTelescopeNumbers, NARRAY(aTelescopeNumbers), "", 0}
INumber aSpecialGain [] = {{"Selected", "Selected", "%3.0f", 1, 8, 1, 3, 0, 0, 0}}
INumberVectorProperty vSpecialGain = { mydev, "SpecialGain", "Gain", "Special Exposure" , IP_RW, 0, IPS_OK, aSpecialGain, NARRAY(aSpecialGain), "", 0}
INumber aAcqGain [] = {{"Selected", "Selected", "%3.0f", 1, 8, 1, 3, 0, 0, 0}}
INumberVectorProperty vAcqGain = { mydev, "AcqGain", "Gain", "Acquisition" , IP_RW, 0, IPS_OK, aAcqGain, NARRAY(aAcqGain), "", 0}
ISwitch aACQImgType []
ISwitchVectorProperty vACQImgType = { mydev, "ACQImgType", "Img Type", "Acquisition", IP_RW, ISR_1OFMANY, 0, IPS_OK, aACQImgType, NARRAY(aACQImgType), "", 0 }
INumber aACQNumbers []
INumberVectorProperty vACQNumbers = { mydev, "ACQNumbers", "Settings", "Acquisition" , IP_RW, 0, IPS_OK, aACQNumbers, NARRAY(aACQNumbers), "", 0}
INumber aSpecialNumbers [] = {{"SpecialTime", "Time[s]", "%9.3f", 0, 99999., 0.001, 1., 0, 0, 0}}
INumberVectorProperty vSpecialNumbers = { mydev, "SpecialNumbers", "Settings", "Special Exposure" , IP_RW, 0, IPS_OK, aSpecialNumbers, NARRAY(aSpecialNumbers), "", 0}
ISwitch aACQMainSW []
ISwitchVectorProperty vACQMainSW = { mydev, "ACQMainSW", "Acquire", "Acquisition", IP_RW, ISR_1OFMANY, 0, IPS_OK, aACQMainSW, NARRAY(aACQMainSW), "", 0 }
ISwitch aDBMainSW []
ISwitchVectorProperty vDBMainSW = { mydev, "DBMainSW", "Database", "CCU", IP_RW, ISR_1OFMANY, 0, IPS_OK, aDBMainSW, NARRAY(aDBMainSW), "", 0 }
ISwitch aSpecialMainSW []
ISwitchVectorProperty vSpecialMainSW = { mydev, "SpecialMainSW", "Acquire", "Special Exposure", IP_RW, ISR_1OFMANY, 0, IPS_OK, aSpecialMainSW, NARRAY(aSpecialMainSW), "", 0 }
ISwitch aACQFlushSW []
ISwitchVectorProperty vACQFlushSW = { mydev, "ACQFlushSW", "flush", "Acquisition", IP_RW, ISR_ATMOST1, 0, IPS_OK, aACQFlushSW, NARRAY(aACQFlushSW), "", 0 }
ISwitch aSpecialSW []
ISwitchVectorProperty vSpecialSW = { mydev, "SpecialSW", "Swichtes", "Special Exposure", IP_RW, ISR_NOFMANY, 0, IPS_OK, aSpecialSW, NARRAY(aSpecialSW), "", 0 }
INumber aFilterSelected [] = {{"FILTER_NUM", "Selected", "%3.0f", 0, 15, 1, 5, 0, 0, 0}}
INumberVectorProperty vFilterSelected = { mydev, "FILTER_CONF", "Filter", "InstCtrl" , IP_RW, 0, IPS_IDLE, aFilterSelected, NARRAY(aFilterSelected), "", 0}
ISwitch aSpecialSequence [16]
ISwitchVectorProperty vSpecialSequence
ISwitch aAcqSequence [16]
ISwitchVectorProperty vAcqSequence
ISwitch aCCUDatabase [100]
ISwitchVectorProperty vCCUDatabase
ISwitch aFilter [16]
ISwitchVectorProperty vFilter
ISwitch power []
ISwitchVectorProperty powSw = { mydev, "CONNECTION", "Connection", MAIN_GROUP, IP_RW, ISR_1OFMANY, 0, IPS_IDLE, power, NARRAY(power), "", 0 }
ISwitch aCCUOptions []
ISwitchVectorProperty vCCUOptions = { mydev, "CCUOPTIONS", "Options", "CCU", IP_RW, ISR_ATMOST1, 0, IPS_IDLE, aCCUOptions, NARRAY(aCCUOptions), "", 0 }
IBLOB aQueueBlobs [] = {{"Queue", "Queue", "", 0, 0, 0, 0, 0, 0, 0}}
IBLOBVectorProperty vQueueBlobs
IBLOB aMltBlobs [] = {{"Multiple", "mult. exp.", "", 0, 0, 0, 0, 0, 0, 0}}
IBLOBVectorProperty vMltBlobs
ISwitch StreamS [2] = {{ "ON", "", ISS_OFF},{"OFF", "", ISS_ON}}
ISwitchVectorProperty StreamSP = {mydev, "CCDPREVIEW_STREAM", "Video Stream", PREVIEW_GROUP, IP_RW, ISR_1OFMANY, 0, IPS_IDLE,StreamS, NARRAY(StreamS),"",0}
volatile INumber CtrlN []
INumberVectorProperty CtrlNP = {mydev , "CCDPREVIEW_CTRL", "Image Size", PREVIEW_GROUP, IP_RO, 60, IPS_IDLE, (INumber*) CtrlN, NARRAY(CtrlN),"",0}
IBLOB imageB = {"CCD1", "Feed", "", 0, 0, 0, 0, 0, 0, 0}
IBLOBVectorProperty imageBP
INumber aImageStat []
volatile INumberVectorProperty vImageStat = { mydev, "StatNumbers", "Statistics", PREVIEW_GROUP , IP_RO, 0, IPS_OK, aImageStat, NARRAY(aImageStat), "", 0}
ISwitch aAUTOSW []
ISwitchVectorProperty vAUTOSW = { mydev, "MODE", "Mode", "Auto", IP_RW, ISR_1OFMANY, 0, IPS_OK, aAUTOSW, NARRAY(aAUTOSW), "", 0 }
INumber aAUTONumbers []
INumberVectorProperty vAUTONumbers = { mydev, "AUTONumbers", "Settings", "Auto" , IP_RW, 0, IPS_OK, aAUTONumbers, NARRAY(aAUTONumbers), "", 0}
ISwitch aAutoFlatSequence [16]
ISwitchVectorProperty vAutoFlatSequence
INumber aAUTONumbersRO []
INumberVectorProperty vAUTONumbersRO = { mydev, "AUTONumbersRO", "Info", "Auto" , IP_RO, 0, IPS_OK, aAUTONumbersRO, NARRAY(aAUTONumbersRO), "", 0}
ISwitch aTexSW []
ISwitchVectorProperty vTexSW = { mydev, "TEXOPTIONS", "Options", "Log", IP_RW, ISR_ATMOST1, 0, IPS_OK, aTexSW, NARRAY(aTexSW), "", 0 }
IBLOB aTexBlob [] = {{"Tex", "Tex", "", 0, 0, 0, 0, 0, 0, 0}}
IBLOBVectorProperty vTexBlob
IBLOB aTexAppendBlob [] = {{"Tex", "Tex", "", 0, 0, 0, 0, 0, 0, 0}}
IBLOBVectorProperty vTexAppendBlob
IBLOB aLogBlob [] = {{"Logbook", "Logbook", "", 0, 0, 0, 0, 0, 0, 0}}
IBLOBVectorProperty vLogBlob
IBLOB aBackupBlob [] = {{"Backup", "Backup", "", 0, 0, 0, 0, 0, 0, 0} }
IBLOBVectorProperty vBackupBlob
IBLOB aCommnetBlob [] = {{"Comment", "Comment", "", 0, 0, 0, 0, 0, 0, 0} }
IBLOBVectorProperty vCommnetBlob
INumber aTexNumbers [] = {{"NCOPYS", "#Copys", "%6.0f", 1, 5, 1, 1, 0, 0, 0}}
INumberVectorProperty vTexNumbers = { mydev, "TexNumbers", "Numbers", "Log" , IP_RW, 0, IPS_OK, aTexNumbers, NARRAY(aTexNumbers), "", 0}
INumber aProgessNumbers [] = {{"PERCENTAGE", "Percentage", "%.2f", 0., 1., 0, 0, 0, 0, 0}}
INumberVectorProperty vProgessNumbers = { mydev, "ProgressNumbers", "Progess", "Log" , IP_RO, 0, IPS_OK, aProgessNumbers, NARRAY(aProgessNumbers), "", 0}
INumber aPreviewNumbers [] = {{"MAXSIZE", "max. size", "%.0f", 0., 1000., 1., 400., 0, 0, 0}}
INumberVectorProperty vPreviewNumbers = { mydev, "PreviewNumbers", "Preview", PREVIEW_GROUP , IP_RW, 0, IPS_OK, aPreviewNumbers, NARRAY(aPreviewNumbers), "", 0}
ISwitch aPreviewSW [] = {{"ENBABLE", "Enable", ISS_ON, 0, 0}}
ISwitchVectorProperty vPreviewSW = { mydev, "PREVIEWOPTIONS", "Preview" , PREVIEW_GROUP , IP_RW, ISR_ATMOST1, 0, IPS_OK, aPreviewSW, NARRAY(aPreviewSW), "", 0 }
ISwitch aFitsoutputSW [] = {{"ENBABLE", "Enable", ISS_ON, 0, 0}}
ISwitchVectorProperty vFitsoutputSW = { mydev, "ASTROOPTI", "Astrometric optimization" , "Fitsoutput" , IP_RW, ISR_ATMOST1, 0, IPS_OK, aFitsoutputSW, NARRAY(aFitsoutputSW), "", 0 }
IBLOB aCCUINBlob [] = {{"CCUINBLOB", "CCU in", "", 0, 0, 0, 0, 0, 0, 0} }
IBLOBVectorProperty vCCUINBlob
IBLOB aCCUOUTBlob [] = {{"CCUOUTBLOB", "CCU out", "", 0, 0, 0, 0, 0, 0, 0} }
IBLOBVectorProperty vCCUOUTBlob
ISwitch aBeat []
ISwitchVectorProperty vBeat = { mydev, "beat", "beat", "Log", IP_RW, ISR_NOFMANY, 0, IPS_OK, aBeat, NARRAY(aBeat), "", 0 }
IBLOB aTelescopeTexts [] = {{"TelescopeTime", "Time UTC"},{"PointingModel", "Pointing Model"}}
IBLOBVectorProperty vTelescopeTexts = {mydev, "TelescopeTexts", "Status", "Telescope" , IP_RO, 0, IPS_IDLE, aTelescopeTexts, NARRAY(aTelescopeTexts)}
IBLOB aCCUTexts [] = {{"CCUTerminal", "Send Cmd"}}
IBLOBVectorProperty vCCUTexts = {mydev, "Terminal", "", "CCU" , IP_RW, 0, IPS_IDLE, aCCUTexts, NARRAY(aCCUTexts)}
IBLOB aCCUCodesText []
IBLOBVectorProperty vCCUCodesText = {mydev, "CCUCodesText", "Status", "CCU" , IP_RO, 0, IPS_IDLE, aCCUCodesText, NARRAY(aCCUCodesText)}
IBLOB aCCUProgressText [] = {{"CCUProgress", "Progress"}}
IBLOBVectorProperty vCCUProgressText
IBLOB aACQObjectname [] = {{"ACQObjectname", "Objectname"}}
IBLOBVectorProperty vACQObjectname = {mydev, "ACQObjectname", "Object", "Acquisition" , IP_RW, 0, IPS_OK, aACQObjectname, NARRAY(aACQObjectname)}
IBLOB aACQStatusText [] = {{"ACQStatusMsg", "Aquisition"}}
IBLOBVectorProperty vACQStatusText = {mydev, "ACQStatus", "Status", "Acquisition" , IP_RO, 0, IPS_OK, aACQStatusText, NARRAY(aACQStatusText)}
IBLOB aDAPTexts []
IBLOBVectorProperty vDAPTexts = {mydev, "DAPTexts", "DAP", "Fitsoutput" , IP_RW, 0, IPS_OK, aDAPTexts, NARRAY(aDAPTexts)}
IBLOB aFitsTexts [] = {{"Filename", "Filename"}}
IBLOBVectorProperty vFitsTexts = {mydev, "FitsTexts", "Filename", "Fitsoutput" , IP_RO, 0, IPS_OK, aFitsTexts, NARRAY(aFitsTexts)}
IBLOB aInstCtrlTexts [] = {{"CCDName", "CCD Name"},{"FilterName", "Filter Name"}}
IBLOBVectorProperty vInstCtrlTexts = {mydev, "InstCtrlTexts", "Status", "InstCtrl" , IP_RO, 0, IPS_IDLE, aInstCtrlTexts, NARRAY(aInstCtrlTexts)}
IBLOB aTexComment [] = {{"TexComment", "Add Comment"}}
IBLOBVectorProperty vTexComment = {mydev, "TEXCOMMENT", "Comment", "Log" , IP_RW, 0, IPS_IDLE, aTexComment, NARRAY(aTexComment)}


Detailed Description

Concrete Definition of INDI transfer objects (INDI is the XML based protocol we are using).

Copyright (C) 2001-2003 Dirk Huenniger (dhun@astro.uni-bonn.de)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.


Variable Documentation

ISwitch aACQFlushSW[]
 

Initial value:

 {
        {"ACQStartFlush",  "Start",  ISS_OFF, 0, 0}, {"ACQStopFlush", "Stop", ISS_ON, 0, 0}}
The switches to start and stop flushing of the CCD Chip

INumber aAcqGain[] = {{"Selected", "Selected", "%3.0f", 1, 8, 1, 3, 0, 0, 0}}
 

Readout Gain for normal exposure (a parameter of the CCD Controller)

ISwitch aACQImgType[]
 

Initial value:

 {
        {"ACQObject",  "Object",  ISS_ON, 0, 0}, {"ACQFlat", "Flat", ISS_OFF, 0, 0},
        {"ACQBias", "Bias", ISS_OFF, 0, 0}, {"ACQDark", "Dark", ISS_OFF, 0, 0}
        
        }
The type of the image to be acquired

ISwitch aACQMainSW[]
 

Initial value:

 {
        {"ACQStart",  "Start",  ISS_OFF, 0, 0}, {"ACQStop", "Stop", ISS_ON, 0, 0}}
The switches to start and stop the aquitstion (normal exposure)

INumber aACQNumbers[]
 

Initial value:

 {{"ACQnExposures", "#Exposures", "%6.0f", 1, 9999, 1, 1, 0, 0, 0},
        {"ACQTime", "Time[s]", "%9.3f", 0, 99999., 0.001, 1., 0, 0, 0}
}
The number of exposures and the time for each exposure (for normal exposures)

IBLOB aACQObjectname[] = {{"ACQObjectname", "Objectname"}}
 

The Current Objectname, to be set by the user

ISwitch aAcqSequence[16]
 

Selection of readout sequences for normal exposure, the switch at "On" state is the selected one.

IBLOB aACQStatusText[] = {{"ACQStatusMsg", "Aquisition"}}
 

The Status message of the Acquistion System

ISwitch aAutoFlatSequence[16]
 

Selection of readout sequences for automated flatfielding

INumber aAUTONumbers[]
 

Initial value:

 {{"AUTOFLATNEXP", "#Flatfields", "%6.0f", 1, 9999, 1, 1, 0, 0, 0},
        {"AUTOFLATCOUNTS", "Counts in Flat", "%9.0f", 0, 65535., 1.0, 50000., 0, 0, 0},
        {"AUTOFLATGAIN", "Gain for Flat", "%9.0f", 1.0, 8., 1.0, 3., 0, 0, 0},
        {"AUTOMINEXP", "min exposure time", "%.3f", 0.001, 36000., 0.001, 0.3, 0, 0, 0},
        {"AUTOMAXEXP", "max exposure time", "%.3f", 0.001, 36000., 0.001, 30.0, 0, 0, 0}
}
Numeric configuration of automated functions. Number of Flatfields to be aquired. The number of Counts requested in the Flatfields. The readout gain for the flatfields The minimum exposure time of a flatfield exposure The maximum exposure time of a flatfield exposure

INumber aAUTONumbersRO[]
 

Initial value:

 {{"AUTOFLATSDONE", "Flatfields done", "%6.0f", 1, 9999, 1, 0, 0, 0, 0},
        {"AUTOSHUTTEROFFSET", "Shutter Offset", "%6.0f", 1, 9999, 1, 1, 0, 0, 0}}
the number of flatfiles acquired, and the offset of the shutter

ISwitch aAUTOSW[]
 

Initial value:

 {
        {"AUTOFLAT",  "Flat", ISS_OFF, 0, 0},{"AUTOFOCUS", "Focus", ISS_OFF, 0, 0},
        {"AUTOSHUTTER", "Shutter", ISS_OFF, 0, 0},
        {"AUTOMASK", "Masks", ISS_OFF, 0, 0},
        {"AUTOSTOP", "Stop", ISS_ON, 0, 0}
}
Austomated functions: Automated flatfielding, Automatted focussing Automatted shutter calibration Automatted mask generation(currently not used)

IBLOB aBackupBlob[] = {{"Backup", "Backup", "", 0, 0, 0, 0, 0, 0, 0} }
 

Backup of Latex Logging file, only the body part ,header and footer have to be added

ISwitch aBeat[]
 

Initial value:

 {
        {"beat",  "beat",  ISS_ON, 0, 0}}
This blob is send to the clients whenever a string is send to the CCD Controller

IBLOB aCCUCodesText[]
 

Initial value:

 {{"CCUStatus", "Status"},{"CCUFuncorig", "F. Origin"},
        {"CCUError", "Error Resaon"}, {"CCUDatabase", "Database"}}
Texts descibing the status of the CCD Controller: CCUFuncorig and CCU Error are described in the CCD Controller reference manual, CCUStatus is a statusstring generated by this program. CCU Database is the name of Database (firmware) currently loaded in the CCD Controller

ISwitch aCCUDatabase[100]
 

Selection of readout sequences for normal exposure, the switch at "On" state is the selected one.

IBLOB aCCUINBlob[] = {{"CCUINBLOB", "CCU in", "", 0, 0, 0, 0, 0, 0, 0} }
 

This blob is send to the clients whenever something is received from the CCD Controller

ISwitch aCCUOptions[]
 

Initial value:

 {
    {"OPEN",  "Open S.",  ISS_OFF, 0, 0}, {"CLOSE", "Close S.", ISS_OFF, 0, 0},
    {"ZERO", "0 Volt", ISS_OFF, 0, 0},{"LIST", "List", ISS_OFF, 0, 0}}
Functions of the CCD Controller, that do not return anything: Open Shutter, Close Shutter, Run "ZeroVolt" Sequence (put all voltages at the CCD to Zero), List all installed readout sequences.

IBLOB aCCUOUTBlob[] = {{"CCUOUTBLOB", "CCU out", "", 0, 0, 0, 0, 0, 0, 0} }
 

This blob is send to the clients whenever a string is send to the CCD Controller

IBLOB aCCUProgressText[] = {{"CCUProgress", "Progress"}}
 

A String descibing the Progress made by the CCD Controller

ISwitch aCCUResetSwitches[]
 

Initial value:

 {
        {"CCUResetBreak",  "Break",  ISS_OFF, 0, 0}, {"CCUResetWarning", "Warning", ISS_OFF, 0, 0}
        , {"CCUResetCom", "Com Problem", ISS_OFF, 0, 0}
        }
some bits of a CCUSwitches a "set by harware, reset by user" the bits in this vector are the "reset by user input"

ISwitch aCCUSwitches[]
 

Initial value:

 {
        {"CCUShutter",  "Shutter",  ISS_OFF, 0, 0}, {"CCUBreak", "Break", ISS_OFF, 0, 0},
        {"CCUWarning", "Warning", ISS_OFF, 0, 0}, {"CCUSenseline1", "Sense1", ISS_OFF, 0, 0},
        {"CCUSenseline2", "Sense2", ISS_OFF, 0, 0},{"CCUDMA", "DMA", ISS_OFF, 0, 0},
        {"CCUBiasLamp", "BiasLamp", ISS_OFF, 0, 0},{"CCUremotelocal", "r/l act", ISS_OFF, 0, 0},
        {"CCULowGain", "LowGain", ISS_OFF, 0, 0},{"CCUCom", "com. p.", ISS_OFF, 0, 0}}
bits to display the current status of the CCD Controller (see the reference manual of the CCD Controller for their meaning

IBLOB aCCUTexts[] = {{"CCUTerminal", "Send Cmd"}}
 

An input blob, anything send here by any client will be send to the CCD Controller (via RS232)

IBLOB aCommnetBlob[] = {{"Comment", "Comment", "", 0, 0, 0, 0, 0, 0, 0} }
 

Input for users comments to be added to the Latex File

IBLOB aDAPTexts[]
 

Initial value:

 {{"DAPObserver", "Observer"},{"DAPInstrument", "Instrument"},
        {"DAPTelescope", "Telescope"}}
The data associated parametes

ISwitch aDBMainSW[]
 

Initial value:

 {
        {"DBStart",  "Upload",  ISS_OFF, 0, 0}, {"DBStop", "Stop", ISS_ON, 0, 0}}
The switchs to start and stop the upload of a database (firmware) into the CCD Controller

ISwitch aFilter[16]
 

Selection of filters, the switch at "On" state is the selected one.

INumber aFilterSelected[] = {{"FILTER_NUM", "Selected", "%3.0f", 0, 15, 1, 5, 0, 0, 0}}
 

the number of the filter currently selected

ISwitch aFitsoutputSW[] = {{"ENBABLE", "Enable", ISS_ON, 0, 0}}
 

Astrometric Optimization Enable Switch

IBLOB aFitsTexts[] = {{"Filename", "Filename"}}
 

The name of FITS file

INumber aImageStat[]
 

Initial value:

 {{"StatMedian", "Median", "%.1f", -1., 99999., 0.0, -1., 0, 0, 0},
        {"Stat95", "95%tile", "%.1f", -1., 99999., 0.0, -1., 0, 0, 0},
        {"StatFWHM", "FWHM[arcsec]", "%.2f", -1., 99999., 0.0, -1., 0, 0, 0},
        {"StatOverMean", "Overscan Mean", "%.2f", -1., 99999., 0.0, -1., 0, 0, 0},
        {"StatOvenErr", "Overscan stddev", "%.2f", -1., 99999., 0.0, -1., 0, 0, 0},
        }
Image statistics

INumber aInstCtrlNumbers[]
 

Initial value:

 {
                                
                                {"CameraFocus"                          
                                ,"Cam. Foc."                    
                                , "%.0f"                        
                                ,0.                                     
                                , 100000.                                       
                                , 1.                                    
                                , 0.                                    
                                , 0                                     
                                , 0                                     
                                , 0},                                   
                                {"CCDTemperature", "CCD Temp.", "%.1f", 0., 100000., 1., 0., 0, 0, 0}
}
Camera Focus, CCD Temperature as received from the instrument control program

INumber aInstCtrlNumbersRW[]
 

Initial value:

 {
                                {"TelescopeFocus", "Tel. Foc.", "%.0f", 0., 100000., 1., 0., 0, 0, 0}
}
Telescope focus (secondary mirror) as received from the instrument control program, also user input for request to set new focus

IBLOB aInstCtrlTexts[] = {{"CCDName", "CCD Name"},{"FilterName", "Filter Name"}}
 

The name of the CCD Chip, and the Name of the Filter currently installed

IBLOB aLogBlob[] = {{"Logbook", "Logbook", "", 0, 0, 0, 0, 0, 0, 0}}
 

Latex Logging file, only the body part ,header and footer have to be added

IBLOB aMltBlobs[] = {{"Multiple", "mult. exp.", "", 0, 0, 0, 0, 0, 0, 0}}
 

A file input, for a "Queue" , a Queue is a programm that is interpreted inside the CCD Controller

INumber aPreviewNumbers[] = {{"MAXSIZE", "max. size", "%.0f", 0., 1000., 1., 400., 0, 0, 0}}
 

maximum size of the preview window

ISwitch aPreviewSW[] = {{"ENBABLE", "Enable", ISS_ON, 0, 0}}
 

Enabling of the Preview Data Stream

INumber aProgessNumbers[] = {{"PERCENTAGE", "Percentage", "%.2f", 0., 1., 0, 0, 0, 0, 0}}
 

general progress percentage for any operation

IBLOB aQueueBlobs[] = {{"Queue", "Queue", "", 0, 0, 0, 0, 0, 0, 0}}
 

A file input, for a "Queue" , a Queue is a programm that is interpreted inside the CCD Controller

INumber aSpecialGain[] = {{"Selected", "Selected", "%3.0f", 1, 8, 1, 3, 0, 0, 0}}
 

Readout Gain for special exposure (a parameter of the CCD Controller)

ISwitch aSpecialMainSW[]
 

Initial value:

 {
        {"SpecialStart",  "Start",  ISS_OFF, 0, 0}, {"SpecialStop", "Stop", ISS_ON, 0, 0}}
The switches to start and stop the aquitstion (special exposure)

INumber aSpecialNumbers[] = {{"SpecialTime", "Time[s]", "%9.3f", 0, 99999., 0.001, 1., 0, 0, 0}}
 

The time for a special exposure

ISwitch aSpecialSequence[16]
 

Selection of readout sequences for special exposure, the switch at "On" state is the selected one.

ISwitch aSpecialSW[]
 

Initial value:

 {
        {"SingleFlush",  "single Flush",  ISS_ON, 0, 0}, {"OpenShutter", "open shutter", ISS_OFF, 0, 0},
        {"Wait", "wait", ISS_OFF, 0, 0}, {"CloseShutter", "close shutter", ISS_OFF, 0, 0}, 
        {"Readout", "readout", ISS_OFF, 0, 0},{"CloseShutterAfeterReadout", "close shutter", ISS_OFF, 0, 0},
        {"ContinuesFlush", "continues flush", ISS_OFF, 0, 0}}
The switches to configure the the "special exposure" behaviour see gboccia users manual for details A special exposure is like a normal exposure but with some selectable operations (don't readout, don't close shutter), actually outdated technology

INumber aTelescopeNumbers[]
 

Initial value:

 {
                                {"Equinox", "Equinox", "%0f", 0., 100000., 0.001, 0., 0, 0, 0},
                                {"RightAscension", "Ra [deg]", "%10.0m", 0., 100000., 0.001, 0., 0, 0, 0},
                                {"Declination", "Dec [deg]", "%10.0m", 0., 100000., 0.001, 0., 0, 0, 0},
                                {"MJD", "MJD", "%.0f", 0., 100000., 0.00000000001, 0., 0, 0, 0},
                                {"AirMass", "AirMass", "%.6f", 0., 100000., 0.00000000001, 0., 0, 0, 0}
                                
}
Some numbers received from the telescope mount control program (MJD means modifyed julian date)

IBLOB aTelescopeTexts[] = {{"TelescopeTime", "Time UTC"},{"PointingModel", "Pointing Model"}}
 

The Time String of the Telescope, and the Pointing Model Used

IBLOB aTexAppendBlob[] = {{"Tex", "Tex", "", 0, 0, 0, 0, 0, 0, 0}}
 

New Line for the Latex Logging file

IBLOB aTexBlob[] = {{"Tex", "Tex", "", 0, 0, 0, 0, 0, 0, 0}}
 

Latex Logging editing exchange file (deprected)

IBLOB aTexComment[] = {{"TexComment", "Add Comment"}}
 

User Comment to be added to the Tex File

INumber aTexNumbers[] = {{"NCOPYS", "#Copys", "%6.0f", 1, 5, 1, 1, 0, 0, 0}}
 

number of copies to be printed

ISwitch aTexSW[]
 

Initial value:

 {
        {"TEXVIEW",  "View", ISS_OFF, 0, 0},{"TEXEDIT", "Edit", ISS_OFF, 0, 0},
        {"TEXPRINT", "Print", ISS_OFF, 0, 0},
        {"TEXVIEWBACKUP", "Backup", ISS_OFF, 0, 0},{"ALIVE", "Alive", ISS_OFF, 0, 0}
}
Function of the Latex Logging System, View current File, Edit File (deprected) Print File (at the Hoher List Printer) View backup File, Alive (deprected, used while editing)

volatile INumber CtrlN[]
 

Initial value:

 {{"WIDTH", "Width", "%0.f",16., 512., 16., 256.},
        {"HEIGHT", "Height", "%0.f", 16., 512., 16., 256.},{"MAXGOODDATA", "max. good data value", "%0.f", 1., 256.0*256.0*256.0*256.0, 0., 65000.},
        {"BYTESPERPIXEL", "Bytes/pix", "%0.f", 1., 4., 1., 2.},{"BYTEORDER", "Byte Order", "%0.f", 1., 2., 1., 1.}}
CCD Preview control structure see INDI protocol documentation

INumberVectorProperty CtrlNP = {mydev , "CCDPREVIEW_CTRL", "Image Size", PREVIEW_GROUP, IP_RO, 60, IPS_IDLE, (INumber*) CtrlN, NARRAY(CtrlN),"",0}
 

CCD Preview control structure see INDI protocol documentation

IBLOB imageB = {"CCD1", "Feed", "", 0, 0, 0, 0, 0, 0, 0}
 

CCD Preview binary data channel

IBLOBVectorProperty imageBP
 

Initial value:

 {mydev, "Video", "Video", PREVIEW_GROUP,
  IP_RO, 0, IPS_IDLE, &imageB, 1, "", 0}
CCD Preview binary data channel

ISwitch power[]
 

Initial value:

 {
    {"CONNECT",  "On",  ISS_OFF, 0, 0}, {"DISCONNECT", "Off", ISS_ON, 0, 0}}
Connection Switch should be set to on by any client

ISwitchVectorProperty powSw = { mydev, "CONNECTION", "Connection", MAIN_GROUP, IP_RW, ISR_1OFMANY, 0, IPS_IDLE, power, NARRAY(power), "", 0 }
 

Connection Switch should be set to on by any client

ISwitch StreamS[2] = {{ "ON", "", ISS_OFF},{"OFF", "", ISS_ON}}
 

needed by Kstars for display of CCDPreview

ISwitchVectorProperty StreamSP = {mydev, "CCDPREVIEW_STREAM", "Video Stream", PREVIEW_GROUP, IP_RW, ISR_1OFMANY, 0, IPS_IDLE,StreamS, NARRAY(StreamS),"",0}
 

needed by Kstars for display of CCDPreview

ISwitchVectorProperty vACQFlushSW = { mydev, "ACQFlushSW", "flush", "Acquisition", IP_RW, ISR_ATMOST1, 0, IPS_OK, aACQFlushSW, NARRAY(aACQFlushSW), "", 0 }
 

The switches to start and stop flushing of the CCD Chip

INumberVectorProperty vAcqGain = { mydev, "AcqGain", "Gain", "Acquisition" , IP_RW, 0, IPS_OK, aAcqGain, NARRAY(aAcqGain), "", 0}
 

Readout Gain for normal exposure (a parameter of the CCD Controller)

ISwitchVectorProperty vACQImgType = { mydev, "ACQImgType", "Img Type", "Acquisition", IP_RW, ISR_1OFMANY, 0, IPS_OK, aACQImgType, NARRAY(aACQImgType), "", 0 }
 

The type of the image to be acquired

ISwitchVectorProperty vACQMainSW = { mydev, "ACQMainSW", "Acquire", "Acquisition", IP_RW, ISR_1OFMANY, 0, IPS_OK, aACQMainSW, NARRAY(aACQMainSW), "", 0 }
 

The switches to start and stop the aquitstion (normal exposure)

INumberVectorProperty vACQNumbers = { mydev, "ACQNumbers", "Settings", "Acquisition" , IP_RW, 0, IPS_OK, aACQNumbers, NARRAY(aACQNumbers), "", 0}
 

The number of exposures and the time for each exposure (for normal exposures)

IBLOBVectorProperty vACQObjectname = {mydev, "ACQObjectname", "Object", "Acquisition" , IP_RW, 0, IPS_OK, aACQObjectname, NARRAY(aACQObjectname)}
 

The Current Objectname, to be set by the user

ISwitchVectorProperty vAcqSequence
 

Initial value:

 { mydev, "AcqSequence", "Sequence",  "Acquisition",
        IP_RW, ISR_1OFMANY, 0, IPS_OK, aAcqSequence, NARRAY(aAcqSequence), "", 0 }
Selection of readout sequences for normal exposure, the switch at "On" state is the selected one.

IBLOBVectorProperty vACQStatusText = {mydev, "ACQStatus", "Status", "Acquisition" , IP_RO, 0, IPS_OK, aACQStatusText, NARRAY(aACQStatusText)}
 

The Status message of the Acquistion System

ISwitchVectorProperty vAutoFlatSequence
 

Initial value:

 { mydev, "AutoFlatSequence", "Sequence",  "Auto",
        IP_RW, ISR_1OFMANY, 0, IPS_OK, aAcqSequence, NARRAY(aAutoFlatSequence), "", 0 }
Selection of readout sequences for automated flatfielding

INumberVectorProperty vAUTONumbers = { mydev, "AUTONumbers", "Settings", "Auto" , IP_RW, 0, IPS_OK, aAUTONumbers, NARRAY(aAUTONumbers), "", 0}
 

Numeric configuration of automated functions. Number of Flatfields to be aquired. The number of Counts requested in the Flatfields. The readout gain for the flatfields The minimum exposure time of a flatfield exposure The maximum exposure time of a flatfield exposure

INumberVectorProperty vAUTONumbersRO = { mydev, "AUTONumbersRO", "Info", "Auto" , IP_RO, 0, IPS_OK, aAUTONumbersRO, NARRAY(aAUTONumbersRO), "", 0}
 

Selection of readout sequences for automated flatfielding

ISwitchVectorProperty vAUTOSW = { mydev, "MODE", "Mode", "Auto", IP_RW, ISR_1OFMANY, 0, IPS_OK, aAUTOSW, NARRAY(aAUTOSW), "", 0 }
 

Austomated functions: Automated flatfielding, Automatted focussing Automatted shutter calibration Automatted mask generation(currently not used)

IBLOBVectorProperty vBackupBlob
 

Initial value:

 {mydev, "BackupBlob", "Log Backup", "Log",
  IP_RO, 0, IPS_IDLE, aBackupBlob, NARRAY(aBackupBlob) , "", 0}
Backup of Latex Logging file, only the body part ,header and footer have to be added

ISwitchVectorProperty vBeat = { mydev, "beat", "beat", "Log", IP_RW, ISR_NOFMANY, 0, IPS_OK, aBeat, NARRAY(aBeat), "", 0 }
 

This blob is send to the clients whenever a string is send to the CCD Controller

IBLOBVectorProperty vCCUCodesText = {mydev, "CCUCodesText", "Status", "CCU" , IP_RO, 0, IPS_IDLE, aCCUCodesText, NARRAY(aCCUCodesText)}
 

Texts descibing the status of the CCD Controller: CCUFuncorig and CCU Error are described in the CCD Controller reference manual, CCUStatus is a statusstring generated by this program. CCU Database is the name of Database (firmware) currently loaded in the CCD Controller

ISwitchVectorProperty vCCUDatabase
 

Initial value:

 { mydev, "CCUDatabase", "Database",  "CCU",
        IP_RW, ISR_1OFMANY, 0, IPS_OK, aCCUDatabase, NARRAY(aCCUDatabase), "", 0 }
Selection of readout sequences for normal exposure, the switch at "On" state is the selected one.

IBLOBVectorProperty vCCUINBlob
 

Initial value:

 {mydev, "CCUINBLOB", "CCU in", "CCU",
  IP_RO, 0, IPS_IDLE, aCCUINBlob, NARRAY(aCCUINBlob) , "", 0}
This blob is send to the clients whenever something is received from the CCD Controller

ISwitchVectorProperty vCCUOptions = { mydev, "CCUOPTIONS", "Options", "CCU", IP_RW, ISR_ATMOST1, 0, IPS_IDLE, aCCUOptions, NARRAY(aCCUOptions), "", 0 }
 

Functions of the CCD Controller, that do not return anything: Open Shutter, Close Shutter, Run "ZeroVolt" Sequence (put all voltages at the CCD to Zero), List all installed readout sequences.

IBLOBVectorProperty vCCUOUTBlob
 

Initial value:

 {mydev, "CCUOUTBLOB", "CCU out", "CCU",
  IP_RO, 0, IPS_IDLE, aCCUOUTBlob, NARRAY(aCCUOUTBlob) , "", 0}
This blob is send to the clients whenever a string is send to the CCD Controller

IBLOBVectorProperty vCCUProgressText
 

Initial value:

 {mydev, "CCUProgressText", "Progress", "CCU" , IP_RO, 0, IPS_IDLE,
        aCCUProgressText, NARRAY(aCCUProgressText)}
A String descibing the Progress made by the CCD Controller

ISwitchVectorProperty vCCUResetSwitches
 

Initial value:

 { mydev, "CCUResetSwitches", "reset Bit",  "CCU", IP_RW, ISR_NOFMANY, 
        0, IPS_OK, aCCUResetSwitches, NARRAY(aCCUResetSwitches), "", 0 }
some bits of a CCUSwitches a "set by harware, reset by user" the bits in this vector are the "reset by user input"

ISwitchVectorProperty vCCUSwitches = { mydev, "CCUSwitches", "Bits", "CCU", IP_RO, ISR_NOFMANY, 0, IPS_IDLE, aCCUSwitches, NARRAY(aCCUSwitches), "",0}
 

bits to display the current status of the CCD Controller (see the reference manual of the CCD Controller for their meaning

IBLOBVectorProperty vCCUTexts = {mydev, "Terminal", "", "CCU" , IP_RW, 0, IPS_IDLE, aCCUTexts, NARRAY(aCCUTexts)}
 

An input blob, anything send here by any client will be send to the CCD Controller (via RS232)

IBLOBVectorProperty vCommnetBlob
 

Initial value:

 {mydev, "CommentBlob", "Log Comment", "Log",
  IP_RW, 0, IPS_IDLE, aCommnetBlob, NARRAY(aCommnetBlob) , "", 0}
Input for users comments to be added to the Latex File

IBLOBVectorProperty vDAPTexts = {mydev, "DAPTexts", "DAP", "Fitsoutput" , IP_RW, 0, IPS_OK, aDAPTexts, NARRAY(aDAPTexts)}
 

The data associated parametes

ISwitchVectorProperty vDBMainSW = { mydev, "DBMainSW", "Database", "CCU", IP_RW, ISR_1OFMANY, 0, IPS_OK, aDBMainSW, NARRAY(aDBMainSW), "", 0 }
 

The switchs to start and stop the upload of a database (firmware) into the CCD Controller

ISwitchVectorProperty vFilter
 

Initial value:

 { mydev, "Filter", "Filter",  "InstCtrl",
        IP_RW, ISR_1OFMANY, 0, IPS_OK, aFilter, NARRAY(aFilter), "", 0 }
Selection of filters, the switch at "On" state is the selected one.

INumberVectorProperty vFilterSelected = { mydev, "FILTER_CONF", "Filter", "InstCtrl" , IP_RW, 0, IPS_IDLE, aFilterSelected, NARRAY(aFilterSelected), "", 0}
 

the number of the filter currently selected

ISwitchVectorProperty vFitsoutputSW = { mydev, "ASTROOPTI", "Astrometric optimization" , "Fitsoutput" , IP_RW, ISR_ATMOST1, 0, IPS_OK, aFitsoutputSW, NARRAY(aFitsoutputSW), "", 0 }
 

Astrometric Optimization Enable Switch

IBLOBVectorProperty vFitsTexts = {mydev, "FitsTexts", "Filename", "Fitsoutput" , IP_RO, 0, IPS_OK, aFitsTexts, NARRAY(aFitsTexts)}
 

The name of FITS file

volatile INumberVectorProperty vImageStat = { mydev, "StatNumbers", "Statistics", PREVIEW_GROUP , IP_RO, 0, IPS_OK, aImageStat, NARRAY(aImageStat), "", 0}
 

Image statistics

INumberVectorProperty vInstCtrlNumbers = { mydev, "InstCtrlNumbers", "Fixed", "InstCtrl" , IP_RO, 0, IPS_IDLE, aInstCtrlNumbers, NARRAY(aInstCtrlNumbers), "", 0}
 

Camera Focus (at filter wheel), CCD Temperature as received from the instrument control program

INumberVectorProperty vInstCtrlNumbersRW = { mydev, "InstCtrlNumbersRW", "Editable", "InstCtrl" , IP_RW, 0, IPS_IDLE, aInstCtrlNumbersRW, NARRAY(aInstCtrlNumbersRW), "", 0}
 

Telescope focus (secondary mirror) as received from the instrument control program, also user input for request to set new focus

IBLOBVectorProperty vInstCtrlTexts = {mydev, "InstCtrlTexts", "Status", "InstCtrl" , IP_RO, 0, IPS_IDLE, aInstCtrlTexts, NARRAY(aInstCtrlTexts)}
 

The name of the CCD Chip, and the Name of the Filter currently installed

IBLOBVectorProperty vLogBlob
 

Initial value:

 {mydev, "LogBlob", "Log output", "Log",
  IP_RO, 0, IPS_IDLE, aLogBlob, NARRAY(aLogBlob) , "", 0}
Latex Logging file, only the body part ,header and footer have to be added

IBLOBVectorProperty vMltBlobs
 

Initial value:

 {mydev, "ACQBlobs", "File", "Muliple Exposure",
  IP_RW, 0, IPS_IDLE, aMltBlobs, NARRAY(aMltBlobs) , "", 0}
A file input, for a "Queue" , a Queue is a programm that is interpreted inside the CCD Controller

INumberVectorProperty vPreviewNumbers = { mydev, "PreviewNumbers", "Preview", PREVIEW_GROUP , IP_RW, 0, IPS_OK, aPreviewNumbers, NARRAY(aPreviewNumbers), "", 0}
 

maximum size of the preview window

ISwitchVectorProperty vPreviewSW = { mydev, "PREVIEWOPTIONS", "Preview" , PREVIEW_GROUP , IP_RW, ISR_ATMOST1, 0, IPS_OK, aPreviewSW, NARRAY(aPreviewSW), "", 0 }
 

Enabling of the Preview Data Stream

INumberVectorProperty vProgessNumbers = { mydev, "ProgressNumbers", "Progess", "Log" , IP_RO, 0, IPS_OK, aProgessNumbers, NARRAY(aProgessNumbers), "", 0}
 

general progress percentage for any operation

IBLOBVectorProperty vQueueBlobs
 

Initial value:

 {mydev, "CCUQueue", "Queue", "CCU",
  IP_RW, 0, IPS_IDLE, aQueueBlobs, NARRAY(aQueueBlobs) , "", 0}
A file input, for a "Queue" , a Queue is a programm that is interpreted inside the CCD Controller

INumberVectorProperty vSpecialGain = { mydev, "SpecialGain", "Gain", "Special Exposure" , IP_RW, 0, IPS_OK, aSpecialGain, NARRAY(aSpecialGain), "", 0}
 

Readout Gain for special exposure (a parameter of the CCD Controller)

ISwitchVectorProperty vSpecialMainSW = { mydev, "SpecialMainSW", "Acquire", "Special Exposure", IP_RW, ISR_1OFMANY, 0, IPS_OK, aSpecialMainSW, NARRAY(aSpecialMainSW), "", 0 }
 

The switches to start and stop the aquitstion (special exposure)

INumberVectorProperty vSpecialNumbers = { mydev, "SpecialNumbers", "Settings", "Special Exposure" , IP_RW, 0, IPS_OK, aSpecialNumbers, NARRAY(aSpecialNumbers), "", 0}
 

The time for a special exposure

ISwitchVectorProperty vSpecialSequence
 

Initial value:

 { mydev, "SpecialSequence", "Sequence",  "Special Exposure",
        IP_RW, ISR_1OFMANY, 0, IPS_OK, aSpecialSequence, NARRAY(aSpecialSequence), "", 0 }
Selection of readout sequences for special exposure, the switch at "On" state is the selected one.

ISwitchVectorProperty vSpecialSW = { mydev, "SpecialSW", "Swichtes", "Special Exposure", IP_RW, ISR_NOFMANY, 0, IPS_OK, aSpecialSW, NARRAY(aSpecialSW), "", 0 }
 

The switches to configure the the "special exposure" behaviour see gboccia users manual for details A special exposure is like a normal exposure but with some selectable operations (don't readout, don't close shutter), actually outdated technology

INumberVectorProperty vTelescopeNumbers = { mydev, "TelescopeNumbers", "Fixed", "Telescope" , IP_RO, 0, IPS_IDLE, aTelescopeNumbers, NARRAY(aTelescopeNumbers), "", 0}
 

Some numbers received from the telescope mount control program (MJD means modifyed julian date)

IBLOBVectorProperty vTelescopeTexts = {mydev, "TelescopeTexts", "Status", "Telescope" , IP_RO, 0, IPS_IDLE, aTelescopeTexts, NARRAY(aTelescopeTexts)}
 

The Time String of the Telescope, and the Pointing Model Used

IBLOBVectorProperty vTexAppendBlob
 

Initial value:

 {mydev, "TexAppend", "Tex append", "Log",
  IP_RO, 0, IPS_IDLE, aTexAppendBlob, NARRAY(aTexAppendBlob) , "", 0}
New Line for the Latex Logging file

IBLOBVectorProperty vTexBlob
 

Initial value:

 {mydev, "TexBlob", "Tex edit", "Log",
  IP_RW, 0, IPS_IDLE, aTexBlob, NARRAY(aTexBlob) , "", 0}
Latex Logging editing exchange file (deprected)

IBLOBVectorProperty vTexComment = {mydev, "TEXCOMMENT", "Comment", "Log" , IP_RW, 0, IPS_IDLE, aTexComment, NARRAY(aTexComment)}
 

User Comment to be added to the Tex File

INumberVectorProperty vTexNumbers = { mydev, "TexNumbers", "Numbers", "Log" , IP_RW, 0, IPS_OK, aTexNumbers, NARRAY(aTexNumbers), "", 0}
 

number of copies to be printed

ISwitchVectorProperty vTexSW = { mydev, "TEXOPTIONS", "Options", "Log", IP_RW, ISR_ATMOST1, 0, IPS_OK, aTexSW, NARRAY(aTexSW), "", 0 }
 

Function of the Latex Logging System, View current File, Edit File (deprected) Print File (at the Hoher List Printer) View backup File, Alive (deprected, used while editing)


Generated on Fri Dec 16 22:23:41 2005 for gboccia by  doxygen 1.4.2