/* ************************************************************** */ /* * MOVEZ.H * * Zachary Wolf * 2/2/00 */ #ifndef __MOVEZ_HEADER #define __MOVEZ_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 movez_device_type_enum {MOVEZ_CM2100_CM2100, MOVEZ_CM4000_CM4000, MOVEZ_MC4_MC4, MOVEZ_SXDRIVE_SXDRIVE, MOVEZ_MANUAL_NONE, MOVEZ_NONE_NONE}; /* ************************************************************* */ /* STRUCTURE DEFINITIONS */ struct movez_param_struct { int board_addr; /* GPIB board addr */ int rs232_com_port; /* RS232 com port */ int cm2100_addr; /* CM2100 GPIB address */ int cm4000_addr; /* CM4000 GPIB address */ int mc4_addr; /* MC4 GPIB address */ int sxdrive_addr; /* SXDRIVE RS232 address */ enum movez_device_type_enum device_type; /* Type of devices being used */ char cm4000_axis; /* CM4000 axis number, 1, 2, 3, or 4 */ char mc4_axis; /* MC4 axis name, W, X, Y, or Z */ double translate_meters_per_rev; /* Leadscrew pitch or linear motor scale factor (m/rev) */ double encoder_meters_per_line; /* Encoder scale factor (m/line) */ double acc; /* Stage acceleration (m/s/s) */ double vel; /* Stage velocity (m/s) */ }; /* ************************************************************** */ /* PUBLIC FUNCTION DECLARATIONS */ void movez_init(char log_file_in[], struct movez_param_struct movez_param); void movez_abs_move(double pos); void movez_get_pos(double* pos); void movez_zero(void); void movez_exit(void); /* ************************************************************** */ /* CONSTANTS */ #define MOVEZ_MAX_CMD 80 /* ************************************************************** */ /* DONE */ #if defined(__cplusplus) || defined(__cplusplus__) } #endif #endif