Brief: Class for streaming buffered digital positions output by NI
PCI-6534 board.
This allows you to stream out 32bit digital positions from a
buffer. You can do so either timed by an external request trigger
or by an internally chosen timebase. In particular the device is
being configured to stream positions to the
Delta Tau PMAC.
Public member functions:
- C++ constructor
ni_do()
- C++ destructor
ni_do()
- This routine should be called before anything else is done.
It establishes contact whith the NI PCI-6534 board and sets some
of the parameters to our desired values.
int
init_device(log_err *p_log_err)
- This routine sets the board to advance from pixel to pixel
based on an external clock input into the REQ1 line (such as in
stepper motor scans).
int
select_external_clock(log_err *p_log_err)
- This routine sets the board to advance from pixel to pixel
based on an internal timebase with a pixel time of
fDwellTime in ms (such as for piezo scans).
int
select_internal_clock(F32 fDwellTime,log_err *p_log_err)
- This routine starts the output of position values stored in
psBuffer based on clock signals.
int
start_buffer_output(I16 *psBuffer,U32 ulNumScans,
log_err
*p_log_err)
- This routine checks if a scan is done. It returns 0 if the
scan is complete, 1 if not and -1 if there was an error. One can
compare the value in pulRemaining with the number of
positions loaded to the board.
int
buffer_output_status(U32 *pulRemaining,log_err *p_log_err)
- This routine stops the buffered output due to internal or
external triggers. Call it, if you want to abort a scan. (You can
also call it for safety in case of normal termination.)
int stop_buffer_output(log_err *p_log_err)
- This routine shuts down the device.
int close_device(log_err *p_log_err)
Holger Fleckenstein
2008-07-08