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 };
00157 
00161 enum {
00162   DISABLED, 
00163   ENABLED 
00164 };
00165 
00169 enum externalSignalFlag {
00170   GET_EXTERNAL_SIGNAL_FLAG,  
00171   SIGNAL_OFF, 
00172   GATE_IN_ACTIVE_HIGH,  
00173   GATE_IN_ACTIVE_LOW,  
00174   TRIGGER_IN_RISING_EDGE,  
00175   TRIGGER_IN_FALLING_EDGE, 
00176   RO_TRIGGER_IN_RISING_EDGE,  
00177   RO_TRIGGER_IN_FALLING_EDGE, 
00178   GATE_OUT_ACTIVE_HIGH, 
00179   GATE_OUT_ACTIVE_LOW,  
00180   TRIGGER_OUT_RISING_EDGE,  
00181   TRIGGER_OUT_FALLING_EDGE, 
00182   RO_TRIGGER_OUT_RISING_EDGE,   
00183   RO_TRIGGER_OUT_FALLING_EDGE  
00184 };
00185 
00191 enum externalCommunicationMode{
00192   GET_EXTERNAL_COMMUNICATION_MODE,
00193   AUTO,
00194   TRIGGER_EXPOSURE,
00195   TRIGGER_READOUT,
00196   TRIGGER_COINCIDENCE_WITH_INTERNAL_ENABLE,
00197   GATE_FIX_NUMBER,
00198   GATE_FIX_DURATION,
00199   GATE_WITH_START_TRIGGER,
00200   GATE_COINCIDENCE_WITH_INTERNAL_ENABLE
00201 };
00205 enum idMode{
00206   MODULE_SERIAL_NUMBER, 
00207   MODULE_FIRMWARE_VERSION,  
00208   DETECTOR_SERIAL_NUMBER,  
00209   DETECTOR_FIRMWARE_VERSION,  
00210   DETECTOR_SOFTWARE_VERSION,   
00211   THIS_SOFTWARE_VERSION  
00212 };
00216 enum digitalTestMode {
00217   CHIP_TEST, 
00218   MODULE_FIRMWARE_TEST,  
00219   DETECTOR_FIRMWARE_TEST,  
00220   DETECTOR_MEMORY_TEST,  
00221   DETECTOR_BUS_TEST,  
00222   DETECTOR_SOFTWARE_TEST  
00223 };
00227 enum analogTestMode {
00228   CALIBRATION_PULSES,  
00229   MY_ANALOG_TEST_MODE  
00230 };
00231 
00235 enum dacIndex {
00236   THRESHOLD,  
00237   CALIBRATION_PULSE,  
00238   TRIMBIT_SIZE,   
00239   PREAMP,   
00240   SHAPER1,    
00241   SHAPER2,  
00242   TEMPERATURE,  
00243   HUMIDITY,  
00244   DETECTOR_BIAS   
00245 };
00246 
00250 enum detectorSettings{  
00251   GET_SETTINGS=-1,  
00252   STANDARD,   
00253   FAST,   
00254   HIGHGAIN,  
00255   UNDEFINED,  
00256   UNINITIALIZED  
00257 };
00262 enum channelRegisterBit {
00263   TRIMBIT_OFF,  
00264   COMPARATOR_ENABLE=0x100,  
00265   ANALOG_SIGNAL_ENABLE=0x200, 
00266   CALIBRATION_ENABLE=0x300, 
00267 };
00272 enum chipRegisterBit {
00273   ENABLE_ANALOG_OUTPUT=0x1, 
00274   CHIP_OUTPUT_WIDTH=0x2 
00275 };
00279 enum moduleRegisterBit {
00280   MY_MODULE_REGISTER_BIT,  
00281   MODULE_OUTPUT_WIDTH   
00282 };
00283 
00287 enum timerIndex {
00288   FRAME_NUMBER, 
00289   ACQUISITION_TIME, 
00290   FRAME_PERIOD, 
00291   DELAY_AFTER_TRIGGER, 
00292   GATES_NUMBER, 
00293   PROBES_NUMBER, 
00294   CYCLES_NUMBER 
00295 };
00296 
00300 enum readOutFlags {
00301   GET_READOUT_FLAGS=-1, 
00302   NORMAL_READOUT=0, 
00303   STORE_IN_RAM=0x1, 
00304   READ_HITS=0x2, 
00305   ZERO_COMPRESSION=0x4,
00306   PUMP_PROBE_MODE=0x8,
00307   BACKGROUND_CORRECTIONS=0x1000 
00308 };
00312 enum trimMode {
00313   NOISE_TRIMMING, 
00314   BEAM_TRIMMING, 
00315   IMPROVE_TRIMMING, 
00316   FIXEDSETTINGS_TRIMMING,
00317   OFFLINE_TRIMMING 
00318 };
00322 enum correctionFlags {
00323   DISCARD_BAD_CHANNELS, 
00324   AVERAGE_NEIGHBOURS_FOR_BAD_CHANNELS,  
00325   FLAT_FIELD_CORRECTION,  
00326   RATE_CORRECTION,  
00327   ANGULAR_CONVERSION,
00328   I0_NORMALIZATION
00329 };
00330 
00339 enum {
00340 
00341   // General purpose functions
00342   F_EXEC_COMMAND, 
00343   F_GET_ERROR,  
00345   // configuration  functions
00346   F_GET_DETECTOR_TYPE, 
00347   F_SET_NUMBER_OF_MODULES, 
00348   F_GET_MAX_NUMBER_OF_MODULES, 
00349   F_SET_EXTERNAL_SIGNAL_FLAG,  
00350   F_SET_EXTERNAL_COMMUNICATION_MODE, 
00354   // Tests and identification
00355 
00356   F_GET_ID, 
00357   F_DIGITAL_TEST,  
00358   F_ANALOG_TEST,  
00359   F_ENABLE_ANALOG_OUT,  
00360   F_CALIBRATION_PULSE,  
00362   // Initialization functions
00363   F_SET_DAC,   
00364   F_GET_ADC,  
00365   F_WRITE_REGISTER,  
00366   F_READ_REGISTER, 
00367   F_WRITE_MEMORY,  
00368   F_READ_MEMORY, 
00371   F_SET_CHANNEL,  
00372   F_GET_CHANNEL,  
00373   F_SET_ALL_CHANNELS,  
00375   F_SET_CHIP,  
00376   F_GET_CHIP,  
00377   F_SET_ALL_CHIPS,  
00379   F_SET_MODULE, 
00380   F_GET_MODULE,  
00381   F_SET_ALL_MODULES,  
00384   F_SET_SETTINGS,  
00385   F_GET_THRESHOLD_ENERGY,  
00386   F_SET_THRESHOLD_ENERGY,  
00389   // Acquisition functions
00390   F_START_ACQUISITION, 
00391   F_STOP_ACQUISITION, 
00392   F_START_READOUT, 
00393   F_GET_RUN_STATUS,  
00394   F_START_AND_READ_ALL,  
00395   F_READ_FRAME,  
00396   F_READ_ALL,  
00398   //Acquisition setup functions
00399   F_SET_TIMER,  
00400   F_GET_TIME_LEFT,  
00404   F_SET_DYNAMIC_RANGE,  
00405   F_SET_READOUT_FLAGS,  
00406   F_SET_ROI,  
00408   //Trimming
00409   F_EXECUTE_TRIMMING,   
00414   F_EXIT_SERVER  
00416 };
00417 
00418 
00422 typedef struct  {
00423   float center;  
00424   float ecenter; 
00425   float r_conversion;  
00426   float er_conversion;  
00427   float offset; 
00428   float eoffset; 
00429   float tilt; 
00430   float etilt; 
00431 } angleConversionConstant;
00432 
00433 
00434 #endif

Generated on Fri Oct 9 16:01:04 2009 by  doxygen 1.4.7