NI TestStand Idea Exchange

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

This idea must already be on here somewhere, but a search did not find it.

Currently, it is necessary to give all types a unique name. So if I have multiple products, all with similar data types, I need to add a prefix to like types. This is the same as LabVIEW used to be. Why not allow for type libraries? This likely means a rewrite of code that loads and manages types, so I can understand why NI would be hesitant.

It would be great to have an option in the TestStand Deployment Utility to clear the ReloadLastWorkspaceAtStartup flag in the TestExec.ini file when making a deployment.  

 

I usually keep the flag set to save a step when developing code, but when I'm getting to the stage where I need to deploy to continue development and testing, not having this cleared results in an error that pops up on every first launch after installation.  

Adding Wait function i.e. you could insert a delay in case of "Looping" setting different from "none".

 

Paolo

To have shortest TS Sequence will be great the possibility to apply specific precondition for each measurement in Multiple Numeric Limit Test

 

Paolo

When running teststand deployment licence there is no Teststand GUI available to set or configure Results Processing.

I think it should be easy to export the active configuration to file. And then have a property loader type step to load the settings back into the sequence at runtime on the deployed machine. Note in my case I want to run different sequences with different reporting requirements on the same deployment PC.


I have found https://decibel.ni.com/content/docs/DOC-32076
and after more stuffing around than was justified I have got it working with TestStand 2014.

 

Export.png

 

 

Also it should be much easier to specify a relative UDL file. 

UDL.png

 

 

I resolved this by adding an expression after ReadEx that was:

Parameters.ModelPlugin.PluginSpecific.Options.ConnectionString="\"FILE NAME="+Left(RunState.SequenceFile.Path, Find(RunState.SequenceFile.Path, "\\", 0, True, True)) +"\\60467Database.udl\""

 

This means I can select an absolute path to the UDL file in the development directory on my laptop and then use a relative to sequence path in the deployment. 

 

I feel there should be an more obvious way or am I missing something?

I would like to see more options in "Include Step Results", such as "Include ReportText" and "Include Additional Results".  This way, more customized reports can be created without modifying the stylesheet.

 

Report Options with Additional Example.png

 

We have a custom TestStand UI, where we display some DUT specific waveforms. These waveforms derive from a custom step type which returns an array of waveforms, whereas these will be stored in a TestStand variable type LabVIEWAnalogWaveform.

 

To pass these waveforms to the GUI, we have to basically build up the waveform again in the GUI, because the representation of the waveforms are different in TS and LV 😞 This is a time-consuming operation. As I know, the only problem is the different representation of t0 --> this is a string in TS, but a timestamp in LV.

 

There must be a way to pass waveforms from TS to a custom GUI. Either changing the t0 representation in TestStand, or using an automatic conversion.

 

The return value of PropertyObject.GetValVariant could be simply type casted back to array of waveforms...

 

Madottati

There is no HEX format dropdown entry for formatting a received string to HEX. TestStand only provides "ASCII String" or "Binary".

 

It would be very very helpful for developers to have this, as many times one has to command equipment that is controlled with commands written in HEX format and response from devices is in HEX as well.

 hexformat.jpg

When creating an MNL step, and you've created a long list of limits (and unfortunately, had to specify the datasource for each measurement) it would be really nice to be able to right click, copy and paste (or have more buttons on the limits tab that do this).  It would be really nice to be able to multiple select lots of these and just paste them and modify them as needed.  It's cool that it copies the limits, comparison type, etc. from the measurement above when you add a new one, but it would be REALLY cool if you could copy and paste entire limits by selecting which ones.  Would save lots of time in some instances.

TestStand API SearchDirectory objects in TestStand have the following writeable properties:

 

Disabled
ExcludeFileExtension
ExcludeHiddenSubdirectories
FileExtensionRestrictions
Path
SearchSubdirectories

 

When you use the SearchDirectories.Insert method to add a new search directory, you can only specify the following for the new search directory:

 

Disabled

ExcludeFileExtension

FileExtensionRestrictions

Path

SearchSubdirectories

 

It would be really nice if the SearchDirectories.Insert method also had an additional input parameter for setting the ExcludeHiddenSubdirectories property for the new search directory.  This would result in a more consistent interface and fewer API calls when working with new search directories.

The TestStand search directories dialog appears to add and remove items by adding or removing entries to and from the TestExec.ini file directly.  This poses a problem because it isn't using the TestStand API to manipulate search directories.  This results in a difference in behavior between the API and the dialog.  In the case of the dialog, you can add search directory entries that don't exist (invalid paths) but with the API, you can't do so.  It would be really nice if either:

 

1. The search directory dialog used the TestStand API for adding and removing entries (so that there isn't a discrepancy in behavior)

2. The TestStand API allowed addition of non-existent (invalid) search directory paths

 

It is convenient for me to have search directory entries that are invalid so that my deployments will run on either Windows 7 or Windows XP rather than having to create a separate deployment for each operating system.  You can obviously do that through the TestStand search directories dialog.  However, that is not possible if you attempt to do it programmatically through the TestStand API.

 

In addition to using the search directories dialog, I also have a utility that can be used to programmatically modify the search directory entries.  Because the TestStand API throws errors if you try to add a search directory entry that is an invalid path, the utility often ends up modifying more than the user-requested changes (by being forced to remove invalid paths that were configured previously through the search directories dialog).

Hi,

 

Why the edit sequence file functionality is disabled during execution?

 

I think that developers should be able to edit the sequence file in sequence editor whilst the file is executing.

Like in MS Word there is Ctrl +G to go on particular line, Similar should be in NI TestStand to jump to particular step.

In the status below the editor we can see the Current Step Number. It shall be better if we can enter there a number and directly cursor goes to that particular Step.

 

Regards,

Priyank Soni

For debugging pourposec I'd be good if developers can set "do not use this variabe during execution".

Then developers can set this flag on, on the variable which they suspect  is not in use during the execution.

If is in use then a message will be displayed.

Hi,

 

Now when devs want to do the OR-like logical operation ob their objects they have to do it in one of the ways presented

 

1.

 

Locals.MyString="AAA" || Locals.MyString="BBB" || Locals.MyString="CCC"

 2.

AnyOf(Locals.MyString="AAA",Locals.MyString="BBB",Locals.MyString="CCC")

 

 

Wouldn't be better if devs could use SQL-like syntax like, for example, below:

 

Locals.MyString IN ("AAA","BBB","CCC")

 

or

 

Locals.MyString=("AAA"||"BBB"||"CCC")

 

 

?

Hi,

Before proposal a bit of introduction.

It is not well known feature that we can name the containers. This feature can be very useful if we consider naming the array elements. Using it we can access array elements not by index but by the name we give them.

To illustrate this feature please have a look at the picture below.

 

Capture01.PNG


Using this feature we can access elements not only like that

 

Locals.Cnt[0]
Locals.Cnt[1]
...

 


But like that as well.

 

Locals.Cnt["P112"]
Locals.Cnt["P113"]
...

 


This is an existing feature. What is new then?

The proposal:

For all looping steps For For  Each I'd like to propose to introduce additional array element loop variable called Current Name.

In this field devs could reference a variable which will be storing the name of the

What is beneficial?

Using this we can access element of the array of cluster independently from their location in the array and proposed idea will let easily access to the elements from within the loop. We can bind against the name not the index only.

O course it would be even more beneficial even devs could name element array of ANY type not containers only.

We can also name  the elements of the array which consists of containers. In this way we can have nice binding method and instead call the array elements vie index we can call them by its name (string). The postulate additional array element loop variable could be just below the current subscript form. The current view of the For Each Loop looks like below.

 

Image.png

The benefit of this additional array would be that we would know the current name of the element and we could call this element using its name not a number. Then developers could use that name to call the element in that loop by using its name.

Hi,

 

Now, when we iterate over any multidimensional array, in this example let it to be a 4D array, using ForEach loop the order of iterating is bit surprising.

For example for the array like defined like that
 
AnArray[0..4][0..3][0..2][0..1]
 
The order of iteration is like that the loop start iterating elements from first dimension first [0..4], then from second [0..3], third [0..2] and fourth [0..1]. So from left to right, in shorthand.
 
For me this order seems to be bit surprising. I'd expect rather the ForEach loop will start iterating from right to left as it'd be if we replace ForEach loop with four nested For loops:
 
for (int i = 0; i <= 4; i++)
{
    for(int j = 0; j <= 3; j++)
    {
        for(int k = 0; k <= 2; k++)
        {
            for(int l = 0; l <= 1; l++)
            {
                AnArray[i][j][k][l]
            }
        }
   }
}

 

 
There are some advantages using ForEach loop over ordinary For loop. For example ForEach loop is dimension independed.
 
Is there any chance developers can have an option or flag which change the order of iteration for ForEach loop from left to right to right to left?
 
PS: I've started the topic in normal forum here, but after dug9000 input, I'm posting it here.

Recently I came accros situation like that:

 

I have a local container called AAA with the subproperty called "Name".

 

Then I'd like to change the name of the AAA container using the API function ".Name".

 

However, when I call Local.AAA.Name, instead of changing the name of AAA container I'm accessing the subproperty with this name.

 

I think the name "Name" should be reserved as a name of subproperty.

 

 

In TS Sequence Analyzer Results Window:

it would be helpful to be able to have a column of RuleID in the results table.  This way when we are debugging/ troubleshooting results of custom rules that it would be much easier to track down to the specific RuleID that is being used (names/categories/descriptions can all be duplicated)

Right now RuleID is not available as one of the columns of the results table -- add it as an option.

I do NOT think it should be visible by default, but we should be able to show it optionally if we want.

IncludeRuleID.png

 

Also, if you select an analysis message from the results, you can right click on it and choose "Goto Rule"

Now at this point you are in the list of rules, but if you want to go track down what RuleID caused the problem, you are dead in the water -- you need to look at the rule name and description and then manually go to the rule configuration page and search through the list to find the right one.  It would be so much nicer if you could right click on the rule in the analyzer project and be able to open the "Configure available rules" window.

Hi,

 

Recently I wanted to iterate through ALL my subproperties in the container.

 

I've discovered that the function GetNthSubPropertyName accessing only first level of subproperties and it doesn't get deeper into hierarchy.

 

I wonder if it could be an extension to this function - and to all similar functions - allowing iterating automatically over ALL subproperties. For example a new option could be applied here.