00001 #ifndef ATFSS_SENSOR_H
00002 #define ATFSS_SENSOR_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "strap.h"
00014
00015 typedef strapSET_PARAMS atfssSTRAP_SETUP;
00016
00017 typedef struct
00018 {
00019 vltFLOAT count1;
00020 vltFLOAT count2;
00021 vltFLOAT count3;
00022 vltFLOAT count4;
00023 vltFLOAT centrX;
00024 vltFLOAT centrY;
00025 vltFLOAT outX;
00026 vltFLOAT outY;
00027 } atfssSTRAP_STAT;
00028
00029 typedef struct
00030 {
00031 vltFLOAT meanValue[8];
00032 vltFLOAT rmsValue[8];
00033 atfssSTRAP_STAT statistic[4];
00034 } atfssSTRAP_DATA;
00035
00036 typedef struct
00037 {
00038 vltUINT16 highVolt[4];
00039 vltUINT16 gate;
00040 vltINT16 temperature;
00041 vltINT16 current;
00042 vltUINT8 statusMask[16];
00043 } atfssSTRAP_STATUS;
00044
00045 typedef struct
00046 {
00047 vltFLOAT alfaBR;
00048 vltFLOAT constBR;
00049 vltFLOAT alfaDR;
00050 vltFLOAT expDR;
00051 } atfssSTRAP_APD_PARAM;
00052
00053 typedef struct
00054 {
00055 vltUINT16 thomsonFreq;
00056 vltFLOAT CCgain;
00057 vltFLOAT mirrorCoeff[8];
00058 vltUINT16 magnitude;
00059 vltUINT16 arcsecToBit;
00060 vltBYTES32 apdDescription[4];
00061 atfssSTRAP_APD_PARAM apdParams[4];
00062 } atfssSTRAP_CONFIG;
00063
00064 extern int atfssSensorPrintEnable;
00065 #define atfssSensorPrintf \
00066 if (atfssSensorPrintEnable) printf
00067
00068
00069
00070 #define atfssSTRAP_SERVER_NAME "strapServer"
00071
00072 #define atfssSENSOR_LOOP_OPN strapSTART_OPEN
00073 #define atfssSENSOR_LOOP_CLS strapSTART_CLOSE
00074 #define atfssSENSOR_LOOP_CGS strapSTART_CALIB
00075
00076 ccsCOMPL_STAT atfssSensorOff (ccsERROR *error);
00077 ccsCOMPL_STAT atfssSensorStop (ccsERROR *error);
00078 ccsCOMPL_STAT atfssSensorInit (ccsERROR *error);
00079 ccsCOMPL_STAT atfssSensorStandby (ccsERROR *error);
00080 ccsCOMPL_STAT atfssSensorOnline (ccsERROR *error);
00081 ccsCOMPL_STAT atfssSensorSimulat (ccsERROR *error);
00082 ccsCOMPL_STAT atfssSensorStopsim (ccsERROR *error);
00083
00084 ccsCOMPL_STAT atfssSensorSetState (ccsERROR *error);
00085 vltINT32 atfssSensorGetState (void);
00086
00087 ccsCOMPL_STAT atfssSensorGetSetup (ccsERROR *error);
00088 ccsCOMPL_STAT atfssSensorSetSetup (ccsERROR *error);
00089 ccsCOMPL_STAT atfssSensorSetup (char *setupFile, ccsERROR *error);
00090 ccsCOMPL_STAT atfssSensorStart (vltINT32 mode, ccsERROR *error);
00091 ccsCOMPL_STAT atfssSensorStartOpenLoop (ccsERROR *error);
00092 ccsCOMPL_STAT atfssSensorStartCloseLoop (ccsERROR *error);
00093 ccsCOMPL_STAT atfssSensorStartCalibrate (ccsERROR *error);
00094 ccsCOMPL_STAT atfssSensorOptimize (vltDOUBLE starMag, ccsERROR *error);
00095 ccsCOMPL_STAT atfssSensorSetAfd (vltDOUBLE diameter, ccsERROR *error);
00096 ccsCOMPL_STAT atfssSensorGetAfd (vltDOUBLE *pDiameter, ccsERROR *error);
00097 ccsCOMPL_STAT atfssSensorSetFluxThreshold (vltINT32 thr, ccsERROR *error);
00098
00099 ccsCOMPL_STAT atfssSensorSetGate ( vltINT32 gate, ccsERROR *error);
00100 ccsCOMPL_STAT atfssSensorSetIntTime ( vltINT32 intTime, ccsERROR *error );
00101 ccsCOMPL_STAT atfssSensorSetDiagRate ( vltINT32 rate, ccsERROR *error );
00102 ccsCOMPL_STAT atfssSensorSetSkyBackGnd( vltINT32 skyb, ccsERROR *error );
00103 ccsCOMPL_STAT atfssSensorSetThreshold ( vltINT32 flux, ccsERROR *error );
00104
00105 ccsCOMPL_STAT atfssSensorStartComputeIntMatrix ( vltDOUBLE amplitude,
00106 vltINT32 numRecs,
00107 vltINT32 numRepeat,
00108 ccsERROR *error );
00109 ccsCOMPL_STAT atfssSensorStopComputeIntMatrix ( ccsERROR *error );
00110 ccsCOMPL_STAT atfssSensorStartComputeSpotOffset ( vltDOUBLE amplitude,
00111 vltINT32 numSteps,
00112 vltINT32 numRecs,
00113 ccsERROR *error );
00114 ccsCOMPL_STAT atfssSensorStopComputeSpotOffset ( ccsERROR *error );
00115 ccsCOMPL_STAT atfssSensorGetLocalSeeing ( vltDOUBLE *r0, ccsERROR *error );
00116 ccsCOMPL_STAT atfssSensorGetCoherenceTime ( vltDOUBLE *t0, ccsERROR *error );
00117
00118 #endif