/* ************************************************************* */ /* * VSCAN.H * * Zachary Wolf * 10/21/02 */ #ifndef __VSCAN_HEADER #define __VSCAN_HEADER /* ************************************************************** */ /* SEMI-PERMANENT PARAMETERS */ #define VSCAN_MAX_NUM_CHAR 100 #define VSCAN_MAX_NUM_SAMP 5000 #define VSCAN_MAX_NUM_DVM 10 /* ************************************************************* */ /* ENUM DEFINITIONS */ enum vscan_config_enum {VSCAN_MOVEZ_HP3458, VSCAN_NONE_NONE}; enum vscan_binary_enum {VSCAN_TRUE, VSCAN_FALSE}; /* ************************************************************* */ /* STRUCTURE DEFINITIONS */ struct vscan_dvm_info_struct { char name[VSCAN_MAX_NUM_CHAR]; /* name of the DVM */ char descr[VSCAN_MAX_NUM_CHAR]; /* description of the measurement */ int addr; /* DVM GPIB address */ double range; /* voltage range setting for the DVM */ }; struct vscan_param_struct { int board_addr; /* GPIB board address */ int num_dvm; /* number of voltmeters measuring during a scan */ struct vscan_dvm_info_struct dvm_info[VSCAN_MAX_NUM_DVM]; /* DVM information */ double dist_btwn_trig_pulse; /* distance between trigger pulses (m) */ enum vscan_config_enum config; /* hardware being used, choices in enum */ enum vscan_binary_enum show_ui; /* if TRUE, show user interface, don't show if FALSE */ }; /* ************************************************************* */ /* PUBLIC FUNCTION DECLARATIONS */ void vscan_init(char log_file[], struct vscan_param_struct vscan_param); void vscan_get_v(double start_pos, double dist_move, int* num_dvm, struct vscan_dvm_info_struct dvm_info[], int* num_samp, double pos_samp[], double v_samp[VSCAN_MAX_NUM_DVM][VSCAN_MAX_NUM_SAMP]); void vscan_move_probe_abs(double pos); void vscan_set_zero_pos(void); void vscan_exit(void); /* ************************************************************** */ /* DONE */ #endif