Tektronix products are covered by U.S. and foreign patents, issued and pending. Information in this publication
supersedes that in all previously published material. Specifications and price change privileges reserved.
TEKTRONIX and TEK are registered trademarks of Tektronix, Inc.
Contacting Tektronix
Tektronix, Inc.
14200 SW Karl Braun Drive
P.O . Bo x 50 0
Beaverto
USA
For product information, sales, service, and technical support:
n, OR 97077
In North America, call 1-800-833-9200.
Worl d wide , vis i t www.tektronix.com to find contacts in your area.
Setting up TPI ...............................................................................................................................................7
Running a client application on the TLA instrument .................................................................................. 8
Setting up TPI on the TLA instrument........................................................................................................ 8
Server Message Boxes................................................................................................................................. 20
Slot numbers for expansion mainframes .................................................................................................. 20
Tips for improving LA module data transfer performance.................................................................... 20
Objects and Interfaces................................................................................................................................ 25
System Object........................................................................................................................................... 26
Data Formats............................................................................................................................................. 113
Data Formats........................................................................................................................................... 115
Binary data formats for LA modules and the TLA600 series logic analyzer.......................................... 115
General characteristics........................................................................................................................ 115
Violation data ....................................................................................................................................115
4
Deprecated
Time stamps........................................................................................................................................ 115
RawWithTimestamp binary data format for TLA7N1 LA modules and the TLA6X1 logic
RawWithTimestamp binary data format for TLA7N3 LA modules and the TLA6X3 logic analyzer 118
RawWithTimestamp binary data format for TLA7N4/P4/Q4 LA modules and the TLA6X4 logic
Time stamps........................................................................................................................................ 131
Version History ......................................................................................................................................... 151
Index .......................................................................................................................................................... 157
5
Deprecated
6
Deprecated
What's New?
What's new in TLA TPI Version 4.2:
• Support added for the TLA7Axx Series Logic Analyzer modules
• Minor corrections to earlier versions
For information about earlier versions of the TLA TPI refer to TLA TPI Version History.
Introduction
The TLA programmatic interface (TPI) for the Tektronix Logic Analyzer (TLA) family is based on
Microsoft’s Component Object Model (COM). With TPI you can control the logic analyzer from a
separate user program running on the logic analyzer or on a remote PC. Both the TLA600- and TLA700series logic analyzers support TPI.
• In the context of TPI, the TLA application is called the server, and the program (written by the user)
that controls the server through the programmable interface is called the client. The user program can
be written in any language or programming environment that supports the Microsoft Component
Object Model (COM), such as Microsoft Visual C++ or Microsoft Visual Basic.
• TLAScript is a standalone scripting interface to the TLA application. It is an interpreter that processes
commands that are read from a script file or are manually entered by users through the TLAScript
graphical interface. The TLAScript commands parallel the TPI interface. Most of the TPI methods
have corresponding TLAScript commands. TLAScript has its own online help and links to the TPI
online help commands.
General characteristics
The following is a list of the general characteristics of the TPI:
• TPI is consistent with programmatic interfaces exported by other Windows applications.
• All of the interfaces exported by the server are dual interfaces, supporting static and dynamic binding.
• The TLA application must be fully initialized before a client attempts to connect to it. This includes
dismissing any diagnostic errors that occur at startup time. If a client attempts to connect before the
application is fully initialized, it will receive an error indicating access is denied.
• A client running locally on the logic analyzer will connect to an existing instance of the server, if there
is one. If the server is not running, it will be launched automatically.
• Clients may hide the server window using the programmatic interface. If the window is shown, you
can directly interact with the TLA server. There will be an indicator in the status bar of the main
window to show that a client is connected.
• The TLA server will continue to run after a client has disconnected. The server window is always
made visible when all clients have disconnected.
• TPI operates within the main thread of the application.
• TPI supports multiple simultaneous clients. Care must be taken when using multiple clients to ensure
that the clients do not interfere with one another.
• There is no provision for a TPI client to lock-out other clients.
Setting up TPI
In the following procedures, <install directory> refers to the directory where the TPI client is installed on
your client machine. This directory is C:\Program Files\TLA700 by default. This directory is used by
both the TLA600- and TLA700-series logic analyzers.
7
Deprecated
The type library used with TPI is tla700.tlb. After you complete the following setup procedure, this file
will be located in C:\Program Files\TLA700\System\TPI on your logic analyzer and/or in the <install directory>\System\TPI on your client machine.
• You have two methods of using TPI with your client application:
• You can run the client application locally on the logic analyzer. No special setup is required once the
TLA application is installed. To verify that a client application can connect to the TLA server, see
Running a client application on the TLA instrument.
• You can run your client application remotely across the network. In this case, both the TLA instrument
and the remote host require special setup procedures. See Setting up TPI on the TLA instrument to
begin this setup procedure.
Running a client application on the TLA instrument
To verify that a client application can connect to the TLA instrument, do the following steps:
1 Start the TLA application on the TLA instrument.
3 Click the Connect to the TLA700! button, and check that the text in the dialog changes to Connected!
This indicates the test client application connected to the TLA
4 Click Exit.
Setting up TPI on the TLA instrument
If you want to run a client application remotely across the network, you must set up the TLA instrument
using the following procedure:
1 Install and configure TCP/IP.
Note: If you have difficulty configuring the network setup, contact your system administrator.
2 You must choose to have either share-level access or user-level access to the TLA instrument as
provided by Microsoft Windows.
Note: For TPI to work with share-level access, authentication is turned off and any COM client can call into any
COM server running on the TLA instrument.
Choose one of the following:
• Share-level access
• User-level access
8
Deprecated
Share-level access
To set up the TLA instrument so that it may be shared among different users on a network, do the
following steps:
1 Run dcomcnfg.exe.
2 Click the Default Properties tab, and set the Default Authentication Level to None.
3 Click the Applications page, and select the Tektronix TLA Application server.
4 Click the Properties button (or double-click the selected application).
5 Click the General tab, and set the Authentication Level to None.
6 Click the Location tab, and select Run application on this computer.
7 Click the Security tab, and select Use custom access permissions.
8 Click the Edit button.
a) Click the Registry Value Permissions tab, and click the Add button.
b) Scroll down the list; select and add Everyone to the list.
9 Click the Security page, and select Use custom launch permissions.
10 Click the Edit button.
a) Click the Registry Value Permissions tab, and then click the Add button.
b) Scroll down the list; select and add Everyone to the list.
11 Click the Identity page, and select The Interactive user.
12 Shut down the TLA application, and restart it before attempting to make any connections.
This completes the setup of TPI on the TLA instrument for operating with a remote client machine using
share-level access.
Note: You can switch between user-level and share-level access later by redoing the procedure from step 2 of Setting
up TPI on the TLA instrument.
Next, you need to set up the client machine so that it can connect to the TLA instrument. Select the
appropriate setup:
• Client machine running Microsoft Windows 2000/NT
• Client machine running Microsoft Windows 95
• Client machine running Microsoft Windows 98
• Client machine running on any other platform
9
Deprecated
User-level access
The default network settings for the TLA under Windows is compatible with clients operating with userlevel access. With these settings the client and server must be logged in to the same account and domain
to make a connection. If this is too restrictive, we recommend that you use sharel-level access or talk to
your network administrator.
To set up the TLA instrument for user-level access (default settings), do the following steps:
1 Run dcomcnfg.exe.
2 Click the Default Properties tab, and set the Default Authentication Level to Connect.
3 Click the Applications tab, and select the Tektronix TLA Application server. Click the Properties
button (or double-click the selected application).
4 Click the General tab, and set the Authentication Level to Default.
5 Click the Location tab, and select the Run application on this computer.
6 Click the Security tab, and select the following:
• Use default access permissions
• Use default launch permissions
• Use default configuration permissions
7 Click the Identity tab, and select The launching user.
8 Shut down the TLA application, and restart it before attempting to make any connections.
This completes the set up of the TLA instrument for operation with a remote client machine using user
level access or Windows 2000/NT user authentication.
Note: You can switch between user-level access and share-level access later by redoing the procedure from step 2 of
Setting up TPI on the TLA instrument.
Next, you need to set up the client machine so that it can connect to the TLA instrument. Select the
appropriate setup:
• Client machine running Microsoft Windows 2000/NT
• Client machine running Microsoft Windows 95
• Client machine running Microsoft Windows 98
• Client machine running on any other platform
10
Deprecated
Setting up a client machine that is running Microsoft Windows
2000/NT
After you set up the TLA instrument, you must set up the client machine using the following procedure:
Note: You may need administrative privilege to perform this procedure.
1 Install and configure TCP/IP. If you have difficulty configuring the network setup, contact your system
or network administrator.
2 Load the Tektronix TLA application software CD.
3 Double-click on TPI Client SW\Disk1\Setup.exe.
4 Select the appropriate access type to continue with the setup procedure (you must set up the client
machine to match the access level you chose for the TLA instrument):
• Share-level access
• User-level access
Setting up share-level access for Microsoft Windows 2000/NT
To set up a client machine to access a TLA instrument that is set up for share-level access, perform the
following procedure (you must have administrative permissions on your computer):
1 Run dcomcnfg.exe.
2 Click the Default Properties tab, and set Default Authentication Level to None.
3 Click the Applications tab, and select the Tektronix TLA Application server.
4 Click the Properties button (or double-click the selected application).
5 Click the General tab, and set Authentication Level to None.
6 Click the Location tab, and select Run application on the following computer. Enter the name of the
TLA instrument in the edit field.
7 Click the Security tab (if applicable), and select the Use custom access permissions; click the Edit
button.
a) Click the Registry Value Permissions tab, and then click the Add button.
b) Scroll down the list; select and add Everyone to the list.
8 Click the Security tab (if applicable), and select Use custom launch permissions.
9 Click the Edit button.
a) Click the Registry Value Permissions tab, and then click the Add button.
b) Scroll down the list; select and add Everyone to the list.
10 Click the Identity tab (if present), and select The Interactive user.
11 To Verify that the setup is complete:
a) Run <install directory>\Samples\TPI Samples\Vc++\test\test client\testclient.exe on the client
machine.
b) Click the button to see if the client can connect to the TLA instrument. (It may take a few minutes
This completes the set up of the TLA instrument and the client machine for running your client application
across the network.
Setting up user-level access for Microsoft Windows 2000/NT
for the first time that you connect.)
The default network settings for the TLA under Windows is compatible with clients operating with userlevel access. With these settings the client and server must be logged in to the same account and domain
to make a connection. If this is too restrictive, we recommend that you use share-level access or talk to
your network administrator.
11
Deprecated
To set up a client machine to access a TLA instrument that is set up for user-level access, perform the
following procedure:
1 Run dcomcnfg.exe.
2 Click the Default Properties tab, and set the Default Authentication Level to Connect.
3 Click the Applications tab, and select the Tektronix TLA Application server.
4 Click the Properties button (or double-click the selected application).
5 Click the General tab, and set Authentication Level to Default.
6 Click the Location tab, and select Run application on the following computer.
7 Enter the name of the TLA instrument in the edit field.
8 Click the Security tab (if present), and select the following:
• Use default access permissions
• Use default launch permissions
• Use default configuration permissions
9 Click the Identity tab (if present), and select The launching user.
10 To verify that the setup is complete:
a) Run <install directory>\Samples\TPI Samples\Vc++\test\test client\testclient.exe on the client
machine.
b) Click the button to see if the client can connect to the TLA instrument. (It may take a few minutes
for the first time that you connect.)
This completes the set up of the TLA instrument and the client machine for running your client
application across the network.
Setting up a client machine that is running Microsoft
Windows 95
After you set up the TLA instrument, you must set up the client machine using the following procedure:
1 Install and configure TCP/IP.
2 Load the Tektronix TLA application software CD.
3 Double-click TPI Client SW\Disk1\Setup.exe.
4 Download and install the following from the Microsoft web site, restarting after each installation. The
Microsoft web site is at www.microsoft.com.
• Distributed COM (DCOM) for Microsoft Windows 95 (DCOM 95, version 1.1)
• dcomcnfg (DCOM configuration utility)
Note: The dcomcnfg utility will run only if user-level access is enabled. See step 5.
5 Select the appropriate access type to continue with the setup procedure (you must set up the client
machine to match the access level you chose for the TLA instrument):
• Share-level access
• User-level access
Note: You can switch between user-level and share-level access later by redoing the procedure from Step 2
onwards.
Setting up share-level access for Microsoft Windows 95
To set up share-level access for a client machine running Microsoft Windows 95, do the following
procedure:
1 In Microsoft Windows 95, click Start, select Settings, and then click Control Panel.
2 Click Network from the Control Panel, and then click the Access Control tab.
3 Choose Share-level access control, and then click OK. (If prompted, insert the Windows 95 disk or
provide a file path to the stored Windows 95 files.)
4 The System Settings Change dialog box appears. Click the Yes button.
12
Deprecated
5 On the client machine, click Start and then Shut Down. In the Shut Down Windows dialog box, click
Restart the Computer?, and then click the Yes button.
6 Navigate to and run <install directory>\System\TPI\Share Level Access Client.reg.
7. A dialog box appears, indicating successful registration. Click OK.
8 Restart the client machine using the procedure in step 5.
9 In Microsoft Windows, click Start, and then select Run. Either locate the regedit file using Browse, or
b Click the Connect button to see if the client can connect to the TLA instrument.
Attempting Connection to TLA appears in the dialog box. (The first time you connect it may take a few
minutes.) When the connection is made, the text changes to Connected!
This completes the setup of the TLA instrument and the client machine for running a client application
across the network.
Note: You can switch between user-level and share-level access later by uninstalling the Tektronix TPI Client and
DCOM 95 using the Windows control panel and redoing the procedure from step 2 of Setting up a client
machine that is running Microsoft Windows 95.
Setting up user-level access for Microsoft Windows 95
To set up user-level access for a client machine running Microsoft Windows 95, do the following
procedure:
1 In Microsoft Windows 95, select Start, Settings, and then Control Panel.
2 From the Control Panel, select Network, and then select the Access Control tab.
3 Choose User-level access control and enter the name of the domain that will be used to validate user
access. Then select OK.
4 On the client machine, select Start and then Shut Down. In the Shut Down Windows dialog box, select
Restart the Computer? and then press the Yes button.
5 Naviagate to and run <install directory>\System\TPI\User Level Access Client.reg.
6 Restart the client machine using the procedure in step 4.
7 In Microsoft Windows 95, select Start, and then select Run. Either locate the dcomcnfg file using
Browse, or enter dcomcnfg. Then click OK to run dcomcnfg.
8 Double-click "Tektronix TLA Application" in the Applications page.
9 In the Location page, uncheck the "Run application on this computer" box and check the "Run
application on the following computer" box. Enter the name of the TLA instrument in the edit field.
10 To verify that the setup is complete:
a Run <install directory>\Samples\TPI Samples\Vc++\test client\testclient.exe on the client
machine.
b Click the Connect button to see if the client can connect to the TLA instrument. (The first time you
connect it may take a few minutes.)
This completes the setup of the TLA instrument and the client machine for running a client application
across the network.
13
Deprecated
Note: You can switch between user-level and share-level access later by uninstalling the TPI Client and DCOM 95
using the Windows control panel and redoing the procedure from step 2 of Setting up a client machine that is
running Microsoft Windows 95.
Client machine running Microsoft Windows 98
After you set up the TLA instrument, you must set up the client machine using the following procedure:
1 Install and configure TCP/IP.
2 Load the Tektronix TLA logic analyzer application software CD.
3 Double-click TPI Client SW\Disk1\Setup.exe.
4 You must set up the client machine to match the access level that you chose for the TLA instrument
(share-level access or user-level access).
Select the appropriate access type to continue with the setup procedure:
• Share Level Access on Windows 98
• User Level Access on Windows 98
Note: You can switch between user-level and share-level access later by redoing the procedure from Step 4
onwards.
Share Level Access on Windows 98
To set up share-level access for a client machine running Microsoft Windows 98, do the following
procedure:
1 In Microsoft Windows 98, click Start, select Settings, and then click Control Panel.
2 From the Control Panel, click Network, and then click the Access Control tab.
3 Choose Share-level access control, and then click OK. (If prompted, insert the Windows 98 CD or
provide a file path to the stored Windows 98 files.)
4 The System Settings Change dialog box appears. Click the Yes button.
5 On the client machine, click Start and then select Shut Down. In the Shut Down Windows dialog box,
click Restart the Computer?, and then click the Yes button.
6 Navigate to and run <install directory>\System\TPI\Share Level Access Client.reg.
7. A dialog box appears, indicating successful registration. Click OK.
8 Restart the client machine using the procedure in step 5.
9 In Microsoft Windows, click Start, and then click Run. Either locate the regedit file using Browse, or
b The Tektronix Test TPI Client dialog box appears. Click the Connect button to see if the client can
connect to the TLA instrument.
c Attempting Connection to TLA appears in the dialog box. (The first time you connect it may take a
few minutes.) When the connection is made, the text changes to Connected!
This completes the setup of the TLA instrument and the client machine for running a client application
across the network.
Note: You can switch between user-level access and share-level access later by redoing step 4 in the procedure from
Client machine running Microsoft Windows 98
User Level Access on Windows 98
To set up user-level access for a client machine running Microsoft Windows 98, do the following
procedure:
1 In Microsoft Windows 98, click Start, select Settings, and then click Control Panel.
2 From the Control Panel, click Network, and then click the Access Control tab.
3 Choose User-level access control and enter the name of the domain that will be used to validate user
access. Then click OK.
4 On the client machine, click Start, and then click Shut Down. In the Shut Down Windows dialog box,
click Restart the Computer?, and then click the Yes button.
5 Navigate to and run <install directory>\System\TPI\User Level Access Client.reg.
6 Restart the client machine using the procedure in step 4.
7 In Microsoft Windows 98, click Start, and then click Run. Either locate the dcomcnfg file using
Browse, or enter dcomcnfg. Click OK to run dcomcnfg.
8 Double-click "Tektronix TLA application" in the Applications page.
9 In the Location page, clear the "Run application on this computer" box and check the "Run application
on the following computer" box. Enter the name of the TLA instrument in the edit field.
10 To verify that the setup is complete:
a Run <install directory>\Samples\TPI Samples\Vc++\test client\testclient.exe on the client
machine.
b Click the Connect button to see if the client can connect to the TLA instrument. (The first time you
connect it may take a few minutes.)
This completes the setup of the TLA instrument and the client machine for running a client application
across the network.
Note: You can switch between user-level and share-level access later by redoing the procedure from step 2 of Client
machine running Microsoft Windows 98.
Client instrument running on any other platform
If the client application requires use of the type library, you can generate it on your platform using
tla700.odl in C:\Program Files\TLA 700\System\TPI\src.
Perform the following steps:
1 Ensure that DCOM is working on your platform.
2 Merge C:\Program Files\TLA 700\System\TPI\Client.reg into your registry.
3 M erge C:\Program Files\TLA 700\System\TPI\Share Level Access Client.reg or User Level
Access Client.reg into your registry, depending on the type of access control you chose for the TLA
instrument.
4 Add a string value named RemoteServerName to the key
5 Enter the computer name of the logic analyzer as this string value. This is the name used to identify the
logic analyzer on the network.
This completes the setup of the logic analyzer for operating with a remote client machine using a platform
other than Microsoft Windows.
16
Deprecated
Connecting to the TLA server
Client applications connect to the TLA server by creating an Application Object. For example, in
Microsoft Visual Basic:
‘Establish connection to TLA.
Dim App As Object
Set App = CreateObject("TLA700.Application")
Once the Application Object is created, the client can call methods on it to get references to System and
Module Objects.
Disconnecting from the TLA server
A client application connected to the TLA server can disconnect by deleting the reference to the
Application Object. For example, in Microsoft Visual Basic:
‘Disconnect from TLA.
Set App = Nothing
References to any System or Module Objects that were obtained must also be deleted.
Programming examples
All interfaces exported by the TLA server are dual interfaces that have the characteristics of both dispatch
and vtable interfaces.
The dispatch side of a dual interface uses run time (dynamic) binding to resolve method calls. This is
mostly used in interpretive and scripting environments where static binding using header files and type
libraries cannot be performed.
The vtable side of a dual interface uses static binding to resolve method calls. This is accomplished using
header files and type libraries.
See the following examples:
• Example of a Microsoft Visual Basic client using dispatch interfaces
• Example of a Microsoft Visual Basic client using vtable interfaces
Additional code examples for specific methods use the dispatch portion of each dual interface.
17
Deprecated
Example of a Microsoft Visual Basic client using dispatch
interfaces
This client example uses the dynamic (dispatch) part of the dual interfaces.
Dim App As Object
Dim System As Object
Dim LA As Object
Dim Status As Long
Dim BytesPerSample As Long
Dim S As String
Dim Data As Variant
Private Sub Form_Load()
‘Connect to server.
Set App = CreateObject("TLA700.Application")
‘Get system pointer.
Set System = App.GetSystem
‘NOTE: To load a system, fill in system path.
System.LoadSystem "<path>"
‘NOTE: Fill in the slot no. of your LA here.
Set LA = System.GetModuleBySlot(<slot>)
‘Run acquisition.
Run
‘Get data.
GetData
‘Show data.
ShowData
End Sub
Private Sub Run()
‘Do acquisition. Wait for it to complete.
System.Run
Do
Status = System.GetRunStatus
Loop While(Status = 0)
End Sub
Private Sub GetData()
‘Get the first ten samples (grouped) in the main data set
‘in ASCII.
‘NOTE: Change group list if required.
BytesPerSample = LA.DefineDataFormat(0,
"GroupList:A3,A2,Timestamp", 1)
Data = LA.GetData(0, 10)
End Sub
Private Sub ShowData()
‘Show data.
ForI=0To9
S = Data(I)
DataList.AddItem(S)
Next I
End Sub
18
Deprecated
Example of a Microsoft Visual Basic client using vtable
interfaces
This client example uses the vtable (static) part of the dual interfaces.
Dim App As IApplication
Dim System As ISystem
Dim LA As ILAModule
Dim Status As Long
Dim BytesPerSample As Long
Dim S As String
Dim Data As Variant
Private Sub Form_Load()
'Connect to server.
Set App = CreateObject("TLA700.Application")
'Get system pointer.
Set System = App.GetSystem
'NOTE: To load a system, fill in system path.
System.LoadSystem("<path>")
'NOTE: Fill in the slot no. of your LA here.
Set LA = System.GetModuleBySlot(<slot>)
'Run acquisition.
Run
'Get data.
GetData
'Show data.
ShowData
End Sub
Private Sub Run()
'Do acquisition. Wait for it to complete.
System.Run
Do
Status = System.GetRunStatus
Loop While(Status = 0)
End Sub
Private Sub GetData()
'Get the first ten samples (grouped) in the main data set
'in ASCII.
'NOTE: Change group list if required.
BytesPerSample = LA.DefineDataFormat(0,"GroupList:A3,A2,Timestamp",
1)
Data = LA.GetData(0, 10)
End Sub
Private Sub ShowData()
'Show data.
ForI=0To9
S = Data(I)
DataList.AddItem(S)
Next I
End Sub
19
Deprecated
Error handling
All methods in all interfaces of TPI return an HRESULT (or SCODE). Refer to the file "tla700error.h"
(the path is <install directory>\System\TPI\Src\tla700error.h>) for possible error codes.
Additional error information is communicated as follows:
• Objects that use the dispatch portion of the dual interface can use the exception information argument
of the IDispatch::Invoke method.
• Objects that use the vtable portion of the dual interface can use error objects. When an HRESULT
indicates an error, the client can call the standard function GetErrorInfo() to get more detailed
information about the error.
• When a method returns an error, output arguments are undefined and should not be used.
Server Message Boxes
In the TLA graphical user interface, there are instances where you are asked to confirm a particular
operation. For example, before loading a saved system, you are asked whether the current system should
be saved before the load operation.
Since it is not possible to ask questions through TPI, the application always proceeds with the original
operation as though the question were never asked. In the previous example, the load operation proceeds
without saving the current system.
Modal message boxes that are normally displayed in the TLA user interface will not be displayed when a
client is connected to the server.
Slot numbers for expansion mainframes
In TPI, the slot numbers for expansion mainframes are specified by extending the slot numbers for the
mainframe. For example, consider a system configuration consisting of a TLA720 benchtop mainframe
with two expansion frames each containing 13 slots:
• Mainframe: Slots 0 - 12
• Expansion 1 Slots 13 - 25
• Expansion 2 Slots 26 – 38
External Oscilloscope modules do not have slot numbers.
Tips for improving LA module data transfer
performance
The data transfer rates (in KB/s) that you achieve using ILAModule::GetData() depend on various factors.
The following guidelines will improve data transfer performance:
• Buffer size. When a client invokes ILAModule::GetData(), the TLA server allocates and returns a
data buffer to the client. The size of this buffer affects the efficiency of the data transfer operation.
Using too small a buffer reduces performance because of the added overhead of additional calls to
transfer a fixed amount of data. Using too large a buffer can cause the system to exceed the available
physical memory. When this happens, virtual memory must be made available by swapping physical
memory pages to the hard disk, which again reduces performance. Optimal performance is achieved
using buffers that are as large as possible without exceeding the available physical memory.
The size of the buffer is determined by the number of samples requested. For systems with 32M of ,
and only the TLA application running, the optimum buffer size is typically between 1,300,000 2,600,000 bytes. For the 136-channel TLA7N4 LA module, this is approximately within the range of
50,000 - 100,000 samples for raw data (since there are 26 bytes per sample). See Binary data formats
for LA modules and Text data formats for LA modules for more information on the number of bytes
per sample for other module types.
20
Deprecated
With larger systems, or when additional applications are running, it can be difficult to determine how
much physical memory is available. One technique for determining this number empirically is to use
to do data transfers of varying size, while monitoring memory use using the Win2000 performance
monitor. The performance monitor can be found at StartMenu>Programs>Administrative
Tools>Performance. The measurement called "Available Mbytes" shows the amount of physical
memory remaining. The objective is to find out how much data you can transfer in one call, without
causing this measurement to hit zero.
• Amount of TLA and client machine main memory. As expected, the larger the amount of random
access memory (RAM), the better the performance. This difference is more pronounced as the number
of samples requested increases. It is less pronounced when an optimum number of samples is
requested (see the previous bulleted item, Buffer size).
• Data formats. A TPI client application has a choice of data formats. For details, see
ILAModule::DefineDataFormat().
Binary Text. In general, binary data transfer is faster than text data transfer. Binary data transfer may,
however, require some effort on the part of the TPI client to process the binary data.
Raw versus Grouped. If the TPI client requires most of the information in a given sample of data, a
raw data is more efficient than a grouped format. However, the raw format requires more posttransfer processing by the TPI client and gives the user less flexibility in what data is transferred. If
you require very little information out of a given sample, the grouped format may be more
appropriate.
To clarify difference between Binary versus Text and Raw versus Grouped, look at the following
scenarios:
Scenario 1 User A is interested in getting data as fast as possible and is willing to filter and process
data in any format.
The appropriate choice in this scenario would probably be the RawWithTimestamp
format.
Scenario 2 User B is interested in only one particular group. The user would like the data to be
formatted. The speed of data transfer is not a critical issue.
The appropriate choice in this scenario would probably be the GroupList format, just the group of
interest.
• LA module characteristics. The narrower LA modules (fewer channels) tend to have slower transfer
rates than the wider modules.
• Client application/programming environment. The efficiency of the data transfer is affected by the
way the TPI client application is written and/or the programming environment used for writing the
client application. Remember that it is the responsibility of the TPI client application to free memory
allocated for data buffers during data transfer.
• Network conditions. Data transfer using TPI using DCOM over the network gives approximately half
the performance of local COM data transfer. This may vary depending upon the network traffic
conditions.
21
Deprecated
22
Deprecated
Objects & Interfaces
23
Deprecated
24
Deprecated
Objects and Interfaces
The TPI consists of four types of objects:
• Application
• System
• LAModule
• DSOModule
You an Application Object to initially connect to the TLA application and to subsequently obtain a
reference to a system object. The application object exports a single interface called IApplication.
The system provides methods for configuration, run control, and save and load operations. Every client
must obtain a reference to a System Object before it can obtain references to Module Objects. The System
Object exports a single interface called ISystem.
Module objects provide methods for module configuration, obtaining acquisition statistics, and retrieving
acquisition . Logic analyzer module objects export a single interface called ILAModule; DSO module
objects export a single interface called IDSomodule.
Unless otherwise specified, all methods are synchronous and wait for the completion of the operation
before . The syntax of the TPI methods is described in Microsoft Object Description Language (ODL).
The object hierarchy is shown below:
The following methods are for the IDSOModule Object: [Unless otherwise stated, all DSOModule object
properties and methods apply to External oscilloscope modules as well as Internal DSO modules.]
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Set App = CreateObject("TLA700.Application")
‘Hide the window.
App.ShowWindow 0
Remarks
The application window is shown by default when a client connects to the server.
IDSOModule::DefineDataFormat
Description
This method specifies the format of the data which is returned in subsequent queries for acquisition data
(using IDSOModule::GetData() and IDSOModule::ExportData()).
ODL Syntax
HRESULTDefineDataFormat([in]BSTRComponents,
[in]longDataType)
Arguments
Components This takes one of the following forms:
"AllChannels" Data for all channels is returned.
"ChannelList:<channel>,<channel>,<channel>…" Specifies exactly which channels to
return and the order in which they are to be returned. The same channel may be included more
than once. Channels are specified using their channel numbers (for example, 1, 2, 3, and 4).
For details on the format of these components, refer to the following topics:
32
Deprecated
DataType This takes one of the values from the following table:
ValueDescription
TLA700_BINARY (0)Binary
TLA700_TEXT_SPACE (1)ASCII, space delimiter
TLA700_TEXT_TAB (2)ASCII, tab delimiter
TLA700_TEXT_COMMA (3)ASCII, comma delimiter
For binary format, data is returned as an array of short values (16 bits). There are no delimiters between
samples.
For text format, data is returned as an array of strings, one per sample. Data is returned in volts without the
unit characters appended.
TLA700_E_EXPORT_INVALID_FILEAn error occurred opening this file for writing.
TLA700_E_EXPORT_ERRORAn error occurred during the export operation.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
method. The data format you defined previously may no
longer be valid.
35
Deprecated
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim NumSamples As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Export data in text format.
DSO.DefineDataFormat "ChannelList:1,2",1
DSO.ExportData 0,NumSamples,"C:\export.txt",0
Remarks
The value specified for FirstSample must be greater than or equal to zero and less than the total number of
samples acquired. NumSamples must be greater than zero, and FirstSample + NumSamples must be less
than or equal to the total number of samples acquired. If these conditions are not met, an error code is
returned.
A data format must be defined using DefineDataFormat() before calling this method.
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
If the data is of type TLA700_BINARY, the actual data value in volts corresponding to each binary
(short) value returned may be calculated as follows:
<Data value in volts> = ((<vertical range in volts> / 64512) * <binary data value>) +
<vertical offset in volts>
The vertical range and offset may be obtained using IDSOModule::GetDataRange() and
IDSOModule::GetDataOffset().
IDSOModule::GetBeginTime
Description
This method returns the begin time of the module.
ODL Syntax
HRESULTGetBeginTime([out]long*pTimeHighWord,
Arguments
pTimeHighWordThe higher word of the begin time in picoseconds.
pTimeLowWordThe lower word of the begin time in picoseconds.
36
[out]long*pTimeLowWord)
Deprecated
HRESULT Return Codes
ReturnCodeDescription
S_OKThe operation succeeded.
TLA700_E_SYSTEM_RUNNINGThe operation cannot be performed when the system
is acquiring data.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim TimeHigh As Long
Dim TimeLow As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get begin time.
DSO.GetBeginTime TimeHigh, TimeLow
Remarks
Begin time is a 64-bit value. This method returns this value in the form of two long values representing
the high and low words. Though the low word is returned in a signed long value, it is to be treated as an
unsigned value.
Begin time is equivalent to the timestamp of the first sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual data acquisition begins. Other factors such as acquisition buffer depth, clock
rate, storage qualification or delay while waiting for a trigger condition to occur can also affect the period
of time between the start of the acquisition and the time of the first sample in the storage buffer.
The Begin time value is reported in terms of pico-seconds, and has been adjusted to include the frame
offset and user specified time alignment values, if any. If additional, user defined, per-channel offsets are
specified, those offsets are not reflected in the Begin time value returned by this method. For a further
explanation of these values, see the discussion of Timestamp values in the DataFormat section near the
end of this document.
IDSOModule::GetData
Description
This method returns the specified acquisition data.
ODL Syntax
HRESULTGetData([in]longFirstSample,
[in]longNumSamples,
[out,retval]VARIANT*pData)
37
Deprecated
Arguments
FirstSampleThe sample number of the first sample to return. Sample numbers start with 0.
NumSamplesThe number of samples to return.
pDataThe acquisition data. The composition and format of the data is determined by
the IDSOModule::DefineDataFormat() call.
Data is returned as a VARIANT. The variant is of type VT_ARRAY
and points to a SAFEARRAY. The SAFEARRAY has a dimension of one and
has NumSamples entries.
If the data type is TLA700_BINARY, the SAFEARRAY is of element type
VT_I2 (short).
If the data type is TLA700_TEXT_* the element type is VT_BSTR (string).
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_INVALID_DATA_FORMAT
TLA700_E_ VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_BUFFER_LIMIT_EXCEEDED
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
A valid data format must be defined before calling this
method. The data format you defined previously may no
longer be valid.
The size of the requested data buffer exceeded the
maximum limit.
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim NumSamples As Long
Dim DataArray As Variant
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get main data in binary format.
DSO.DefineDataFormat "ChannelList:1,2",0
DataArray = DSO.GetData(0, NumSamples)
‘ Process samples.
ForI=0ToNumSamples - 1
`Process DataArray(I)
Next I
38
Deprecated
Remarks
The value specified for FirstSample must be greater than or equal to zero and less than the total number of
samples acquired. NumSamples must be greater than zero, and FirstSample + NumSamples must be less
than or equal to the total number of samples acquired. If these conditions are not met, an error code is
returned.
A data format must be defined using IDSOModule::DefineDataFormat() before calling this method.
The TLA700 server allocates the space for the array of data. The client is responsible for freeing the space
when it is no longer in use.
If the data is of type TLA700_BINARY, the actual data value in volts corresponding to each binary
(short) value returned may be calculated as follows:
<Data value in volts> = ((<vertical range in volts> / 64512) * <binary data value>) +
<vertical offset in volts>
The vertical range and offset may be obtained using IDSOModule::GetDataRange and
IDSOModule::GetDataOffset.
IDSOModule::GetDataOffset
Description
This method returns the vertical offset for the current acquisition data of a channel. This value is used to
interpret binary acquisition data obtained from the module.
ODL Syntax
HRESULTGetDataOffset([in]longChannel,
[out, retval]double*pOffset)
Arguments
ChannelThe number of the channel. This value should be in the range 1…n
where n is the total number of channels in the DSO.
pOffsetThe vertical offset of the channel in volts.
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim Offset As Double
the operation.
Set App = CreateObject("TLA700.Application")
‘Get system.
39
Deprecated
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get data offset.
Offset = DSO.GetDataOffset(1)
Remarks
The value returned is the vertical offset for the data currently in the module.
IDSOModule::GetDataRange
Description
This method returns the vertical range for the current acquisition data of a channel, which is used to
interpret binary acquisition data obtained from the module.
ODL Syntax
HRESULTGetDataRange([in]longChannel,
[out, retval]double*pRange)
Arguments
ChannelThe number of the channel. This value should be in the range 1…n,
where n is the total number of channels in the DSO.
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim Range As Double
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get data range.
Range = DSO.GetDataRange(1)
40
Deprecated
Remarks
The value returned is the vertical range for the data currently in the module.
IDSOModule::GetDataSamplePeriod
Description
This method returns the sample period for the module’s current acquisition data.
ODL Syntax
HRESULTGetSamplePeriod([out]long*pPeriodHighWord,
[out]long*pPeriodLowWord)
Arguments
pPeriodHighWordThe higher word of the period in picoseconds.
pPeriodLowWordThe lower word of the period in picoseconds.
HRESULT Return Codes
ReturnCodeDescription
S_OKThe operation succeeded.
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim PeriodHigh As Long
Dim PeriodLow As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get sample period.
DSO.GetDataSamplePeriod PeriodHigh, PeriodLow
Remarks
The value returned is the sample period for the data currently in the module. It is a 64-bit value. This
method returns the value in the form of two long values representing the high and low words. Although
the low word is returned as a signed long value, treat it as an unsigned value.
41
Deprecated
IDSOModule::GetEndTime
Description
This method returns the end time of the module.
ODL Syntax
HRESULTGetEndTime([out]long*pTimeHighWord,
[out]long*pTimeLowWord)
Arguments
pTimeHighWordThe higher word of the end time in picoseconds.
pTimeLowWordThe lower word of the end time in picoseconds.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_SYSTEM_RUNNINGThe operation cannot be performed when the
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim TimeHigh As Long
Dim TimeLow As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Get end time.
DSO.GetEndTime TimeHigh, TimeLow
Remarks
End time is a 64-bit value. This method returns this value in the form of two long values representing the
high and low words. Though the low word is returned in a signed long value, it is to be treated as an
unsigned value.
End time is equivalent to the timestamp of the last sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual acquisition begins. Other factors such as acquisition buffer depth, clock rate,
storage qualification or delay while waiting for a trigger condition to occur can also lengthen the period of
time between the start of the acquisition and the time of the last sample in the storage buffer.
system is acquiring data.
operation.
42
Deprecated
The End time value is reported in terms of pico-seconds, and has been adjusted to include the frame
offset and user specified time alignment values, if any. If additional, user defined, per-channel offsets are
specified, those offsets are not reflected in the End time value returned by this method. For a further
explanation of these values, see the discussion of Timestamp values in the DataFormat section near the
end of this document.
IDSOModule::GetNumSamples
Description
This method returns the number of samples in the acquisition memory of the module.
pDateThe start date and start time of the module acquisition. This is returned as a
VARIANT. The variant is of type VT_DATE.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_SYSTEM_RUNNING
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim StartTime As Date
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set DSO = Sys.GetModuleBySlot(3)
‘Get start time.
StartTime = DSO.GetStartTime
The operation cannot be performed when the system is
acquiring data.
Remarks
The start of an acquisition is not the same as the first sample of data. The start of an acquisition is the
moment at which the system is enabled to begin acquiring data. It takes some finite amount of time after
the start of the acquisition before a module can actually store a sample of data.
IDSOModule::GetTriggerTime
Description
This method returns the time stamp for the trigger sample of the acquired data for the module.
ODL Syntax
HRESULTGetTriggerTime([out]long*pTimeHighWord,
[out]long*pTimeLowWord)
Arguments
pTimeHighWordThe higher word of the trigger time in picoseconds.
pTimeLowWordThe lower word of the trigger time in picoseconds.
44
Deprecated
HRESULT Return Codes
ReturnCodeDescription
S_OKThe operation succeeded.
TLA700_E_SYSTEM_RUNNINGThe operation cannot be performed when the
system is acquiring data.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
Dim TimeHigh As Long
Dim TimeLow As Long
Trigger time is a 64-bit value. This method returns the value in the form of two long values representing
the high and low words. Though the low word is returned as a signed long value, it is to be treated as an
unsigned value.
Trigger time is equivalent to the timestamp of the trigger sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual data acquisition begins. Other factors such as acquisitions buffer depth, clock
rate, storage qualification of delay while waiting for a trigger condition to occur can also lengthen the
period of time between the start of the acquisition and the time of the trigger sample in the storage buffer.
The Trigger time value is reported in terms of pico-seconds, and has been adjusted to include the frame
offset and user specified time alignment values, if any. If additional, user defined, per-channel offsets are
specified, those offsets are not reflected in the Trigger time value returned by this method. For a further
explanation of these values, see the discussion of Timestamp values in the DataFormat section near the
end of this document.
IDSOModule::GetTriggerSample
Description
This method returns the sample number of the trigger sample of the module.
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
Under some circumstances, when this operation is performed under the TLA Application Graphical User
Interface, the user will be prompted to approve changes to some trigger actions. The purpose of the
changes (if any) is to adjust individual module trigger programs for compatibility with System Trigger
specification. When this operation is performed using the programmatic interface (TPI), no user prompt is
possible and restored trigger programs will not be altered.
47
Deprecated
IDSOModule::Name
Description
This property allows the client to retrieve or set the name of the logical module.
TLA700_E_DUPLICATE_MODULE_NAME This module name is already in use.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the operation.
TLA700_E_FAILED The operation was unsuccessful.
TLA700_E_MODAL_DIALOG_OPEN
Example
(Microsoft Visual Basic)
The operation was disallowed because a modal dialog
is open.
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim ModuleName As String
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set DSO = Sys.GetModuleBySlot(3)
‘Get module name.
ModuleName = DSO.Name
‘Set module name.
DSO.Name = "My DSO"
48
Deprecated
Remarks
When retrieving the name, the TLA server will allocate the space for the returned string. The client is
responsible for freeing it when it is no longer in use.
A module name cannot exceed twelve characters in length and must contain at least one non-whitespace
character. Modules must be assigned unique names.
IDSOModule::SaveModule
Description
This method saves the module setup and, optionally, the acquisition data to a file.
ODL Syntax
HRESULTSaveModule([in]BSTRModulePath,
[in]BSTRUserComment,
[in]longSaveData)
Arguments
ModulePathThe full path to the destination file.For example:
"C:\My Documents\My Module.tla"
UserCommentThe user comment to be saved in the file.
SaveDataThis flag takes one of the values from the following table:
ValueDescription
TLA700_SAVE_NO_DATA (0)Do not save acquisition data in file.
TLA700_SAVE_DATA (1)Save acquisition data in file.
TLA700_E_SAVE_INVALID_FILE An error occurred opening this file for writing.
TLA700_E_SAVE_OUT_OF_SPACE
TLA700_E_SAVE_ERROR An error occurred during the save operation.
TLA700_E_SYSTEM_RUNNING
TLA700_E_OUT_OF_MEMORY
TLA700_E_SAVE_FILE_SIZE_LIMIT_EXCEEDED
TLA700_E_FAILED The operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim DSO As Object
Dim Slot As Long
There is not enough disk space to perform this
operation.
The operation cannot be performed when the
system is acquiring data.
There is not enough memory to perform the
operation.
The save operation cannot be performed
because the size of the saved file will exceed
the maximum limit supported by the file system.
49
Deprecated
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set DSO = Sys.GetModuleBySlot(Slot)
‘Save module.
DSO.SaveModule "C:\My Documents\a.tla", "My module",1
Remarks
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
If the file already exists, it will be overwritten.
ILAModule::DefineDataFormat
Description
This method is used to specify the format of the data to be returned in subsequent queries for acquisition
data (using ILAModule::GetData() and ILAModule::ExportData()).
• "RawWithTimestamp"Raw samples, ungrouped, including time stamp data.
• "RawWithoutTimestamp" Raw samples, ungrouped, without time stamp data.
Note: Channel polarity for the following grouped formats is used as specified in the LA Setup Window.
"AllGroupsWithTimestamp" Data is returned grouped according to the
current channel grouping. Data for all channel groups is returned in the
order in which groups are defined in the LA Setup window. Time stamp data is
also returned.
"AllGroupsWithoutTimestamp" Data is returned grouped according to
the current channel grouping. Time stamp data is not returned. Data for all
channel groups is returned in the order in which groups are defined in the LA
Setup Window.
"GroupList:<grp>,<grp>,<grp>,Timestamp" Specifies exactly which
channel groups to return and the order in which they are to be returned. Groups
are specified using their user names as shown in the LA Setup window. The
same group can be included more than once. There is no way to get a "Sample
number" group. Do not use any extra white space when specifying the group list.
To get time stamp data, include "Timestamp" in the list.
Glitch or Setup and Hold
DataSet
50
Deprecated
For details on the format of these components, refer to the following topics:
Binary data formats for LA modules
Text data formats for LA modules
When acquisition data is returned in a raw format, time stamp values are returned in units
of "ticks" where each tick represents a fixed amount of time. To obtain the time stamp
values in picoseconds, it must be adjusted as follows:
Time stamp value in ps = (Time stamp value in ticks *Time stamp Multiplier)
+Expansion mainframe Offset +User-defined time alignment in ps
The Time stamp Multiplier is obtained by calling
ILAModule::GetTimestampMultiplier(). Expansion Mainframe Offset is 36000 ps if the
module is in an expansion mainframe or 0 ps if it is not. User-defined time alignment is
any time alignment defined for the module by the user.
When acquisition data is returned in a grouped format, time stamp values are returned in
picoseconds, using the above calculation such that frame offset and user offset, if any are
incorporated into the value.
DataTypeThis takes one of the values from the following table:
ValueDescription
TLA700_BINARY (0)Binary
TLA700_TEXT_SPACE (1)ASCII, space delimiter
TLA700_TEXT_TAB (2)ASCII, tab delimiter
TLA700_TEXT_COMMA (3)ASCII, comma delimiter
pBytesPerSampleThe number of bytes required per sample. The value returned is for the
data format specified in this call. This value is meaningful only for binary
data formats. For text data formats, the value returned is –1.
Refer to ILAModule::GetBytesPerSample() for details.
Remember to invoke ILAModule::DefineDataFormat() after making calls to set up your module.
Operations, such as ILAModule::LoadModule(), can change the setup of the module and may invalidate a
previously defined data format.
If a grouped format is specified, groups that are empty are ignored. For grouped formats, an error is
returned if the total amount of grouped data (excluding time stamp) is not greater than 0 bytes.
Because the comma is used to delimit groups in the "GroupList:…" form of the Components argument, a
group name cannot contain a comma. Since the string Timestamp is used to retrieve time stamp values in
the same context, groups cannot be named Timestamp.
The Timestamp group cannot be specified with the MagniVu data set.
See Tips for improving LA data transfer performance for information about optimizing the acquisition
data transfer.
TLA700_E_EXPORT_INVALID_FILEAn error occurred opening this file for writing.
TLA700_E_EXPORT_ERRORAn error occurred during the export operation.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
54
method. The data format you defined previously may no
longer be valid.
Deprecated
Dim Sys As Object
Dim LA As Object
Dim BytesPerSample As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Export data in text format.
BytesPerSample = LA.DefineDataFormat(0,"GroupList:A2,A3",1)
LA.ExportData 0,10,"C:\export.txt",0
Remarks
The value specified for FirstSample must be greater than or equal to zero and less than the total number of
samples acquired. NumSamples must be greater than zero, and FirstSample + NumSamples must be less
than or equal to the total number of samples. If these conditions are not met, an error code is returned.
When sample suppression is not being used:
(FirstSample >= 0) and (FirstSample < Total # of acquired samples)
(NumSamples > 0) and ((FirstSample + NumSamples) <= Total # of acquired samples)
When sample suppression is being used:
(FirstSample >= 0) and (FirstSample < Total # of unsuppressed samples)
(NumSamples > 0) and ((FirstSample+NumSamples) <= Total # of unsuppressed samples)
A data format must be defined using ILAModule::DefineDataFormat() before calling this method.
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
ILAModule::GetBeginTime
Description
This method returns the begin time of the module for the specified data set.
ODL Syntax
HRESULTGetBeginTime([in]longDataSet,
[out]long*pTimeHighWord,
[out]long*pTimeLowWord)
Arguments
DataSetThis takes one of the values from the following table:
Value Description
TLA700_MAIN_DATASET (0) Main DataSet
TLA700_MAGNIVU_DATASET (1) MagniVu DataSet
TLA700_VIOLATION_DATASET (2) Glitch or Setup and Hold DataSet
pTimeHighWordThe higher word of the begin time in picoseconds.
pTimeLowWordThe lower word of the begin time in picoseconds.
The operation cannot be performed when the
system is acquiring data.
There is not enough memory to perform the
operation.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim TimeHigh As Long
Dim TimeLow As Long
Dim DataSet as Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get begin time.
DataSet = 0
LA.GetBeginTime DataSet,TimeHigh,TimeLow
Remarks
The values returned for TLA700_MAIN_DATASET and TLA700_VIOLATION_DATASET are the
same, provided that glitches or setup and hold data were acquired.
Begin time is a 64-bit value. This method returns the value in the form of two long values representing the
high and low words. Though the low word is returned in a signed long value, it is to be treated as an
unsigned value.
Begin time is equivalent to the timestamp of the first sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual data acquisition begins. Other factors such as acquisition buffer depth, clock
rate, storage qualification or delay while waiting for a trigger condition to occur can also affect the period
of time between the start of the acquisition and the time of the first sample in the storage buffer.
The Begin time value is reported in terms of pico-seconds, and has been adjusted to include the frame
offset and user specified time alignment values, if any. For a further explanation of these values, see the
discussion of Timestamp values in the DataFormat section near the end of this document.
56
Deprecated
ILAModule::GetBytesPerSample
Description
This method returns the number of bytes required for each sample of data when a binary data format is
specified.
pBytesPerSample The number of bytes required per sample. This value is for the current
data format that was specified in the most recent call to
ILAModule::DefineDataFormat(). This value is meaningful only if a
binary data format was specified. If a text data format was specified,
the value returned is –1.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_INVALID_DATA_FORMATA valid data format must be defined before calling this
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
method. The data format you defined previously may
no longer be valid.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim BytesPerSample As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
A data format must be defined using ILAModule::DefineDataFormat() before calling this method. The
value returned is meaningful only for binary data formats.
57
Deprecated
ILAModule::GetChannelGroup
Description
This method is used to get of channels assigned to a channel group.
UserChannelGroupName This is the user defined name of the channel group whose
channel list is to be retrieved
ChannelNameList This is the list of channel names assigned to the channel
group. For individual channels the syntax is the hardware
pod name followed by the channel number enclosed in
parentheses, (e.g. A0(1), A0(2), etc.). Groups of
contiguous channels can be specified using a similar
syntax’ using a range of channel numbers within the
parentheses, (e.g. A0(7-0), A1(3-5), etc.). When all of the
channels in a hardware pod are to be specified, a
shorthand notation is allowed using just an empty pair of
parentheses, (e.g. A0(), A1(), etc.). The syntax for clock
and qualifier channels is the type identifier "CK" or "Q"
respectively, followed by a number, (e.g. CK0, CK1, Q0,
Q1, etc.). Multiple channels or channel groups can be
specified using a comma separated list. Embedded spaces
are not allowed.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform
TLA700_E_FAILED The operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim ChannelList As String
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
argument.
the operation.
58
Deprecated
‘Get the channel list assigned to group "Address"
ChannelList = LA.GetChannelGroup("Address")
ILAModule::GetChannelName
Description
This method is used to get the user assigned name for a channel of this module.
ODL Syntax
HRESULT GetChannelName( [in] BSTR HWChannelName
[out,retval]BSTR*
UserChannelName )
Arguments
HWChannelName
UserChannelName
HRESULT Return Codes
This is the hardware name of the channel whose
user name is to be retrieved. For normal
acquisition channels, the syntax is the hardware
pod name followed by the channel number
enclosed in parentheses, (e.g. A0(1), A0(2)
etc.). The syntax for clock and qualifier
channels is the type identifier "CK" or "Q"
respectively, followed by a number, (e.g. CK0,
CK1, Q0, Q1, etc.).
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_COUNTER_NOT_USEDThe counter is not currently being used.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim Slot As Long
Dim CounterHigh As Long
Dim CounterLow As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get counter value.
LA.GetCounterValue 1,CounterHigh,CounterLow
60
Deprecated
Remarks
A counter value is a 64-bit value. This method returns the value in the form of two 32-bit long values
representing the high and low words. Although the low word is returned as a signed long value, treat it as
an unsigned value.
Counter values are not available when the TLA server is running.
All TLA600 Series Logic Analyzers and all logic analyzer modules use 64 bits for the counter, however
the counter values are represented differently. For TLA600 Series Logic Analyzers and
TLA7Lx/Mx/Nx/Px/Qx Series Logic Analyzer modules, the 64 bits represent an unsigned value, ranging
from 0 to (2^64)-1. The TLA7Axx Series Logic Analyzer modules have counters that can be decremented
and the counter values can be negative. As a result, the 64 counter bits are a two’s complement
representation of a signed value ranging from –(2^63) to +(2^63)-1.
To interpret the counter value correctly, a TPI client must know whether the value is signed or unsigned.
The counter representation depends on the logic analyzer module type. Use the
ISystem::GetModulePropertiesBySlot method to determine the logic analyzer module type. If the module
is a TLA7Axx Series Logic Analyzer module, then the 64 bit counter is signed; otherwise, the counter is
unsigned.
ILAModule::GetData
Description
This method returns the specified acquisition data.
ODL Syntax
HRESULTGetData([in]longFirstSample,
[in]longNumSamples,
[out,retval]VARIANT*pData)
Arguments
FirstSampleThe sample number of the first sample to return. Sample numbers start with 0.
NumSamplesThe total number of samples to return.
pData
The acquisition data. The composition and format of the data is
determined by the ILAModule::DefineDataFormat() call. Data is returned
as a VARIANT. The variant is of type VT_ARRAY and points to a
SAFEARRAYThe SAFEARRAY has a dimension of one and has
NumSamples entries.
If the data type is TLA700_BINARY, the SAFEARRAY is of element
type VT_UI1 (unsigned char). The size of the array is: NumSamples *
ILAModule::GetBytesPerSample().
If the data type is TLA700_TEXT_*, the element type is VT_BSTR
(string). The size of the array is NumSamples.
The value specified for FirstSample must be greater than or equal to zero and less than the total number of
samples. NumSamples must be greater than zero and FirstSample + NumSamples must be less than or
equal to the total number of samples. This implies the following:
When sample suppression is not being used:
(FirstSample >= 0) and (FirstSample < Total # of acquired samples)
(NumSamples > 0) and ((FirstSample + NumSamples) <= Total # of acquired samples)
When sample suppression is being used:
(FirstSample >= 0) and (FirstSample < Total # of unsuppressed samples)
(NumSamples > 0) and ((FirstSample+NumSamples) <= Total # of unsuppressed samples)
A data format must be defined using ILAModule::DefineDataFormat () before calling this method. The
TLA server will allocate the space for the array of data. The client is responsible for freeing it when it is
no longer in use.
For information on important performance considerations see Tips for Improving Data Transfer
Performance.
When using Internal 2X, Internal 4X, External 2X, or External 4X clocking modes, the acquired data
appears different than when using standard Internal or External clocking modes. For example when using
Internal clocking, External clocking, or Source Synchronous clocking, one data sample in the listing
window equates to one data sample in the acquisition memory. However if you use Internal 2X clocking or
External 2X clocking, two data samples in the Listing window equate to one data sample in the acquisition
memory. If you use Internal 4X clocking or External 4X clocking, four data samples in the Listing window
equate to one data sample in acquisition memory. However, in both cases, the Listing window displays
dashes for duplicate demultiplex group values while the data returned by TPI shows the actual values. For
more information, see Internal 2X clocking mode, Internal 4X clocking mode, External 2X clocking mode,
External 4X clocking mode in the Appendix, or refer to the TLA application online help.
ILAModule::GetEndTime
Description
This method returns the end time of the module for the specified data set.
ODL Syntax
HRESULTGetEndTime([in]longDataSet,
[out]long*pTimeHighWord,
[out]long*pTimeLowWord)
Arguments
DataSetThis takes one of the values from the following table:
ValueDescription
TLA700_MAIN_DATASET (0) Main DataSet
TLA700_MAGNIVU_DATASET (1) MagniVu DataSet
TLA700_E_VIOLATION_DATASET (2)
pTimeHighWord The higher word of the end time in picoseconds.
pTimeLowWord The lower word of the end time in picoseconds.
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim TimeHigh As Long
Dim TimeLow As Long
Dim DataSet as Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get end time.
DataSet = 0
LA.GetEndTime DataSet,TimeHigh,TimeLow
The operation cannot be performed when the
system is acquiring data.
There is not enough memory to perform the
operation.
Remarks
The values returned for TLA700_MAIN_DATASET and TLA700_VIOLATION_DATASET are the
same, provided that glitches or setup and hold data were acquired.
End time is a 64-bit value. This method returns the value in the form of two long values representing the
high and low words. Though the low word is returned in a signed long value, it is to be treated as an
unsigned value.
End time is equivalent to the timestamp of the last sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual data acquisition begins. Other factors such as acquisition buffer depth, clock
rate, storage qualification or delay while waiting for a trigger condition to occur can also affect the period
of time between the start of the acquisition and the time of the last sample in the storage buffer.
The End time value is reported in terms of pico-seconds, and has been adjusted to include the frame offset
and user specified time alignment values, if any. For a further explanation of these values, see the
discussion of Timestamp values in the DataFormat section near the end of this document.
64
Deprecated
ILAModule::GetGroupNames
Description
This method retrieves the names of all groups defined in the module setup.
Group names are returned as a VARIANT. The variant is of type VT_ARRAY and
points to a SAFEARRAY. The SAFEARRAY has dimension 1 and the elements are of
type VT_BSTR. The number of groups is equal to the number of elements in the
SAFEARRAY. The groups are returned in the same order as they are specified in the
LA Setup Window.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim G As Variant
Dim Groups As Variant
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get group names.
Groups = LA.GetGroupNames
`Access group names.
For Each G In Groups
‘Use group name in G.
Next G
Remarks
If there are no groups defined, the SAFEARRAY returned will be empty.
65
Deprecated
ILAModule::GetGroupSize
Description
This method retrieves the number of channels in a specified group defined in the module setup.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
operation.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim G As Variant
Dim Groups As Variant
Dim GroupSize As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get group names.
Groups = LA.GetGroupNames
`Access group sizes.
For Each G In Groups
GroupSize = LA.GetGroupSize( G )
Next G
Remarks
This method returns the actual number of channels in the specified group. When data is transferred in
binary via GetData()/ExportData(), channel groups are padded to the nearest byte boundary.
66
Deprecated
ILAModule::GetNumSamples
Description
This method returns the number of unsuppressed samples in the acquisition memory of the module for the
specified data set.
ODL Syntax
HRESULTGetNumSamples([in]longDataSet,
[out,retval]long*pNumSamples)
Arguments
DataSetThis takes one of the values from the following table:
Value Description
TLA700_MAIN_DATASET (0) Main DataSet
TLA700_MAGNIVU_DATASET (1) MagniVu DataSet
TLA700_VIOLATION_DATASET (2) Glitch or Setup and Hold DataSet
pNumSamplesThe number of samples in the acquisition memory of this module.
The operation cannot be performed when the
system is acquiring data.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim NumSamples As Long
Dim DataSet As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get number of samples.
DataSet = 0
NumSamples = LA.GetNumSamples(DataSet)
operation.
67
Deprecated
Remarks
This method will return a value of zero if no data is available.
The values returned for TLA700_MAIN_DATASET and TLA700_VIOLATION_DATASET are the
same, provided glitches or setup and hold violations were acquired.
If sample suppression is being used, the values returned for TLA700_MAIN_DATASET and
TLA700_VIOLATION_DATASET reflect the number of samples that are not suppressed.
ILAModule::GetStartTime
Description
This method returns the start date and start time for the module’s acquisition.
pDateThe start date and start time of the module’s acquisition. This is returned as a
VARIANT. The variant is of type VT_DATE.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_SYSTEM_RUNNING
TLA700_E_VALUE_NOT_AVAILABLEThe required value(s) are not available.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
The operation cannot be performed when the system
is acquiring data.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim StartTime As Date
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get start time.
StartTime = LA.GetStartTime
Remarks
The start of an acquisition is not the same as the first sample of data. The start of an acquisition is the
moment at which the system is enabled to begin acquiring data. It takes some finite amount of time after
the start of the acquisition before a module can actually store a sample of data.
68
Deprecated
ILAModule::GetTimerValue
Description
This method returns the final value of a module timer from the last acquisition.
A timer value is a 64-bit value. This method returns the value in the form of two 32-bit long values
representing the high and low words. Although the low word is returned as a signed long value, treat it as
an unsigned value.
Timer values are not available when the TLA server is running.
69
Deprecated
ILAModule::GetTimestampMultiplier
Description
This multiplier is to be used only when acquisition data is returned in binary format. This method returns
the value that must be multiplied with a timestamp value to obtain the final timestamp value in
picoseconds. This multiplier is to be used only when data is returned in RawWithTimestamp format.
The values returned for TLA700_MAIN_DATASET and TLA700_VIOLATION _DATASET are the
same, provided glitches or setup and hold violations were acquired.
If sample suppression is being used and the actual trigger sample is suppressed, the position of the trigger
is adjusted to an unsuppressed sample. In this case the values returned for TLA700_MAIN_DATASET
and TLA700_VIOLATION_DATASET will reflect the adjusted position of the trigger relative to the
unsuppressed samples.
71
Deprecated
ILAModule::GetTriggerTime
Description
This method returns the time stamp of the trigger sample of the module’s acquired data for the specified
data set.
ODL Syntax
HRESULTGetTriggerTime([in]longDataSet,
[out]long*pTimeHighWord,
[out]long*pTimeLowWord)
Arguments
DataSetThis takes one of the values from the following table:
ValueDescription
TLA700_MAIN_DATASET (0) Main DataSet
TLA700_MAGNIVU_DATASET (1) MagniVu DataSet
TLA700_VIOLATION_DATASET (2) Glitch or Setup and Hold DataSet
pTimeHighWordThe higher word of the trigger time in picoseconds.
pTimeLowWordThe lower word of the trigger time in picoseconds.
TLA700_E_NO_TRIGGER_SAMPLEThere is no trigger sample.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim TimeHigh As Long
Dim TimeLow As Long
Dim DataSet as Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get trigger time.
DataSet = 0
The operation cannot be performed when the
system is acquiring data.
operation.
72
Deprecated
LA.GetTriggerTime DataSet,TimeHigh,TimeLow
Remarks
The values returned for TLA700_MAIN_DATASET and TLA700_VIOLATION_DATASET are the
same, provided that glitches or setup and hold data were acquired.
Trigger time is a 64-bit value. This method returns the value in the form of two long values representing
the high and low words. Though the low word is returned in a signed long value, it is to be treated as an
unsigned value.
Trigger time is equivalent to the timestamp of the trigger sample in the acquisition buffer. Its value is the
number of pico-seconds that have elapsed since the start of the acquisition. The start of the acquisition is
the moment at which the system is enabled to begin acquiring data, however, there will always be some
elapsed time before actual data acquisition begins. Other factors such as acquisition buffer depth, clock
rate, storage qualification or delay while waiting for a trigger condition to occur can also affect the period
of time between the start of the acquisition and the time of the trigger sample in the storage buffer.
The Trigger time value is reported in terms of pico-seconds, and has been adjusted to include the frame
offset and user specified time alignment values, if any. For a further explanation of these values, see the
discussion of Timestamp values in the DataFormat section near the end of this document.
ILAModule::LoadModule
Description
This method loads a module from the specified TLA system or module file onto the current module.
ODL Syntax
HRESULTLoadModule([in]BSTRModulePath,
[in]BSTRModuleName)
Arguments
ModulePathThe full path to the specified TLA system or module file. For example:
"C:\My Documents\My System.tla"
ModuleNameThe name of the module in the specified file to load.
HRESULT Return Codes
ReturnCodeDescription
S_OK The operation succeeded.
TLA700_E_LOAD_INVALID_FILE An error occurred opening the file for reading.
TLA700_E_LOAD_INVALID_MODULE_TYPE The module specified is not compatible.
TLA700_E_LOAD_NOT_ENOUGH_CHANNELS There are not enough channels to load the
TLA700_E_LOAD_NOT_ENOUGH_MODULES There are not enough physical modules to load
TLA700_E_LOAD_MODULE_ERROR An error occurred loading a module from a file.
TLA700_E_SYSTEM_RUNNING The operation cannot be performed when the
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
TLA700_E_FAILED The operation was unsuccessful.
TABLE_E_MODAL_DIALOG_OPEN The operation was disallowed because a modal
specified module.
the specified module.
system is acquiring data.
operation.
dialog box is open.
73
Deprecated
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Load module.
LA.LoadModule "C:\My Documents\System1.tla", "LA 1"
Remarks
Invoking this method does not result in a merge operation even if the destination module does not have
enough channels/physical modules.
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
Under some circumstances, when this operation is performed under the TLA Application Graphical User
Interface, the user will be prompted to approve changes to some trigger actions. The purpose of the
proposed changes (if any) is to adjust individual module trigger programs for compatibility with the
System Trigger specification. When this operation is performed using the programmatic (TPI), no user
prompt is possible and restored trigger programs will not be altered.
ILAModule::LoadTrigger
Description
This method loads the trigger settings from the specified saved system or module file onto the current
module.
ODL Syntax
HRESULTLoadTrigger([in]BSTRModulePath,
[in]BSTRModuleName)
74
Deprecated
Arguments
ModulePathThe full path to the saved system or module file.
For example: "C:\My Documents\My System.tla"
ModuleNameThe name of the module in the specified file whose trigger settings are to be
loaded.
HRESULT Return Codes
ReturnCodeDescription
S_OK The operation succeeded.
TLA700_E_LOAD_INVALID_FILE An error occurred opening the file for reading.
TLA700_E_LOAD_INVALID_MODULE_TYPE The module specified is not compatible.
TLA700_E_LOAD_MODULE_ERROR An error occurred loading a module from the file.
TLA700_E_SYSTEM_RUNNING The operation cannot be performed when the system
is acquiring data.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
operation.
TLA700_E_FAILED The operation was unsuccessful.
TLA700_E_MODAL_DIALOG_OPEN The operation is disallowed because a modal dialog
is open.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Load trigger.
LA.LoadTrigger "C:\My Documents\System1.tla", "LA 1"
Remarks
All file paths without machine qualifiers refer to drives mapped on the TLA instrument.
Under some circumstances, when this operation is performed under the TLA Application Graphical User
Interface, the user will be prompted to approve changes to some trigger actions. The purpose of the
proposed changes (if any) is to adjust individual module trigger programs for compatibility with the
System Trigger specification. When this operation is performed using the programmatic (TPI), no user
prompt is possible and restored trigger programs will not be altered.
75
Deprecated
ILAModule::MemoryDepth
Description
This property is used to get or set the Memory Depth for this module.
TLA700_E_DUPLICATE_MODULE_NAME This module name is already in use.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the operation.
TLA700_E_FAILED The operation was unsuccessful.
TLA700_E_MODAL_DIALOG_OPEN
The operation was disallowed because a modal dialog
is open.
78
Deprecated
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Dim ModuleName As String
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Get module name.
ModuleName = LA.Name
‘Set module name.
LA.Name = "My LA"
Remarks
When retrieving the name, the TLA server will allocate the space for the returned string. The client is
responsible for freeing it when it is no longer in use.
A module name cannot exceed twelve characters in length and must contain at least one non-whitespace
character. Modules must be assigned unique names.
ILAModule::SaveModule
Description
This method saves the module to a file.
ODL Syntax
HRESULTSaveModule([in]BSTRModulePath,
[in]BSTRUserComment,
[in]longSaveData)
Arguments
ModulePathThe full path to the destination file.
For example: "C:\My Documents\My Module.tla"
UserCommentThe user comment to be saved in the file.
SaveDataThis flag takes one of the values from the following table:
ValueDescription
TLA700_SAVE_NO_DATA (0)Do not save acquisition data in file.
TLA700_SAVE_DATA (1)Save acquisition data in file.
TLA700_SAVE_UNSUPPRESSED_DATA (2)Save only unsuppressed acquisition data in file.
UserChannelGroupNameThis is the user defined name of
the channel group whose channel
list is to be set. If no channel
group with this name exists, one
will be created.
ChannelNameListThis is the list of channel names
to be assigned to the channel
group. For individual channels the
syntax is the hardware pod name
followed by the channel number
enclosed in parentheses, (e.g.
A0(1), A0(2), etc.). Groups of
contiguous channels can be
specified using a similar syntax,
using a range of channel numbers
within the parentheses, (e.g.
A0(7-0), A1(3-5), etc.). When all
of the channels in the hardware
pod are to be specified, a
shorthand notation is allowed
using just an empty pair of
parentheses, (e.g. A(), A1(),
etc.). The syntax for clock and
qualifier channels is the type
identifier "CK or "Q"
respectively, followed by a
number, (e.g. CK0, CK1, Q0, Q1,
etc.). Multiple channels or
channel groups can be specified
using a comma separated list.
Embedded spaces are not allowed.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
operation.
TLA700_E_MODAL_DIALOG_OPEN The operation was disallowed because a
modal dialog is open.
TLA700_E_FAILED The operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Create a channel group named "Address" and populate it
‘with channels from pods A2, A1 and A0
LA.SetChannelGroup "Address", "A2(7-0),A1(7-0),A0(7-0)"
‘Change the channel list for group "Address"
LA.SetChannelGroup "Address", "A3(7-0),A2(7-0),A1(7-0),A0(7-0)"
82
Deprecated
ILAModule::SetChannelName
Description
This method is used to set the user assigned name for a channel of this module.
ODL Syntax
HRESULT SetChannelName( [in] BSTR HWChannelName,
[in] BSTR UserChannelName )
Arguments
HWChannelNameThis is the hardware name of the channel whose
user name is to be set. For normal acquisition
channels, the syntax is the hardware pod name
followed by the channel number enclosed in
parentheses, (e.g. A0(1), A0(2), etc.). The
syntax for clock and qualifier channels is the
type identifier "CK" or "Q" respectively,
followed by a number, (e.g. CK0, CK1, Q0, Q1,
etc.).
UserChannelName This is the user name to be assigned to a
specified channel. The user name must be unique
among channels, and must not contain embedded
spaces or commas.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
operation.
TLA700_E_MODAL_DIALOG_OPEN Operation was disallowed because a modal dialog
is open.
TLA700_E_FAILED The operation was unsuccessful.
83
Deprecated
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Set User channel name to "Reset"
‘for probe C3, channel 4
LA.SetChannelName "C3(4)", "Reset"
Remarks
White space characters and comma "," are not allowed in channel names.
ILAModule::SetEventValue
Description
This method modifies the value(s) of a specified trigger event.
ODL Syntax
HRESULTSetEventValue([in]BSTREventID,
[in]BSTREventValue)
Arguments
EventID
For example: "1.2.3" specifies state 1, clause 2, event 3.
For example: "S.3" specifies the third event of the storage clause.
EventValueThis string specifies the event value(s). The format is dependent on the event
Word value
This string identifies the trigger event to be modified. Only recognizer
values can be set. This is of the form: "<state>.<clause>.<event>"
State, clause and event numbers begin with 1.
The conditional storage clause is a special trigger state. It is specified
using the following format "S.<event>"
type. It can consist of multiple subparts. Group and word values must be
in hexadecimal. Timer values must be specified in picoseconds.
Group value
Counter value
Timer value
: "aa" (for specifying single values) or "00,FF" (for specifying ranges)
:"ffff,4444,aaaa" (when the setup defines three, 16-bit channel groups)
:"10"
:"4000"
84
Deprecated
Note: The TLA7Axx Series Logic Analyzer modules can have negative counter values. Therefore,
counter values such as –200 are valid, but not for TLA600 Series Logic Analyzers or for
TLA7Lx/Mx/Nx/Px/Qx Series Logic Analyzer modules. Passing a negative event value to a non
TLA7Axx Series Logic Analyzer module counter, sets the target counter to zero; it does not cause
an error.
TLA700_E_INVALID_EVENT_TYPE The specified event type is not supported.
TLA700_E_OUT_OF_TRIGGER_RESOURCES The required trigger resources could not be
allocated.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
operation.
TLA700_E_FAILED The operation was unsuccessful.
TLA700_E_MODAL_DIALOG_OPEN The operation was disallowed because a modal
dialog is open.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject(
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
‘Set event value.
LA.SetEventValue
Remarks
Timer values must be in 4 ns increments, starting from 4 ns.
Event types, event operators, glitch settings, setup and hold group settings, and channel event values
cannot be changed using this method; use ILAModule::LoadTrigger() to set these values.
Changed values do not take effect until the next acquisition. If an error value is returned, the event retains
its original value.
"1.2.3", "FF"
"TLA700.Application")
85
Deprecated
ILAModule::SetTriggerPosition
Description
This method specifies a trigger position for the module.
TLA700_DEFAULT_SYMBOL_OFFSET applies only to TSF file formats and
indicates that the offset should be read from the TSF file header.
For TLA700_CUSTOM_SYMBOL_OFFSET, the actual value of a custom offset is
specified in the SymbolOffset argument.
SymbolOffset – The value of a custom offset. This is specified as a string and takes the form "+N"
or "N" or "-N" where N is the value of the offset in hexadecimal and can be from 0 to
0xFFFFFFFF. + indicates that the offset is to be added and – indicates that the offset
is to be subtracted. If a sign is not specified, + is assumed.
This argument is ignored if OffsetType is equal to
TLA700_DEFAULT_SYMBOL_OFFSET.
This property is used to specify which Internal Signal, if any, should be connected to External Signal In,
or to get the current setting for External Signal In.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
operation.
TLA700_E_MODAL_DIALOG_OPEN The operation was disallowed because a modal
dialog is open.
TLA700_E_FAILED The operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim InternalSignal As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get External Signal In setting.
InternalSignal = Sys.ExternalSignalIn
‘Set External Signal In to Signal 3
Sys.ExternalSignalIn = TLA700_INTERNAL_SIGNAL_3
ISystem::ExternalSignalOut
Description
This property is used to specify which Internal Signal, if any, should be connected to External Signal Out,
or to get the current setting for External Signal Out.
The logical polarity of External Signal Out. When True,
then the External Signal Out is low when asserted.
The logical polarity of External Signal Out. When True,
then the External Signal Out is low when asserted.
Value Description
TRUE External Signal Out Polarity is Low True
FALSE External Signal Out Polarity is High True
HRESULT Return Codes
Return Code Description
S_OK The operation succeeded.
TLA700_E_OUT_OF_MEMORY There is not enough memory to perform the
TLA700_E_MODAL_DIALOG_OPEN The operation was disallowed because a modal
TLA700_E_FAILED The operation was unsuccessful.
operation.
dialog is open.
92
Deprecated
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LowTrue As Boolean
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get External Signal Out Polarity setting.
LowTrue = Sys.ExternalSignalOutLowTrue
‘Set External Signal Out Polarity to Low True
Sys.ExternalSignalOutLowTrue = True
ISystem::GetDiagCalStatus
Description
This method returns the power-on diagnostics and calibration status. The results do not include
information for external oscilloscope modules.
ODL Syntax
HRESULTGetDiagCalStatus([out]BSTR*pDiagCalStatus)
Arguments
pDiagCalStatus
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim Status As String
The status of power-on diagnostics and calibration.This is of the form:
"<diagnostics status>,<calibration status>"
For example: "Pass,Calibrated"
The power-on diagnostics status can take one of the following
values: "Running", "Pass", "Fail", "Mixed", or "Unknown"
The calibration status can take one of the following values:"Calibrated",
"Unknown", "Failed", "Running", or "No Calibration Required"
operation.
Set App = CreateObject("TLA700.Application")
93
Deprecated
‘Get system.
Set Sys = App.GetSystem
‘Get diag/cal status.
Status = Sys.GetDiagCalStatus
Remarks
The TLA server allocates space for the returned string. The client is responsible for freeing the space
when it is no longer in use.
It is recommended that the client program examine the power-on diagnostics and calibration status and
only use the TLA instrument if the value is "Pass, Calibrated". The TLA instrument will not function
properly if it fails power-on diagnostics or is not calibrated
ISystem::GetFirstModuleSlot
Description
This method returns the number of the first slot in the mainframe.
ODL Syntax
HRESULTGetFirstModuleSlot([out,retval]long*pSlot)
Arguments
pSlot
HRESULT Return Codes
The number of the first slot in the mainframe.
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim FirstModuleSlot As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get first slot.
FirstModuleSlot = Sys.GetFirstModuleSlot
Remarks
The value returned is the slot number of the first slot.
For the TLA714 and TLA704 Color Portable Mainframe and the TLA600 series logic analyzer, the slot
number is 1.
For the TLA711 and TLA720 Color Benchtop Mainframe the slot number is 0.
Refer to Slot Numbers for Expansion Mainframes for more information on how to specify slot numbers
with expansion mainframes.
operation.
94
Deprecated
ISystem::GetModuleByName
Description
This method returns the interface pointer for the logical module with the specified name. The module
name should be as specified in the TLA System window.
ODL Syntax
HRESULTGetModuleByName([in]BSTRModuleName,
[out,retval]
IDispatch**ppDispatch)
Arguments
ModuleName
ppDispatchThe interface pointer for the module with the specified name.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
The name of the required module. This is the module name that is
shown in the TLA System window.
operation.
Dim App As Object
Dim Sys As Object
Dim LA As Object
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module.
Set LA = Sys.GetModuleByName(
Remarks
Module references obtained using this method are invalidated by operations such as
ISystem::LoadSystem that affect the logical modules in the system. Remember to release any module
references before performing such operations.
"LA 1")
ISystem::GetModuleBySlot
Description
This method returns the interface pointer for the logical module in the specified slot.
ODL Syntax
HRESULTGetModuleBySlot([in]longSlot,
[out,retval]IDispatch**ppDispatch)
95
Deprecated
Arguments
Slot
ppDispatch The interface pointer for the module in the specified slot.
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_EMPTY_SLOTThe specified slot is empty.
TLA700_E_UNKNOWN_MODULEThe module in the specified slot is not recognized.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim LA As Object
The slot number. This can correspond to any of the slots occupied by the
logical module.
operation.
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module in slot 3.
Set LA = Sys.GetModuleBySlot(3)
Remarks
Refer to Slot Numbers for Expansion Mainframes for more information on how to specify slot numbers
with expansion mainframes.
Module references obtained by this method are invalidated by operations such as ISystem::LoadSystem
that affect the logical modules in the system. Remember to release any module references before
performing such operations.
This method can not be used with external oscilloscopes.
ISystem::GetModuleNames
Description
This method retrieves the names of all logical modules in the system, including external oscilloscope
modules.
Module names are returned as a VARIANT. The variant is of type VT_ARRAY and points to a
SAFEARRAY. The SAFEARRAY has dimension 1 and the elements are of type VT_BSTR. The number
of modules is equal to the number of elements in the SAFEARRAY.
– The module names.
96
Deprecated
HRESULT Return Codes
Return CodeDescription
S_OKThe operation succeeded.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim M As Variant
Dim Modules As Variant
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get module names.
Modules = Sys.GetModuleNames
`Access module names.
For Each M In Modules
‘Use module name in M.
Next M
Remarks
If there are no modules, the SAFEARRAY returned will be empty.
ISystem::GetModulePropertiesBySlot
Description
This method returns the properties of the physical module in the specified slot.
ODL Syntax
HRESULTGetModulePropertiesBySlot([in]longSlot,
[out,retval]BSTR*pModuleProperties)
Arguments
Slot
The slot number.
pModuleProperties
LA "Tektronix,TLA7N4,2.0.1,Pass,Calibrated,100
DSO Tektronix,TLA7E2,2.0.2,Fail,Calibrated,2500
Controller "Tektronix,TLA711,2.0.033,Pass"
Unknown module "0ffd,5d07"
Expansion Interface module: "Tektronix TLA7XM,Pass"
Refer to ISystem::GetDiagCalStatus for possible values for
The properties of the physical module in the specified slot. This is
of the format shown below. Fields are included as they apply.
"<manufacturer>,<model>,<firmware version>,
<diagnostics status>,<calibration status>,
<speed>,<memory depth>"
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the
operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
Dim App As Object
Dim Sys As Object
Dim ModDesc As String
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
‘Get description of module in slot 3.
ModDesc = Sys.GetModulePropertiesBySlot(3)
Remarks
For modules that occupy more than one slot, the same string is returned for each of the slots.
Refer to Slot Numbers for Expansion Mainframes for more information on how to specify slot numbers
with expansion mainframes.
The TLA server allocates space for the returned string. The client is responsible for freeing the space
when it is no longer in use.
Do not use a module that does not pass power-on diagnostics or is not calibrated.
This method cannot be used with external oscilloscopes.
98
Deprecated
ISystem::GetModuleSlotByName
Description
This method returns the slot number for the (logical) module with specified name. The slot number
returned is the lowest numbered slot occupied by the module.
TLA700_E_OUT_OF_MEMORYThere is not enough memory to perform the operation.
TLA700_E_FAILEDThe operation was unsuccessful.
Example
(Microsoft Visual Basic)
– The user name of the required module. This is the name that you will see in the
System Window.
Dim App As Object
Dim Sys As Object
Dim ModuleSlot As Long
Set App = CreateObject("TLA700.Application")
‘Get system.
Set Sys = App.GetSystem
…
‘Get module slot number.
ModuleSlot = Sys.GetModuleSlotByName "LA 1"
Remarks
The slot value returned is the lowest numbered slot occupied by the physical module. If the named
module is part of a merged set of modules, the slot number returned is that corresponding to the master
module.
99
Deprecated
ISystem::GetModuleTypeBySlot
Description
This method returns the type of the physical module in the specified slot.
ODL Syntax
HRESULTGetModuleTypeBySlot([in]longSlot,
[out,retval]long*pModuleType)
Arguments
Slot
pModuleTypeThe type of the physical module in the specified