marglobals.h

Go to the documentation of this file.
00001 #ifndef MARGLOBALS_H
00002 #define MARGLOBALS_H
00003 
00004 /***********************************************************************
00005  *
00006  * scan345: marglobals.h
00007  *
00008  * Copyright by:        Dr. Claudio Klein
00009  *                      X-ray Research GmbH, Hamburg
00010  *
00011  * Version:     2.2
00012  * Date:        15/06/2000
00013  *
00014  * History:
00015  *
00016  * Date         Version         Description
00017  * ---------------------------------------------------------------------
00018  * 15/06/00     2.2             Added feature COMMAND SCAN ADD x ERASE y
00019  *
00020  ***********************************************************************/
00021 
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025 
00026 #define MAX_MODE        8
00027 #define MAX_SET         4
00028 
00029 #define OUT_SPIRAL      0
00030 #define OUT_PCK         1
00031 #define OUT_MAR         2
00032 #define OUT_IMAGE       3
00033 #define OUT_CIF         4
00034 #define OUT_CBF         5
00035 
00036 #define SINGLE_RUN      0
00037 #define INDEX_RUN       1
00038 #define MAD_RUN         2
00039 #define MULTI_RUN       3
00040 #define TOTAL_RUN       (MULTI_RUN+MAX_SET)
00041 
00042 typedef struct _run_params {
00043         short int               stat;
00044         short int               scanmode;
00045         unsigned short int      ffrm;
00046         unsigned short int      nfrm;
00047         unsigned short int      nosc;
00048         unsigned short int      timemode;
00049         unsigned short int      format;
00050         unsigned short int      diam;
00051         float                   time;
00052         float                   phis;
00053         float                   dphi;
00054         float                   iphi;
00055         float                   dist;
00056         float                   pixelsize;
00057         float                   wave;
00058         char                    dire            [128];
00059         char                    root            [128];
00060 } RUN_PARAMS;
00061 
00062 typedef struct  {
00063         int add;
00064         int val;
00065 } STRONG;
00066 
00067 
00068 #ifdef MAR_GLOBAL
00069 #define EXT
00070 #else
00071 #define EXT extern
00072 #endif
00073 
00074 EXT int         mar_number;
00075 EXT int         mar_mode;
00076 EXT int         mar_par1;
00077 EXT int         mar_par2;
00078 EXT int         mar_par3;
00079 EXT int         mar_par4;
00080 EXT int         mar_par5;
00081 EXT int         mar_par6;
00082 EXT int         mar_par7;
00083 EXT int         stat_gap[8];
00084 EXT char        mar_str[28];
00085 EXT char        ips_command[128];
00086 
00087 EXT char        buf[2048], str[1024];
00088 EXT char        mar_host[32];
00089 
00090 EXT char        working_dir[128];
00091 EXT char        config_file[128];
00092 EXT char        save_file[128];
00093 EXT char        scanner_no[8];
00094 
00095 EXT char        image_root[64];
00096 EXT char        image_dir[128];
00097 EXT char        spiral_file[128];
00098 EXT char        image_file[128];
00099 
00100 EXT char        *trntable;
00101 
00102 EXT int         fdnd;
00103 EXT int         mar_port;
00104 EXT int         debug;
00105 EXT int         total_run;
00106 
00107 /*
00108  * The following are variables used as run parameters
00109  */
00110 EXT     int             SET;
00111 EXT     int             NSET;
00112 EXT     RUN_PARAMS      run_p[TOTAL_RUN];
00113 EXT     struct {
00114           short int               stat;
00115           unsigned short int      nfrm;
00116           unsigned short int      ffrm;
00117           unsigned short int      fspi;
00118           float   phi;
00119         }               progress[TOTAL_RUN];
00120 
00121 /*
00122  * The following are status indicators passed to GUI
00123  */
00124 
00125 EXT     float   stat_pixelsize;
00126 EXT     float   stat_xray_units;
00127 
00128 EXT     float   stat_dist;
00129 EXT     float   stat_omega;
00130 EXT     float   stat_phi;
00131 EXT     float   stat_theta;
00132 EXT     float   stat_chi;
00133 
00134 EXT     float   stat_phibeg;
00135 EXT     float   stat_phiend;
00136 EXT     float   stat_dphi;
00137 
00138 EXT     float   stat_omebeg;
00139 EXT     float   stat_omeend;
00140 EXT     float   stat_dome;
00141 
00142 EXT     int     stat_phiosc;
00143 EXT     int     stat_omeosc;
00144 
00145 EXT     float   stat_time;
00146 EXT     float   stat_units;
00147 EXT     float   stat_intensity;
00148 
00149 EXT     float   stat_wavelength;
00150 EXT     float   stat_multiplier;
00151 EXT     int     stat_mode;
00152 EXT     int     stat_max_count;
00153 EXT     int     stat_n_images;
00154 EXT     int     stat_n_passes;
00155 EXT     int     stat_sweeps;
00156 
00157 EXT     int     stat_scanmode;
00158 EXT     int     stat_scanner_op;
00159 EXT     int     stat_scanner_msg;
00160 EXT     int     stat_scanner_control;
00161 EXT     int     stat_xray_shutter;
00162 EXT     int     stat_xform_msg;
00163 
00164 EXT     char    stat_dir[80];
00165 EXT     char    stat_fname[80];
00166 
00167 
00168 EXT     float   com_kV;
00169 EXT     float   com_mA;
00170 EXT     float   com_slitx;
00171 EXT     float   com_slity;
00172 EXT     float   com_dist;
00173 EXT     float   com_theta;
00174 EXT     float   com_chi;
00175 
00176 EXT     float   com_phibeg;
00177 EXT     float   com_phiend;
00178 EXT     float   com_dphi;
00179 
00180 EXT     float   com_omebeg;
00181 EXT     float   com_omeend;
00182 EXT     float   com_dome;
00183 
00184 EXT     int     com_phiosc;
00185 EXT     int     com_omeosc;
00186 
00187 EXT     float   com_dosebeg;                                 
00188 EXT     float   com_doseend;                                 
00189 EXT     float   com_doseavg;                                 
00190 EXT     float   com_dosesig;                                 
00191 EXT     float   com_dosemin;                                 
00192 EXT     float   com_dosemax;                                 
00193 EXT     int     com_dosen;                                   
00194                                     
00195 EXT     float   com_time;
00196 EXT     float   com_units;
00197 EXT     float   com_intensity;
00198 EXT     float   com_polar;
00199 
00200 EXT     float   com_wavelength;
00201 EXT     float   com_multiplier;
00202 EXT     float   com_pixelsize;
00203 EXT     float   com_diam;
00204 EXT     int     com_mode;
00205 EXT     int     com_format;
00206 EXT     int     com_size;
00207 EXT     int     com_scanmode;
00208 EXT     int     com_scan_add;
00209 EXT     int     com_scan_erase;
00210 EXT     char    com_use_spiral;
00211 
00212 EXT     char    com_filter[80];
00213 EXT     char    com_source[80];
00214 EXT     char    com_dir[80];
00215 EXT     char    com_root[80];
00216 EXT     char    com_remark[80];
00217 EXT     char    com_file[80];
00218 
00219 /*
00220  * The following are counters, variables, etc.  used during data collection
00221  */
00222 
00223 EXT     int     nb_size;
00224 EXT     int     incontrol;
00225 EXT     int     netcontrol;
00226 EXT     int     mar_cmd;
00227 
00228 EXT     int     dcop;
00229 EXT     int     retrycnt;
00230 EXT     int     totimg;
00231 EXT     int     totpass;
00232 EXT     int     init_op;
00233 EXT     int     dc_stop;
00234 EXT     float   delta;  
00235 EXT     float   sum_xray_units;
00236 
00237 EXT     int     fdmar;
00238 
00239 /*
00240  * The following are hardware status bits from controller: Output Register
00241  */
00242 
00243 EXT     int     ion_chamber;
00244 EXT     int     distance_steps;
00245 EXT     int     phi_steps;
00246 EXT     int     omega_steps;
00247 
00248 /*
00249  * The following are status indicators from controller Input Register
00250  */
00251 
00252 EXT     int     xrayshutter_status;
00253 EXT     int     lock_status;
00254 EXT     int     erase_status;
00255 EXT     int     position_status;
00256 EXT     int     upper_status;
00257 EXT     int     lower_status;
00258 EXT     int     laser_status;
00259 EXT     int     lasershutter_status;
00260 EXT     int     transref_status;
00261 EXT     char    erase_lamp_on_ok;
00262 
00263 /*
00264  * The following are variables read from config file
00265  */
00266 
00267 EXT     int     cur_mode;
00268 EXT     short   cur_size;
00269 EXT     short   cur_diameter;
00270 EXT     short   cur_nfrm;
00271 EXT     float   cur_pixelsize;
00272 EXT     float   cur_intensmin;
00273 EXT     int     cur_scantime;
00274 
00275 
00276 
00277 #ifdef MAR_GLOBAL
00278 
00279 int     nstrong         = 0;
00280 int     nsat            = 0;
00281 int     verbose         = 0;
00282 char    keep_spiral     = 0;
00283 char    big_scanner     = 1;
00284 
00285 #else
00286 
00287 EXT     char    keep_spiral;
00288 EXT     char    big_scanner;
00289 EXT     int     verbose;
00290 
00291 #endif
00292 
00293 #ifdef __cplusplus
00294 }
00295 #endif
00296 
00297 #endif