Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

arcdrvCommands.h

Go to the documentation of this file.
00001 #ifndef ARCDRV_COMMANDS_H
00002 #define ARCDRV_COMMANDS_H
00003 /*******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: arcdrvCommands.h,v 0.6 2003/10/14 06:20:52 vltsccm Exp $"
00007 *
00008 * who       when        what
00009 * --------  ----------  ----------------------------------------------
00010 * vltuser5  2003-02-24  created
00011 */
00012 
00013 /************************************************************************
00014  *
00015  *----------------------------------------------------------------------
00016  */
00017 
00018 /* The following piece of code alternates the linkage type to C for all 
00019 functions declared within the braces, which is necessary to use the 
00020 functions in C++-code.
00021 */
00022 
00023 #ifdef __cplusplus
00024 extern C {
00025 #endif
00026 
00027 
00028 /*
00029  * General commands
00030  */
00031 #define arcdrvCMD_RSP 0x200  /* Reset PCI                            */      
00032 #define arcdrvCMD_RSC 0x201  /* Reset Controller                     */      
00033 
00034 #define arcdrvCMD_SDM  0x202   /* SetDMA Address                    */      
00035 /*  
00036  *   Parameter 1 : int *dmaAddress;
00037  */
00038 
00039 #define arcdrvCMD_GDM  0x203   /* GetDMA Address                    */      
00040 /*  
00041  *   Parameter 1 : int *dmaAddress;
00042  */
00043 
00044 #define arcdrvCMD_CMA  0x204   /* Setup Controller master           */      
00045 /*  
00046  *   Parameter 1 : select controller master
00047  *                 arcdrvBoard_TIM or
00048  *                 arcdrvBoard_UTL
00049  */
00050 
00051 #define arcdrvCMD_CBA  0x205   /* Set Callback function on DMA transmission */
00052                                /* ready                                     */      
00053 /*  
00054  *   Parameter 1 : arcdrvDataReadCB Pointer to Callback function;
00055  */
00056 
00057 #define arcdrvCMD_DLD  0x206   /* Download PCI File                 */      
00058 /*  
00059  *   Parameter 1 : int number of data;
00060  *   Parameter 2 : int start address; 
00061  *   Parameter 3 : int *dataPointer; 
00062  */
00063 #define arcdrvCMD_DMS  0x207   /* Set DMA Blocksize                 */      
00064 /*  
00065  *   Parameter 1 : DMA Blocksize;
00066  */
00067 
00068 #define arcdrvCMD_PRG  0x208   /* Get Progress(read pixel count)   */      
00069 
00070 
00071 
00072 /*
00073  * TCCD Simple Board commands
00074  */
00075 #define arcdrvCMD_AEX  0x100   /* Abort Exposure                   */      
00076 #define arcdrvCMD_CLR  0x101   /* Clear Array                      */
00077 #define arcdrvCMD_HGN  0x102   /* Set High Gain                    */
00078 /*  
00079  *   Parameter 1 : int gain;
00080  *   Parameter 2 : int speed; 
00081  */
00082 
00083 #define arcdrvCMD_LDA  0x103   /* Load Application                 */
00084 /*  
00085  *   Parameter 1 : int applicationNumber;
00086  */
00087 
00088 #define arcdrvCMD_LGN  0x104   /* Set Low Gain                     */
00089 /*    
00090  *   Parameter 1 : int gain;
00091  *   Parameter 2 : int speed;
00092  */
00093 
00094 #define arcdrvCMD_MPP  0x105   /* Multi-Pinned Phase Mode          */
00095 /*
00096  *   Parameter 1 : int mppMode;
00097  */
00098 
00099 #define arcdrvCMD_POF  0x106   /* Power Off                        */
00100 #define arcdrvCMD_PON  0x107   /* Power On                         */
00101 #define arcdrvCMD_RCC  0x108   /* Read Controller Configuration    */
00102 #define arcdrvCMD_RDI  0x109   /* Read Image                       */
00103 #define arcdrvCMD_RDM  0x10a   /* Read Memory                      */
00104 /*
00105  *   Parameter 1 : int type1Address;
00106  */
00107 
00108 #define arcdrvCMD_RET  0x10b   /* Read Elapsed Time                */
00109 #define arcdrvCMD_SB1  0x10c   /* Set Bias Number. CMD SBN with arg3 = 0x00564944 */
00110 /*
00111  *   Parameter 1 :   int videoOffsetBoardID;
00112  *   Parameter 2 :   int dacNumber;
00113  *   Parameter 3 :   int videoOffsetVoltage;
00114  */
00115 
00116 #define arcdrvCMD_SB2  0x10d   /* Set Bias Number. CMD SBN with arg3 = 0x00434C4B */
00117 /*
00118  *   Parameter 1 : int clockDriverInput;
00119  *   Parameter 2 : int clockDriverNumber;
00120  *   Parameter 3 : int clockDriverVoltage;
00121  */
00122 
00123 #define arcdrvCMD_SBV  0x10e   /* Set Bias Voltage                 */
00124 #define arcdrvCMD_SET  0x10f   /* Set Exposure Time                */
00125 /*
00126  *   Parameter 1 : int exposureTime;
00127  */
00128 
00129 #define arcdrvCMD_SEX  0x110   /* Start Exposure                   */
00130 #define arcdrvCMD_SGN  0x111   /* Set Gain                         */
00131 /*
00132  *   Parameter 1 : int gain;
00133  *   Parameter 2 : int speed;
00134  */
00135 
00136 #define arcdrvCMD_SRM  0x112   /* Set Readout Mode - CDS or single */
00137 /*
00138  *   Parameter 1 : int arrayResetMode;
00139  */
00140 
00141 #define arcdrvCMD_SSP  0x113   /* Set Subarray Positions           */
00142 /*
00143  *   Parameter 1 : int boxYOffset;
00144  *   Parameter 2 : int boxXOffset;
00145  *   Parameter 3 : int biasOffset;
00146  */
00147 
00148 #define arcdrvCMD_SSS  0x114   /* Set Subarray Sizes               */
00149 /*
00150  *   Parameter 1 : int biasWidth;
00151  *   Parameter 2 : int boxWidth;
00152  *   Parameter 3 : int boxHeight;
00153  */
00154 
00155 #define arcdrvCMD_TDL  0x115   /* Test Data Link                   */
00156 /*
00157  *   Parameter 1 : int data;    
00158  */
00159 
00160 #define arcdrvCMD_WRM  0x116   /* Write Memory                     */
00161 
00162 #define arcdrvCMD_CSH  0x117   /* Close Shutter                    */
00163 #define arcdrvCMD_OSH  0x118   /* Open Shutter                     */
00164 #define arcdrvCMD_PEX  0x119   /* Pause Exposure                   */
00165 #define arcdrvCMD_REX  0x11a   /* Resume Exposure                  */
00166 
00167 #define arcdrvCMD_SOS  0x11b   /* Select Output Source             */
00168 /*
00169  *   int amplifier;
00170  */
00171 
00172 #define arcdrvCMD_SPT  0x11c   /* Set Pass Through Mode            */
00173 /*
00174  *   int passThroughMode;
00175  */
00176 
00177 #define arcdrvCMD_IDL  0x11d   /* Idle                             */
00178 #define arcdrvCMD_STP  0x11e   /* Stop Idle                        */
00179 #define arcdrvCMD_ABR  0x11f   /* Abort readout                    */
00180 #define arcdrvCMD_RRN  0x120   /* Read Revision                    */
00181 #define arcdrvCMD_SDL  0x121   /* Shift down lines                 */
00182 #define arcdrvCMD_SUL  0x122   /* Shift up lines                   */
00183 
00184 #define arcdrvCMD_CBN  0x123    /* Set Column binning parameter    */
00185 #define arcdrvCMD_RBN  0x124    /* Set Row binning parameter       */
00186 
00187 /*
00188  * ---- Alternative Names ---
00189  */
00190 
00191 #define  arcdrvCMD_RESET_PCI              arcdrvCMD_RSP 
00192 #define  arcdrvCMD_RESET_CONTROLLER       arcdrvCMD_RSC 
00193 #define  arcdrvCMD_SET_DMA_ADDRESS        arcdrvCMD_SDM  
00194 #define  arcdrvCMD_GET_DMA_ADDRESS        arcdrvCMD_GDM  
00195 #define  arcdrvCMD_CONTROLLER_MASTER      arcdrvCMD_CMA  
00196 #define  arcdrvCMD_SET_CALLBACK_FUNCTION  arcdrvCMD_CBA  
00197 #define  arcdrvCMD_DOWNLOAD_PCI           arcdrvCMD_DLD  
00198 
00199 #define  arcdrvCMD_ABORT_EXPOSURE         arcdrvCMD_AEX 
00200 #define  arcdrvCMD_CLEAR_ARRAY            arcdrvCMD_CLR 
00201 #define  arcdrvCMD_WIPE_CHIP              arcdrvCMD_CLR 
00202 #define  arcdrvCMD_HIGH_GAIN              arcdrvCMD_HGN 
00203 #define  arcdrvCMD_LOAD_APPLICATION       arcdrvCMD_LDA 
00204 #define  arcdrvCMD_LOW_GAIN               arcdrvCMD_LGN 
00205 #define  arcdrvCMD_MULTI_PP_MODE          arcdrvCMD_MPP 
00206 #define  arcdrvCMD_POWER_OFF              arcdrvCMD_POF 
00207 #define  arcdrvCMD_POWER_ON               arcdrvCMD_PON 
00208 #define  arcdrvCMD_READ_CONFIGURATION     arcdrvCMD_RCC 
00209 #define  arcdrvCMD_READ_IMAGE             arcdrvCMD_RDI 
00210 #define  arcdrvCMD_READ_MEMORY            arcdrvCMD_RDM 
00211 #define  arcdrvCMD_READ_ELAPSED           arcdrvCMD_RET 
00212 #define  arcdrvCMD_SET_BIAS_NUM1          arcdrvCMD_SB1 
00213 #define  arcdrvCMD_SET_BIAS_NUM2          arcdrvCMD_SB2 
00214 #define  arcdrvCMD_SET_BIAS_VOLT          arcdrvCMD_SBV 
00215 #define  arcdrvCMD_SET_EXPOSURE_TIME      arcdrvCMD_SET 
00216 #define  arcdrvCMD_START_EXPOSURE         arcdrvCMD_SEX 
00217 #define  arcdrvCMD_SET_GAIN               arcdrvCMD_SGN 
00218 #define  arcdrvCMD_SET_READOUT            arcdrvCMD_SRM 
00219 #define  arcdrvCMD_SET_SUBARRAY_POSITION  arcdrvCMD_SSP 
00220 #define  arcdrvCMD_SET_SUBARRAY_SIZE      arcdrvCMD_SSS 
00221 #define  arcdrvCMD_TEST_DATA_LINK         arcdrvCMD_TDL 
00222 #define  arcdrvCMD_WRITE_MEMORY           arcdrvCMD_WRM 
00223                       
00224 #define  arcdrvCMD_CLOSE_SHUTTER          arcdrvCMD_CSH 
00225 #define  arcdrvCMD_OPEN_SHUTTER           arcdrvCMD_OSH 
00226 #define  arcdrvCMD_PAUSE_EXPOSURE         arcdrvCMD_PEX 
00227 #define  arcdrvCMD_RESUME_EXPOSURE        arcdrvCMD_REX 
00228                       
00229 #define  arcdrvCMD_SET_OUTPUT_SRC         arcdrvCMD_SOS 
00230 #define  arcdrvCMD_SET_PATH_THROUGH       arcdrvCMD_SPT 
00231 #define  arcdrvCMD_IDLE                   arcdrvCMD_IDL 
00232 #define  arcdrvCMD_STOP_IDLE              arcdrvCMD_STP 
00233 #define  arcdrvCMD_ABORT_READOUT          arcdrvCMD_ABR 
00234 #define  arcdrvCMD_GET_REVISION           arcdrvCMD_RRN
00235 #define  arcdrvCMD_SHIFT_DOWN_LINES       arcdrvCMD_SDL  
00236 #define  arcdrvCMD_SHIFT_UP_LINES         arcdrvCMD_SUL  
00237 #define  arcdrvCMD_ROW_BINNING            arcdrvCMD_RBN
00238 #define  arcdrvCMD_COLUMN_BINNING         arcdrvCMD_CBN
00239 
00240 /*
00241  * ----- Argument Data Structure -----
00242  */
00243 
00244 
00245 /* Maximum Number of arguments including */
00246 #define arcdrvMAX_ARGS      5
00247 
00248 /* Maximum Number of reply values */
00249 #define arcdrvMAX_REPLYS    1
00250 
00251 /* 
00252  * The structure arcdrvCMD_ARGUMENTS or the List arcdrvARG_LIST could be 
00253  * used alternative 
00254  */
00255 
00256 /* Argument Data Structure */
00257 typedef struct
00258     {
00259     int arg1;        /* Argument 1   */
00260     int arg2;        /* Argument 2   */
00261     int arg3;        /* Argument 3   */
00262     int arg4;        /* Argument 4   */
00263     int arg5;        /* Argument 5   */
00264     int reply;       /* Reply value  */
00265     } arcdrvARG_STRUCT ;
00266 
00267 typedef arcdrvARG_STRUCT*  arcdrvARG_STRUCT_PTR;
00268 
00269 
00270 /* Argument Data List */
00271 typedef int arcdrvARG_LIST[arcdrvMAX_ARGS + arcdrvMAX_REPLYS];
00272 
00273 typedef arcdrvARG_LIST*  arcdrvARG_LIST_PTR;
00274 
00275 
00276 /* Definition of List indices */
00277 #define     arcdrvIDX_ARG1     0
00278 #define     arcdrvIDX_ARG2     1
00279 #define     arcdrvIDX_ARG3     2
00280 #define     arcdrvIDX_ARG4     3
00281 #define     arcdrvIDX_ARG5     4
00282 #define     arcdrvIDX_REPL     5
00283 
00284 /*************************************************
00285 *   Readout modes
00286 *************************************************/
00287 #define arcdrvAMPLIFIER_A      0x5F5F41    /* Ascii __A amp A.                 */
00288 #define arcdrvAMPLIFIER_B      0x5F5F42    /* Ascii __B amp B.                 */
00289 #define arcdrvAMPLIFIER_C      0x5F5F43    /* Ascii __C amp C.                 */
00290 #define arcdrvAMPLIFIER_D      0x5F5F44    /* Ascii __D amp D.                 */
00291 #define arcdrvAMPLIFIER_L      0x5F5F4C    /* Ascii __L left amp.              */
00292 #define arcdrvAMPLIFIER_R      0x5F5F52    /* Ascii __R left amp.              */
00293 #define arcdrvAMPLIFIER_LR     0x5F4C52    /* Ascii _LR right two amps.        */
00294 #define arcdrvAMPLIFIER_AB     0x5F4142    /* Ascii _AB top two amps A & B.    */
00295 #define arcdrvAMPLIFIER_CD     0x5F4344    /* Ascii _CD bottom two amps C & D. */
00296 #define arcdrvAMPLIFIER_ALL    0x414C4C    /* Ascii ALL four amps (quad).      */
00297 
00298 #define arcdrvNO_PASS_THROUGH  0
00299 #define arcdrvPASS_THROUGH     1
00300 
00301 /*************************************************
00302 *   Define gain and speed constants
00303 *************************************************/
00304 #define arcdrvGAIN_ONE         1
00305 #define arcdrvGAIN_TWO         2
00306 #define arcdrvGAIN_FIVE        5
00307 #define arcdrvGAIN_TEN         10
00308 
00309 #define arcdrvSPEED_SLOW       0
00310 #define arcdrvSPEED_FAST       1
00311 
00312 #define arcdrvRESET_GLOBAL     0
00313 #define arcdrvRESET_ROWBYROW   1
00314 
00315 #define arcdrvDAC_A            1
00316 #define arcdrvDAC_B            3
00317 
00318 
00319 #define  arcdrvMIN_APPLICATION_NUMBER    0  /* Min. application number */
00320 #define  arcdrvMAX_APPLICATION_NUMBER    3  /* Max. application number */
00321 
00322 #define  arcdrvMIN_VIDEO_OFFSET_BOARD    1   /* Min. for videoOffset board id */
00323 #define  arcdrvMAX_VIDEO_OFFSET_BOARD    16  /* Max. for videoOffset board id */
00324 
00325 #define  arcdrvMIN_VIDEO_OFFSET_VOLTAGE  0    /* Min. for videoOffset voltage */
00326 #define  arcdrvMAX_VIDEO_OFFSET_VOLTAGE  4095 /* Max. for videoOffset voltage */
00327 
00328 #define  arcdrvMIN_COADDS  1                   
00329 #define  arcdrvMAX_COADDS  65535  
00330 
00331 #define  arcdrvMIN_SAMPLES  1                 /* Min. number of samples */
00332 #define  arcdrvMAX_SAMPLES  65535             /* Max. number of samples */
00333 
00334 #define  arcdrvMIN_RAMPS  2                   /* Min. number of ramps */
00335 #define  arcdrvMAX_RAMPS  65535               /* Max. number of ramps */
00336 
00337 #define  arcdrvMIN_DMA_BLOCKSIZE  1024        /* Min. DMA block size */
00338 #define  arcdrvMAX_DMA_BLOCKSIZE  262144      /* Max. DMA block size */
00339 
00340 
00341 /*************************************************
00342  *        Slot Number of PMC board
00343  *************************************************/
00344 #define CPUBOARD_PMC_SLOT1 0x00
00345 #define CPUBOARD_PMC_SLOT2 0x01
00346 
00347 
00348 
00349 /*************************************************
00350  *        Board Destination
00351  *************************************************/
00352 #define arcdrvBoard_PCI 0x01    /* PCI */
00353 #define arcdrvBoard_TIM 0x02    /* Timing Board */
00354 #define arcdrvBoard_UTL 0x03    /* Utility Board*/
00355 
00356 /*************************************************
00357  *        Memory Type
00358  *************************************************/
00359 #define arcdrvMEMORY_P  0x100000
00360 #define arcdrvMEMORY_X  0x200000
00361 #define arcdrvMEMORY_Y  0x400000
00362 #define arcdrvMEMORY_R  0x800000
00363 
00364 
00365 #ifdef __cplusplus
00366 }
00367 #endif
00368 
00369 #endif 

Generated on Wed Dec 3 14:52:07 2003 for ATCS API by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001