TestStand 2012 New Features

TestStand 2019 Help

Edition Date: May 2019

Part Number: 370052AA-01

»View Product Info
Download Help (Windows Only)

The following list describes the new features in TestStand 2012 and other changes since TestStand 2010 SP1. This list only summarizes each new feature. Refer to the TestStand documentation listed for a particular feature for more information about that feature.

Process Model Result Processing Plug-in Architecture

The TestStand 2012 process models include significant changes to implement a plug-in architecture for model sequence files. You can use the result processing plug-in architecture to achieve the following functionality:

  • Decouple result processing, which includes report generation and database logging, from the process models to simplify the model files and sequence files
  • More easily customize report generation and database logging functionality without having to modify the process model files and vice versa
  • Output multiple reports and log to multiple databases
  • Increase throughput by creating reports or logging data asynchronously to test execution
  • Log result data in a fast and compact raw result format (.tsr) for offline processing at a time other than when sequence execution occurs or on a different computer

If you encounter an incompatibility in an existing test system when you use the TestStand 2012 process models or other circumstances prevent you from using the TestStand 2012 process models, you can use the equivalent legacy TestStand 2010 process models. You can manually select the equivalent legacy TestStand 2010 process models to use, or you can use the Legacy Model Switcher tool to replace the TestStand 2012 process models with the equivalent legacy TestStand 2010 process models.

Note Note  This topic reflects only the TestStand 2012 process models. If you are using the equivalent legacy TestStand 2010 process models, refer to the TestStand 2010 documentation for information about those process models.

Refer to the Result Processing Improvements section of this topic for more information about other changes related to result processing.

Refer to the Process Model Plug-in Architecture topic for more information about the plug-in architecture and how to implement custom plug-ins.

Result Processing Improvements

You can use the built-in reporting, database, and offline results plug-ins to generate reports, log data to databases, and store results in compact raw result files for offline processing later, respectively. You can also create custom result processing plug-ins.

Note Note  Raw result files you created using a TestStand 2012 Beta result processing model plug-in are not compatible with the release version of TestStand 2012.

You can create multiple result processing configurations, which are named sets of instances of plug-ins you configure to accomplish a specific task, such as creating multiple reports with different formats or logging data to multiple databases. Creating multiple report processing configurations to use as the active configuration can help you quickly change how TestStand processes results. You can create result processing configurations to process results inline, meaning at run time, or offline. For example, you can specify to process offline results differently from inline results or you can specify to process offline result files differently when you store the files in different locations.

Select Configure»Result Processing to launch the default Result Processing dialog box, in which you enable or disable the installed built-in and custom result processing plug-ins in the active result processing configuration and also configure how the plug-ins process test results. You can insert multiple instances of the same plug-in with various configuration options. Click the icon in the Options column for each built-in plug-in to launch the Options dialog box, in which you configure options specific to the plug-in. For example, click the options icon for the Offline Results File plug-in to launch the Offline Results File Generation Options dialog box, in which you specify options for determining the directory location for result files, writing results to the file on-the-fly or after each UUT completes, limiting the number of UUTs per file, and automatically starting or exiting the TestStand Offline Results Processing Utility. You can also use the Offline Results File Generation Options dialog box to launch the utility.

Enable the Show More Options control in the Result Processing dialog box to display additional options to insert or delete instances of result processing plug-ins, change the order in which TestStand invokes the plug-ins, and specify whether TestStand invokes the plug-ins serially or in parallel using separate threads. In the expanded Result Processing dialog box, you can also create and manage result processing configurations. The <Default for Inline Processing> configuration is the default active configuration for processing results at run time. The <Default for Inline Processing> configuration is the default configuration the offline results processing utility uses.

Click the Advanced button in the Result Processing dialog box to launch the Advanced Result Processing Settings dialog box, in which you configure on-the-fly result processing options that apply to all instances of plug-ins in all configurations, such as specifying and managing the processing interval and specifying the maximum number of results. You can also use this dialog box to create new process model plug-ins. Click the Create New Result Processor Plug-in button in the Advanced Result Processing Settings dialog box to create and open a plug-in sequence file shell in which you complete the entry points you need and delete the entry points you do not require. Refer to the examples in the <TestStand Public>\Examples\ModelPlugins directory and to the Process Model Plug-in Architecture topic for more information about how to implement a custom result processing plug-in.

TestStand Offline Results Processing Utility

You can use the TestStand Offline Results Processing Utility to process raw results files into reports and database tables at a time other than when sequence execution occurs, such as overnight, or on a different computer. Use this utility in situations in which performance is more important than immediately processing results. You can use command-line arguments and the Microsoft Windows Task Scheduler to automate the tasks you complete using the utility, or you can use a Call Executable step with command-line arguments in a sequence to launch the utility. If the utility is already running, the command-line arguments apply to the running instance of the utility.

The utility uses profiles to define the set of raw results files to process, the result processing configuration set to use to process results, and the set of files the utility has already processed. Use the inbox of a profile to specify where to store raw results files to process, and use the outbox of a profile to specify where to store raw results files and report list files after processing. Report list files provide the list of reports the utility generated from the raw results file of the same name. Use the ResultLog properties and methods of the TestStand API to read information from report list files. You can also specify the sequence file to use as the callback sequence file when processing the raw results files.

You can configure the utility to complete the following tasks:

  • Use a default callback sequence file for configuration sets that do not specify a callbacks file
  • Specify the minimum severity level of messages to log to the output file
  • Launch during system startup or to automatically start minimized in the Microsoft Windows System Notification Area (system tray) of the taskbar
  • Conditionally delete raw results files and report list files from the outbox

You can configure the number of files the utility processes simultaneously. You can also configure the number of files to process. The utility also displays a list of all reports it generates and reads in the current session.

Note Note  National Instruments provides the utility source code for informational purposes only and does not recommend rebuilding the utility from the source code.

Command-Line Arguments

The following table lists the command-line arguments you can use with the utility. Optional arguments appear in brackets.

Argument Action
/? Displays the help topic for the utility.
/exit-when-done [seconds] Instructs the utility to exit automatically when all active profiles finish processing files successfully. The utility must process at least one file before exiting. If the utility is already running, this command has no effect.

[seconds] specifies the number of seconds to wait after all active profiles finish processing before exiting. The default value is 30 seconds.
/log-level <log level> Uses a number or a string to specify one of the following values for a supported severity level to log. Passing an invalid value disables logging.
  • 0 or Debug—Debugging information.
  • 1 or Info—Run-time events that provide information on the state of the system.
  • 2 or Warn—Warnings that are not errors but that might indicate an underlying error.
  • 3 or Error—Run-time errors or unexpected conditions.
  • 4 or Fatal—Severe errors that might limit the functionality of or terminate the offline results processing utility.
  • 5 or DisableLogging—Disables logging.
/process-all-profiles Activates all profiles.
/process-files <profile> <one or more file names> Activates the profile you specify and copies all the files you specify to the outbox directory of the profile you select for processing. Use quotation marks around profile names or filenames that include spaces.

Example:

OfflineProcessingUtility.exe /process-files "Profile Name" file1.txt "C:\Documents and Settings\file2.txt"
/process-files-missing-data Automatically processes files with missing data. Files might not include all necessary data because the execution that created the file terminated or aborted while TestStand was generating results. You can review the log file to determine the files with missing data. If you automatically process files with missing data, TestStand returns a warning, which you can log by using a log level of 2, 1, or 0. TestStand returns an information message for files with missing data that you do not process, which you can log by using a log level of 1 or 0.
/process-no-profiles Deactivates all profiles.
/process-profiles <one or more profile names> Activates the profiles with the names you specify in the list of profiles. Use quotation marks around profile names that include spaces.

Example:

OfflineProcessingUtility.exe /process-profiles Profile1 "Profile Name With Spaces" Profile3
/quit Stops the offline results processing utility after the currently processing raw result files finish processing.
/tray Sends the offline results processing utility to the Microsoft Windows System Notification Area (system tray) of the taskbar.

Using the Legacy Model Switcher Tool

If you encounter an incompatibility in an existing test system when you use the TestStand 2012 process models or other circumstances prevent you from using the TestStand 2012 process models, you can use the equivalent legacy TestStand 2010 process models. However, National Instruments recommends using the TestStand 2012 process models in most cases.

Note Note  If you migrate a custom legacy process model file to TestStand 2012, you must also migrate the corresponding ModelSupport.seq file from the earlier version of TestStand, or you must use the equivalent legacy TestStand 2010 process models, which include a legacy ModelSupport.seq file.

You can use the Legacy Model Switcher tool to replace the TestStand 2012 process models with equivalent legacy TestStand 2010 process models located in the <TestStand>\Components\Models\TestStandModels directory or vice versa. The Legacy Model Switcher tool does not affect any custom process models. You can also use the Legacy Model Switcher tool to migrate the result processing options from the new TestStand 2012 process models to the equivalent legacy TestStand 2010 process models or vice versa. You must restart all TestStand applications for the new settings to take effect.

Select Start»All Programs»National Instruments»TestStand»Tools»Compatibility»Legacy Model Switcher or navigate to <TestStand>\Components\Models\TestStandModels\TestStand 2010 Process Models (Legacy)\LegacyModelSwitcher.exe to launch the Legacy Model Switcher tool. You can also use the /NEW or /LEGACY command-line arguments to programmatically select which TestStand process models to use.

When the migration of the result processing options completes, the tool updates the migration report to indicate that the report options have been copied to the specified configuration.

TestStand Report Functionality Enhancements

TestStand 2012 enhances on-the-fly reporting, Automatic Test Markup Language (ATML) reports, and other report functionality.

In addition, TestStand 2012 significantly improves the performance and consistency of report generators, on-the-fly reporting servers, and style sheets for all supported report formats.

On-the-Fly Report Enhancements

In TestStand 2010 SP1 or earlier, you could use on-the-fly reporting for XML, HTML, and ASCII reports but not for ATML reports. In addition, you could enable the Conserve Memory and Only Display Latest Results option on the Contents tab of the Report Options dialog box to periodically purge internal results maintained in memory while generating on-the-fly HTML and ASCII reports but not XML or ATML reports.

In TestStand 2012, you can now use on-the-fly reporting for ATML reports, and you can enable the Only Display Latest Results option on the Contents tab of the Report Options dialog box when generating on-the-fly XML or ATML reports.

TestStand 2012 also corrects the following issues when generating on-the-fly HTML or ASCII reports:

  • When you enable the Only Display Latest Results option, the on-the-fly report now correctly places results for Sequence Call steps and steps you have configured to loop. In TestStand 2010 SP1 or earlier, the on-the-fly report placed results for these steps at an incorrect location.
  • When a step specifies a post action, the on-the-fly report includes correct results for the post action and no longer includes any duplicate results.
  • The built-in reporting model plug-in calls the ModifyReportHeader and ModifyReportFooter callbacks when generating the on-the-fly report. The equivalent legacy TestStand 2010 process models did not call these callbacks when generating an on-the-fly report.
    Note Note  If you have configured the process model to use multiple plug-ins and you enable the Discard Results or Disable Results when not Required By Model option in the Model Options dialog box, the process model discards or disables results only when you have configured all model plug-ins to process results on-the-fly.

In addition, TestStand 2012 includes a new on-the-fly report server, which you can use in conjunction with objects of the ReportSection class to create a custom on-the-fly report in any format or layout, including custom report formats. The ProcessOTFStepResults sequence of the reportgen_xml.seq, reportgen_html.seq, reportgen_text.seq, and reportgen_atml.seq report generation sequence files, located in the <TestStand>\Components\Models\TestStandModels directory, calls the on-the-fly report server.

ATML Test Results Report Enhancements

TestStand 2012 can generate XML reports that validate against the non-finalized version 5.0 of the ATML Test Results and Session Information schema or the approved version 2.02 of the schema. Select ATML 5.00 Standards Report Document or ATML 2.02 Standards Report Document from the Report Format ring control on the Contents tab of the Report Options dialog box to generate an ATML report that validates against version 5.0 or 2.02 of the schema, respectively. The <TestStand>\Components\Models\TestStandModels\ATML\Schemas directory contains copies of versions 5.0 and 2.02 of the schema.

Note Note  Because version 5.0 of the ATML Test Results and Session Information schema is not yet approved, generated reports might not validate against the approved version of the schema. Visit ni.com/info and enter the Info Code tsatmltr5 for up-to-date information about TestStand support for ATML Test Results 5.0 reports.

TestStand 2012 includes the following enhancements to reports that validate against version 5.0 of the ATML Test Results and Session Information schema:

  • You can use the options in the Report Options dialog box to include multiple ATML UUT and batch reports in a single file that validates against the TestResultsCollection.xsd schema. The <TestStand>\Components\Models\TestStandModels\ATML\Schemas\ATML 5 directory contains a copy of the TestResultsCollection.xsd schema.
  • The <TestStand>\Components\Models\TestStandModels\ATML\StyleSheets directory contains the following style sheets you can apply to the ATML report:
    • TR5_Horizontal.xsl—Displays reports in a horizontal, tabular, indented format with data for each step in one or more rows.
    • TR5_report.xsl—Displays reports in a vertical, tabular, indented format with data for each step in multiple rows. Customizable, color-coded rows visually separate relevant information, such as step group, status, and so on.
    • TR5_Expand.xsl—Displays reports similar to TR5_report.xsl, with expandable and collapsible sections for each step or for the entire report. The report displays each step as a separate table.

    The style sheets support displaying the failure chain for ATML reports. You can also customize the style sheets in the following ways:
  • You can now use all of the following options on the Contents tab of the Report Options dialog box for ATML reports, and the behavior for each option is the same as when used for XML reports:
    • You can select the Insert Graph option from the Include Arrays ring control under the Include Measurements option.
    • You can enable or disable the Include TestStand Extension Elements option to specify whether the report includes TestStand extension elements. This option is disabled for XML reports because XML reports use style sheets to filter TestStand extension elements.
    • You can enable the On-The-Fly Reporting option to generate an on-the-fly ATML report, and you can enable the Only Display Latest Results option to periodically purge internal results maintained in memory while generating on-the-fly ATML reports.
    • You can enable the Append if File Already Exists option to append the generated ATML report to the report file you specify on the Report File Pathname tab.

Other Report Improvements

TestStand 2012 includes the following additional improvements for reports:

  • TestStand XML or ATML style sheets now escape certain characters in strings to correctly convert the characters to HTML codes for displaying XML tags in a web browser, as the following table describes. TestStand HTML reports never escape these characters.
    Note Note  TestStand XML or ATML reports do not escape these characters when they appear in the Step.Result.Error.Msg or Step.Result.ReportText properties.
    XML Character Escaped Character
    < &lt;
    > &gt;
    & &amp;
    ' &apos;
    " &quot;
  • Previous versions of TestStand use an embedded ActiveX graph control, located at <TestStand>\Components\Tools\GraphControl\TsGraphControl.ocx, for displaying one- and two-dimensional measurement array data as a graph in HTML and XML reports. If you attempt to view a report on a computer on which you have not installed TestStand, the graph does not appear, and you must manually install and register the graph control on the computer on which you want to view the report.

    TestStand 2012 renames the graph control TsGraphControl2.ocx and installs the control in the <National Instruments>\Shared\TestStand directory so you can use the control with TestStand 2012 or any later version. In addition, TestStand 2012 now includes a stand-alone installer for the control, located in the GraphControl subdirectory of the TestStand installer directory on the TestStand 2012 media, so you can more easily install the graph control and view graphs in reports on computers on which you have not installed TestStand.
  • You can now include hyperlinks in ATML, XML, and HTML reports to link to other TestStand report files. Complete the following steps to create a hyperlink in a report.
    1. Create a Path variable with a value of the absolute path of the file to which you want to link.
    2. Create a TestStand.Hyperlink Boolean attribute with a value of True.

    Microsoft Internet Explorer uses the default application you specify for ATML, XML, or HTML files to open the linked file when you click the link in the report. When you use the XML Packaging Utility to distribute ATML, XML, and HTML reports that include links to other report files, the utility also distributes the target file of the link. Edit the COMMON_EXTENSIONS key of the new XmlPack.ini file, located in the <TestStand Application Data>\Cfg directory, to include a comma-separated string of file extensions for files you want to distribute using the XML Packaging utility.
  • You can now use the NI_TDMSReference data type to identify references to National Instruments Technical Data Management Streaming (.tdms) files in the TestStand ResultList local variable. You can open links to the .tdms file directly from ATML, XML, and HTML reports and view information about the .tdms file in text reports. When you use the XML Packaging Utility to distribute ATML, XML, and HTML reports that include links to .tdms files, the utility also distributes the target file of the link.

    Refer to the CreateHyperlinksInReport.seq example sequence file located in the <TestStand Public>\Examples\TDMSReference directory for an example that demonstrates how to use the NI_TDMSReference data type to include a link to a .tdms file in a TestStand report.

Database Options Configuration Changes

TestStand 2012 moves the database options configuration from the TestStandDatabaseOptions.ini file into the ResultProcessing.cfg file, which stores configuration information for all result processing model plug-ins, and moves the database schemas in the TestStandDatabaseOptions.ini file to the TestStandDatabaseSchemas.ini file. The ResultProcessing.cfg and TestStandDatabaseSchemas.ini files are located in the <TestStand Application Data>\Cfg\ModelPlugins and <TestStand Application Data>\Cfg directory, respectively.

Password-Protecting Types

You can now password-protect types so that other TestStand users cannot modify the types in the sequence editor.

In the Types window, select one or more types you want to password-protect, right-click, and select Password Protect from the context menu to launch the Password Protect Type Definitions dialog box, in which you can enable or disable password protection and change the password settings for the selected types. Enable the Password Protection option to enable password protection for the types, enter a password in the New Password control, and verify the password in the Re-enter Password control.

After you enable password protection for the types, the types remain unlocked so you can continue to edit the types. TestStand automatically locks password-protected types when TestStand first loads the types. For example, when you restart TestStand or close and reopen all the files that reference the password-protected types, TestStand locks the types. When you restart TestStand, TestStand locks all password-protected types. You can also select one or more password-protected types, right-click, and select Lock from the context menu to explicitly lock the types.

To unlock types, select the types you want to unlock, right-click, and select Unlock from the context menu to launch the Unlock Type Definitions dialog box, in which you can enter the correct password to unlock any selected types to which the password applies. TestStand ignores any selected types that are already unlocked or for which you have not enabled password protection. If the password you enter does not apply to all of the selected types, TestStand launches the Unlock Failed for Some Type Definitions dialog box, which gives you the option to return to the Unlock Type Definitions dialog box and enter another password to unlock the remaining types.

TestStand also launches the Unlock Type Definitions dialog box when you attempt to edit a locked type. You must enter the correct password to unlock the type before you can edit the type.

The locked or unlocked state of a type is not a saved state but is instead an in-memory state that indicates whether TestStand currently permits editing of the password-protected type.

Note Note  TestStand supports password-protecting types to deter unauthorized users from editing the types in the sequence editor. However, any TestStand user can continue to programmatically edit a locked type by using the TestStand PropertyObject API. National Instruments does not recommend password-protecting types as the only way of protecting intellectual property.
Note Note  If you lock at least one type in an INI-formatted sequence file, the entire content of the sequence file becomes protected and unreadable.

.NET Support Enhancements

TestStand 2012 includes the following enhancements for .NET support:

  • The .NET Adapter now uses the .NET Common Language Runtime (CLR) version 4.0 to call assemblies. In addition, the sequence editor and example .NET user interfaces now target .NET 4.0.

    By default, an application that uses the .NET CLR 4.0 cannot load an assembly written in C++/CLI and built against an earlier .NET Framework version. However, you can create an application configuration file to direct an application to load such a legacy assembly. Place the application configuration file in the same directory as the executable and use a filename with the same name as the executable and append a .config extension.

    For example, to specify that the sequence editor can load legacy C++/CLI assemblies, create in the <TestStand>\Bin directory a file named seqedit.exe.config that contains the following information:

    <?xml version="1.0"?>

    <configuration>

    <startup useLegacyV2RuntimeActivationPolicy="true">

    <supportedRuntime version="v4.0" />

    </startup>

    </configuration>


    When you set the useLegacyV2RuntimeActivationPolicy attribute to true, you force an application that uses the .NET CLR 4.0 to load all legacy assemblies in the .NET CLR 4.0, including legacy C++/CLI assemblies, but you also disable the ability to run multiple versions of the .NET CLR in-process and side-by-side. Refer to Microsoft MSDN documentation for more information about using this configuration option.
    Note Note  The .NET Adapter correctly loads an assembly written in C# or Visual Basic .NET and built against an earlier .NET Framework version. You do not need to specify an application configuration file.
  • The Parameters Table on the .NET Module tab in the sequence editor or on the Module tab of the Edit .NET Call dialog box in a TestStand User Interface now includes the parameters for all calls in the .NET step instead of only the call currently selected in the .NET Invocation control. The Parameters Table lists parameters for each call under a row that displays the member name for the call.
  • When you use C# or Microsoft Visual Basic .NET to access TestStand classes, methods, and properties in Microsoft Visual Studio, TestStand now provides context help in the Visual Studio object browser or Microsoft IntelliSense help in the Visual Studio source code editor.
  • The TestStand Sequence Analyzer now supports using .NET to implement analysis modules and rule configuration modules. Refer to the files located in the <TestStand Public>\Examples\AnalyzerCustomRules directory for an example that demonstrates how to implement custom sequence analyzer analysis modules in Microsoft Visual C#. You can also view the example rules and analysis modules that use Visual C# in the sequence analyzer.
  • TestStand now includes .NET versions of some example programs, as the following table describes.
    Example Program Path to Example Sequence File
    Accessing Arrays Using API <TestStand Public>\Examples\AccessingArraysUsingAPI\UsingDotNet\ AccessingArraysDotNet.seq
    Accessing Properties and Variables Using API <TestStand Public>\Examples\AccessingPropertiesUsingAPI\UsingDotNet\ AccessingPropertiesDotNet.seq
    Displaying Arrays in Reports <TestStand Public>\Examples\DisplayArrayInReport\UsingDotNet\ DisplayArrayInReportDotNet.seq
    Displaying Progress and Status <TestStand Public>\Examples\DisplayingProgressAndStatus\UsingDotNet\ DisplayingProgressDotNet.seq
    Modal Dialog Boxes <TestStand Public>\Examples\ModalDialogs\DotNet\ModalDialogDotNet.seq
    Multiple Numeric Limit Test Step Type <TestStand Public>\Examples\MultipleNumericLimitTest\UsingDotNet\ MultipleNumericLimitTestDotNet.seq
    Struct Passing <TestStand Public>\Examples\StructPassing\DotNet\StructPassingDotNet.seq

LabVIEW Adapter Enhancements

When you configure a step to use the LabVIEW Adapter, you can now specify whether the step calls a VI or a class member, and you can select a LabVIEW class or class member. The LabVIEW Adapter also displays a combo box for LabVIEW ring controls.

Specifying a VI or Class Member to Call for a Step

The LabVIEW Module tab in the sequence editor and the Module tab of the Edit LabVIEW VI Call dialog box in a user interface now contain the following options:

  • Call Type—The type of call the step uses. Select one of the following options. The option you select affects the other options available on the tab.
    • VI Call—TestStand calls the VI without LabVIEW dynamic dispatching.
    • Class Member Call—Select a member VI from a LabVIEW class. LabVIEW activates dynamic dispatching when required. When you select Class Member Call, you cannot execute the member call remotely.
      Note Note  You must have LabVIEW 2012 or later to use LabVIEW dynamic dispatching when calling LabVIEW classes in TestStand.
  • Class Path—The path of the LabVIEW class the step uses. The Class Path control contains a list of the five most recently selected LabVIEW classes. This option is available only when you select Class Member Call from the Call Type ring control.
  • Member Name—The name of a public member from the LabVIEW class the step uses. This option is available only when you select Class Member Call from the Call Type ring control.

Selecting a LabVIEW Class or Class Member

When you select the VI Call or Class Member Call option from the Call Type ring control on the LabVIEW Module tab in the sequence editor or on the Module tab of the Edit LabVIEW VI Call dialog box in a user interface, you can launch the following dialog boxes for specifying a LabVIEW class for the step to call:

  • Select a Class from LabVIEW Packed Project Library—When you select the Class Member Call option from the Call Type ring control, click the Browse for LabVIEW Class button located to the right of the Class Path control to launch the Select the Step's LabVIEW Class File dialog box. Select a LabVIEW packed project library (.lvlibp) file and click Open to launch the Select a Class from LabVIEW Packed Project Library dialog box, in which you can select a LabVIEW class from the packed project library to open.

    Calling a LabVIEW class member VI from a packed project library can be faster than calling an individual member VI independent of a packed project library. When you open a member VI from a packed project library, LabVIEW consolidates the types for all the VIs included in the packed project library during the load process. You cannot load a member VI in a packed project library independently of the other member VIs in the packed project library.
  • Select a Class from LabVIEW Project—When you select the Class Member Call option from the Call Type ring control and specify a LabVIEW project file (.lvproj) in the Project Path control, click the Browse for LabVIEW Class in LabVIEW Project button located to the right of the Class Path control to launch the Select a Class from LabVIEW Project dialog box, in which you can select a LabVIEW class to call from the LabVIEW project you specify. Click the Refresh button, which is available only when TestStand has not yet loaded the LabVIEW project for execution, to reload the project control.
  • Select a Class from LabVIEW LLB—When you select the Class Member Call option from the Call Type ring control, click the Browse for LabVIEW Class button located to the right of the Class Path control to launch the Select the Step's LabVIEW Class File dialog box. Select an LLB file and click Open to launch the Select a Class from LabVIEW LLB dialog box, in which you can review the files the LLB file contains and select a LabVIEW class file to open.
  • Select a Class Member from LabVIEW Project—When you select the Class Member Call option from the Call Type ring control, click the Browse for LabVIEW Class Member in LabVIEW Project button located to the right of the Member Name control to launch the Select a Class Member from LabVIEW Project dialog box, in which you can select a LabVIEW class member VI to call from the specified LabVIEW project.
  • Select a Class Member from LabVIEW Class—When you select the Class Member Call option from the Call Type ring control and specify a LabVIEW class file (.lvclass) in the Class Path control, click the Browse for LabVIEW Member button located to the right of the Member Name control to launch the Select a Class Member from LabVIEW Class dialog box, in which you can select a LabVIEW class member VI to call from the specified LabVIEW class.

LabVIEW Ring Control Support

The LabVIEW Module tab now displays a combo box for LabVIEW ring controls. The combo box displays the string values associated with the LabVIEW ring control. When you select a string value from the combo box, TestStand stores the associated string value with the numeric value. TestStand passes the numeric value to the LabVIEW ring control at run time.

If you enter a numeric value as the argument for a ring control parameter, TestStand automatically maps that numeric value to a string value and displays that string value as the argument. You can also enter a TestStand expression or a literal string value enclosed in quotes as the argument.

When you reload a VI prototype, all LabVIEW ring controls except enumerated types retain their numeric value regardless of whether the numeric value maps to a string value. TestStand then updates the string value to match the numeric value.

For LabVIEW enumerated type controls, the behavior varies in the following ways depending on whether the enumerated type control is an instance of a LabVIEW type definition:

  • For enumerated types that are instances of LabVIEW type definitions, remapping an argument retains the string value. TestStand updates the numeric value to match the string value. If the enumerated type string value is renamed or deleted and the numeric value matches another string value, TestStand retains the numeric value and updates the string value to match the numeric value. If the string value and the numeric value are deleted, TestStand uses the last enumerated type value defined in the enumerated type control.
  • For enumerated types that are not instances of LabVIEW type definitions, TestStand retains the numeric value and updates the string value to match the numeric value. If the numeric value is deleted, TestStand uses the last enumerated type value defined in the enumerated type control.

Normalizing Numeric Values You Pass to Enumeration Parameter Values

When you use TestStand to specify a VI for a LabVIEW step code module and the VI contains enumeration parameters but you pass a numeric value that is outside the range of valid enumeration values to an enumeration parameter, LabVIEW modifies the value to be within the valid range before executing the VI, as described in the following table.

TestStand Version LabVIEW Version That Executes VI Way in Which Numeric Value is out of Range LabVIEW Behavior
2012 2012 or later Numeric value is negative. LabVIEW uses the first enumerated value in the list (0).
Numeric value is greater than the last enumerated value in the list. LabVIEW uses the last enumerated value in the list.
Earlier than 2012 Any numeric value. LabVIEW does not modify any numeric value. If a numeric value is out of range, the behavior is undefined.
Earlier than 2012 Any Any numeric value. LabVIEW does not modify any numeric value. If a numeric value is out of range, the behavior is undefined.

Edit LabVIEW VI Call Dialog Box Enhancements

The Edit LabVIEW VI Call dialog box in a user interface now contains the following tabs:

  • Module—Contains the same options and layout as the LabVIEW Module tab in the sequence editor.
  • Advanced Settings—Contains the same options and layout as the LabVIEW Advanced Settings window in the sequence editor.

Calling DLLs that Use a Side-by-Side Version of the LabWindows/CVI RTE

You can use LabWindows/CVI 2012 or later to create executables and DLLs that bind to a specific, side-by-side version of the LabWindows/CVI RTE. Refer to the Binding Executables and DLLs to Side-by-Side Run-Time Engines topic in the LabWindows/CVI Help for more information about binding executables and DLLs to a side-by-side version of the LabWindows/CVI RTE.

You can use the LabWindows/CVI Adapter and the C/C++ DLL Adapter in TestStand to load and call DLL code modules that use a side-by-side LabWindows/CVI RTE or the default LabWindows/CVI RTE within the same sequence file. However, TestStand does not support calling DLLs you create with tools other than LabWindows/CVI, such as Visual Studio, to use a side-by-side LabWindows/CVI RTE.

With the exception of custom user interfaces, you cannot use a side-by-side version of the LabWindows/CVI RTE with .lib, .obj, or .c code modules. These code modules always use the default LabWindows/CVI RTE even when the module is an import library for a DLL that uses the side-by-side version of the LabWindows/CVI RTE. To call a DLL code module that uses the side-by-side version of the LabWindows/CVI RTE in this case, specify the code module with the path of the DLL, not the path of the import library.

When you deploy a user interface executable or a DLL that is bound to a side-by-side version of the LabWindows/CVI RTE, you must explicitly include the side-by-side version of the LabWindows/CVI RTE in the deployable image you use to build an installer with the TestStand Deployment Utility.

TestStand Deployment Utility Enhancements

You can now deploy IVI and NI Switch Executive settings from National Instruments IVI Compliance Package 4.5 and National Instruments Switch Executive 3.60. Enable the Include Hardware Configuration from Measurement & Automation Explorer option in the Drivers and Components dialog box you launch from the TestStand Deployment Utility to include these settings in a deployable image.

The Drivers and Components dialog box of the deployment utility also includes the following options:

  • Copy All Future Installers to This Computer When you Run Them—Enable this option to copy all National Instruments installers from a distribution to a permanent location on the local computer when you run the installers. When you initiate future builds that use the installers, the deployment utility locates the installers on the local computer instead of prompting you to insert distribution media.
  • Copy Selected Installers to This Computer Before Building—Enable this option to copy all necessary components from a distribution to a permanent location on the local computer before the deployment utility builds the distribution. When you initiate future builds, the local computer locates the components instead of prompting you to insert distribution media.

Dragging and Dropping Files to Create Steps

You can insert new steps in a sequence by dragging and dropping one or more files on to the Steps pane of the Sequence File window in the sequence editor or on to the Steps pane of the Sequence File tab in a user interface in Editor Mode. TestStand inserts Action steps for the files you drop and selects the corresponding module adapter, as the following table describes:

File Type File Extension Module Adapter
VI .vi LabVIEW
LabVIEW project .lvproj LabVIEW
LabWindows/CVI DLL .dll LabWindows/CVI
.NET assembly .dll .NET
DLL .dll C/C++ DLL

TestStand specifies the module path as the name of the file if the file resides in a TestStand search directory. Otherwise, TestStand specifies the module path as the absolute path of the file.

Excluding Hidden Subdirectories of Search Directories

The Edit Search Directories dialog box contains a new Exclude Hidden Subdirectories option. When you enable this option, TestStand does not search subdirectories of the directory you select when the subdirectories specify the Hidden attribute in the Windows file system. You can enable or disable the Exclude Hidden Subdirectories option for each directory listed in the Edit Search Directories dialog box. This option is disabled by default and is available only when you enable the Search Subdirectories option.

Expression Language Enhancements

TestStand 2012 includes the following enhancements to expression functions for manipulating arrays:

  • Use the Sort expression function to sort the content of an array in ascending order.
  • Use the FindIndex and FindOffset expression functions to return the array index string or array offset, respectively, of the first instance of an object you specify in the array.
  • Use the Contains expression function to determine whether the array contains a specified object. This function returns True if the function locates the object in the array.
  • Use the IndexToOffset and OffsetToIndex expression functions to convert between an array index string and a numeric offset.
  • You can assign a value to all elements in an array or to only a range of indexes in an array. Use the SetElements expression function to assign a specified value to a range of array elements you specify. If you do not specify an index or range, this function assigns the specified value to all elements of the array. In previous versions of TestStand, the only way to assign a value to multiple array elements was to loop through the array.
  • The existing Max and Min expression functions now support arrays. You can use the Max expression function to return the largest number in the array you pass, and you can use the Min expression function to return the smallest number in the array you pass. For both expression functions, you can optionally pass a string or number to store the array index string or numeric offset, respectively, of the returned number.

TestStand 2012 includes the following enhancements to expression functions for manipulating strings:

  • Use the Split expression function to split a string around specified delimiters and return a string array of tokens.
  • Use the Trim expression function to remove all leading and trailing white space from a specified string and return the resulting trimmed string. Use the TrimStart expression function to remove only the leading white space, and use the TrimEnd expression function to remove only the trailing white space. You can optionally pass specific characters to remove instead of white space.

TestStand 2012 includes the following enhancements to operators in expressions:

  • When you specify a path in an expression, you no longer need to escape backslashes in the path string. You can now prefix the path string with the @ symbol to automatically escape the backslashes, as in the following example:

    @"C:\Windows\temp"

    In previous versions of TestStand, you had to escape the backslashes in the path string by using double backslashes, as in the following example:

    "C:\\Windows\\temp"
  • When you use brackets to specify an array subscript, you can now use the double dot operator (..) to specify a range of indexes. The operator indexes multiple elements in the array and returns a subarray. For example, the expression array [1..3][2] returns the elements at indexes [1][2], [2][2], and [3][2].
  • You can leave a single trailing comma at the end of an expression. In previous versions of TestStand, a trailing comma at the end of an expression resulted in a syntax error.
  • You can now use the operators listed in the following table in an expression.
    Symbol Operation Description
    & Get Reference Returns a Reference that refers to the operand.
    * Dereference Returns the object to which the Reference operand refers. The Reference must refer to an object that supports the TestStand PropertyObject interface.

You can now use the #NoValidation directive in an expression to disable evaluation error checking for part or all of the expression. Use this directive to suppress errors reported at edit time that will not occur at run time, such as using a variable the sequence creates at run time by using the TestStand API. Use this directive without a parameter list to suppress error checking for the remainder of the expression or pass a separate expression as the parameter to this directive to suppress error checking for only the parameter expression.

Displaying Code Module Preload Progress

When you open or execute a large sequence file that contains multiple code modules that might take a long time to preload, TestStand 2012 launches the Preload Progress dialog box, which displays a progress indicator as TestStand preloads the code modules. Previous versions of TestStand might have appeared unresponsive while preloading multiple code modules when opening or executing large sequence files.

TestStand calculates the percent completion value for the Preload Progress dialog box to display by scanning the sequence file and any called sequence files for the total number of code modules the sequence files contain and counting each code module as it preloads. The Preload Progress dialog box displays the sequence file name, sequence name, step name, code module name, and code module path for each code module TestStand preloads.

The Preload Progress dialog box launches only after a delay period you specify and only when you open or execute a sequence file that specifies an appropriate preload option or contains a step that specifies an appropriate preload option, as the following table describes. The Preload Progress dialog box includes only the code modules specified by steps or contained in sequence files that specify an appropriate preload option.

Action You Perform Sequence File Properties Load Option Step Properties Load Option
Open a sequence file Preload when opening sequence file
Use step load option Preload when opening sequence file
Execute a sequence file Preload when execution begins
Use step load option Preload when execution begins

You can modify the option for a sequence file by using the General tab of the Sequence File Properties dialog box. You can modify the option for a step by using the Run Options panel of the Step Settings pane in the sequence editor or the Run Options tab of the Step Properties dialog box in a user interface.

Note Note  In the sequence editor, if you enable the sequence analyzer to analyze the sequence file when you initiate an execution and the sequence file or step specifies to preload code modules when execution begins, the sequence analyzer preloads the code modules for analysis, and the Preload Progress dialog box does not launch. If you cancel the sequence analyzer before analysis completes, the Preload Progress dialog box launches after the specified delay period and displays the preload progress for the remaining code modules that the sequence analyzer did not preload. If you disable the sequence analyzer and the sequence file or step specifies to preload code modules when execution begins, the Preload Progress dialog box launches.

By default, the Preload Progress dialog box launches after a delay period of 3 seconds. You can use the Preload Progress Dialog Box Delay option on the Preferences tab of the Station Options dialog box to modify the delay period value. You can also use the StationOptions.PreloadProgressDelay property to programmatically modify the delay period value. Specify a negative value to disable the Preload Progress dialog box but continue to preload the sequence file.

In addition, you can use the TestStand API to programmatically specify that the Preload Progress dialog box launches. Pass the GetSeqFile_PreloadModules constant for the Engine.GetSequenceFileEx method to launch the Preload Progress dialog box when you open a sequence file. Pass the ExecTypeMask_DisplayPreloadProgress constant for the Engine.NewExecution or SequenceContext.NewExecution methods to launch the Preload Progress dialog box when you execute a sequence file.

Note Note  When you use the TestStand API to open or execute multiple sequence files simultaneously in different threads and the sequence files contain one or more steps that specify the Preload when opening sequence file load option or the Preload when execution begins load option, respectively, the Preload Progress dialog box correctly displays the progress of preloading code modules for all sequence files but might not correctly display the sequence file name, sequence name, step name, code module name, and code module path for each code module. For this case, National Instruments recommends that you do not pass the GetSeqFile_PreloadModules constant for opening sequence files or the ExecTypeMask_DisplayPreloadProgress constant for executing sequence files.

Click the Cancel button in the Preload Progress dialog box when you open a sequence file to cancel the preload and open the sequence file without preloading the code modules.

Click the Cancel button in the Preload Progress dialog box when you execute a sequence file to cancel the preload and prevent the execution from initiating.

Manipulating Array Elements and Array Element Values

You can complete the following tasks to manipulate an array variable on the Variables pane of the Sequence File window in the sequence editor or on the Variables pane of the Sequence File tab of a user interface:

  • Insert elements in and delete elements from a one-dimensional array.
  • Copy and paste array elements in a one-dimensional array.
  • Drag and drop elements in and out of a one-dimensional array to reorder the elements or create new stand-alone variables. You cannot drag and drop elements within an array of containers.
  • Copy all array element values when you select Copy Value from the context menu for a selected array.

Right-click an element of a one-dimensional array on the Variables pane and select Insert Element from the context menu to insert a new array element below the element you select. Right-click the expanded array and select Insert Element from the context menu to insert a new array element at the lowest array index. If you right-click a collapsed array, you cannot insert a new element. Right-click an array element and select Delete from the context menu to delete the element you select.

Right-click an element of a one-dimensional array and select Copy from the context menu to copy the array element to the clipboard. You can then right-click another element of a one-dimensional array and select Paste from the context menu to paste the copied array element below the selected element, or you can right-click the expanded array and select Paste from the context menu to paste the copied array element at the lowest array index. If you right-click a collapsed array and select Paste from the context menu, TestStand inserts the copied array element as a new variable below the array. You can select multiple array elements, copy them simultaneously, and paste them as a group. You can also use keyboard shortcuts to copy and paste array elements.

In addition, you can paste or drag into the array a variable from outside the array if the variable is the same data type as the other existing array elements. If the variable you want to paste is not the same data type, the Paste option is not available in the context menu and the drag operation does not complete. When you drag and drop a variable into the array, press the <Ctrl> key while you drag to copy the variable you select and insert the copy in the array and retain the original variable.

Note Note  If the array is an array of containers, you can paste a variable from outside the array but you cannot drag and drop a variable from outside the array.

You can also paste an array element outside of the array or drag an array element from the array and drop it outside of the array to create a new local variable, parameter, file global variable, station global variable, or subproperty. TestStand names the new variable using the same name as the array. If a variable with the same name as the array already exists, TestStand appends to the variable name a suffix _n, where n is the lowest variable greater than or equal to 1 that makes the variable name unique.

Right-click a one-dimensional array and select Copy Value from the context menu to copy the values of all the array elements to the clipboard as a flat list, with one element value per line. In previous versions of TestStand, selecting Copy Value from the context menu for a selected one-dimensional array copied only the string ... to the clipboard.

Data Type Enhancements

The UUT data type includes a new PartNumber string property.

Documentation and Example Programs Enhancements

  • Select Help»NI TestStand Examples to launch the Example Programs topic in this help file, which provides documentation for each example program TestStand installs in the <TestStand Public>\Examples directory.
  • The <TestStand Public>\Examples\StructPassing\LabVIEW directory includes a new Cluster Passing to LV VI.seq example sequence file, which demonstrates how to pass a TestStand container as a LabVIEW cluster to a VI.
  • You can use the <TestStand Public>\Examples\ModelPlugins\BasicStepTimeReportGenerator\SetupBasicStepTimeReportGenerator.seq example sequence file to install a result processor plug-in that generates a basic step time report in HTML, comma-delimited text (.csv), or Microsoft Excel 2007 SP2 or later format for each UUT so you can benchmark and analyze the performance of a sequence file. You can also run a stand-alone executable to convert a basic step time report in .csv format to Excel format.
  • The NI TestStand Reference Manual PDF content is now located in the Fundamentals book in this help file.
  • The table of contents in this help file has been reorganized. National Instruments welcomes feedback on the changes to this help file. You can use the new feedback link located at the bottom of each help topic to submit feedback about that specific help topic or other help-related issues.
  • The title of the Using TestStand manual is now Getting Started with TestStand.
  • The NI TestStand VIs and Functions Help, located at <LabVIEW>\help\lvteststand.chm, now merges into the LabVIEW Help and you can now search for TestStand VIs and functions documentation in the LabVIEW search box.

TestStand Sequence Analyzer Rules Additions

The following table lists new built-in sequence analyzer rules.

Rule Category Severity Description
Subelements of an output array parameter should be deleted if you intend to log the entire array General Warning If you enable additional result logging for an output array parameter on a LabVIEW or .NET step and the parameter contains subelements, the step logs only the subelements and not the entire array. An array parameter contains subelements if you added them manually when you specified the code module or if the code module is a LabVIEW VI that defines default element values for the array. To log the entire array, delete all the parameter subelements when you specify the code module. Ignore this message if you intend to log only the parameter subelements.
Find expressions that suppress evaluation errors General Information Expressions that use the #NoValidation directive to suppress semantic evaluation errors. These expressions might contain actual run-time errors.
Sequences in a process model should not enable result recording General Warning If you enable result recording for a process model sequence other than the MainSequence callback, on-the-fly reporting might not work correctly. Disable result recording for all process model sequences except the MainSequence callback.

WAS THIS ARTICLE HELPFUL?

Not Helpful