NI myRIO App Development

This is an open group. Sign in and click the "Join Group" button to become a group member and start posting.

LabVIEW Tools Network myRIO Requirements

Prior to submitting a product for the LabVIEW Tools Network, please review the software requirements outlined below.  We separate product requirements into the following categories:

When you are ready to submit your product for review, please fill out an application here:

LabVIEW Tools Network Submission Form

Requirements for myRIO Apps


Product is shipped with an installer or as a VI package

VI Package Manager: An Introduction

Building an Installer for an API

Installer prompts the user if dependent software is not present on a systemExample: Detect Hardware Drivers Before Loading a VI
Product EULA complies with section 4 and 12A from NI EULA when including NI software and

VI Package Manager: Adding a License Agreement

Users can uninstall the product
Installer supports multiple LabVIEW versions or the latest LabVIEW version
When using VI Package Manager version 2014 or later to build the VI package, the Package Description notifies users of a VI Package Manager 2014+ dependency

NI KnowledgeBase article describing the issue

Calls post-install action to launch copy of Project Explorer of Application (post-install VI provided)
Activation (n/a for free/open source)

All products listed for sale on the LabVIEW Tools Network require an evaluation.  We recommend use of the Third-Party Licensing and Activation Toolkit (TPLAT), but other licensing solutions are acceptable.

Users can evaluate the add-on
When using the NI Third-Party Licensing and Activation Toolkit, an uninstall removes the entry from the Activate Add-Ons dialog
Users are reminded of the remaining trial period
Users are prompted to activate the application when the trial period expires    
Users can activate the product with appropriate credentials      
Examples and Tutorials
Example VI Guidelines
Product provides intuitive examples and/or tutorials to demonstrate typical customer use cases (i.e. How To Run document)
Example VI block diagrams are viewable
Tutorials include explanations to describe what is demonstrated or accomplished by following the tutorial in order to serve as a learning aid for customers
Default values of examples allow the user to run the VI without modification unless documented for the user (that is, "Specify an input channel for your DAQ device")
Front panel and block diagram windows do not open off screen
Comments are used to explain operation of front panel controls and indicators
Comments are used to explain block diagram functions and algorithms
Error Codes
Developing a VI-Based API
Custom error codes are documented
File Structure
File and Folder Names for Integrating Into LabVIEW
Source Code installed to \ProjectTemplates\Source\myRIO\<App Name>\<App Version>
Source files adhere to naming conventions: host VI must be Desktop, RT must be RT, .lvproj name must match Application folder name
Help Files installed to \Source\myRIO\<App Name>\<App Version>\Documentation folder
Custom Probes installed to \vi.lib\_probes
Custom Errors installed to \project\errors\
Menu (.mnu) files installed to \menus\Categories\<existing category folder>\, \vi.lib\addons\, or \instr.lib\
Project Template XML installed to \ProjectTemplates\MetaData
Project Templates installed to \ProjectTemplates
Files and folders follow a recommended naming convention (combination of company and/or product names) to ensure namespacing and avoid conflicts with other add-ons or code
VI Package Manager: Creating a Palette
Palettes are located in an existing palette category
Palette follows Content Organization Guidelines outlined here:LabVIEW Palette Guidelines

Icons do not include NI/LabVIEW logos and follow icon guidelines outlined here:Best Practices for Creating Icons in LabVIEW
Using VI Analyzer to Review LabVIEW APIs
A consistent font is used throughout all VIs
VIs use path controls instead of string controls for specifying locations of files and folders
Front panel controls and indicators do not overlap
Data flows from left to right
Block diagram functions, terminals, and constants are aligned and distributed
Objects are not placed on top of wires
API VIs use consistent (4x2x2x4 or 5x3x3x5) connector pane patterns
Common or consistent terminals, such as error wires or those used for references or classes, are used across all related API VIs
Error wire terminals are always at the bottom left and bottom right
All VIs contain a VI description for the Context Help Window
Comments are used in all viewable block diagrams to document code
Documentation Best Practices
Add-on contains a help document that includes instructions on how to run/use application/API (.chm, PDF, a website, and so on)
Documentation describes any installation steps outside of running the installer  (if applicable)
Third-party and NI software dependencies are documented (if applicable)
Hardware system requirements are documented (if applicable)
Product directs users to a support channel for technical supportFree products may specify "not supported" or direct users to a community, forum, and so on.  All paid products must provide support contact information.
Detailed help for palette VIs describe inputs and outputs
Detailed help document for API can be  accessed from Help menuLabVIEW Help Menu Explained - Link to PDF, HTML, etc.
Supported operating systems are documented in the product manual
Works on all operating systems that are listed as supported (Windows x64, Windows x86, Mac, Linux, RT, and so on)
Any extra steps required for building and deploying an executable are documented (that is, including DLLs or XML schema files not automatically pulled in as dependencies by LabVIEW)
Documentation describes any required communication ports and firewall settings (if applicable)
Hardware requirements and supported targets (1900/1950) are documented or wiring schematic provided (if applicable), and are provided on product's model page

API functions can be built into an executable/deployment for supported platforms

Installs all necessary files to create project from template (XML metadata, *.lvproj, Desktop and/or RT VIs, help documentation, icon)
Application appears under Sample Projects>myRIO section of Create Project view, below NI installed sample projects
Project includes HOW TO RUN APP document, easily accessed by user in top level virtual folder in project
FPGA VI can run without compilation (i.e. bitfile provided, or default myRIO FPGA image used)
If using custom bitfile, must include bitfile for every supported target (1900/1950) and lists in documentation which targets are supported.
XML metadata file conforms to provided template, short description section includes supported targets (Creating myRIO Project Template XML)
User Experience

Window titles exclude ".vi" (Window Name property in VI Properties)
The abort button is not visible
The utility or dialog runs when opened
The utility or dialog closes after execution
The front panel of dialogs and utilities are visible to the user

Configured through VI Properties for the VI—the default behavior for dialog windows is to center the window.

Resizable UI’s in LabVIEW

User interface is intuitive
User is provided with feedback during long operations (that is, progress bar, busy cursor, and so on)

Set Mouse Cursor to Busy (hourglass) or Custom Cursor

Progress Bar API for LabVIEW

WireFlow ProgressBar -

Taskbar Progress Bar API -

It is clear to the user when administrator rights are required for execution
No crashes or unexpected errors are reported
There are no apparent memory leaks or undocumented spikes in CPU or memory usage
Utilities are integrated into the LabVIEW Tools MenuVI Package Manager: Adding Examples, Help, and Tools Menu Items

Product does not include any malicious software (malware, viruses, and so on)
Product complies with LabVIEW Tools Network Style GuideLabVIEW Tools Network Style Guide
Product and accompanying documentation are localized in English
0 Kudos
Message 1 of 1
This is an open group. Sign in and click the "Join Group" button to become a group member and start posting.