NI TestStand Idea Exchange

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

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.

 

 

A coworker of my is taking the TestStand training for the first time and I asked him what he thought.  He has been developing software in Visual Studio for some time now (C#, VB.net, etc).  One of his feedback was the extra steps needed to create variable seemed excessive.  His point gave me an idea that I thought would be very nice to have.

 

Currently, in the expression editor, when you start typing there will be a small popup suggesting existing variables to select.  Wouldn't it be nice that it also gave you the option to create the variable right there.

 

Say for example I'll need to place my module return data into a variable but I didn't think ahead and create a local variable.  Now, I am in the expressin editor and I start typing 'local.' and then the name of my none existing variable "newVar".  The little popup that shows the existing varialbes detects that what I've typed doesn't exist and gives me a new button where I can create it and assign a data type.  No going over to the variable editor 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.

 

It would be very useful to be abe to specify a custom project or workspace when creating a new test using the LabWindows/CVI adapter. 

 

This would allow developers to always ensure that  any custom macros and source files are always included during development

 

 

 

 

The vi templates should use the NI reccommeded 4x2x2x4 connector

 

Also sequence Context should be a required connection and there should be some default documentation

For TestStand Sequence Analyzer:

if you open a sequence analyzer project file in sequence editor and make changes, Undo does not work.

Make Undo work for sequence analyzer project (.tsaproj) file changes.

 

Right now TestStand Sequence Analyzer only supports Relative Paths with respect to the .tsaproj file.

Change this so we can specify path as Absolute when selecting the file to analyze.

SeqAnalyzerSelectFile.png

Recently I've discovered misleading TestStand behavior.

 

In the case where in the sequence we have two steps with the same name and we'd like to refer to the SECOND step via its name like shown below:

 

screen02.png

 

TestStand allows us to do this, but during the execution, this reference is bind to the FIRST instance of the step:

 

screen01.png

 

In this caseTest D should fail showing result 12 not 10.

 

So, TS allows me to pick a step I want, however it looks like TS binds it to the first match on the list; so it is a lie.

 

In my opinion TS should either:

--don't let me do this, or

--implicitly bind it using unique step ID.

 

Anyway the current behavior (TS2014) is ambiguos and shall be treated as a bug.

In thw Sequence editor, in Tools -> Update VI calls  - > Type of calls To Update -> Process Standard VI Calls another two entries could be added in the combo box. Apart from existing:

    * Report Problems Only (No Changes Will Be Made)
    * Reload Prototype if Modified
    * Force Prototype to Reload

These two options below shall be consider to be added.

    * Resave (recompile?) Code Module (VI)
    * Resave (recompile?) Code Module (VI) with all dependencies

I think this feature could be used in case like happened to me:


I had to update one of my global TypeDefinition (*.ctl) which is called by a lot of VIs from my project. When I did it, a lot of VIs were suddenly unable to load under RTE. So, manually I had to open every VI called by TS and do Open and Save (accepting recompiling) actions. I don't have to tellyou that was very boring and long task...

Hi,

 

In the bottom right corner of the Sequence editor window (or in other place if you find more suitable) please display information about type of the adapter server.

 

For example for LV Adapter it would be information about whether Adapter is set to wok with LV Development System, LV Runtime Engine or other executables. For HTBasis Server it would be HTB Runtime Server or HTB Development Server.

 

Capture2323.JPG

 

During the development I have to often switch between LV Dev environment and RTE. To do that you have to click three times to go trough modal window to get this information. If you do this often it's getting painful. 

Hi,

 

As in subject: Enable implicit cast numbers to string in OutputMessage function.

 

K.

It'd would be good if in the Step settings for LV modules we can have a button which can trigger the test saying is that module going to work when we change Development Environment (DE) to Run Time Engine (RTE).

 

Now, in case like this, we have only a dry information saying TS cannot load the module because probably VI is broken. Problem is, when we switch over to DE VI is NOT broken.

 

Of course the reason behind is that RTE has not enough information to call one of dependencies, or there is ambiguity in calling a sub-module - for example a dependent sub-module is used called by step earlier.

 

So, summarising, the test like that would be quite needed (saving time of development), and information returns shall be more detailed indicating the sub-module cannot be loaded by RTE and why.

 

 

In the sequence editor, when you hover over the step name in the Step column of the editor, please display in caption the step unique ID.

Hi,

 

Now, the PropertyObjectType.TypeName property returns the type name of the named type only.

 

I propose to extend the list of the returned type names to ALL types: build-in, custom named data types, standard named data types.

 

Moreover, it would be good if the NI can be more clear in documentation reminding users what the named type is, as it can be mixed up with the build-in data types.

 

K. 

Hi,

 

One of the only paths (if not the only path) that can't be specified by expression in TestStand is the substep module in a custom test step. A substep module must currently be statically defined.

 

For advanced architectures it would be nice to be able to define substeps by expressions instead of statically (in one project this was a showstopper to the flexible architecture we attempted to implement).

 

/Steen

I'd prefer TestStand worked the same way as LabVIEW, such that it'd allow multiple versions open at the same time. Other than probably some stuff internal to the TestStand architecture* I don't see any reason for the version selector.

 

* It's probably due to the ActiveX API having the same server and method names between versions, but that can be worked around if necessary.

 

/Steen