www.vtiinstruments.com
EX10xxA Programming
117
transmits acquisition data to the host PC periodically, whenever data is available, without the host
having to request it.
The streaming data interface uses a separate “socket”, or communications link, than the one used
for other instrument driver functions. Since TCP/IP can support thousands of concurrent sockets, all
multiplexed on the same network interface, this does not present a problem for the network.
NOTE
The network communication diagrams provided are oversimplifications. Since TCP/IP is used as
the transport layer, there are potentially several Ethernet packets involved (send and receive) in each
high-level message. These packets provide, among other things, the reliable data transport feature
of TCP.
The asynchronous nature of the streaming data arrival at the host PC presents the issue of how to
deliver the data to the user application. For efficiency, particularly when the acquisition system
consists of many instruments, a multi-threaded model was chosen.
Multi-threaded programming is beyond the scope of this manual, but the general idea is that an
application can have multiple, concurrent “threads” of control. By default, all applications have one
thread, the one that begins executing at the main() function (or similar entry point, depending on the
programming language). Optionally, applications may have additional, programmer created threads.
These threads all execute in the same memory space, making it very efficient for them to share data.
This is different from multi-process programming, wherein each process – basically a memory space
with a single, default thread – executes independently.
Threads execute asynchronously to each other by default – that is, their execution relative to other
threads within the same application (process) is non-deterministic, and shared data must be protected
by design or through suitable inter-thread communication mechanisms (e.g., mutexes) to guarantee
consistency. Again, multi-threaded programming is beyond the scope of this manual, but it is
important to understand the fundamentals before the streaming data mechanism can be used
properly. For more information on this topic, we recommend reviewing a textbook on operating
systems (e.g.,
Operating System Concepts
, by Silberschatz, Galvin, and Gagne or
Modern Operating
Systems
, by Tanenbaum) as well as the Windows SDK information available online.
Summary of Contents for EX1000A
Page 28: ...VTI Instruments Corp 28 EX10xxA Introduction EX1044 DIAGRAM ...
Page 29: ...www vtiinstruments com EX10xxA Introduction 29 FIGURE 1 5 EX1044 TABLE TOP USAGE ...
Page 34: ......
Page 56: ......
Page 74: ......
Page 130: ......
Page 282: ......