
/*	**************************************************************	*/

/*
 * PARAM.H
 * This file contains parameters required by the measurement
 * program.
 *
 * Zachary Wolf
 * 10/6/05
 */
 
/* Protection from multiple definitions */
#ifndef __VIBRATINGWIREPARAM_HEADER
#define __VIBRATINGWIREPARAM_HEADER

#define TRUE 1
#define FALSE 0
 
/* GPIB addresses */
#define GPIB_BOARD_ADDR					0
#define GPIB_BOARD2_ADDR				CAM_HP_GPIB_ADDR
#define GPIB_HP33220_ADDR				10
#define GPIB_SR830X_ADDR				8
#define GPIB_SR830Y_ADDR				6
#define GPIB_ESP7000_ADDR				2
#define GPIB_HP34970_ADDR				9 
#define GPIB_HP3457_ADDR				22
#define GPIB_DAC488_ADDR				19
#define GPIB_DAC488HR_ADDR				8 

/* Email Notification Settings*/
static char MAIL_TO[1000]		=		"sda@slac.stanford.edu";
#define MAIL_SEND_NOTIFICATION			1
#define MAIL_COMPUTER_ID				"MMF Quad"

/* Vibwire parameters */
#define VIBWIRE_BOARD_ADDR				GPIB_BOARD_ADDR
#define VIBWIRE_HP33220_ADDR			GPIB_HP33220_ADDR
#define VIBWIRE_SR830X_ADDR				GPIB_SR830X_ADDR
#define VIBWIRE_SR830Y_ADDR				GPIB_SR830Y_ADDR
#define VIBWIRE_DEVICE_TYPE				VIBWIRE_HP33220_SR830XY
#define VIBWIRE_NOM_FUND_FREQ		    119.45
#define VIBWIRE_SHOW_UI					VIBWIRE_TRUE

/* MoveMag parameters */
#define MOVEMAG_BOARD_ADDR				GPIB_BOARD2_ADDR
#define MOVEMAG_ESP7000_ADDR			GPIB_ESP7000_ADDR2
#define MOVEMAG_AXIS_X					1
#define MOVEMAG_AXIS_Y					2
#define MOVEMAG_AXIS_Z					-1
#define MOVEMAG_AXIS_PITCH				3
#define MOVEMAG_AXIS_YAW				4
#define MOVEMAG_AXIS_ROLL				-1
#define MOVEMAG_ACC						0.0008
#define MOVEMAG_VEL						0.0004
#define MOVEMAG_DIST_TO_PITCH_PIVOT		0.058
#define MOVEMAG_DIST_TO_YAW_PIVOT		0.093
#define MOVEMAG_DIST_TO_ROLL_PIVOT		-1.
#define MOVEMAG_ZERO_CAMS				1

/* Wirpos parameters */
#define WIRPOS_BOARD_ADDR				GPIB_BOARD_ADDR
#define WIRPOS_ESP7000_ADDR				GPIB_ESP7000_ADDR
#define WIRPOS_HP34970_ADDR				GPIB_HP34970_ADDR
//#define WIRPOS_DEVICE_TYPE				WIRPOS_NONE_NONE
#define WIRPOS_DEVICE_TYPE				WIRPOS_ESP7000_HP34970
#define WIRPOS_ACC						0.0002
#define WIRPOS_VEL						0.0001
#define WIRPOS_SHOW_UI					WIRPOS_TRUE

/* Wire position detector information */
#include "wirpos.h"
#define WIRPOS_NUM_WIRE_DET				4
static struct wirpos_det_info_struct WIRPOS_DET_INFO[WIRPOS_NUM_WIRE_DET] =
{
	{"Dectector 1 (X)", 1, 101, 0},
	{"Dectector 2 (Y)", 2, 102, 0.0069},
	{"Dectector 3 (Y)", 3, 103, 0.007},
	{"Dectector 4 (X)", 4, 104, 0.0015}
};

/* Magnet current */
#define IMAG_BOARD_ADDR					GPIB_BOARD_ADDR
#define IMAG_DAC488_ADDR				GPIB_DAC488_ADDR
#define IMAG_DAC488HR_ADDR				GPIB_DAC488HR_ADDR
#define IMAG_HP3457_ADDR				GPIB_HP3457_ADDR
#define IMAG_HP34970_ADDR				GPIB_HP34970_ADDR
#define IMAG_DAC488_PORT				1
#define IMAG_DAC488HR_PORT				1
#define IMAG_HP3457_CHAN				0
#define IMAG_HP3457_CHAN				0
#define IMAG_HP34970_CHAN				106
#define IMAG_CONFIG						IMAG_NONE
#define IMAG_BIPOLAR					IMAG_TRUE
#define IMAG_PS_AMPS_PER_DAC_VOLT		1.9799 
#define IMAG_TRANS_VOLTS_PER_AMP		.4  /* 5 winds through transductor */
#define IMAG_RAMP_STYLE					IMAG_THREE_LINEAR
#define IMAG_MAX_CURR_LIMIT				6.1
#define IMAG_MIN_CURR_LIMIT				-6.1
#define IMAG_RAMP_RATE				    1.0
#define IMAG_WAIT_AFTER_RAMP			10.
#define IMAG_STAND_RAMP_RATE			1.0
#define IMAG_WAIT_AFTER_STAND_RAMP		10.
#define IMAG_INIT_ZERO_CURRENT_MEAS		IMAG_FALSE
#define IMAG_INIT_TURN_ON				IMAG_FALSE
#define IMAG_INIT_TURN_ON_CURRENT		5. 
#define IMAG_CHECK_CURRENT				IMAG_FALSE
#define IMAG_CHECK_CURRENT_TOL			0.02
#define IMAG_SHOW_UI					IMAG_TRUE
#define IMAG_INVERPOWER					IMAG_FALSE
#define IMAG_CHECK_CURRENT_BALLPARK_LIM	5
#define IMAG_CHECK_CURRENT_TOL_LOWER_LIM 4

/* Measurement parameters */
#define VIBRATINGWIRE_FLIP_TEST             FALSE
#define VIBRATINGWIRE_SIG_GEN_AMPL_2		VIBWIRE_SIGN_AMPL //for 112 ohms of resistance this is 5 mA of current
//#define VIBRATINGWIRE_X_MIN					-20.e-6
#define VIBRATINGWIRE_SIG_GEN_AMPL_4		VIBWIRE_SIGN_AMPL*10
#define VIBRATINGWIRE_X_STEP				20.e-6
#define VIBRATINGWIRE_NUM_X_POS				7
//double  VIBRATINGWIRE_X_POS[VIBRATINGWIRE_NUM_X_POS];
//#define VIBRATINGWIRE_Y_MIN					-20.e-6
#define VIBRATINGWIRE_Y_STEP				20.e-6
#define VIBRATINGWIRE_NUM_Y_POS				7
//double  VIBRATINGWIRE_Y_POS[VIBRATINGWIRE_NUM_Y_POS];
//#define VIBRATINGWIRE_YAW_MIN				-1.5e-3
#define VIBRATINGWIRE_YAW_STEP				5.e-4
#define VIBRATINGWIRE_NUM_YAW_POS			7
//double  VIBRATINGWIRE_YAW_POS[VIBRATINGWIRE_NUM_X_POS];
//#define VIBRATINGWIRE_PITCH_MIN				-2.e-3
#define VIBRATINGWIRE_PITCH_STEP			5.e-4
#define VIBRATINGWIRE_NUM_PITCH_POS			7
//double  VIBRATINGWIRE_PITCH_POS[VIBRATINGWIRE_NUM_Y_POS];
#define VIBRATINGWIRE_WARMUP_TIME          00.0
#define VIBRATINGWIRE_WARMUP_CURRENT		0.0
#define VIBRATINGWIRE_NUM_STAND_CYCLES		3
#define VIBRATINGWIRE_STAND_MAX				6.
#define VIBRATINGWIRE_STAND_MIN				-6.
#define VIBRATINGWIRE_NUM_TEST_CURRENTS		1
static double  VIBRATINGWIRE_TEST_CURRENTS[VIBRATINGWIRE_NUM_TEST_CURRENTS] = {0.0};
#define VIBRATINGWIRE_MAX_MOVE_CYCLES		5
#define VIBRATINGWIRE_X_CONV				3.e-6
#define VIBRATINGWIRE_Y_CONV				3.e-6
#define VIBRATINGWIRE_PITCH_CONV			5.e-4
#define VIBRATINGWIRE_YAW_CONV				5.e-4
 
/* End protection */
#endif
