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

azcam.h

Go to the documentation of this file.
00001 #ifndef AZCAM_H
00002 #define AZCAM_H
00003 
00004 //
00005 // azcam.h - AzCam Client API Header
00006 //
00007 
00021 // System header files 
00022 
00023 #include <stdio.h>
00024 #include <string.h>
00025 #include <stdlib.h>
00026 #include <unistd.h>
00027 #include <errno.h>
00028 #include <sys/time.h>
00029 #include <sys/times.h>
00030 #include <sys/types.h>
00031 #include <sys/socket.h>
00032 #include <sys/file.h>
00033 #include <netdb.h>
00034 #include <netinet/in.h>
00035 #include <arpa/inet.h>
00036 #include <time.h>
00037 #include <termios.h>
00038 #include <fcntl.h>
00039 #include <signal.h>
00040 #include <math.h>
00041 
00042 //----------------------------------------------------------------
00043 //
00044 // azcam: AzCam server parameter struct
00045 //
00046 
00047 
00057 typedef struct azcam {
00058 
00059   // Server Info
00060 
00061   char Host[64];     
00062   int  Port;         
00063   int  FD;           
00064   long Timeout;      
00065   char CfgFile[128]; 
00066   char IniFile[128]; 
00067 
00068   // System State flags
00069 
00070   int State;       
00071   int ShutterMode; 
00072   int Readout;     
00073   int Shutter;     
00074   int Abort;       
00075 
00076   // Temperature Info
00077 
00078   float SetPoint;    
00079   float CCDTemp;     
00080   float DewarTemp;   
00081   int   DiodeSensor; 
00082   int   CCDSensor;   
00083   int   DewarSensor; 
00084 
00085   // Detector Region of Interest (ROI) Parameters
00086 
00087   int FirstCol;   
00088   int LastCol;    
00089   int ColBin;     
00090   int FirstRow;   
00091   int LastRow;    
00092   int RowBin;     
00093 
00094   // Detector Format Parameters
00095 
00096   int NCtotal;     
00097   int NCpredark;   
00098   int NCunderscan; 
00099   int NCoverscan;  
00100   int NRtotal;     
00101   int NRpredark;   
00102   int NRunderscan; 
00103   int NRoverscan;  
00104   int NRframexfer; 
00105 
00106   // Detector Readout Configuration Parameters
00107 
00108   int ReadMode;      
00109   int Splits;        
00110   int NumDetX;       
00111   int NumDetY;       
00112   char AmpConfig[6]; 
00113 
00114   // Detector Readout Pixel Count Parameters
00115 
00116   int Ncols;       
00117   int Nrows;       
00118   int Npixels;     
00119   int Nread;       
00120 
00121   // Other parameters
00122 
00123   float ExpTime;       
00124   int   Elapsed;       
00125   char  FilePath[128]; 
00126   char  FileName[128]; 
00127   int   FileNum;       
00128   int   FileFormat;    
00129   char  LastFile[128]; 
00130 
00131 } azcam_t;
00132 
00133 // Parameter Values
00134 
00135 #define SH_OPEN   1   
00136 #define SH_CLOSED 0   
00137 
00138 #define IDLE     0    
00139 #define READOUT  1    
00140 #define EXPOSING 2    
00141 #define PAUSE    3    
00142 
00143 #define DT670  0      
00144 #define AD590  1      
00145 #define N914   3      
00146 
00147 #define DARK_IMAGE  0 
00148 #define LIGHT_IMAGE 1 
00149 #define TDI         2 
00150 
00151 #define EXP_NOWAIT 0  
00152 #define EXP_WAIT   1  
00153 
00154 #define IMMEDIATE 0   
00155 #define DEFERRED  1   
00156 
00157 #define STDFITS   1   
00158 #define BINARY    2   
00159 #define EXTFITS   3   
00160 
00161 #define GUIDER_CLIENT 1  
00162 #define GUIDER_CLOSE  2  
00163 #define MESSAGE_CLIENT 3 
00164 #define MESSAGE_CLOSE  4 
00165 #define DISPLAY_CLIENT 5 
00166 #define FILE_CLIENT    6 
00167 
00168 #define SINGLE_AMP       0 
00169 #define TWO_AMP_PARALLEL 1 
00170 #define TWO_AMP_SERIAL   2 
00171 #define FOUR_AMP_QUAD    3 
00172 #define MOSAIC           6 
00173 
00174 #define NO_SPLIT       0 
00175 #define SPLIT_SERIAL   1 
00176 #define SPLIT_PARALLEL 2 
00177 #define SPLIT_QUAD     3 
00178 
00179 // azcamutils Function Prototypes
00180 
00181 int OpenAzCam(azcam_t *, char *);
00182 void CloseAzCam(azcam_t *);
00183 int WriteAzCam(azcam_t *, char *);
00184 int ReadAzCam(azcam_t *, char *);
00185 int AzCamCommand(azcam_t *, char *, char *);
00186 
00187 // Method function prototypes (implement single or multiple AzCam server
00188 // commands
00189 
00190 // Server Control and Database Commands (server.c)
00191 
00192 int CloseConnection(azcam_t *, char *);
00193 int RunScript(azcam_t *, char *, char *);
00194 int SetParameter(azcam_t *, char *, char *, char *, char *);
00195 int GetParameter(azcam_t *, char *, char *, char *);
00196 int ClearParameter(azcam_t *, char *); 
00197 
00198 // Image Writing Commands (image.c)
00199 
00200 int SetSocket(azcam_t *, int , char *, int , char *);
00201 int WriteImage(azcam_t *, char *, char *);
00202 int SendImage(azcam_t *, int , char *, int , char *);
00203 
00204 // Exposure Control Commands (exposure.c)
00205 
00206 int ClearArray(azcam_t *, char *);
00207 int StartExposure(azcam_t *, int , char *);
00208 int SetExposure(azcam_t *, float , char *);
00209 int ReadExposure(azcam_t *, char *);
00210 int AbortExposure(azcam_t *, char *);
00211 int PauseExposure(azcam_t *, char *);
00212 int ResumeExposure(azcam_t *, char *);
00213 int SetFormat(azcam_t *, char *);
00214 int SetConfiguration(azcam_t *, char *);
00215 int SetROI(azcam_t *, char *);
00216 int OpenShutter(azcam_t *, char *);
00217 int CloseShutter(azcam_t *, char *);
00218 int RowShift(azcam_t *, int , char *); 
00219 int GetDetPars(azcam_t *, char *);
00220 int GetPixelCount(azcam_t *, char *);
00221 int SetShutterMode(azcam_t *, int , char *);
00222 int SetReadoutMode(azcam_t *, int , char *);
00223 
00224 // Temperature Commands (temperature.c)
00225 
00226 int GetTemp(azcam_t *, char *);
00227 int SetTemp(azcam_t *, float , char *);
00228 int SetTempCal(azcam_t *, int , int , int , char *);
00229 
00230 // Additional Utility Functions (azcamutils.c)
00231 
00232 void InitAzCam(azcam_t *);
00233 void AzCamInfo(azcam_t *);
00234 int ARCCommand(azcam_t *, char *, char *);
00235 
00236 #endif // AZCAM_H
00237 

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