/* ************************************************************** */ /* * MOVEX.H * * Zachary Wolf * 6/15/01 */ #ifndef __MOVEX_HEADER #define __MOVEX_HEADER #if defined(__cplusplus) || defined(__cplusplus__) extern "C" { #endif /* ************************************************************* */ /* ENUM DEFINITIONS */ /* Device type: the first device is the move device, the second is the position read device */ enum movex_device_type_enum {MOVEX_MC4_MC4, MOVEX_PM500_PM500, MOVEX_MANUAL_NONE, MOVEX_NONE_NONE}; /* ************************************************************* */ /* STRUCTURE DEFINITIONS */ struct movex_param_struct { int board_addr; /* GPIB board addr */ int mc4_addr; /* MC4 GPIB address */ int pm500_addr; /* PM500 GPIB address */ enum movex_device_type_enum device_type; /* Type of devices being used */ char mc4_x_axis; /* MC4 x axis name, W, X, Y, or Z */ char mc4_xs_axis; /* MC4 x secondary axis name, W, X, Y, or Z */ char pm500_x_axis; /* PM500 x axis name, X, Y, A, or B */ char pm500_xs_axis; /* PM500 x secondary axis name, X, Y, A, or B */ double acc; /* Stage acceleration (m/s/s) */ double vel; /* Stage velocity (m/s) */ }; /* ************************************************************** */ /* PUBLIC FUNCTION DECLARATIONS */ void movex_init(char log_file_in[], struct movex_param_struct movex_param); void movex_abs_stage_move(double x_pos); void movex_abs_2_stage_move(double x_pos); void movex_rel_stage_move(double x_rel); void movex_rel_2_stage_move(double x_rel); void movex_get_stage_pos(double* x_pos); void movex_get_2_stage_pos(double* x_pos, double* xs_pos); void movex_set_zero_pos(void); void movex_zero(void); void movex_exit(void); /* ************************************************************** */ /* CONSTANTS */ #define MOVEX_MAX_CMD 80 /* ************************************************************** */ /* DONE */ #if defined(__cplusplus) || defined(__cplusplus__) } #endif #endif