9Programming Examples
'available for measurement. If DIGITIZE is used with single mode,
'the completion criteria may never be met. The number of points
'gathered in Single mode is related to the sweep speed, memory
'depth, and maximum sample rate. For example, take an oscilloscope
'with a
'total time across the screen), and a 20 MSa/s maximum sample rate.
'1000 divided by 100 us equals 10 MSa/s. Because this number is
'less than or equal to the maximum sample rate, the full 1000 points
'will be digitized in a single acquisition. Now, use 1 us/div
'(10 us across the screen). 1000 divided by 10 us equals 100 MSa/s;
'because this is greater than the maximum sample rate by 5 times,
'only 400 points (or 1/5 the points) can be gathered on a single
'trigger. Keep in mind when the oscilloscope is running,
'communication with the computer interrupts data acquisition.
'Setting up the oscilloscope over the bus causes the data buffers
'to be cleared and internal hardware to be reconfigured. If a
'measurement is immediately requested, there may have not been
'enough time for the data acquisition process to collect data,
'and the results may not be accurate. An error value of 9.9E+37
'may be returned over the bus in this situation.
'
err = viVPrintf(vi, ":DIGITIZE CHAN1" + vbLf, 0)
End Sub
'
'Analyze
'
'In analyze, we will do the following:
'- Save the system setup to a file and restore it.
'- Save the waveform data to a file on the computer.
'- Make single channel measurements.
'- Save the oscilloscope display to a file that can be sent to a
'printer.
'
Private Sub Analyze()
'Set up arrays for multiple parameter query returning an array
'with viVScanf/viVQueryf. Set retCount to the maximum number
'of elements that the array can hold.
paramsArray(0) = VarPtr(retCount) paramsArray(1) = VarPtr(byteArray(0))
'SAVE_SYSTEM_SETUP - The :SYSTEM:SETUP? query returns a program
'message that contains the current state of the instrument. Its
'format is a
'#800002204<setup string><NL>
'where the setup string is 2204 bytes in length.
Dim lngSetupStringSize As Long
err = viVPrintf(vi, ":SYSTEM:SETUP?" + vbLf, 0) retCount = ByteArraySize
' Unsigned integer bytes.
err = viVScanf(vi, "%#b\n" + vbLf, paramsArray(0)) lngSetupStringSize = retCount
572 | Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Reference |