/* ************************************************************** */ /* * AMBIENT.H * * Zachary Wolf * 3/22/02 */ #ifndef __AMBIENT_HEADER #define __AMBIENT_HEADER #if defined(__cplusplus) || defined(__cplusplus__) extern "C" { #endif /* ************************************************************** */ /* CONSTANTS */ #define AMBIENT_MAX_CMD 80 #define AMBIENT_MAX_NUM_SENSORS 8 #define AMBIENT_MAX_NAME_LENGTH 40 #define AMBIENT_YSI44036_R25 10000. #define AMBIENT_YSI44036_dRdT25 -438. #define AMBIENT_OMHX93AV_DEG_C_PER_VOLT 95. #define AMBIENT_OMHX93AV_DEG_C_AT_0_V -20. #define AMBIENT_OMHX93AV_RH_PER_VOLT 100. /* ************************************************************* */ /* ENUM DEFINITIONS */ enum ambient_meas_system_enum {AMBIENT_HP3457, AMBIENT_K7011_HP3457, AMBIENT_NONE}; enum ambient_sensor_type_enum {AMBIENT_HPTHERM_T, AMBIENT_YSI44036_T, AMBIENT_OMHX93AV_T, AMBIENT_OMHX93AV_RH, AMBIENT_OMEWSBPA_P}; enum ambient_binary_enum {AMBIENT_TRUE, AMBIENT_FALSE}; /* ************************************************************* */ /* STRUCTURE DEFINITIONS */ struct ambient_sensor { enum ambient_sensor_type_enum sensor_type; /* Type of sensor being used */ int chan_num; /* Channel number for the sensor */ char name[AMBIENT_MAX_NAME_LENGTH]; /* Name describing the sensor or what it is measuring */ }; struct ambient_param_struct { int board_addr; /* GPIB board addr */ int hp3457_addr; /* HP3457 GPIB address */ int k7011_addr; /* K7011 GPIB address */ enum ambient_meas_system_enum meas_system; /* Type of measurement system being used */ int k7011_card_num; /* K7011 multiplexer card number */ int k7011_hp3457_chan; /* HP3457 channel the K7011 multiplexer is plugged in to */ enum ambient_binary_enum show_ui; /* Show user interface if true, don't show otherwise */ int num_sensors; /* Number of sensors in the system */ struct ambient_sensor sensor[AMBIENT_MAX_NUM_SENSORS + 1]; /* Information about each sensor */ }; /* ************************************************************** */ /* PUBLIC FUNCTION DECLARATIONS */ void ambient_init(char log_file_in[], char dat_file_in[], struct ambient_param_struct ambient_param_in); void ambient_get_num_sensors(int* num_sensors); void ambient_get_sensor_name(int sensor_num, char sensor_name[]); void ambient_get_sensor_voltage(int sensor_num, double* voltage); void ambient_get_sensor_resistance(int sensor_num, double* resistance); void ambient_get_sensor_temperature(int sensor_num, double* temperature); void ambient_get_sensor_output(int sensor_num, double* meas_value); void ambient_measure(int* num_sensors, char sensor_name[][AMBIENT_MAX_NAME_LENGTH], double meas_value[]); void ambient_dat_meas(int num_sensors, char sensor_name[][AMBIENT_MAX_NAME_LENGTH], double meas_value[]); void ambient_dat_meas_vs_time(int num_sensors, char sensor_name[][AMBIENT_MAX_NAME_LENGTH], double meas_value[]); void ambient_exit(void); /* ************************************************************** */ /* DONE */ #if defined(__cplusplus) || defined(__cplusplus__) } #endif #endif