Introduction to LabVIEW / Chapter 1: |
Virtual Instruments / 1.1: |
The Front Panel / 1.1.1: |
Block Diagram / 1.1.2: |
Executing VIs / 1.1.3: |
LabVIEW File Extensions / 1.1.4: |
LabVIEW Projects / 1.2: |
Help / 1.3: |
Built-in Help / 1.3.1: |
Websites / 1.3.2: |
Data Flow Programming / 1.4: |
Menus and Palettes / 1.5: |
Front Panel Controls / 1.6: |
User Control Sets / 1.6.1: |
Numeric / 1.6.1.1: |
Boolean / 1.6.1.2: |
String & Path / 1.6.1.3: |
Ring & Enum, List & Table / 1.6.1.4: |
Array, Cluster, and Matrix / 1.6.1.5: |
Graphs and Charts / 1.6.1.6: |
String & Path and I/O / 1.6.1.7: |
Block Diagram Functions / 1.7: |
Structures / 1.7.1: |
Sequence Structure / 1.7.1.1: |
Case Structure / 1.7.1.2: |
For Loop / 1.7.1.3: |
While Loop / 1.7.1.4: |
Event Structure / 1.7.1.5: |
Disable Structure / 1.7.1.6: |
Timed Structure / 1.7.1.7: |
Formula Node / 1.7.1.8: |
Numeric, Boolean, String, and Comparison / 1.7.2: |
Array and Cluster / 1.7.3: |
Timing / 1.7.4: |
Dialog and User Interface / 1.7.5: |
File I/O / 1.7.6: |
Instrument I/O, Connectivity, and Communication / 1.7.7: |
Creating Connectors / 1.7.8: |
Editing Icons / 1.7.9: |
Using SubVIs / 1.7.10: |
VI Setup / 1.7.11: |
Setting Options / 1.8: |
Paths / 1.8.1: |
Environment / 1.8.2: |
Revision History / 1.8.4: |
VI Server and Web Server / 1.8.5: |
Controls/Functions Palettes / 1.8.6: |
LabVIEW Features / Chapter 2: |
Global and Local Variables / 2.1: |
Shared Variables / 2.2: |
Customizing Controls / 2.3: |
Custom Controls / 2.3.1: |
Type Definitions / 2.3.2: |
Strict Type Definitions / 2.3.3: |
Property Nodes / 2.4: |
Reentrant VIs / 2.5: |
Libraries (.LLB) / 2.6: |
Webserver / 2.7: |
Web Publishing Tool / 2.8: |
Instrument Driver Tools / 2.9: |
Profile Functions / 2.10: |
VI Profiler / 2.10.1: |
Buffer Allocations / 2.10.2: |
VI Metrics / 2.10.3: |
Auto SubVI Creation / 2.11: |
Graphical Comparison Tools / 2.12: |
Compare VIs / 2.12.1: |
Compare VI Hierarchies / 2.12.2: |
SCC Compare Files / 2.12.3: |
Report Generation Palette / 2.13: |
Application Builder / 2.14: |
Sound VIs / 2.15: |
Application Control / 2.16: |
VI Server VIs / 2.16.1: |
Menu VIs / 2.16.2: |
Help VIs / 2.16.3: |
Other Application Control VIs / 2.16.4: |
Advanced Functions / 2.17: |
Data Manipulation / 2.17.1: |
Calling External Code / 2.17.2: |
Synchronization / 2.17.3: |
Source Code Control / 2.18: |
Configuration / 2.18.1: |
Adding and Modifying Files / 2.18.2: |
Advanced Features / 2.18.3: |
Graphs / 2.19: |
Standard Graphs / 2.19.1: |
3-D Graphs / 2.19.2: |
Digital and Mixed Signal Graphs / 2.19.3: |
Picture Graphs / 2.19.4: |
Data Logging / 2.20: |
Find and Replace / 2.21: |
Print Documentation / 2.22: |
VI History / 2.23: |
Key Navigation / 2.24: |
Express VIs / 2.25: |
Navigation Window / 2.26: |
Splitter Bar / 2.27: |
Bibliography |
State Machines / Chapter 3: |
Introduction / 3.1: |
State Machines in LabVIEW / 3.1.1: |
When to Use a State Machine / 3.1.2: |
Types of State Machines / 3.1.3: |
Enumerated Types and Type Definitions / 3.2: |
Type Definitions Used with State Machines / 3.2.1: |
Creating Enumerated Constants and Type Definitions / 3.2.2: |
Converting between Enumerated Types and Strings / 3.2.3: |
Drawbacks to Using Type Definitions and Enumerated Controls / 3.2.4: |
Sequence-Style State Machine / 3.3: |
When to Use a Sequence-Style State Machine / 3.3.1: |
Example / 3.3.2: |
Test Executive-Style State Machine / 3.4: |
The LabVIEW Template Standard State Machine / 3.4.1: |
When to Use a Test Executive-Style State Machine / 3.4.2: |
Recommended States for a Test Executive-Style State Machine / 3.4.3: |
Determining States for Test Executive-Style State Machines / 3.4.4: |
Classical-Style State Machine / 3.4.5: |
When to Use a Classical-Style State Machine / 3.5.1: |
Queued-Style State Machine / 3.5.2: |
When to Use the Queued-Style State Machine / 3.6.1: |
Example Using LabVIEW Queue Functions / 3.6.2: |
Example Using an Input Array / 3.6.3: |
Drawbacks to Using State Machines / 3.7: |
Recommendations and Suggestions / 3.8: |
Documentation / 3.8.1: |
Ensure Proper Setup / 3.8.2: |
Error, Open, and Close States / 3.8.3: |
Status of Shift Registers / 3.8.4: |
Typecasting an Index to an Enumerated Type / 3.8.5: |
Make Sure You Have a Way Out / 3.8.6: |
Problems/Examples / 3.9: |
The Blackjack Example / 3.9.1: |
The Test Sequencer Example / 3.9.2: |
The PC Calculator Example / 3.9.3: |
Application Structure / Chapter 4: |
Planning / 4.1: |
Purpose of Structure / 4.2: |
Software Models / 4.3: |
The Waterfall Model / 4.3.1: |
The Spiral Model / 4.3.2: |
Block Diagrams / 4.3.3: |
Description of Logic / 4.3.4: |
Project Administration / 4.4: |
LabVIEW Documentation / 4.5: |
Printing LabVIEW Documentation / 4.5.2: |
The Three-Tiered Structure / 4.5.3: |
Main Level / 4.7: |
User Interface / 4.7.1: |
User Interface Design / 4.7.1.1: |
Property Node Examples / 4.7.1.2: |
Customizing Menus / 4.7.1.3: |
Exception-Handling at the Main Level / 4.7.2: |
Second Level - Test Level / 4.8: |
Bottom Level - Drivers / 4.9: |
Style Tips / 4.10: |
Sequence Structures / 4.10.1: |
Nested Structures / 4.10.2: |
Drivers / 4.10.3: |
Polling Loops / 4.10.4: |
Array Handling / 4.10.5: |
The LabVIEW Project / 4.11: |
Project Overview / 4.11.1: |
Project File Operations / 4.11.2: |
Project Library / 4.11.3: |
Project File Organization / 4.11.4: |
Build Specifications / 4.11.5: |
Source Code Management / 4.11.6: |
Summary / 4.12: |
Communication Standards / Chapter 5: |
GPIB / 5.1.1: |
Serial Communications / 5.1.2: |
VXI / 5.1.3: |
LXI / 5.1.4: |
VISA Definition / 5.1.5: |
DDE / 5.1.6: |
OLE / 5.1.7: |
TCP/IP / 5.1.8: |
DataSocket / 5.1.9: |
Traditional DAQ / 5.1.10: |
NI-DAQmx / 5.1.11: |
Code Interface Node and Call Library Function / 5.1.12: |
Driver Classifications / 5.2: |
Configuration Drivers / 5.2.1: |
Measurement Drivers / 5.2.2: |
Status Drivers / 5.2.3: |
Inputs/Outputs / 5.3: |
Error Handling / 5.4: |
NI Spy / 5.5: |
NI Spy Introduction / 5.5.1: |
Configuring NI Spy / 5.5.2: |
Running NI Spy / 5.5.3: |
Driver Guidelines / 5.6: |
Reuse and Development Reduction / 5.7: |
Driver Example / 5.8: |
Instrument I/O Assistant / 5.9: |
IVI Drivers / 5.10: |
Classes of IVI Drivers / 5.10.1: |
Interchangeability / 5.10.2: |
Simulation / 5.10.3: |
State Management / 5.10.4: |
IVI Driver Installation / 5.10.5: |
IVI Configuration / 5.10.6: |
How to Use IVI Drivers / 5.10.7: |
Soft Panels / 5.10.8: |
IVI Driver Example / 5.10.9: |
Exception Handling / Chapter 6: |
Exception Handling Defined / 6.1: |
Types of Errors / 6.2: |
I/O Errors / 6.2.1: |
Logical Errors / 6.2.2: |
Built-in Error Handling / 6.3: |
Error Cluster / 6.3.1: |
Error Codes / 6.3.2: |
VISA Error Handling / 6.3.3: |
Simple Error Handler / 6.3.4: |
General Error Handler / 6.3.5: |
Find First Error / 6.3.6: |
Clear Error / 6.3.7: |
Performing Exception Handling / 6.4: |
When? / 6.4.1: |
Exception-Handling at Main Level / 6.4.2: |
Programmer-Defined Errors / 6.4.3: |
Managing Errors / 6.4.4: |
State Machine Exception Handling / 6.4.5: |
Logging Errors / 6.4.6: |
External Error Handler / 6.4.7: |
Proper Exit Procedure / 6.4.8: |
Exception Handling Example / 6.4.9: |
Debugging Code / 6.5: |
Error List / 6.5.1: |
Execution Highlighting / 6.5.2: |
Single-Stepping / 6.5.3: |
Probe Tool / 6.5.4: |
Breakpoint Tool / 6.5.5: |
Suspending Execution / 6.5.6: |
NI Spy/GPIB Spy / 6.5.7: |
Utilization of Debugging Tools / 6.5.9: |
Evaluating Race Conditions / 6.5.10: |
Shared Variable / 6.6: |
Overview of Shared Variables / 7.1: |
Single Process Variables / 7.1.1: |
Network: Published Variable / 7.1.2: |
Shared Variable Engine / 7.2: |
Accessing the Shared Variable Engine / 7.2.1: |
Shared Variable Manager / 7.2.1.1: |
Windows Event Viewer / 7.2.1.2: |
Windows Performance Monitor / 7.2.1.3: |
Windows Task Manager / 7.2.1.4: |
Shared Variable Processes and Services / 7.3: |
Shared Variable Networking / 7.4: |
Shared Variable Domains / 7.5: |
Pitfalls of Distributed Applications / 7.6: |
Shared Variables and Network Security / 7.7: |
LabVIEW Specific Security Issues / 7.7.1: |
.NET, ActiveX, and COM / Chapter 8: |
Introduction to OLE, COM, and ActiveX / 8.1: |
Definition of Related Terms / 8.1.1: |
Properties and Methods / 8.1.1.1: |
Interfaces / 8.1.1.2: |
Clients and Servers / 8.1.1.3: |
In-Process and Out-of-Process / 8.1.1.4: |
The Variant / 8.1.1.5: |
COM / 8.2: |
ActiveX / 8.3: |
Description of ActiveX / 8.4.1: |
ActiveX Definitions / 8.4.2: |
ActiveX Technologies / 8.4.3: |
ActiveX Terminology / 8.4.3.1: |
Events / 8.4.4: |
Containers / 8.4.5: |
How ActiveX Controls Are Used / 8.4.6: |
.NET / 8.5: |
Description of .NET / 8.5.1: |
Common Language Runtime / 8.5.2: |
Intermediate Language / 8.5.3: |
Web Protocols / 8.5.4: |
Assembly / 8.5.5: |
Global Assembly Cache / 8.5.6: |
LabVIEW and ActiveX / 8.6: |
The LabVIEW ActiveX Container / 8.6.1: |
Embedding Objects / 8.6.1.1: |
Inserting ActiveX Controls and Documents / 8.6.1.2: |
The ActiveX Palette / 8.6.2: |
Automation Open and Close / 8.6.2.1: |
The Property Node / 8.6.2.2: |
The Invoke Node / 8.6.2.3: |
Variant to Data Function / 8.6.2.4: |
Using the Container versus Automation / 8.6.3: |
Event Support in LabVIEW / 8.6.4: |
Register Event / 8.6.4.1: |
Event Callback / 8.6.4.2: |
LabVIEW as ActiveX Server / 8.6.5: |
LabVIEW and .NET / 8.7: |
.NET Containers / 8.7.1: |
.NET Palette / 8.7.2: |
The VI Server / 8.8: |
ActiveX and .NET Examples / 8.9: |
Common Dialog Control / 8.9.1: |
Progress Bar Control / 8.9.2: |
Microsoft Calendar Control / 8.9.3: |
Web Browser Control / 8.9.4: |
Microsoft Scripting Control / 8.9.5: |
Microsoft System Information Control / 8.9.6: |
Microsoft Status Bar Control / 8.9.7: |
Microsoft Tree View Control / 8.9.8: |
Microsoft Agent / 8.9.9: |
Request Objects - First Tier / 8.9.9.1: |
Other First-Tier Controls / 8.9.9.2: |
The Characters Object / 8.9.9.3: |
The Character Control / 8.9.9.4: |
Registry Editing Control / 8.9.10: |
Controlling Microsoft Word / 8.9.11: |
Microsoft Access Control / 8.9.12: |
Instrument Control Using ActiveX / 8.9.13: |
Instrument Control Using .NET / 8.9.14: |
Controlling LabVIEW from Other Applications / 8.9.15: |
Understanding ActiveX Error Codes / 8.9.16: |
Advanced ActiveX details / 8.9.17: |
Multithreading in LabVIEW / Chapter 9: |
Multithreading Terminology / 9.1: |
Win32 / 9.1.1: |
UNIX / 9.1.2: |
Multitasking / 9.1.3: |
Preemptive Multithreading / 9.1.3.1: |
Kernel Objects / 9.1.4: |
Thread / 9.1.5: |
Process / 9.1.6: |
Application / 9.1.7: |
Priority / 9.1.8: |
How Operating Systems Determine which Threads / 9.1.8.1: |
Security / 9.1.9: |
Thread Safe / 9.1.10: |
Thread Mechanics / 9.2: |
Thread States / 9.2.1: |
Scheduling Threads / 9.2.2: |
Context Switching / 9.2.3: |
Win32 Multithreading / 9.3: |
Pthreads / 9.4: |
Multithreading Problems / 9.5: |
Race Conditions / 9.5.1: |
Priority Inversion / 9.5.2: |
Starvation / 9.5.3: |
Deadlocking / 9.5.4: |
Operating System Solutions / 9.5.5: |
Multithreading Myths / 9.6: |
The More Threads, the Merrier / 9.6.1: |
More Threads, More Speed / 9.6.2: |
Makes Applications More Robust / 9.6.3: |
Conclusion on Myths / 9.6.4: |
Hyper-Threading / 9.7: |
Multithreaded LabVIEW / 9.8: |
Execution Subsystems / 9.8.1: |
The Run Queue / 9.8.2: |
DLLs in Multithreaded LabVIEW / 9.8.3: |
Customizing the Thread Configuration / 9.8.4: |
Thread Count Estimation for LabVIEW / 9.9: |
Same as Caller or Single Subsystem Applications / 9.9.1: |
Multiple Subsystem Applications / 9.9.2: |
Optimizing Vis for Threading / 9.9.3: |
Using VI Priorities / 9.9.4: |
Subroutines in LabVIEW / 9.10: |
LabVIEW Data Types / 9.10.1: |
When to Use Subroutines / 9.10.3: |
Object-Oriented Programming in LabVIEW / 9.11: |
What Is Object-Oriented? / 10.1: |
The Class / 10.1.1: |
Encapsulation / 10.1.2: |
Aggregation / 10.1.3: |
Inheritance / 10.1.4: |
Polymorphism / 10.1.5: |
Objects and Classes / 10.2: |
Methods / 10.2.1: |
Special Method - Constructor / 10.2.1.1: |
Special Method - Destructor / 10.2.1.2: |
Properties / 10.2.2: |
Object Analysis / 10.3: |
Object Design / 10.4: |
Container Classes / 10.4.1: |
Abstract Classes / 10.4.2: |
Object Programming / 10.5: |
Developing Objects in LabVIEW / 10.6: |
Constructors / 10.6.1: |
Destructors / 10.6.3: |
Public Methods / 10.6.4: |
Private Methods / 10.6.4.2: |
Examples in Developing Instrument Drivers / 10.7: |
Complex Instrument Designs / 10.7.1: |
Object Template / 10.8: |
Exercises / 10.9: |
Index |