/* ************************************************************* */ /* * VTSCAN.H * * Zachary Wolf * 8/17/99 */ #ifndef __VTSCAN_HEADER #define __VTSCAN_HEADER /* ************************************************************** */ /* SEMI-PERMANENT PARAMETERS */ #define VTSCAN_MAX_NUM_MEAS 10 #define VTSCAN_MAX_NUM_CHAR 100 #define VTSCAN_REL_ENC_DIR 1 /* ************************************************************* */ /* ENUM DEFINITIONS */ enum vtscan_config_enum {VTSCAN_MC4_K7011_PDI5025, VTSCAN_MC4_PDI5025}; enum vtscan_binary_enum {VTSCAN_TRUE, VTSCAN_FALSE}; /* ************************************************************* */ /* STRUCTURE DEFINITIONS */ struct vtscan_param_struct { int board_addr; /* GPIB board address */ int mc4_addr; /* MC4 GPIB address */ int k7011_addr; /* K7011 GPIB address */ int pdi5025_addr; /* PDI5025 GPIB address */ char pdi5025_channel; /* PDI5025 (if being used) channel 'A' or 'B' */ int pdi5025_gain; /* PDI5025 (if being used) gain 1, 2, ... */ char mc4_axis1; /* MC4 axis for stage 1 (W, X, Y, or Z) */ char mc4_axis2; /* MC4 axis for stage 2 (W, X, Y, or Z) */ double dist_btwn_enc_pulse; /* Distance between encoder pulses (m) */ enum vtscan_config_enum config; /* Hardware being used, choices in enum */ double wire_vel; /* Speed to move the wire at (m/s) */ double wire_acc; /* Wire acceleration rate (m/s/s) */ enum vtscan_binary_enum show_ui; /* If TRUE, show user interface, don't show if FALSE */ }; /* ************************************************************* */ /* PUBLIC FUNCTION DECLARATIONS */ void vtscan_init(char log_file[], struct vtscan_param_struct vtscan_param); void vtscan_close_mux_chan(int mux_chan); void vtscan_set_gain(int gain); void vtscan_get_vt(double x_start, double dx, int num_samp, double* x, double* vt); void vtscan_move_wire_abs(double x_pos); void vtscan_set_zero_pos(void); void vtscan_zero_pos(void); void vtscan_protect(void); void vtscan_exit(void); /* ************************************************************** */ /* DONE */ #endif