Status and Events
CURVE?
Although *WA I is one of the easiest ways to achieve synchronization, it is also the
most costly. The processing time of the instrument is slowed since it is processing
a single command at a time. This time could be spent doing other tasks.
The controller can continue to write commands to the input buffer of the
instrument, but the commands will not be processed by the instrument until all
operations in process are complete. If the input buffer becomes full, the controller
will be unable to write more commands to the buffer. This can cause a timeout.
BUSY
The BUSY? query allows you to find out whether the instrument is busy
processing a command that has an extended processing time such as
single-sequence acquisition.
The same command sequence, using the BUSY? query for synchronization, looks
like this:
/** Sets up conditional acquis ition **/
ACQUIRE:STATE OFF
SELECT:CH1 ON
HORIZONTAL:RECORDLENGTH 500
ACQUIRE:MODE SAMPLE
ACQUIRE:STOPAFTER COUNT 1
ACQUIRE:STOPAFTER:MODE CONDITION
/** Sets up the data preamble **/
DATA:START 1
DATA:STOP 500
DATA:ENCDG RIBINARY
/** Clear data and then acquire waveforms until
conditional stop occurs* */
ACQUIRE:DATA:CLEAR
ACQUIRE:STATE ON
/** Wait until the acquisition is complete before
querying the curve data**/
While BUS Y? keep loop ing
/** Get the curve data **/
CURVE?
This sequence lets you create your own wait loop rather than using the *WAI
command. The BUSY? query helps you avoid time-outs caused by writing too
many commands to the input buffer. The controller is still tied up, though, and the
repeated BUSY? query will result in more bus traffic.
*OPC
If the corresponding status registers are enabled, the *OPC command sets the
OPC bit in the Standard Event Status Register (SESR) when an operation is
complete. You achieve synchronization by using this command w ith either a
serial poll or service request handler.
3-8 DSA/CSA/TDS8X00/B Series Programmer Manual