Synchronizing Acquisitions
38
Keysight InfiniiVision M9241/42/43A PXIe Oscilloscopes SCPI Programmer's Guide
1357
# oscilloscope is in Average, Segmented, and Equivalent Time modes to
# force a trigger off of the AC input line (:TRIGger:EDGE:SOURce LINE)
# which runs at 50 or 60 Hz in most of the world (1/50 Hz -> 20 ms, so
# use 25 ms to be conservative).
#
# The SCOPE_ACQUISITION_TIME_OUT calculation pads this by 1.1.
# --------------------------------------------------------------------
# ====================================================================
# Define a simple and fast function utilizing the blocking :DIGitize
# command in conjunction with *OPC?.
# --------------------------------------------------------------------
#
# Benefits of this method:
#
#
-
Fastest, compact
#
-
Only way for Average Acquisition type:
#
-
The :SINGle command does not do a complete average.
#
-
Counting triggers with :RUN is much too slow.
#
-
Allows for easy synchronization with math functions
#
-
Don't have to deal with the status registers, which can be
#
confusing.
#
-
Potentially faster than polling_method(), for better throughput
#
-
Because it's faster, one can retrieve more accurate acquisition
#
times than with a polling method.
#
-
Works best for segmented memory if any post processing is done
#
on the oscilloscope, for example, measurements, lister, math,
#
as this does not come back until the processing is all done
#
-
In this scenario, :DIGitize does not reduce the sample
#
rate or memory depth.
#
# Drawbacks of this method:
#
#
-
Usually does not fill acquisition memory to the maximum
#
available, usually only on-screen data.
#
#
-
May not be at the highest sample rate (compared with the
#
polling_method).
#
#
-
Requires a well-chosen, hard-set timeout that will cover the
#
time to arm, trigger, and finish acquisition.
#
#
-
Requires Exception handling and a device_clear() for a
#
possible timeout (no trigger event).
#
#
-
Socket connection cannot do device_clear()
#
#
-
Because :DIGitize is a "specialized form of the :RUN" command,
#
on these oscilloscopes, that results in:
#
#
-
the sample rate MAY be reduced from using :SINGle -
#
usually at longer time scales - typically only acquires
#
what is on screen, though at the fastest time scales,
#
more than on screen data may be acquired.
Thus, for max
#
memory and max sample rate, use the polling_method(),
#
which uses :SINGle.