Teledyne WaveExpert User Manual

A
A
UTT
U
O
O
M
M
ATTII
A
F
F
O
O
OOR
N
N
R
M
M
A
A
N
N
U
U
ALL
A
W
W
AAVVEE
E
XXPPEERRTT
E
S
EERRIIEESS
S
March, 2009
O
SSCCIILLLLOOSSCCOOPPE
O
E
LeCroy Corporation
700 Chestnut Ridge Road Chestnut Ridge, NY 10977-6499 Tel: (845) 578 6020, Fax: (845) 578 5985
Internet: www.lecroy.com
© 2009 by LeCroy Corporation.
LeCroy,
ActiveDSO, ProBus, SMART Trigger, WavePro, and Waverunner are registered trademarks of LeCroy
All rights reserved.
Corporation. JitterTrack, WaveExpert, WaveMaster, and X-Stream are trademarks of LeCroy Corporation. Information in this publication supersedes all earlier versions. Specifications are subject to change without notice.
916435 Rev A
T
ABLE OF CONTENTS
CHAPTER 1: ABOUT AUTOMATION
OVERVIEW OF AUTOMATION ............................................................................................. 1-2
Standards ............................................................................................................................................................... 1-2
Compatibility with Other LeCroy Scopes ............................................................................................................... 1-2
Automation and IEEE 488.2 Remote Control – How Do They Compare? ..................................................... 1-2
* ActiveDSO is a Active-X based driver for LeCroy oscilloscopes ......................................................................... 1-3
General Characteristics .......................................................................................................................................... 1-3
INTRODUCTION TO THE X-STREAM BROWSER .............................................................. 1-4
STEP-BY-STEP INTRODUCTION TO AUTOMATION USING VBScript ............................. 1-5
WHERE IS AUTOMATION USED? ....................................................................................... 1-7
SETUPS (PANEL FILES) ARE PROGRAMS! ...................................................................... 1-7
CUSTOM MATH AND MEASUREMENTS ............................................................................ 1-8
CustomDSO ........................................................................................................................................................... 1-8
Control from External Applications ......................................................................................................................... 1-9
From Visual Basic ......................................................................................................................................... 1-10
From MATLAB .............................................................................................................................................. 1-10
From MS Office (Excel) ................................................................................................................................ 1-11
CONTROL VARIABLES EXPLAINED ................................................................................ 1-12
ACCESSING WAVEFORM/MEASUREMENT RESULTS ................................................... 1-14
Waveforms ........................................................................................................................................................... 1-14
Measurements...................................................................................................................................................... 1-14
Result Status ........................................................................................................................................................ 1-16
SYNCHRONIZATION .......................................................................................................... 1-1 7
GOOD PRACTICES ............................................................................................................. 1-19
EXAMPLES ......................................................................................................................... 1-19
Example 1: Excel Macro to Perform FFT of C1 ................................................................................................... 1-19
Example 2: VBScript Program to Perform FFT of C1 and Store Results in Text File .......................................... 1-20
Example 3: Script to Measure the Rise Time of the Signal on C1 and Display It in a Popup Window ................ 1-21
EARLY AND LATE BINDING .............................................................................................. 1-22
VBS REMOTE COMMAND ................................................................................................. 1-23
X-STREAM DSO OBJECTS ................................................................................................ 1-24
916435 RevA iii
A
UTOMATION MANUAL
CHAPTER 2: ABOUT RESULTS
ABO UT R E S UL T S ............................................................................................................... 2-1
INTRODUCTION ................................................................................................................... 2-2
Digital .............................................................................................................................................................. 2-2
Histogram ........................................................................................................................................................ 2-2
Param ............................................................................................................................................................. 2-2
Persist ............................................................................................................................................................. 2-3
Table ............................................................................................................................................................... 2-3
OVERVIEW OF RESULTS .................................................................................................... 2-4
Variable Types ........................................................................................................................................................ 2-4
Use of Variants ....................................................................................................................................................... 2-4
Using Variables to Reference Objects within the XStream Hierarchy .................................................................... 2-4
DESCRIPTION OF RESULT PROPERTIES ......................................................................... 2-6
Base ....................................................................................................................................................................... 2-6
BinPopulations ....................................................................................................................................................... 2-6
Bins ........................................................................................................................................................................ 2-6
BinWidth ................................................................................................................................................................. 2-6
BusName ................................................................................................................................................................ 2-7
CellType ................................................................................................................................................................. 2-7
CellValue ................................................................................................................................................................ 2-7
Columns ................................................................................................................................................................. 2-8
DataArray ............................................................................................................................................................... 2-8
XY Interface: ........................................................................................................................................................... 2-8
Waveform Interface: ............................................................................................................................................... 2-9
Persist Interface: .................................................................................................................................................. 2-10
Digital Interface: ................................................................................................................................................... 2-11
ExtendedStatus .................................................................................................................................................... 2-12
FirstEventTime ..................................................................................................................................................... 2-12
FirstPopulatedBin ................................................................................................................................................. 2-13
HorizontalFrameStart ........................................................................................................................................... 2-13
HorizontalFrameStop ........................................................................................................................................... 2-13
HorizontalOffset .................................................................................................................................................... 2-13
HorizontalPerColumn ........................................................................................................................................... 2-14
HorizontalPerStep ................................................................................................................................................ 2-14
HorizontalResolution ............................................................................................................................................ 2-14
HorizontalUnits ..................................................................................................................................................... 2-15
HorizontalVarianceArray....................................................................................................................................... 2-15
HorizontalVariances ............................................................................................................................................. 2-15
IndexOfFirstSampleInFrame ................................................................................................................................ 2-15
LastEventTime ..................................................................................................................................................... 2-15
LastPopulatedBin ................................................................................................................................................. 2-16
Levels ................................................................................................................................................................... 2-16
LineAliasName ..................................................................................................................................................... 2-16
LineName ............................................................................................................................................................. 2-16
Lines ..................................................................................................................................................................... 2-16
Max ....................................................................................................................................................................... 2-16
MaxPopulation ..................................................................................................................................................... 2-17
MaxPopulationBin ................................................................................................................................................ 2-17
MaxPopulationInRectangle .................................................................................................................................. 2-17
Mean .................................................................................................................................................................... 2-18
Min ........................................................................................................................................................................ 2-18
iv 916435 RevA
ABLE OF CONTENTS
T
NumFrameDimensions ........................................................................................................................................ 2-18
NumSamplesInFrame .......................................................................................................................................... 2-18
OffsetAtLeftEdge .................................................................................................................................................. 2-18
Peaks ................................................................................................................................................................... 2-19
PeakInfo ............................................................................................................................................................... 2-19
PopulationInside ................................................................................................................................................... 2-20
PopulationOfRectangle ........................................................................................................................................ 2-20
PopulationOver .................................................................................................................................................... 2-20
PopulationUnder .................................................................................................................................................. 2-21
RMS ..................................................................................................................................................................... 2-21
Rows .................................................................................................................................................................... 2-21
Samples ............................................................................................................................................................... 2-21
Sdev ..................................................................................................................................................................... 2-21
Status ................................................................................................................................................................... 2-22
StatusDescription ................................................................................................................................................. 2-24
Sweeps ................................................................................................................................................................. 2-24
To p ........................................................................................................................................................................ 2-24
UniformInterval ..................................................................................................................................................... 2-24
UpdateTime .......................................................................................................................................................... 2-25
Value .................................................................................................................................................................... 2-25
ValueArray ............................................................................................................................................................ 2-25
VerticalFrameStart ................................................................................................................................................ 2-26
VerticalFrameStop ................................................................................................................................................ 2-27
VerticalMaxPossible ............................................................................................................................................. 2-27
VerticalMinPossible .............................................................................................................................................. 2-27
VerticalOffset ........................................................................................................................................................ 2-27
VerticalPerRow ..................................................................................................................................................... 2-27
VerticalPerStep ..................................................................................................................................................... 2-28
VerticalResolution ................................................................................................................................................ 2-28
VerticalUnits ......................................................................................................................................................... 2-28
XFrameStart ......................................................................................................................................................... 2-28
XFrameStop ......................................................................................................................................................... 2-28
XMaxPossible ...................................................................................................................................................... 2-29
XMinPossible ....................................................................................................................................................... 2-29
XOffset ................................................................................................................................................................. 2-29
XPerStep .............................................................................................................................................................. 2-29
XResolution .......................................................................................................................................................... 2-29
XUnits ................................................................................................................................................................... 2-30
YFrameStart ......................................................................................................................................................... 2-30
YFrameStop ......................................................................................................................................................... 2-30
YMaxPossible ...................................................................................................................................................... 2-30
YMinPossible ....................................................................................................................................................... 2-30
YOffset ................................................................................................................................................................. 2-30
YPerStep .............................................................................................................................................................. 2-31
YResolution .......................................................................................................................................................... 2-31
YUnits ................................................................................................................................................................... 2-31
916435 RevA v
Automation Manual
Control Reference Table of Contents
app...........................................................................................................................................................................
3-1
app.Acquisition........................................................................................................................................................
3-8
app.Acquisition.Channels........................................................................................................................................
3-10
app.Acquisition.Cx...................................................................................................................................................
3-11
app.Acquisition.Cx.Out.Result.................................................................................................................................
3-21
app.Acquisition.Horizontal.......................................................................................................................................
3-21
app.Acquisition.PodsCalibrationWizard..................................................................................................................
3-28
app.Acquisition.Trigger............................................................................................................................................
3-29
app.Cursors.............................................................................................................................................................
3-30
app.Display..............................................................................................................................................................
3-32
app.HardCopy.........................................................................................................................................................
3-44
app.LabNotebook....................................................................................................................................................
3-48
app.Math..................................................................................................................................................................
3-55
app.Math.Functions.................................................................................................................................................
3-56
app.Math.Fx............................................................................................................................................................
3-56
app.Math.Fx.Operator1Setup..................................................................................................................................
3-63
app.Math.Fx.Out.Result..........................................................................................................................................
3-63
app.Math.Fx.Zoom..................................................................................................................................................
3-64
app.Math.XY............................................................................................................................................................
3-65
app.Math.XY.Out.Result..........................................................................................................................................
3-69
app.Measure...........................................................................................................................................................
3-69
app.Measure.Measure............................................................................................................................................
3-75
app.Measure.Px......................................................................................................................................................
3-75
app.Measure.Px.histo.Result..................................................................................................................................
3-81
app.Measure.Px.last.Result....................................................................................................................................
3-81
app.Measure.Px.max.Result...................................................................................................................................
3-81
app.Measure.Px.mean.Result.................................................................................................................................
3-81
app.Measure.Px.min.Result....................................................................................................................................
3-81
app.Measure.Px.num.Result...................................................................................................................................
3-82
app.Measure.Px.Operator.......................................................................................................................................
3-82
app.Measure.Px.Out.Result....................................................................................................................................
3-82
app.Measure.Px.sdev.Result..................................................................................................................................
3-82
app.Measure.Px.Statistics.......................................................................................................................................
3-82
app.Memory.............................................................................................................................................................
3-82
app.Memory.Memories............................................................................................................................................
3-83
app.Memory.Mx.......................................................................................................................................................
3-83
app.Memory.Mx.Out.Result.....................................................................................................................................
3-86
app.Memory.Mx.Zoom............................................................................................................................................
3-86
916435 RevA
vi
Automation Manual
Control Reference Table of Contents
app.PassFail............................................................................................................................................................
3-88
app.PassFail.LastPass.Result.................................................................................................................................
3-91
app.PassFail.NumPassed.Result............................................................................................................................
3-91
app.PassFail.Qx......................................................................................................................................................
3-91
app.PassFail.Qx.Out.Result....................................................................................................................................
3-93
app.PassFail.Rate.Result........................................................................................................................................
3-94
app.PassFail.Tests.Result.......................................................................................................................................
3-94
app.Preferences......................................................................................................................................................
3-94
app.Preferences.EMail............................................................................................................................................
3-96
app.SaveRecall.......................................................................................................................................................
3-97
app.SaveRecall.Setup.............................................................................................................................................
3-97
app.SaveRecall.Utilities...........................................................................................................................................
3-103
app.SaveRecall.Waveform......................................................................................................................................
3-104
app.SystemControl..................................................................................................................................................
3-109
app.TDR..................................................................................................................................................................
3-109
app.TDR.TDRN.......................................................................................................................................................
3-111
app.TDR.TDRN.Out.Result.....................................................................................................................................
3-112
app.TDR.TDRN.Zoom.............................................................................................................................................
3-112
app.Utility.DateTimeSetup.......................................................................................................................................
3-114
app.Utility.Options...................................................................................................................................................
3-117
app.Utility.Remote...................................................................................................................................................
3-118
app.WaveScan........................................................................................................................................................
3-119
app.WaveScan.ScanDecode..................................................................................................................................
3-121
app.WaveScan.ScanDecode.Out.Result................................................................................................................
3-122
app.WaveScan.ScanHisto......................................................................................................................................
3-122
app.WaveScan.ScanHisto.Histogram.....................................................................................................................
3-125
app.WaveScan.ScanHisto.Out.Result....................................................................................................................
3-126
app.WaveScan.ScanHisto.Zoom............................................................................................................................
3-127
app.WaveScan.ScanOverlay..................................................................................................................................
3-128
app.WaveScan.ScanOverlay.Out.Result................................................................................................................
3-130
app.Zoom................................................................................................................................................................
3-130
app.Zoom.Zx...........................................................................................................................................................
3-132
app.Zoom.Zx.Out.Result.........................................................................................................................................
3-135
app.Zoom.Zx.Zoom.................................................................................................................................................
3-136
vii
916435 RevA
Automation Manual
Processor Reference Table of Contents
Average.......................................................................................................................................................................
4-1
Derivative....................................................................................................................................................................
4-2
Deskew.......................................................................................................................................................................
4-3
EnhancedResolution...................................................................................................................................................
4-3
Envelope.....................................................................................................................................................................
4-4
FFT..............................................................................................................................................................................
4-4
Floor............................................................................................................................................................................
4-6
Histogram....................................................................................................................................................................
4-7
Integral........................................................................................................................................................................
4-9
MATLABWaveform.....................................................................................................................................................
4-10
PersistenceHistogram.................................................................................................................................................
4-11
Rescale.......................................................................................................................................................................
4-12
Roof.............................................................................................................................................................................
4-13
SinXOverX..................................................................................................................................................................
4-14
Trend...........................................................................................................................................................................
4-14
ParamDifference.........................................................................................................................................................
4-16
ParamInvert.................................................................................................................................................................
4-16
ParamProduct.............................................................................................................................................................
4-16
ParamRatio.................................................................................................................................................................
4-16
ParamRescale.............................................................................................................................................................
4-16
ParamSum..................................................................................................................................................................
4-16
Amplitude....................................................................................................................................................................
4-17
Area.............................................................................................................................................................................
4-17
Base............................................................................................................................................................................
4-17
DeltaTimeAtLevel........................................................................................................................................................
4-17
ExtinctionRatio............................................................................................................................................................
4-20
EyeAmplitude..............................................................................................................................................................
4-21
EyeBER.......................................................................................................................................................................
4-21
EyeCrossing................................................................................................................................................................
4-22
EyeFallTime................................................................................................................................................................
4-22
EyeHeight....................................................................................................................................................................
4-23
EyeMean.....................................................................................................................................................................
4-24
EyeOneLevel...............................................................................................................................................................
4-24
EyeOpeningFactor......................................................................................................................................................
4-25
EyeOvershootNegative...............................................................................................................................................
4-25
EyeOvershootPositive.................................................................................................................................................
4-26
EyePkPkNoise............................................................................................................................................................
4-26
EyeQFactor.................................................................................................................................................................
4-27
916435 RevA
viii
Automation Manual
Processor Reference Table of Contents
EyeRiseTime...............................................................................................................................................................
4-27
EyeSDEVNoise...........................................................................................................................................................
4-28
EyeSignalToNoise.......................................................................................................................................................
4-29
EyeSuppressionRatio..................................................................................................................................................
4-29
EyeZeroLevel..............................................................................................................................................................
4-30
FallAtLevel...................................................................................................................................................................
4-30
FullWidthAtXX.............................................................................................................................................................
4-31
LevelAtX......................................................................................................................................................................
4-32
MATLABParameter.....................................................................................................................................................
4-32
Maximum.....................................................................................................................................................................
4-33
Mean...........................................................................................................................................................................
4-33
Median.........................................................................................................................................................................
4-34
Minimum......................................................................................................................................................................
4-34
npoints.........................................................................................................................................................................
4-34
OvershootNegative......................................................................................................................................................
4-35
OvershootPositive.......................................................................................................................................................
4-35
PeakToPeak................................................................................................................................................................
4-35
Percentile....................................................................................................................................................................
4-35
PersistDCD.................................................................................................................................................................
4-36
Phase..........................................................................................................................................................................
4-37
PopulationAtX..............................................................................................................................................................
4-40
Range..........................................................................................................................................................................
4-41
RiseAtLevel.................................................................................................................................................................
4-43
RootMeanSquare........................................................................................................................................................
4-44
StandardDeviation.......................................................................................................................................................
4-44
TDRCapInd.................................................................................................................................................................
4-45
TIE...............................................................................................................................................................................
4-46
TimeAtLevel................................................................................................................................................................
4-50
Top..............................................................................................................................................................................
4-51
XAtMaximum...............................................................................................................................................................
4-52
XAtMinimum................................................................................................................................................................
4-52
XAtPeak......................................................................................................................................................................
4-53
ix
916435 RevA
A
UTOMATION MANUAL
APPENDIX A: DCOM
Prepare the PC to Permit DCOM Connections to the Oscilloscope ...................................................................... A-1
Installation on Windows XP or Vista .............................................................................................................. A-2
Installation on Windows 2000 SP4 ................................................................................................................ A-3
Oscilloscope Preparation on Windows XP or Vista ................................................................................................ A-4
Creating a System Restore Point on Windows XP or Vista ........................................................................... A-4
Opening the Firewall on Windows XP or Vista .............................................................................................. A-4
Creating a User Account on Oscilloscopes Running Windows XP or Vista .................................................. A-5
DCOM System Configuration on Windows XP or Vista ......................................................................................... A-6
Oscilloscope Preparation on Windows 2000 ....................................................................................................... A-11
Creating a User Account on Oscilloscopes Running Windows 2000 .......................................................... A-11
DCOM System Configuration on Windows 2000 ................................................................................................. A-12
Oscilloscope Preparation on Windows Embedded .............................................................................................. A-16
Creating a User Account on Oscilloscopes Running Windows Embedded ................................................. A-16
DCOM System Configuration on Windows Embedded (on the Oscilloscope) .................................................... A-16
Testing the DCOM Connection from the PC ........................................................................................................ A-20
APPENDIX B: GLOSSARY
ActiveX .................................................................................................................................................................. B-1
Automation ............................................................................................................................................................ B-1
Automation client ................................................................................................................................................... B-1
Automation object ................................................................................................................................................. B-1
Automation server ................................................................................................................................................. B-1
COM (COMPONENT OBJECT MODEL) .............................................................................................................. B-1
DCOM (DISTRIBUTED COMPONENT OBJECT MODEL) .................................................................................. B-1
EARLY BINDING ................................................................................................................................................... B-1
LATE BINDING ...................................................................................................................................................... B-1
DISPATCH INTERFACES (dispinterface) ............................................................................................................. B-1
x 916435 RevA
I NTRO DUCTION
About this Manual
This manual is a reference guide to the “Automation” capabilities of LeCroy’s X-Stream™ DSOs. The manual includes a complete list of all instrument controls that are available to a controlling application. In
contrast to previously available remote control possibilities for LeCroy instruments, Automation enables the controlling application to run on the instrument itself.
Part One, “Ab o u t Au t oma tio n ,” covers the principles of control via Automation and offers practical examples. It also presents the overall hierarchy of controls accessible via Automation.
Part Two, “Control Reference,” presents each of the controls in detail, including examples of use in many cases.
Part Three, “Math/Measure Control Reference,” presents controls available in each of the multitude of the
Math/Measure ‘processors’ available in X-Stream DSOs.
916435 RevA xi
BLANK PAGE
xii 916435 RevA
C
HAPTER ONE Overview
A
A
This section presents an overview of the Automation capabilities of X-Stream DSOs along with an overview of the technology itself.
C HAPTER O NE: Overview
In this chapter learn about
¾ Microsoft’s COM-based “OLE Automation” ¾ How to create simple applications in Visual Basic to control the
instrument
¾ How to use X-Stream Browser to interactively control the instrument
A
U
U
T
T
A
O
B
B
O
O
O
M
M
U
U
A
A
T
T
TII
T
O
O
N
N
916435 RevA 1-1
ABOUT AUTOMATION

OVERVIEW OF AUTO MATION

In addition to supporting the familiar ASCII-based remote commands that have been used to control all LeCroy DSOs for many years, all of the Windows-based “X-Stream” instruments fully support control by Automation interfaces based on Microsoft’s Component Object Model (COM). Using COM, the controlling application can run directly on the instrument without requiring an external controller; or, alternatively, it can run using Microsoft’s distributed COM standard (DCOM) on a networked computer.

Standards

Automation (formerly referred to as “OLE Automation”) is a Microsoft technology that is primarily used to enable cross-application macro programming. It is based upon the Component Object Model (COM), which is similar in nature to CORBA, which is more commonly found in the UNIX world.
An application that “exposes Automation Objects” is referred to as an “Automation Server.” Automation Objects expose “Automation Interfaces” to the controlling “Automation Client.” The oscilloscope application on LeCroy Windows-based oscilloscopes is an Automation Server, and can be controlled by Automation Clients. This manual describes the Automation objects and interfaces exposed by the oscilloscope application in detail.
It is important to note that Automation itself is not language dependent; it can be used from any programming language that supports COM. This manual, however, concentrates mainly on the use of Automation from the Visual Basic Script (VBScript) language for several reasons, including the fact that it is one of the easiest to use. Also, it is the language that X-Stream instruments use for setup files (more on this later). In addition, the VBScript interpreter is installed by default on all X-Stream instruments and, therefore, is available without your having to purchase any additional software.

Compatibility with Other LeCroy Scopes

Throughout LeCroy's history, we have striven to maximize compatibility, and this policy remains in force. However, due to the fact that the underlying technologies used by Automation require the 32-bit Windows operating system, and that this system is available only on our X-Stream instruments, Automation is not available on the older LeCroy oscilloscope families.

Automation and IEEE 488.2 Remote Control – How Do They Compare ?

Automation does not replace the IEEE 488.2-based remote command set, which is also supported by X-Stream instruments (and will continue to be). Instead, it augments it and allows a new class of application to be created that can run on the DSO itself.
Automation, however, can be considered as the “Native Language,” or “Mother Tongue” of X-Stream instruments. All of the instrument’s controls and features are available to the Automation Client.
Automation controls generally are more granular than 488.2 remote commands. That is, many 488.2 remote commands set more than one control at the same time; whereas, via Automation, this is not the case.
1-2 916435 RevA
CHAPTER ONE Overview
The following table summarizes the differences between the two remote control possibilities:
Physical Transport GPIB, TCP/IP over Ethernet Inter-process using COM, inter-PC
Textual parsing of instrument responses required
Compatibility with previous LeCroy DSOs
Ability to control the oscilloscope application from “inside the box”
Ease of Use Not trivial. It’s easier using a tool such
Format of Waveform results Binary or ASCII. Both require parsing
Control from MS Office suite Possible via ActiveDSO* utility Yes, natively (see examples later in

* ActiveDSO is a Active-X based driver for LeCroy oscilloscopes

General Characteristics

IEEE 488.2 Control Automation Control
using DCOM (TCP/IP)
Yes. All instrument responses need ‘parsing’ to extract useful information.
Very good. In most cases remote control applications written for older DSOs will work without modification.
Yes, by using the TCP/IP (VICP) protocol to talk to the “local host”
as ActiveDSO* that hides some of the complexities.
before use.
No. Each element in the Automation hierarchy appears as a “variable” to the Automation client.
None. Automation is a new standard first introduced with LeCroy’s X-Stream DSOs.
Yes, natively
Very easy to use from scripting languages and office productivity tools
Waveforms are presented as arrays of floating point values.
this manual)
When an application is running locally on the instrument and requests a connection to the DSO via
Automation (for example, by using CreateObject(“LeCroy.XStreamDSO”) from Visual Basic), one of two
things will happen. If the X-Stream DSO application is already running, the object returned will be a “pointer” to the running application. If the DSO application is not running, it will be started. It is not possible to run two simultaneous instances of the X-Stream DSO application.
More than one simultaneous connection to the instrument via Automation will be accepted, but simultaneous connections are not recommended.
When the final client has been disconnected from the instrument (server), the X-Stream DSO application will remain running and will accept further client connections.
Operations that cause Modal Dialogs to appear in the instrument’s display will, by default, disrupt access
from Automation. This behavior can be changed using the app.SystemControl.ModalDialogTimeout and app.SystemControl.EnableMessageBox controls. Refer to the description of each of these controls
in the reference section for more information.
The instrument application can be minimized in order to allow the controlling application to take over the
display and touch panel by means of the app.Minimize control. It can also be resized and repositioned on the display by means of the app.Top, app.Left, app.Bottom, app.Right controls.
916435 RevA 1-3
ABOUT AUTOMATION

INTRODUCTION TO THE X-STREAM BROWSER

The easiest way to get up and running with Automation, and also to visualize the “X-Stream Object Model” is to use the X-Stream browser tool, which is pre-installed on all instruments.
To launch the tool, first minimize the instrument application (File->Minimize), then double-click on the X-Stream
Browser icon on the desktop:
To connect to the running DSO application, click the Connect toolbar icon:
Upon connection, the root of the object hierarchy is shown in a layout similar to that presented when a file system is browsed using Windows Explorer.
As a quick demonstration of how the X-Stream Browser can be used, open the Acquisition folder and then click on the C1 folder. Find the item VerScale (Volts/Div) in the right-hand window and right-click on it, then select the Set Value menu option. Use the Copy Path… option to easily copy to the control variable’s “path”.
Enter a new value for VerScale and click the Set this value button. Restore the DSO’s X-Stream window and
note that the V/Div value for C1 should have changed to reflect the entered value.
Once you have clicked on a control variable, the status bar will display the Visual Basic code that references it:
Most of the “folders” in the tree hierarchy in X-Stream Browser areyellow; these correspond to Objects. The
object hierarchy is tiered; for example, the Acquisition is comprised of a variety of objects, including C1, C2,
Horizontal, etc. Some Folders are pink; these are Collections. The subfolders of collections are referenced by
indexing the collection name with the subfolder name. Lastly, the “Results” folders, which are dark gray. Results folders are objects, but contain items that are slightly different in nature to items in other folders.
The items in the right-hand window are referred to as Control Variables. These are explained in further detail in
the section “Control Variables Explained” later in this chapter.
1-4 916435 RevA
CHAPTER ONE Overview

STEP-BY -STEP AUTOMA TION INTRODUCTIONS USING VBScript

This section of the manual presents a walk-through of how to create a simple remote control application, which will run on the instrument, from scratch. It doesn’t rely upon any 3 Windows’ built-in text editor (Notepad) and the Visual Basic Script interpreter (VBScript), which is also installed on all instruments.
1. Use the FileWindowed menu option to place the DSO application into windowed mode. This allows the
windows start-bar to be accessed.
2. Open Windows Notepad via Start->Programs->Accessories->Notepad
a. Write the following text into the editor:
Set app = CreateObject("LeCroy.XStreamDSO") app.AutoSetup app.Display.GridMode = "Quad" myVerScale = app.Acquisition.C1.VerScale MsgBox myVerScale
3. Save the file to drive D:\ and name it Exercise1.vbs. Leave Notepad open, we’ll need it again.
4. Open Windows Explorer, via StartProgramsAccessoriesWindows Explorer.
5. Navigate to drive D:\ and double-click on Exercise1.vbs.
6. That’s it. If these steps were followed correctly, you should hear relays clicking while the scope performs an auto-setup operation and enters its quad-grid display mode.
So, what did this “program” actually do?
rd
-party development tools, since it uses
The CreateObject statement.
Set app = CreateObject("LeCroy.XStreamDSO")
CreateObject is the Visual Basic function that creates an instance of a COM Server (a.k.a. ActiveX
Control). The argument “LeCroy.XStreamDSO” refers to our DSO application. Once it has instantiated
(connected to) our DSO application we need some kind of ‘handle’ (pointer) to it so that we can use it
later to communicate with the instrument. CreateObject returns a handle to us, which we store in the app
variable.
The app.AutoSetup statement.
app.AutoSetup
Using the app handle, this line of code calls the AutoSetup method, which performs the same task as
the front-panel Auto-Setup button. Documentation for this method can be found later in the reference section.
: Only a single instance of the X-Stream DSO software
NNOOTTEE:
can run on a system at one time. If the DSO software is already running when CreateObject is called, a handle to that running instance is returned. If the DSO software is not running, it will be started.
916435 RevA 1-5
ABOUT AUTOMATION
The app.Display.GridMode = "Quad" statement.
app.Display.GridMode = “Quad”
Using the app handle, this line of code sets the GridMode control of the Display system to the value
“Quad”. It’s important to note that the controls are arranged in a hierarchy, with each ‘level’ of the
hierarchy delimited with a decimal point ( . ).
The myVerScale = app.Acquisition.C1.VerScale statement.
myVerScale = app.Acquisition.C1.VerScale
Instead of setting the value of a control, this line of code retrieves the current value of a control, in this case the Vertical Scale (Volts/Div) of Channel 1. The value returned is stored within the variable
myVerScale.
: In Visual Basic Script it is not necessary to
NNOOTTEE:
“Dimension” variables before using them (for example, using statement s like “Dim myVerScale as Double”).
The MsgBox myVerScale statement
MsgBox myVerScale
This line of code does not communicate with the scope at all, but calls the standard Visual Basic Script
function MsgBox. This function displays a dialog containing the value of the variable following “MsgBox”. In our case the value of Channel 1’s vertical scale, and waits for the OK button to be clicked.
Documentation about the MsgBox function can be found in Microsoft’s Visual Basic Scripting documentation at www.microsoft.com\scripting.
Another point that should be mentioned here is something that is used extensively in Setup files created by the instrument: the ability to use “abbreviations” to simplify programs. Following is an example in which a shorthand method is used to replace some rather long-winded code. It is also important to note that this also enhances performance. For example, the “lookup” of the object app.Acquisition.C1 occurs only once in the modified code, but three times in the original code.
Instead of:
app.Acquisition.C1.VerScale = 0.5 app.Acquisition.C1.VerOffset = 0.1 app.Acquisition.C1.Coupling = "DC50"
The following may be used:
set myChannel1 = app.Acquisition.C1 myChannel1.VerScale = 0.5 myChannel1.VerOffset = 0.1 myChannel1.Coupling =
"DC50"
1-6 916435 RevA
CHAPTER ONE Overview

WHERE IS AUT OMATION USED?

Automation is used in several places in the X-Stream based instrument.
Instrument Setups (Panel Files)
Custom Math/Measurements
CustomDSO, User Interface customization
Control from external applications (COM/DCOM)
Each of these uses is described in more detail in the following sections.

SETUPS (PANEL FILES) ARE PROGRAMS!

Setup files, which are used to save and recall the state of the instrument between runs, are traditionally binary files with an internal structure that is neither documented nor obvious to the user.
In X-Stream DSOs, however, this is no longer the case. Setups are ASCII text files that contain a complete Visual
Basic Script “program” that, when “executed,” will restore the instrument to a previously recorded state. In effect,
each time a panel is saved, the instrument effectiv ely writes you a program that, when executed, returns the instrument to the saved state.
Due to the fact that these setups are already programs, they are a great way to get started quickly with Automation. As an example, try saving a setup into a file and examine it using a text-editor, as follows:
1. Touch File in the menu bar, then Save Setup from the drop-down menu.
2. Touch the Browse button and specify drive D:\Setups as the location to save the .lss (LeCroy setup
script) file. (This is the factory default directory for setup files)
3. Touch Save Now!
4. Minimize the application using the Minimize option from the File menu
5. Open Microsoft’s Notepad application from the Accessories program folder (StartProgramsAccessories).
6. Open the file saved above. You will see a Visual Basic Script program that begins like this:
' XStreamDSO ConfigurationVBScript ... ' LECROY,WM8300,WM000001,0.0.0 ' Thursday, February 20, 2003 11:26:55 AM
On Error Resume Next set XStreamDSO = CreateObject("LeCroy.XStreamDSO")
XStreamDSO.RecallingSetup = True
' AladdinPersona ...
XStreamDSO.HideClock = False XStreamDSO.TouchScreenEnable = True
Since the entire state of the instrument, including all controls for all installed software options, is saved, this panel may look fairly complex. But don’t let this fool you; the basic concept is, in fact, fairly simple.
916435 RevA 1-7
ABOUT AUTOMATION
As a quick example of how setups can be used as the starting point for controlling applications, scroll down to the end of the file and add the following code (shown in bold-type) to the file.
' Place any custom VBScript code after this point '
' Perform an Auto Setup XStreamDSO.AutoSetup
When this setup is recalled, the complete state of the instrument will be restored, followed by an Auto-Setup operation.
Obviously this is a fairly trivial “application,” but it is easy to imagine how automated testing could be performed with the introduction of loops and conditional execution.
E
: Setup files stored by the instrument have file extension “.lss” (LeCroy Setup Script). These
NNOOTTE
:
files are syntactically identical to Microsoft Visual Basic Script (VBScript) files, which have a “.vbs”
extension.
P
: A simple alternative to recalling the panel into the instrument is to execute it, either by double-
TTIIP
:
clicking on the .lss file in Windows Explorer, or by executing it from the command line.
Add this code

CUSTOM MATH AND MEASUREMENTS

Custom Math and Measurements can be coded using VBScript in instruments equipped with the XDEV and/or XMAP software options. Using Automation control of the instrument, decisions can be made during custom processing that reconfigure the DSO.
When you are developing custom processing routines using the reference section of this manual,
app.Acquisition.Cx.Out.Result may be used as a comprehensive reference to the Result Object, which is used
to describe waveform data (InResult, InResult1, InResult2, OutResult).
For more detail about this capability, see the “Customization” section of the on-line Help Manual.

CustomDSO

CustomDSO enables customization of the instrument’s UI in instruments equipped with the XDEV and/or XMAP options. Two modes of operation are supported: Basic mode and Plug-in mode.
In Basic mode a Visual Basic Script (VBScript) program can be assigned to each of 8 buttons that can, optionally, appear at the bottom of the instrument’s display. By means of Automation, each of these may further reconfigure all 8 buttons, which would allow simple menu hierarchies to be generated.
In Plug-in mode an ActiveX control, created in any of a number of programming languages, can be inserted into the instrument’s menu system. Once “embedded,” this Plug-in can take full control of the DSO using Automation.
Full documentation on CustomDSO is available in the CustomDSO section of the on-line Help Manual.
1-8 916435 RevA
CHAPTER ONE Overview

Control from External Applications

Control of an X-Stream based instrument by Automation is possible from most modern programming languages (interpreted and/or compiled), and also from the “macro” capability of office productivity suites such as Microsoft Office.
916435 RevA 1-9
ABOUT AUTOMATION
From Visual Basic
From Visual Basic the CreateObject method is used to create the connection to an instrument by Automation.
The following code example creates this connection and sets up some of the instrument’s controls:
' Connect to the X-Stream DSO
Dim app as Object Set app = CreateObject(“LeCroy.XStreamDSO”)
' Setup Vertical and Horizontal settings
app.Acquisition.C1.VerScale = 0.5 app.Acquisition.C1.VerOffset = 0.25
app.Acquisition.Horizontal.HorScale = 0.000001
' Disconnect from the DSO
Set app = Nothing
From MATLAB
The syntax for controlling the scope MATLAB uses the actxserver keyword to connect to the instrument.
The following code example creates this connection, enables variable vertical scale, reads the vertical scale value for C1, and increases it by a factor of 1.5, arms the scope, waits for the acquisition to be complete, and then reads out the value and mean of parameter P1.
% Connect to oscilloscope via DCOM at IP address 172.28.9.31 DSO = actxserver('LeCroy.XStreamDSO', '127.0.0.1')
% Readback instrument ID get(DSO.Item('InstrumentID'),'Value')
% Create references to the Acquisition, C1, Measure and P1 objects for convenience acq = DSO.Object.Item('Acquisition') c1 = acq.Object.Item('C1') meas = DSO.Object.Item('Measure') p1 = meas.Object.Item('P1')
% Enable variable vertical scale for channel 1 set(c1,'VerScaleVariable',-1)
% Read the vertical scale for C1 and increase it by a factor of 1.5, re-read and display new scale verscale = get(c1.Item('VerScale'), 'Value') set(c1, 'VerScale', 1.5 * verscale) verscale = get(c1.Item('VerScale'), 'Value')
% Invoke the Acquire method, and force a trigger if the acquisition isn’t complete within 3 seconds. invoke(acq, 'Acquire', 3, 1)
% Readout the value and mean of measurement P1 (requires P1 to be setup and displayed) p1_val= get(p1.Out.Result,'Value') p1_mean = get(p1.Object.Item('Mean').Result,'Value')
Creating references to objects at each level in the oscilloscope application’s object hierarchy is highly recommended in order to keep the code cleaner and easier to debug.
: Don’t confuse the control of the instrument from MATLAB
NNOOTTEE:
(MATLAB “drives”) with the use of MATLAB from within a custom processing function (the instrument “drives”).
1-10 916435 RevA
CHAPTER ONE Overview
From MS Office (Excel)
Using Automation, control of the instrument from Microsoft Excel is very similar to control from Visual Basic. This is because the “macro language” used in the office suite is Visual Basic for Applications, a lightweight version of Visual Basic.
The following example shows how to add a button to an Excel spreadsheet that connects to, and controls, the instrument on which Excel is running. Note that this example was generated using Excel 2000, other versions of Excel support similar functionality, but the specific sequence of commands may be slightly different:
1. Enable the Forms toolbar using the ViewToolbarsForms menu option.
2. Click the button icon
on the toolbar and draw a button on the spreadsheet. The button will be labeled
“Button 1” by default.
3. Right-click on the edge of the button and select Assign Macro from the drop-down menu.
4. Select the New button from the Assign Macro dialog; the macro editor will appear:
5. Type the following code into the subroutine:
Set app = CreateObject("LeCroy.XStreamDSO") app.AutoSetup Set app = Nothing
Clicking on the newly created button will now execute this code segment, which connects to the DSO and performs an Auto Setup.
916435 RevA 1-11
ABOUT AUTOMATION

CONTROL VARIABLES EXPLAINED

Traditionally, properties presented to an Automation Client are simple “variables” with types such as Integer (int), String (BSTR), Floating Point (single, double), etc.
Control variables in X-Stream are an extension of the traditional Automation pattern, without affecting how they appear to most Automation clients (see section below on early/late bound clients).
As an example of what this enables, consider the following:
Take a control such as VerScale (Volts/Div), this may be set and queried in Visual Basic as follows:
app.Acquisition.C1.VerScale = 0.5 CurrentValue = app.Acquisition.C1.VerScale
In addition, the following is supported:
minValue = app.Acquisition.C1.VerScale.GetMinValue maxValue = app.Acquisition.C1.VerScale.GetMaxValue
This enables an Automation Client to not only set and query the current value of a control, but also to query its limits. This is useful in the generation of instrument-independent applications, or applications that present scope controls in a graphical user interface in which limits are required.
Various types of control variables are supported. The Type column in the X-Stream browser shows the control
type:
The type designations are also given in the reference section of this manual, and are defined as follows:
Integer Double DoubleLockstep
Enum
32-bit Integer Value
Double-precision floating point value
Double-precision floating point value locked to a non­linear (e.g., 1, 2, 5) sequence.
List Value (e.g., “Orange,” “Apple,” “Pear”)
String Bool Action
1-12 916435 RevA
String value
Boolean Value { True, False }, { 0, -1 }
Action (no arguments or value)
CHAPTER ONE Overview
The properties and methods available for each control are type-specific. Listed below are the most commonly used:
TYPE PROPERTIES
Integer
Double
DoubleLockstep Enum
VARIANT Va lue Value(VAR IANT) int GetAdaptedValue SetRequestedValue(int) int GetRequestedValue int GetDefaultValue int GetGrain int GetMax int GetMin Increment(int)
VARIANT Va lue Value(VAR IANT) double GetAdaptedValue SetRequestedValue(double) double GetRequestedValue double GetDefaultValue double GetGrainValue double GetMaxValue double GetMinValue Increment(int)
See Double
VARIANT Va lue Value(VAR IANT) int GetAdaptedValue SetRequestedValue(int) int GetRequestedValue int GetDefaultValue int GetMax int GetMin int GetNumberOfValueStates Increment(int) BSTR GetRangeStringScreen BSTR GetRangeStringRemote
String
Bool
Action
916435 RevA 1-13
VARIANT Va lue Value(VAR IANT) int GetMaxLength BSTR GetRequestedValue BSTR GetAdaptedValue SetRequestedValue(BSTR)
VARIANT Va lue Value(VAR IANT) BOOL GetAdaptedValue BOOL GetRequestedValue BOOL GetDefaultValue Set Clear
ActNow
ABOUT AUTOMATION

ACCESSING W AVEFORM/MEASUREMENT RESULTS

Waveforms

Waveform data is exposed by a ‘Result’ object, which appears at various places in the object hierarchy depending upon which waveform is to be accessed. Some examples follow:
app.Acquisition.C1.Out.Result app.Math.F1.Out.Result app.Memory.M1.Out.Result
Waveform data is exposed as a simple array, no deciphering of proprietary binary formats is performed, as was necessary in the past. An example of how it is used follows.
The example is coded as an Excel macro, and should be assigned to a button as described earlier. The macro reads the number of samples in the waveform and places it in cell B1 of the Excel spreadsheet. It then reads all available sample data values and copies them into cells in the first column of the spreadsheet (A1...Axx).
Sub Button1_Click()
' Connect to the DSO Set app = CreateObject("LeCroy.XStreamDSO")
' Query the number of samples in C1 and store in cell "B1" numSamples = app.Acquisition.C1.Out.Result.Samples Cells(1, 2).Value = numSamples
' Access the waveform data array, and fill the first column ' of the spreadsheet with it wave = app.Acquisition.C1.Out.Result.DataArray For i = 0 To numSamples - 1 Cells(i + 1, 1).Value = wave(i) Next i
End Sub
: Ensure that the record length is < 64kSamples, since
NNOOTTEE:
Excel has a limit on the number of rows in a spreadsheet. Ideally, you should start experimenting with short (500 point) records.

Measurements

Measurement results are read in the same way as Waveforms. The following example, when copied into an Excel macro, will enable Standard Vertical parameters. It will then transfer the eight parameter values into the spreadsheet (cells C1…C8):
Sub Button1_Click()
' Connect to the DSO Set app = CreateObject("LeCroy.XStreamDSO")
' Enable Standard Vertical Parameters app.Measure.MeasureMode = "StdVertical"
1-14 916435 RevA
CHAPTER ONE Overview
' Transfer the 8 parameter values into the spreadsheet 'Note: the number of configurable measurements your scope may be different Cells(1, 3).Value = app.Measure.P1.Out.Result.Value Cells(2, 3).Value = app.Measure.P2.Out.Result.Value Cells(3, 3).Value = app.Measure.P3.Out.Result.Value Cells(4, 3).Value = app.Measure.P4.Out.Result.Value Cells(5, 3).Value = app.Measure.P5.Out.Result.Value Cells(6, 3).Value = app.Measure.P6.Out.Result.Value Cells(7, 3).Value = app.Measure.P7.Out.Result.Value Cells(8, 3).Value = app.Measure.P8.Out.Result.Value
Set app = Nothing
End Sub
Statistics are also available for each parameter using two different kinds of calls:
result = app.Measure.P1.mean.Result.Value result = app.Measure.P1.max.Result.Value result = app.Measure.P1.min.Result.Value result = app.Measure.P1.num.Result.Value result = app.Measure.P1.sdev.Result.Value
result = app.Measure.P1.Statistics("mean").Result.Value result = app.Measure.P1.Statistics("max").Result.Value result = app.Measure.P1.Statistics("min").Result.Value result = app.Measure.P1.Statistics("num").Result.Value result = app.Measure.P1.Statistics("sdev").Result.Value
In addition, the data used to display the Histicon is available using the “histo” statistic:
Sub Button1_Click() Set app = CreateObject("LeCroy.XStreamDSO")
bins = app.Measure.P5.Statistics("histo").Result.BinPopulations numBins = app.Measure.P5.Statistics("histo").Result.bins
For i = 0 To numBins - 1
Cells(i + 1, 4).Value = bins(i)
Next I
Set App = Nothing End Sub
916435 RevA 1-15
ABOUT AUTOMATION

Result Status

The waveform result object described above includes a status property (bit-field) that reflects the current status of the trace. This includes both ‘warning’ and ‘error’ conditions, as described below.
Description Value Bit #
LEC_Valid 0x0 N/A
LEC_Invalid
LEC_Overflow
LEC_Underflow
LEC_ContainsUndefinedValues
LEC_LessThan
LEC_GreaterThan
LEC_NotAPulse
LEC_NotCyclic
LEC_Averaged
LEC_UnlockedPLL
LEC_OtherError
LEC_OtherWarning
LEC_OtherInfo
LEC_InputsIncompatible
LEC_AlgorithmLimitsReached
LEC_BadDefinition
LEC_TooFewData
LEC_TooManyData
LEC_UniformHorizIntervalRequired
LEC_BadUnits
LEC_DataRangeTooLow
LEC_DataUndersampled
LEC_PoorStatistics
LEC_SlowTransitionTime
LEC_DataResampled
LEC_DataInterpolated
LEC_MeasurementScaleImprecise
LEC_NoDataAvailable
LEC_SomeCummulatedResultsInvalid
LEC_InsufficientMemory
LEC_ChannelNotActive
LEC_UseStatusDescription
0x0000000000001 0x0000000000002 0x0000000000004 0x0000000000008 0x0000000000010 0x0000000000020 0x0000000000040 0x0000000000080 0x0000000000100 0x0000000000200 0x0000000000400 0x0000000000800 0x0000000001000 0x0000100000000 0x0000200000000 0x0000400000000 0x0000800000000 0x0001000000000 0x0002000000000 0x0004000000000 0x0008000000000 0x0010000000000 0x0020000000000 0x0040000000000 0x0080000000000 0x0100000000000 0x0200000000000 0x0400000000000 0x0800000000000 0x1000000000000 0x2000000000000 0x4000000000000
0
1
2
3
4
5
6
7
8
9
10
11
12
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
1-16 916435 RevA
CHAPTER ONE Overview

SYNCHRONIZATION

Synchronization or, more specifically, knowing when to read results, is critical when working with a digital oscilloscope by remote control (it is just as important by IEEE488.2 control as by Automation). This is especially true when working with an oscilloscope that uses a multithreaded architecture.
A classic problem seen in the majority of custom applications that control LeCroy (or other) DSOs is that the scope is left to free-run in Auto-trigger mode while simultaneously (and asynchronously) results are queried.
While working with the instrument via the Automation interface, there are a few techniques that can be used to guarantee the synchronization and consistency of results, whether they be waveform or parameter measurements.
The following example demonstrates a useful technique for ensuring synchronization. This example runs as an Excel macro:
Sub Button1_Click()
' Connect to the DSO Set app = CreateObject("LeCroy.XStreamDSO")
' Enable Standard Vertical parameters app.Measure.MeasureMode = "StdVertical"
' Stop the free-running trigger and take a single acquisition ' Use a 10 second timeout in the case that the acquisition is not complete. app.Acquisition.TriggerMode = "Stopped" app.Acquisition.Acquire (10, True)
' Read the first parameter value and transfer into the spreadsheet Cells(1, 3).Value = app.Measure.P1.Out.Result.Value
End Sub
The Acquire method arms the acquisition system and waits for a user-specified time for a trigger. The second
argument, a Boolean, specifies whether or not to force a trigger before returning if a trigger doesn’t arrive within the allotted time period. The method also returns a Boolean value signifying whether or not a trigger arrived. See the reference section for more information on this useful method.
Another scenario where synchronization is necessary is between changing settings and reading results, even
when no acquisition took place. For this the WaitUntilIdle method is used. This method is “blocking” and will not
return control until the setup request has completed.
Note that the Acquire method is equivalent to setting the Trigger Mode to “Single”, then executing WaitUntilIdle.
916435 RevA 1-17
ABOUT AUTOMATION
An example of WaitUntilIdle usage follows. Note that WaitUnilIdle is not for use when in NORMAL or AUTO
trigger mode.
Sub Button1_Click()
' Connect to the DSO Set app = CreateObject("LeCroy.XStreamDSO")
' Enable Standard Vertical parameters app.Measure.MeasureMode = "StdVertical"
' Wait for the change to take place for a max. of 5 seconds app.WaitUntilIdle(5)
' Read the value of measurement P1 (pkpk) and transfer into the spreadsheet Cells(1, 2).Value = app.Measure.P1.Out.Result.Value
' Enable Standard Horizontal parameters app.Measure.MeasureMode = "StdHorizontal"
' Wait for the change to take place for a max. of 5 seconds app.WaitUntilIdle(5)
' Read the value of measurement P1 (rise time) and transfer into the
spreadsheet
Cells(1, 3).Value = app.Measure.P1.Out.Result.Value
End Sub
: In almost all remote control applications, it is HIGHLY
NNOOTTEE:
RECOMMENDED that you STOP acquisitions before accessing result data. Most remote control problems are caused by failure to follow this practice.
1-18 916435 RevA
Loading...
+ 255 hidden pages