In Tools For Developing Tools, Part 1 we looked at a variety of tools that improve the process of creating detailed documentation that meets the Compatible with LabVIEW standard. In order to utilize tools for documentation, you must have code worth documenting. Fortunately, there are a wide array of different tools available on the LabVIEW Tools Network that assist in the the actual design and implementation of a large application. Many of the tools on the LabVIEW Tools Network are extremely useful for specific applications, such as the set of VIs used to program KUKA Robots. The focus of this post will be on more generic tools that are useful in a wider variety of applications.
The OpenG community has built and shared hundreds of open-source VIs that cover a wide variety of different functions. There are additional palettes with advanced functions for working with arrays, strings, application control, file handling, and more. If you aren't already using OpenG, you probably should be.
Another set of useful functions, the GPower Toolsets include functionality for advanced error handling, timing functions, overflow arithmetic, dynamic VIs, and more. They also introduce the concept of VI Registers, which are extremely useful for global access throughout your application.
Moore Good Ideas employees consolidated a free set of VIs created by MGI over time. This toolkit includes functions for most of the categories in the default LabVIEW Programming palette, expanding on built-in functionality with advanced re-usable VIs.
VI scripting allows you to programmatically generate, run, inspect, and modify LabVIEW code. These tools are indispensable when working with large sets of code, and can significantly decrease the amount of time needed to generate large libraries.
EasyGIO Tools is an add-on that addresses a wide variety of new functionality. It includes VIs to create HTML help files automatically, set help options programmatically, modify VI descriptions, update front panel tip strips, and more. In fact, this tool addresses much more than just documentation. It includes functions that manipulate controls on your front panel, easily create FGVs, rename and save VIs without conflicts, and create a top-level VI with project. The EasyGIO Tools are exceptionaly useful utility VIs that assist in many phases of development.
Properly licensing code for distribution to customers presents a number of challenges, such as managing activations and preventing fraud. Implementing custom licensing can be very time consuming, especially when maintaining a positive end-user experience. The Third-Party Licensing and Activation Toolkit is an out-of-the-box solution that takes care of licensing, activation, evaluation, and more. It supports development and deployment licensing and is highly recommended for use with any code that needs to be licensed.
Source code control allows teams of developers to ensure easy access to shared code while mitigating conflicting changes, allowing check outs of code, merging versions, and more. Tortoise SVN is a very popular free set of code that performs source code control from a file browser. Viewpoint Systems' TSVN Toolkit integrates the functionality of source code control programs directly into LabVIEW, extending the native source code control of LabVIEW with an intuitive interface that overlays directly on a LabVIEW project.
Similar to TSVN, this toolkit incorporates source code control into the LabVIEW Tools menu. Created by JKI, this full-featured toolkit saves time for developers, accessing common TortoiseSVN operations without leaving LabVIEW, allowing them to focus on their work rather than source code control.
Clusters are an extremely powerful way to manage elements in LabVIEW. This set of VIs simplifies a number of different operations related to working with clusters. You can easily obtain individual or sets of elements, manipulate elements, split or index cluster subsets, convert clusters to other data structures, and sort clusters programmatically. The Cluster Toolkit also works with clusters in the form of variant data, further increasing the flexibility of this powerful toolkit.
Cluster Tools by IMS builds on the native LabVIEW cluster functions by allowing programmatic indexing, register reference, recursive operations, and more. Allowing direct access to cluster element references means you can perform manipulation of those elements without bundling values with references. Overall, Cluster Tools is extremely useful when working with code that is heavily dependent on clusters as a data structure.
Object oriented programming in LabVIEW has grown by leaps and bounds in recent years. Object data is stored in wires that are accessed via cluster tools. There also exists a series of tools designed to extend LabVIEW's OOP feature set. The GOOP Development Suite simplifies management of classes, allows automatic code generation, and incorporates Unified Modeling Language support into LabVIEW.
This toolkit adds reference-based object oriented support, includes a debugger for tracing object instantiation, and adds automated garbage collection to remove the need to manually destroy objects. The toolkit's object oriented support makes LabVIEW as powerful as any object oriented language.
The WireFlow WF ProgressBar module is a simple, easy way to add progress bars into your application. It allows full customization of the appearance, giving you control over the user interface and allowing the end user to potentially cancel longer operations. For more progress bar functionality, check out the LabVIEW Taskbar Progress Bar API, which allows you to use the progress bar embedded in Windows 7 by leveraging very simple VIs.
One of my personal favorites, this XControl allows you to create a tab control on your LabVIEW front panel that performs similarly to a browser. You can create additional tabs, manipulate their locations, pop them into separate windows, and more - all during run-time. The ability to provide users an intuitive tabbed experience similar to what they are used to from internet browsers increases the usability of a wide variety of applications.
UI Control Suite
The UI Control Suite adds controls and indicators that differ aesthetically from the built-in LabVIEW UI objects. Available in Metallic Theme, NI Theme, and System Controls, the UI Control Suites offer the ability to make engaging, coherently styled UIs for a variety of desired looks.
The UI Tools palette, created by LAVA, allows the LabVIEW front panel to fade in or out, smoothly move objects programmatically, override generic dialog boxes, and more. This powerful toolset also incorporates functionality to improve the usability of front panels of LabVIEW OOP VIs.
There are many more tools available on the LabVIEW Tools Network that facilitate productivity, expand built-in functionality, and incorporate specific applications to save you and your developers time and effort during the Design and Implementation phase of your project. In Part 3 of this series, we will take a look at a number of tools that simplify the Deployment process in a variety of different ways.