1132 Agilent InfiniiVision 3000 X-Series Oscilloscopes Programmer's Guide
38 Synchronizing Acquisitions
Synchronizing with a Single-Shot Device Under Test (DUT)
The examples in "Blocking Synchronization" on page 1129 and "Polling
Synchronization With Timeout" on page 1130 assume the DUT is
continually running and therefore the oscilloscope will have more than one
opportunity to trigger. With a single shot DUT, there is only one
opportunity for the oscilloscope to trigger, so it is necessary for the
oscilloscope to be armed and ready before the DUT is enabled.
This example is the same "Polling Synchronization With Timeout" on
page 1130 with the addition of checking for the armed event status.
'
' Synchronizing single-shot acquisition using polling.
' ===================================================================
Option Explicit
Public myMgr As VisaComLib.ResourceManager
Public myScope As VisaComLib.FormattedIO488
Public varQueryResult As Variant
Public strQueryResult As String
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Main()
On Error GoTo VisaComError
' Create the VISA COM I/O resource.
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
Set myScope.IO = myMgr.Open("TCPIP0::130.29.69.12::inst0::INSTR")
myScope.IO.Clear ' Clear the interface.
' Set up.
' -----------------------------------------------------------------
' Set up the trigger and horizontal scale.
myScope.WriteString ":TRIGger:MODE EDGE"
myScope.WriteString ":TRIGger:EDGE:LEVel 2"
myScope.WriteString ":TIMebase:SCALe 5e-8"
' Stop acquisitions and wait for the operation to complete.
myScope.WriteString ":STOP"
myScope.WriteString "*OPC?"
strQueryResult = myScope.ReadString
' Acquire.
The blocking :DIGitize command cannot be used for a single shot DUT because once the
:DIGitize command is issued, the oscilloscope is blocked from any further commands until
the acquisition is complete.