NI TestStand Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

There is no way to programmatically clear the Output Window in TestStand.  It would be beneficial to be able to clear it through the API and through an expression function.  The only way to clear it right now is manually.  This benefit would allow developer's to configure the system to only see messages from their current run, only show one message at a time so you could iteratively overwrite it to show measurements changing for example, or many other benefits.

Please allow the TSDU to password protect Sequence Files on build.  This functionality is already present for VI's in the LabVIEW Options.  Why not make this possible for the Sequence Files as well?  If I need to protect my VI's with passwords, I probably would like to do this with my sequence files as well.

As NI has acknowledged (here, here) for more than 5 years, the Build .sql File button creates schemas with errors.  This is even true for the default schemas in the left of the dialog.  Would be great if NI would go ahead and correct this.  BTW - to create default tables in the meantime, a developer should use a SQL file located here:  <TestStand>\Components\Models\TestStandModels\Database

 

 

TestStand Database Options Dialog.png

A customer noticed odd behavior when modifying custom data types in TestStand.  After reproducing the behavior, I think it's a better product suggestion because it looks as if what the customer notices is more of a design choice implemented by our software developers than a feature that is not behaving correctly.

 

The customer, David, created a custom type called DavidsType which was composed of a container and within this container was a collection of strings:

 

 

image1.jpg

 

He then created an instance of this type in his DavidTest.seq file under the file global variables.  He called the instance MyType.

 

image2.jpg

 

Then he goes back to the Types pane and modifies the structure of the custom data type to include another string with a default value of "C".

 

image3.jpg

 

However, when he goes back to view the already created instance of his data type (MyType) within the variables pane of DavidTest.seq, he notices that only the structure is updated and not the default value.

 

image4.jpg

 

New instances of the custom data type, however, do show up with the default value as shown below by MyType_Instance2.

 

image5.jpg

 

The problem is that the customer has many instances of this type that already exist within his code.  He would currently have to create new instances of each type to load the new default value or he would have to hunt down all of the current instances and enter the default value of the new string manually.  I understand that the structure is updated, but shouldn't we build/provide an option to scan current instances of the custom data type and update default values for the elements that are new to a custom data type's structure?

 

I understand that it is expected behavior to load the default values of a custom data type only with a new instance of said custom data type, but I think we should provide an option/tool/function to our customers which updates all preexisting instances with the default value as well as the change in structure to the current types.  Currently only the structure is updated with a null string.

 

 

 

We found a need to customize the NI version of this step to give more functionality.  Our edits updates to allow multiple response text boxes (up to 10), and we added an option to configure the response to be a list controls rather than simple strings. Just added a Boolean to switch to list box and then the user just gives comma separated list of options with the default item first as the initial response string.

Modified Message Popup

This is a simple change to the step and allows far greater flexibility for the step type (also it was easy to make the step upgradeable from the exiting step version maintainign the functionality if one or no string responses being used).

These features are very useful for collecting all UUT information during PreUUT rather than having to throw up popup after popup or create a custom module with a popup in it.  Would be great if these features could be included in the standard NI step.

I'd like to be able to specify the username, password, and local & remote paths by expression:

 

18787i328326F4E8289180

During development of sequences I often do "trivial" changes in order to check parts of the sequence that I do not want to save afterwards  (e.g set Run Modes of steps to Skip). It would be very helpful to see the last changes that can be undone before clicking the Undo-Button arrow (the same applies for the Redo Button of course). This feature would have two major advantages, since one could...

  • ... decide whether it makes sense to save the last changes or whether those were only for trial reasons and hence should be neglected
  • ... undo several changes in one step

This is implemeted in Microsoft Office programs for example (see screenshot from MS Excel) and I use it there pretty often.

When there are a lot of variables defined an Sequence / Sequence File, it would be nice to beable to group them to help use and readability.

group_of_variables.png

I know that I can deploy station globals by adding the ini file to my workspace but when deploying them I want the Station Globals to be merged with the existing station globals on the deployed machine.  Please add this as a feature to the deploy utility.

 

When a 2d array is added to the report as table, you get the following table:

 

 

[0][0]  00

[0][1]  01

[1][0]  10

[1][1]  01

 

It would be better to have a table like this:

      [0] [1]

[0]  00  10

[1]  10  11

 

Currently this needs to be implememented in the stylesheet. But for a lot of users, this is a complex workaround.

 

 

Hi,

 

I have a table in file globals (2D array).

Each column of the table has an associate variable in file global.

For i want my custom step to run N time which is the number of rows in the table.

In each iteration, i want to take each value of the row and assign the value to the asscoiated variable in file global.

so, i want to have a looping mechanism in the expression.

I guess it is not explicitly present right now. Right now, i use teststand API to update the variable.

It would be nice to have looping in expression. This will improve my custom steps performance.

 

Regards,

Muthuraman S

Dear NI community,

let me, please, propose the following idea.

 

It would be great, if it is possible to open sequences of the sequence file in different tabs. Currently, only sequence files are opened in separate tab. But, if you need to go between sequences (or subsequences, depends how you name them) of the one sequence file (let's say, to copy-paste some steps from one sequence, to another), one has to click on the sequence in the Sequences tab, and it will be opened in the Sequence View tab, and, meanwhile, the another (previously selected) sequence is not seen. And, one has to click between them in the list there and back, and it's not possible to see two sequences one-to-one at the same time.

 

This is similar to MS Word feature "Open New Window", when one can see the same document but in two windows at the same time. It can increase usability of the sequence editor, and make development a little bit faster...

 

Thanks in advance.

To change the adapter settings every time instead of traversing from configure tools menu it would be extremely convienent to launch the adapter  configuration dialog box by just  double clicking on its icon available in the insertion palette.

 

Present implementation :

Left single click on icon sets it as the active adapter. (Requires 4 clicks)

New request :

Double click this to launch the adapter configuration dialog box.(Requires one double click)

 

 

When I get called to look at an issue that has occurred with a test, the account logged into TestStand is typically a restricted user (i.e. Operator). Since the Operator account has very limited options, in order to really do much immediate troubleshooting I need to stop the test and re-run it in the Administrator account. At best this is inconvenient and inefficient if the spot the error occurred is late in the test. However, it is extremely frustrating when it's an intermittent run-time error and I can't do any real-time debug because Operator is logged in. The only real alternative I can think of (when the problem is intermittent) is to leave it logged in as Administrator so I can debug whenever it happens to occur. This is not really an acceptable practice in most cases.

 

It would be fantastic if there were an override that let's an Administrator provide the proper credentials to perform the desired task that would normally be off-limits to the Operator. The basic premise of this suggestion is similar to the functionality within Windows; if you try to connect to a secured location or perform a task that requires administrator privileges, a dialog box pops up asking you to enter authorized credentials.

 

I run into many situations where I wish this feature was present. The issue is not always within TestStand (could be a database connection issue, etc.), but it is TestStand that throws the error and in Operator mode the only option is "Run Cleanup". Significant time, effort, frustration, and efficiency could be saved if I could simply enter my credentials as an administrator to perform the tasks I need to do.

 

Regards

 

 

On an unrelated side note, I find it humorous that "TestStand" is considered a misspelled word when using the forum spell checker.  🙂

I’m trying to work with the tool Requirement Gateway. I started with some examples which are contained in install packet of this tool. I need to connect Gateway with HTML document and manage coverage with another HTML document. I managed to get from HTML document load the list of requirements to Gateway tool. If I tried to open the particular requirement from Gateway than the HTML document was opened on first page always. I can’t set the Gateway for opening the HTML document on particular place, when is described requirement.

 

My point of view is make some modification for better connection Gateway tool with internet browser.

Often times a sequence file ends up containing dozens (or even hundreds) of sequences.  Currently they all show up in the sequence editor Sequence Window as a flat list.  It sure would be nice to view them organized in folders so that, for instance, all my sequences dealing with Rs485 communications or whatever could be group together in a "folder" called "RS485".  Also it would be great if there was a displayable property for each sequence showing the date/time last modified.  Then you could sort the list on that and see which sequences have changed. (really helpful if you have multiple guys who might be making changes.)

Since TestStand 2019, it's possible to configure an action step with a LabVIEW Module to switch between using a source VI and using the same one but compiled into a LabVIEW Packed Project Library (PPL).

The option, accessible in two ways, is called "Always run VI in Packed Project Library".

 

That's a neat possibility since it's allow to switch between a development version with easy debugging of a classical VI, and an optimized and locked production version with PPL.
One non compiled VI
One compiled VI into a PPL
One LabVIEW project
One TestStand step

 

However, when LabVIEW Adapter is set to Run-Time, a tight coupling between the compiled VI and the non-compiled VI is maintained for no reason.

 

Example 1)
-A VI is developed and compiled on a development machine A
-It is called as the module of an action step
-The VI, the PPL, the .lvproj and the .seq are pasted on a production machine B with fresh installations of LabVIEW and TestStand
-LabVIEW Adapter set to Run-Time on machine B
-Always run VI in Packed Project Library set on machine B
--> The execution will not start, since the classical error -17600 appears on the call. The reason is because the LabVIEW cache of the machine B does not contains data from the .lvproj. Simply opening then closing the .lvproj updates the LV cache, which solves the issue. However, it makes no sense to depend of the LabVIEW development environment on this production machine since the LabVIEW Adapter is set to Run-Time and "Always run VI in Packed Project Library" is enabled.

 

Example 2)
-LabVIEW Adapter set to Run-Time
-Always run VI in Packed Project Library
--> If source VI is deleted, it takes a long time to preload the modules. See here

 

Proposition :
When the LabVIEW Adapter is set to Run-Time and "Always run VI in Packed Project Library" is enabled, it should be possible :
- To not install the LabVIEW development environment (only the LV Run-Time)
- To keep only the PPL (and eventually the .lvproj) and to delete the source VI (no source code on production machine)

We have multiple sequences in a file to perform steps that are common to particular subsystems.  It would be nice to have the ability to group sequences within TestStand.  I could envision this to look like a treeview or folder/file structure within the Sequence Pane.  Currently, we have to use a common naming convention to group the sequences together like below:

 

GPIO_Inputs_[Seq1]

GPIO_Outputs_[Seq1]

GPIO_Outputs_[Seq2]

Communications_CAN_[Seq1]

Communications_Ethernet_[Seq1]

Communications_Ethernet_[Seq2]

Communications_UART_Port0_[Seq1]

Communications_UART_Port1_[Seq1]

Communications_UART_Port1_[Seq2]

 

With grouping, it could look similar to below:

 

Communications

    CAN

        [Seq1]

    Ethernet

        [Seq1]

        [Seq2]

    UART

        Port0

            [Seq1]

        Port1

            [Seq1]

            [Seq2]

GPIO

    Inputs

        [Seq1]

    Outputs

        [Seq1]

        [Seq2]

 

In addition, there could be a toolbar menu item to switch between showing the grouping or all so you could sort to find

 

 

It's a relatively minor gripe, but wouldn't it be nice to be able to center justify a message in the MessagePopup step type?

 

Step.MsgFontData.Justify

...is strangely missing.  It could be an integer as in LabVIEW:

0 = Left

1 = Center

2 = Right

 

Yeah, I know it's easy to write code to produce a custom dialog, but it seems simple enough that it should be there natively.

 

Thanks as always,

Mr. Jim

It would be really helpful to have a diagram showing the order in which process model callbacks execute for the sequential, parallel, and batch models and their relations to the various test sockets.  The TestStand documentation does contain a list of the model callbacks, but it would be nice to have them in a diagram format so that a developer doesn't have to open the process model files and figure out that information.