NI LabWindows™/CVI™ Integrated Development Environment for Test and Measurement

The LabWindows/CVI integrated workspace provides an intuitive, convenient interface for creating and managing large projects. You can also customize each of the areas to fit your specific development style and preferences, and integrate with source code control, requirements management, and data management systems.

Table of Contents

Organized Workspace for Streamlined Development
Advanced Debugging Capabilities
System and Code Management Tools
Additional Features


 Organized Workspace for Streamlined Development

The NI LabWindows™/CVI development environment includes a workspace window that is divided into five main areas: Project Tree, Library Tree, Window Confinement Region, Output Region, and Debugging Region.

Figure 1. LabWindows/CVI features a streamlined tabbed workspace in which you can quickly develop, debug, and manage large applications

Organized Project View and Source Code Browser

The projects in your workspace are neatly organized in a list called the Project Tree, which provides easy access to project files and tasks. At a glance, you can determine active projects in bold and modified files indicated by asterisks. Source code control tools can be integrated into LabWindows/CVI and icons appear next to files that have been checked out by you or a team member. With rich right-click menus in the Project Tree, you can accomplish a wide variety of common tasks on the project, files, and folders from a convenient location.

Navigating through large applications is simplified with the Source Code Browser, a cross-reference tool that lists selected files, functions, variables, data types, and macros in a program. The browser helps you identify how different parts of a program interact with each other.

Program Faster With Drag-and-Drop Library Functions

The Library Tree contains an easily accessible tree view of the functions in LabWindows/CVI libraries and instruments. You can easily navigate, test, and drop functions into your source code by using shortcut keys or the mouse to drag and drop the functions. Load custom instrument drivers into the Library Tree alongside built-in LabWindows/CVI libraries so that the functionality you need is always at your fingertips.

Figure 2. The LabWindows/CVI Graphical User Interface Editor makes it easy to build, edit, and navigate your user interface and includes engineering user interface controls such as graphs.

Build a Professional Graphical User Interface (GUI)

A LabWindows/CVI GUI can consist of panels, command buttons, pull-down menus, graphs, strip charts, knobs, meters, and many other controls and indicators. You can create a GUI programmatically using function calls, or build a GUI in LabWindows/CVI interactively using the user interface, a drag-and-drop editor with tools for designing, arranging, and customizing user interface objects. With the interactive User Interface Editor, build an extensive GUI for your program without writing any code.

Use the User Interface Editor to create panels, controls, and menu bars. Panels in the User Interface Editor contain grid lines that can help you align and resize controls.

Easily Navigate and Edit User Interface Components and Attributes

The User Interface and Attribute Browsers contain a tree view of all your user interface objects, such as panels, controls, and menu bars along with all the control properties. These browsers appear to the right of the User Interface Editor for fast editing of all control attributes such as appearance, naming, binding, format, and so on.

 Advanced Debugging Capabilities

LabWindows/CVI includes an extended suite of debugging tools built into the environment that help you locate and fix bugs faster to create strong and reliable applications. Integrated debugging windows include information about function execution flow and program variables for inspection and on-the-fly modification during application suspension.

Figure 3. The LabWindows/CVI Workspace gives you easy access to variable values, resource tracking, and source code browsing to speed up the debugging process.

Remote Debugging

With LabWindows/CVI, you can use one computer to debug an application that is running on a different computer. For example, you can debug an application on a target computer with a specific hardware or software configuration that would be inconvenient or impossible to recreate on the local development computer. The debugger, which is on the local computer, and the debuggee, which is on the target computer, communicate over a TCP/IP connection.

Memory Leak Detection

Instead of identifying memory leaks after your applications are deployed, LabWindows/CVI provides the Resource Tracking Window to help you identify and fix memory leaks earlier in the development process.

The Resource Tracking Window (in the LabWindows/CVI Full Development System and NI Developer Suite) records and tracks all resources allocated at run time including dynamic memory, file handles, panels, GPIB/TCP handles, and thread pools. The tool makes it easy for you to go to source code, view memory, break on deallocation, and log tracked resources to disk for later review.

Just-in-Time Debugging

LabWindows/CVI installs and registers a just-in-time debugger you can use to attach to a crashed process at the time of the crash, without having to restart the program. This tool gives you the ability to more efficiently debug source code and gain additional insight into application failures and crashes.

Figure 4. Attach the LabWindows/CVI debugger to a running process when a crash occurs, without having to restart the program.

Debug or Validate Code Sections

The Interactive Execution Window provides a testing ground where you can execute selected portions of your code to verify the logic from outside the rest of the program. For instance, execute C variable declarations and assignment statements without declaring a main function. The Interactive Execution Window can help you test portions of code before you include them in your main program. The window can also access functions and data declared as global in a Source Window.

 System and Code Management Tools

Built-in tools for code documentation and system deployment help you create high-quality, shippable applications. LabWindows/CVI lets you integrate source code control, requirements management, and data management systems to manage large projects.

Build Custom Installers and Patches

A powerful LabWindows/CVI feature is the Build Distribution tool. A LabWindows/CVI distribution provides a complete way to package a LabWindows/CVI application for installation and use on another computer. A LabWindows/CVI distribution packages all built libraries and executables along with any necessary files, drivers, and registry keys into a complete installer that can be run in a single operation on the target machine. This installer includes versioning information, and also provides a familiar, professional install-time user interface.

Additionally, the Build Distribution tool allows you to create distribution patches for minor updates to an existing distribution installation. Unlike a full distribution build that includes every file and driver needed for the application, a patch contains only the files that need to be updated and does not include any drivers. Because of this, a patch can be significantly smaller and more convenient to distribute.

Figure 5. Build a customized installer for your application and include version information, hardware drivers, and custom files for simplified and professional deployment.

Connect to Source Code Control

Simplify code sharing and team-based development by connecting your LabWindows/CVI project to a third-party source code control system. Source Code Control software such as Visual Source Safe, Perforce, ClearCase, and PVCS can be seamlessly integrated into the LabWindows/CVI environment.

Generate Code Documentation

LabWindows/CVI offers various source code documentation tools to make the code writing process easier and more convenient. Source code tags provide a convenient way to associate help with functions and parameters. Help information can be made available in the function prototype tooltips where you can view context-sensitive help for each function and parameter or even declare variables for parameters. In addition, user-defined functions can take advantage of source code completion options, thus reducing the need to reference external documentation during the development process.

LabWindows/CVI also gives you the ability to quickly distribute documentation at project completion. LabWindows/CVI is commonly used to develop instrument drivers, which are stored as function panels. You can generate function panel documentation in HTML format, in addition to plain text or Windows Help format.

Figure 6. Detailed Function Documentation in HTML Format

Integrate Requirements Management

National Instruments Requirements Gateway is a requirements traceability software solution for test, measurement, and control applications. Implementing automated requirements management for a project can drastically reduce the investment of time and money necessary to ensure that a project conforms to all requirements set forth in a specification document and that changes to project items don’t break requirements coverage. NI Requirements Gateway traces requirements contained in the most common requirement specification tools and integrates fully into the National Instruments software development suite by tracing coverage specified in NI LabVIEW, NI TestStand, LabWindows/CVI, Telelogic Doors, MATRIXx, and more. NI Requirements Gateway can interface with LabWindows/CVI to parse references to requirements that you have implemented within your ANSI C code or LabWindows/CVI function panels.

Figure 7. See an example NI Requirements Gateway Management View with LabWindows/CVI covering documents.

Read more about NI Requirements Gateway

 Additional Features

Other Features in LabWindows/CVI

Feature Comparison Chart

Download LabWindows/CVI


Next Steps

NI TestStand Software Integration

State-of-the-Art Hardware Connectivity


The mark LabWindows is used under a license from Microsoft Corporation. Windows is a registered trademark of Microsoft Corporation in the United States and other countries.

All Products and Services