Return to NI Tools Network Software Requirements
Requirement | Additional Resources |
Packaging and Installation | VI Package Manager: An Introduction |
The add-on is packaged with VI Package Manager. | VI Package Manager: How to Create a Package |
The package is configured for required and/or incompatible VI Packages. | VIPM Support: Package Configuration |
The package includes a EULA which complies with the “Restrictions” and “Application Deployment” sections of the NI Software License Agreement. | |
The package supports at least the latest LabVIEW version. | VIPM Documentation: Install Requirements |
The package description outlines software and hardware requirements and incompatibilities. | VIPM Documentation: Description |
If the package requires LabVIEW or VIPM to be run with administrator privileges, the package description communicates this to the user. | Checking LabVIEW Administrator Privileges |
[Recommended] Package either checks for required software or prompts the user to manually check for required software. | Example: Detect Hardware Drivers Before Loading a VI |
Licensing and Activation | Choosing the Correct Licensing Method |
[Recommended] The add-on utilizes the NI License Manager (NILM) 3rd Party SDK for licensing. | NI License Manager Third-Party SDK |
The add-on is able to be evaluated immediately upon downloading the software. | |
Users are reminded of the remaining trial time or uses. | |
Upon the trial expiring, users are prompted to activate the add-on. | |
The add-on can be activated using appropriate credentials. | |
If the add-on is not using NI License Manager (NILM) 3rd Party SDK , activation instructions must be placed in the detailed help. | |
Examples | Example VI Guidelines |
The add-on includes examples that demonstrate typical use cases to help the user get started. If examples are not appropriate for the add-on, a step-by-step tutorial should be added to the add-on's documentation. | VI Package Manager: Adding Examples, Help, and Tools Menu Items |
Examples are integrated into the Task or Directory view of NI Example Finder. | LabVIEW Example Finder Hints |
Examples include VI descriptions viewable from NI Example Finder. | |
Instructions on the front panel of example VIs describe exactly which steps the user must follow to run the example. | |
Example VIs are not part of a licensed library. | |
Example VIs contain unlocked, viewable block diagrams. | |
Example VI front panels and block diagrams are placed and sized for easy viewing. | |
Comments are used to explain block diagram functions and algorithms. | |
Default values of example VIs allow the user to run the example without modification unless documented to the user (e.g. "Specify an input channel for your DAQ device") | |
Example VIs comply with LabVIEW Style Checklist | |
[Recommended] Example VIs contain non-default icons. | |
File Structure | File and Folder Names for Integrating into LabVIEW |
Add-on files are placed in the correct locations. | |
All the supporting files should be placed either in vi.lib folder or in a custom folder other than Examples/Help folders. | |
Files and folders follow a recommended company/product naming convention to ensure namespacing and avoid conflicts with other add-ons. | |
Palettes and Icons | LabVIEW Palette Guidelines |
Add-on VI palettes are accessible from an existing logical category in the Functions palette. Any existing category may be used except "User Libraries". | |
Add-on controls palettes are accessible from a custom top-level category or within the "Addons" category of the Controls palette. | |
Palette organization follows palette guidelines. | LabVIEW Palette Guidelines |
VI and palette icons do not contain NI company or product logos. | |
VI and palette icons contain a similar style or glyph to help users understand the VIs are related. | |
[Recommended] VI and palette icons use glyphs or images to illustrate the VI's purpose. | |
API Design | Strategy for Designing an API |
The API uses a consistent terminal design across all VIs (e.g. reference terminals aligned across all VIs) | |
API VIs contain error terminals on the bottom left and bottom right of the connector pane. | |
Left-side terminals of API VIs are used for inputs and right-side terminals are used for outputs. | |
All API VIs contain VI descriptions visible through Context Help. | |
[Recommended] API VI descriptions contain a link to the API's detailed help. | |
Detailed Help | Documentation Best Practices |
The add-on includes detailed help accessible through the LabVIEW Help menu. This can be installed locally or hosted on the web. | LabVIEW Help Menu Explained - Link to PDF, HTML, etc. |
The detailed help outlines all hardware, software and operating system requirements. Included Utilities should be also documented for a successful operation. | |
The detailed help directs users to an appropriate support channel. Free products may list "not supported". | |
[Recommended] The detailed help describes how and when to use the primary VIs of the product. |
Deployment | Add-on Development Guidelines |
The add-on is able to be deployed to all targets with which it specifies compatibility (e.g. LabVIEW Real-Time, FPGA). | |
Reusable code provided by the add-on must be able to be built into a deployable application (e.g. DLL, EXE). Exceptions or limitations must be documented in the product detailed help. | |
If there are any special considerations for deployment using the add-on (such as licensing restrictions), these exceptions must be documented in the detailed help. | |
Utilities | |
Utility window placements and interactions are intuitive to the user. | LabVIEW Help: Window Run-Time Position Page |
Utility VIs run when opened and closes after execution. | LabVIEW Help: Execution Page |
Utility VIs exclude ".vi" from the window title. | LabVIEW Help: Window Appearance Page |
Utility VIs hide the toolbar during execution. | LabVIEW Help: Window Appearance Page |
The user is provided feedback during long operations. | Tools for Long-Operation Feedback in LabVIEW |
[Recommended] Utilities can be launched from the LabVIEW Tools menu. | VI Package Manager: Adding Examples, Help, and Tools Menu Items |
Miscellaneous | |
The product does not include or install any malicious software. | |
There are no unexpected crashes or errors when using the product. | |
There are no memory or processor resource issues when using the product. | LabVIEW Help: Profiling VI Execution Time and Memory Usage |
The product complies with the LabVIEW Tools Network Style Guide. | NI Tools Network Style Guide |
The product name should comply with any NI trademarks, e.g. Product Name for LabVIEW by Company/Product Name for USRP by Company | |
Custom error codes are registered with LabVIEW using an errors text file. | Error Codes |
The product and accompanying documentation are localized in English. | |
It is clear to the user when administrator rights are required for successful use of the add-on. | |
[Recommended] Custom error codes use a range assigned by the LabVIEW Tools Network team to avoid conflict with errors from other add-ons. | Error Codes |