Brief: Class to control Agilent's laser interferometer board N1231A.
This class has to be used to initialize laser interferometer
board, which provides position information to Delta Tau's servo
controller (PMAC2).Besides initialization, this class will mostly
be used for error checking, since feedback will be controlled by
PMAC2 board. N1231A position and velocity units are:
Raw interferometer position unit =
,
Raw interferometer velocity unit =
,
where
=632.991354nm.
Public member functions:
- C++ constructor
agilent()
- C++ destructor
agilent()
- Initializes Agilent's N1231A board. This routine has to be
called if the card is to be used.
int initialize(log_err
*log_err)
- Closes communication with Agilent's N1231A board.
int close(log_err *log_err)
- This function resets all errors on all three axes. Also, it
preforms
preset position operation on all three axes.
int reset_all(log_err *log_err)
- This function resets all errors on one axis. Also, it
preforms
preset position operation on that axis. N1231A_AXIS is enum type
defined in Agilent's library, its elements are AXIS_1, AXIS_2, and
AXIS_3)
int reset_axis(N1231A_AXIS axis,log_err
*log_err)
int reset_axis(AGILENT_AXIS axis,log_err
*log_err)
- Clears status bits which store error information for all three axes.
int clear_status_all(log_err *log_err)
- Clears status bits which store error information. The
following
constants can be used to clear the bits in reset_bits:
N1231A_NO_SIG_1 N1231A_GLITCH_1 N1231A_NO_SIG_2 N1231A_GLITCH_2
N1231A_NO_SIG_3 N1231A_GLITCH_3 N1231A_NO_SIG_REF
N1231A_GLITCH_REF
int clear_status_bits(U16 reset_bits, log_err
*log_err)
- Reads positions (position1,position2, and
position3) and
velocities (v1,v2, and v3) on all three axes. Positions and velocities
are returned in raw interferometer units.
int read_position_all(I32 &position1, I32
&velocity1, I32 &position2, I32 &velocity2, I32 &position3, I32
&velocity3, log_err *log_err)
- Reads positions (position1,position2, and position3) in nm
and
velocities (velocity1, velocity2, and velocity3) in nm/s on all
three axes.
int read_position_all(F64 &position1_nm,
F64 &velocity1_nm_per_sec, F64 &position2_nm, F64
&velocity2_nm_per_sec, F64 &position3_nm, F64
&velocity3_nm_per_sec, log_err *log_err)
- Reads position and velocity on one axis(AXIS_1, AXIS_2, or
AXIS_3).
Positions and velocities are returned in raw interferometer units.
int read_position_axis(N1231A_AXIS axis,I32 &position,
I32 &velocity, log_err *log_err)
int read_position_axis(AGILENT_AXIS axis,I32 &position,
I32 &velocity, log_err *log_err)
- Reads position of one axis(AXIS_1, AXIS_2, or AXIS_3) in
nm and
velocity in nm/s.
int read_position_axis(N1231A_AXIS axis, F64
&position_nm, F64
&velocity_nm_per_sec, log_err *log_err)
int read_position_axis(AGILENT_AXIS axis,
F64 &position_nm, F64
&velocity_nm_per_sec, log_err *log_err)
- Checks for errors and identifies type of error and axis
which has error.
int check_error(log_err *log_err)
Holger Fleckenstein
2008-07-08