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