00001 #ifndef AZCAM_H
00002 #define AZCAM_H
00003
00004
00005
00006
00007
00021
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
00045
00046
00047
00057 typedef struct azcam {
00058
00059
00060
00061 char Host[64];
00062 int Port;
00063 int FD;
00064 long Timeout;
00065 char CfgFile[128];
00066 char IniFile[128];
00067
00068
00069
00070 int State;
00071 int ShutterMode;
00072 int Readout;
00073 int Shutter;
00074 int Abort;
00075
00076
00077
00078 float SetPoint;
00079 float CCDTemp;
00080 float DewarTemp;
00081 int DiodeSensor;
00082 int CCDSensor;
00083 int DewarSensor;
00084
00085
00086
00087 int FirstCol;
00088 int LastCol;
00089 int ColBin;
00090 int FirstRow;
00091 int LastRow;
00092 int RowBin;
00093
00094
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
00107
00108 int ReadMode;
00109 int Splits;
00110 int NumDetX;
00111 int NumDetY;
00112 char AmpConfig[6];
00113
00114
00115
00116 int Ncols;
00117 int Nrows;
00118 int Npixels;
00119 int Nread;
00120
00121
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
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
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
00188
00189
00190
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
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
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
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
00231
00232 void InitAzCam(azcam_t *);
00233 void AzCamInfo(azcam_t *);
00234 int ARCCommand(azcam_t *, char *, char *);
00235
00236 #endif // AZCAM_H
00237