commonFiles/sls_detector_defs.h

Go to the documentation of this file.
00001 #ifndef SLS_DETECTOR_DEFS_H
00002 #define SLS_DETECTOR_DEFS_H
00003 
00004 #include <stdint.h> 
00017 #define MAX_STR_LENGTH 1000
00018 
00020 #define GET_FLAG -1
00021 
00027 typedef struct {
00028   int chan; 
00029   int chip; 
00030   int module; 
00031   int64_t reg;   
00032 } sls_detector_channel;
00033 
00039 typedef struct  {
00040   int chip;   
00041   int module;  
00042   int nchan; 
00043   int reg; 
00045   int *chanregs; 
00047 } sls_detector_chip;
00048 
00063 typedef struct {
00064   int module; 
00065   int serialnumber;  
00066   int nchan; 
00067   int nchip; 
00068   int ndac; 
00069   int nadc; 
00070   int reg; 
00072   float *dacs; 
00073   float *adcs;  
00074   int *chipregs; 
00076   int *chanregs; 
00078   float gain;  
00079   float offset;  
00080 } sls_detector_module;
00081 
00087 typedef struct {
00088   int xmin;  
00089   int xmax;  
00090   int ymin;  
00091   int ymax;   
00092 } ROI ;
00093 
00098 typedef struct {
00099 
00100   int len;  
00101   int *iptr; 
00102 } iarray ;
00103 
00104 
00108 enum detectorType {
00109   GET_DETECTOR_TYPE,   
00110   GENERIC,  
00111   MYTHEN, 
00112   PILATUS, 
00113   EIGER, 
00114   GOTTHARD, 
00115   AGIPD 
00116 };
00117 
00121 enum communicationProtocol{
00122   TCP,  
00123   UDP 
00124 };
00125 
00126 
00130 enum numberOf {
00131   MAXMODX, 
00132   MAXMODY, 
00133   NMODX, 
00134   NMODY, 
00135   NCHANSX, 
00136   NCHANSY, 
00137   NCHIPSX, 
00138   NCHIPSY 
00139 };
00140 
00144 enum dimension {
00145   X=0, 
00146   Y=1, 
00147   Z=2 
00148 };
00149 
00153 enum  {
00154   OK, 
00155   FAIL, 
00156   FINISHED 
00157 };
00158 
00162 enum {
00163   DISABLED, 
00164   ENABLED 
00165 };
00166 
00170 enum externalSignalFlag {
00171   GET_EXTERNAL_SIGNAL_FLAG,  
00172   SIGNAL_OFF, 
00173   GATE_IN_ACTIVE_HIGH,  
00174   GATE_IN_ACTIVE_LOW,  
00175   TRIGGER_IN_RISING_EDGE,  
00176   TRIGGER_IN_FALLING_EDGE, 
00177   RO_TRIGGER_IN_RISING_EDGE,  
00178   RO_TRIGGER_IN_FALLING_EDGE, 
00179   GATE_OUT_ACTIVE_HIGH, 
00180   GATE_OUT_ACTIVE_LOW,  
00181   TRIGGER_OUT_RISING_EDGE,  
00182   TRIGGER_OUT_FALLING_EDGE, 
00183   RO_TRIGGER_OUT_RISING_EDGE,   
00184   RO_TRIGGER_OUT_FALLING_EDGE  
00185 };
00186 
00192 enum externalCommunicationMode{
00193   GET_EXTERNAL_COMMUNICATION_MODE,
00194   AUTO,
00195   TRIGGER_EXPOSURE,
00196   TRIGGER_READOUT,
00197   TRIGGER_COINCIDENCE_WITH_INTERNAL_ENABLE,
00198   GATE_FIX_NUMBER,
00199   GATE_FIX_DURATION,
00200   GATE_WITH_START_TRIGGER,
00201   GATE_COINCIDENCE_WITH_INTERNAL_ENABLE
00202 };
00206 enum idMode{
00207   MODULE_SERIAL_NUMBER, 
00208   MODULE_FIRMWARE_VERSION,  
00209   DETECTOR_SERIAL_NUMBER,  
00210   DETECTOR_FIRMWARE_VERSION,  
00211   DETECTOR_SOFTWARE_VERSION,   
00212   THIS_SOFTWARE_VERSION  
00213 };
00217 enum digitalTestMode {
00218   CHIP_TEST, 
00219   MODULE_FIRMWARE_TEST,  
00220   DETECTOR_FIRMWARE_TEST,  
00221   DETECTOR_MEMORY_TEST,  
00222   DETECTOR_BUS_TEST,  
00223   DETECTOR_SOFTWARE_TEST  
00224 };
00228 enum analogTestMode {
00229   CALIBRATION_PULSES,  
00230   MY_ANALOG_TEST_MODE  
00231 };
00232 
00236 enum dacIndex {
00237   THRESHOLD,  
00238   CALIBRATION_PULSE,  
00239   TRIMBIT_SIZE,   
00240   PREAMP,   
00241   SHAPER1,    
00242   SHAPER2,  
00243   TEMPERATURE,  
00244   HUMIDITY,  
00245   DETECTOR_BIAS   
00246 };
00247 
00251 enum detectorSettings{  
00252   GET_SETTINGS=-1,  
00253   STANDARD,   
00254   FAST,   
00255   HIGHGAIN,  
00256   UNDEFINED,  
00257   UNINITIALIZED  
00258 };
00263 enum channelRegisterBit {
00264   TRIMBIT_OFF,  
00265   COMPARATOR_ENABLE=0x100,  
00266   ANALOG_SIGNAL_ENABLE=0x200, 
00267   CALIBRATION_ENABLE=0x300, 
00268 };
00273 enum chipRegisterBit {
00274   ENABLE_ANALOG_OUTPUT=0x1, 
00275   CHIP_OUTPUT_WIDTH=0x2 
00276 };
00280 enum moduleRegisterBit {
00281   MY_MODULE_REGISTER_BIT,  
00282   MODULE_OUTPUT_WIDTH   
00283 };
00284 
00288 enum timerIndex {
00289   FRAME_NUMBER, 
00290   ACQUISITION_TIME, 
00291   FRAME_PERIOD, 
00292   DELAY_AFTER_TRIGGER, 
00293   GATES_NUMBER, 
00294   PROBES_NUMBER, 
00295   CYCLES_NUMBER 
00296 };
00297 
00301 enum speedVariable {
00302   CLOCK_DIVIDER, 
00303   WAIT_STATES, 
00304   SET_SIGNAL_LENGTH 
00305 };
00306 
00310 enum readOutFlags {
00311   GET_READOUT_FLAGS=-1, 
00312   NORMAL_READOUT=0, 
00313   STORE_IN_RAM=0x1, 
00314   READ_HITS=0x2, 
00315   ZERO_COMPRESSION=0x4,
00316   PUMP_PROBE_MODE=0x8,
00317   BACKGROUND_CORRECTIONS=0x1000 
00318 };
00322 enum trimMode {
00323   NOISE_TRIMMING, 
00324   BEAM_TRIMMING, 
00325   IMPROVE_TRIMMING, 
00326   FIXEDSETTINGS_TRIMMING,
00327   OFFLINE_TRIMMING 
00328 };
00332 enum correctionFlags {
00333   DISCARD_BAD_CHANNELS, 
00334   AVERAGE_NEIGHBOURS_FOR_BAD_CHANNELS,  
00335   FLAT_FIELD_CORRECTION,  
00336   RATE_CORRECTION,  
00337   ANGULAR_CONVERSION,
00338   I0_NORMALIZATION
00339 };
00340 
00349 enum {
00350 
00351   // General purpose functions
00352   F_EXEC_COMMAND, 
00353   F_GET_ERROR,  
00355   // configuration  functions
00356   F_GET_DETECTOR_TYPE, 
00357   F_SET_NUMBER_OF_MODULES, 
00358   F_GET_MAX_NUMBER_OF_MODULES, 
00359   F_SET_EXTERNAL_SIGNAL_FLAG,  
00360   F_SET_EXTERNAL_COMMUNICATION_MODE, 
00363   // Tests and identification
00364 
00365   F_GET_ID, 
00366   F_DIGITAL_TEST,  
00367   F_ANALOG_TEST,  
00368   F_ENABLE_ANALOG_OUT,  
00369   F_CALIBRATION_PULSE,  
00371   // Initialization functions
00372   F_SET_DAC,   
00373   F_GET_ADC,  
00374   F_WRITE_REGISTER,  
00375   F_READ_REGISTER, 
00376   F_WRITE_MEMORY,  
00377   F_READ_MEMORY, 
00380   F_SET_CHANNEL,  
00381   F_GET_CHANNEL,  
00382   F_SET_ALL_CHANNELS,  
00384   F_SET_CHIP,  
00385   F_GET_CHIP,  
00386   F_SET_ALL_CHIPS,  
00388   F_SET_MODULE, 
00389   F_GET_MODULE,  
00390   F_SET_ALL_MODULES,  
00393   F_SET_SETTINGS,  
00394   F_GET_THRESHOLD_ENERGY,  
00395   F_SET_THRESHOLD_ENERGY,  
00398   // Acquisition functions
00399   F_START_ACQUISITION, 
00400   F_STOP_ACQUISITION, 
00401   F_START_READOUT, 
00402   F_GET_RUN_STATUS,  
00403   F_START_AND_READ_ALL,  
00404   F_READ_FRAME,  
00405   F_READ_ALL,  
00407   //Acquisition setup functions
00408   F_SET_TIMER,  
00409   F_GET_TIME_LEFT,  
00413   F_SET_DYNAMIC_RANGE,  
00414   F_SET_READOUT_FLAGS,  
00415   F_SET_ROI,  
00417   F_SET_SPEED,  
00419   //Trimming
00420   F_EXECUTE_TRIMMING,   
00425   F_EXIT_SERVER  
00427 };
00428 
00429 
00433 typedef struct  {
00434   float center;  
00435   float ecenter; 
00436   float r_conversion;  
00437   float er_conversion;  
00438   float offset; 
00439   float eoffset; 
00440   float tilt; 
00441   float etilt; 
00442 } angleConversionConstant;
00443 
00444 
00445 #endif

Generated on Tue Dec 1 15:31:44 2009 by  doxygen 1.4.7