Status and Events
Synchronizat
ion Methods
Overview
Although most commands are completed almost immediately after being received
by the oscilloscope, some commands start a process that requires time. For
example, onc
e a single sequence acquisition command is executed, depending
upon the applied signals and trigger settings, it may take an extended period
of time b efore the acquisition is complete. Rather than remain idle while the
operation is in process, the oscilloscope will continue processing other commands.
This means that some operations will no t be completed in the order that they
were sent. Furthermore, sometimes the result of an operation depends upon the
result of
an earlier operation. A first operation must complete before the next
one is processed.
In order
to handle these situations, the oscilloscope status and event reporting
system allows you to synchronize the operation of the oscilloscope with your
application program, u sing the Operation Complete function. Note, however,
that only some operations are able to take advantage of this function; a table is
provided below of commands that support this.
The following commands are used to synchronize the oscilloscope functions
using Operation Complete. See e xamples of how to use these commands later
on in this section:
*OPC — sending the *OPC command will set bit 0 of the SESR (Standard
Events Status Register). The bit will only be set high when all pending operations
tha
t generate an OPC message have finished execution. (The SESR is queried
using *ESR?)The
*OPC? query form returns 1 only when all operations have
completed, or a device clear is received.
*WAI — prevents the oscilloscope from executing further commands or queries
until all pending commands that generate an OPC message are complete.
BUSY? — returns the status of operations: 1 means there are pending operations,
0 means that all pending operations are complete.
NOTE. Some OPC operations may require an extended period of time to complete
or may never complete. For example, a single sequence acquisition may never
complete when no trigger event occurs. You should be aware of these conditions
and tailor your program accordingly by:
— setting the timeout sufficiently for the anticipated maximum time for the
operation and
— handle a timeout appropriately by querying the SESR (*ESR?) and event queue
(EVMsg? or ALLEv?).
MSO54, MSO56, MSO58, MSO58LP Programmer 3-7