1360
Keysight InfiniiVision M9241/42/43A PXIe Oscilloscopes SCPI Programmer's Guide
38
Synchronizing Acquisitions
#
#
-
Slow, as you don't want to poll the oscilloscope too fast.
#
#
-
DOES NOT work for Equivalent time mode.
MUST use the blocking
#
method.
#
#
-
Slow
#
#
-
Does NOT work for Average Acquisition type
#
-
:SINGle does not do a complete average
#
-
It does a single acquisition as if it were in NORMal
#
acq. type
#
-
Counting triggers in :RUN is much too slow
#
#
-
Works for Segmented Memory, BUT if any post processing is done
#
on the oscilloscope, for example measurements, lister, math, as
#
this reports that the acquisition is done, which is correct,
#
BUT the processing is NOT done, and it will take an indefinite
#
amount of time to wait for that, though there is no way to tell
#
if it is done.
Use the blocking_method for Segmented Memory.
#
#
-
Can't be used effectively for synchronizing math functions
#
#
It can be done by applying an additional hard coded wait after
#
the acquisition is done.
At least 200 ms is suggested, more
#
may be required.
#
#
However, as long as the timeout is not excessively short, the
#
math happens fast enough that once :OPERegister:CONDition?
#
comes back as done that one can just wait for it when it is
#
time to pull the math waveform.
The exception would be for eye
#
or jitter mode on a 6000 X-Series oscilloscope, where the
#
processing time can be long.
#
#
-
Still need some maximum timeout (here MAX_TIME_TO_WAIT),
#
ideally, or the script will sit in the while loop forever if
#
there is no trigger event
#
#
Max timeout (here MAX_TIME_TO_WAIT) must also account for any
#
processing done (see comments on math above)
#
#
Max timeout (here MAX_TIME_TO_WAIT) must also account for time
#
to arm the scope and finish the acquisition
#
#
This arm/trigger/finish part is accounted for in the main script.
#
# How it works:
#
#
-
What really matters is the RUN bit in the Operation Condition
#
(not Event) Register.
This bit changes based on the
#
oscilloscope state.
#
#
If the oscilloscope is running, it is high (8), and low (0) if
#
it is stopped.
#
#
The only (best) way to get at this bit is with the
#
:OPERation:CONDition? query.
The Operation Condition Register