NI TestStand Idea Exchange

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

There should be an Engine Callback that is executed as the very last step in the order of step execution that will execute regardless of any and all settings or step results: the PostStep "No-Matter-What" Engine Callback.  I have a requirement to perform certain actions at the end of every client sequence step regardless of step, station, report settings as well as step results (Status, Error).  Right now, the callback that gives the best coverage is ProcessModelPostResultListEntry, but this does not fire when client sequence developers set Result Recording Option for a step to False.  My requirements call for my actions to execute whether or not the developer of the client sequence desires the results to land in the TestStand report or not.  As with other callbacks, if it is blank, the engine can skip it. 

 

The PostStepNoMatterWhat callback would execute regardless of all these, but as an aid to Framework developers, NI should provide a matrix for each of the default Process Models that shows which of the engine callbacks will execute given the following data:

  1. Step.Result.Status {Done, Skipped, Passed, Failed}
  2. Result Recording Option {Enabled, Disabled}
  3. Step.Result.Error.Occurred {True, False}
  4. Run Mode {Normal, Skipped}
  5. Ignore Run-Time Errors {Enabled, Disabled}
  6. On-The-Fly Reporting {Enabled, Disabled}
  7. Error Dialog Selection {Ignore, Run Clean-up, Abort}

 

Sometimes it is useful to be able to search for instances of custom data types. Unfortunately, there doesn't appear to be a way to do this in TestStand.  It would be really nice if you could search for instances of types in the Types window or perhaps through the Find/Replace utility:

 

Suggestion.png

 

Suggestion2.png

Expressions offer the following exponential and logarithmic functions:

 

   Exp()    -> Exponential (base e)

   Log()    -> Logarithm (base e)

   Log10()  -> Logarithm (base 10)

 

Computers always calculating digital. I have to handle binary values very often. Please add the following functions for calculating with binary values:

 

   Exp2()   -> Exponential (base 2)

   Log2()   -> Logarithm (base 2)

 

Currently Custom Icon can only be placed under 

 

C:\Users\Public\Documents\National Instruments\TestStand 2014 (32-bit)\Components\Icons

and

C:\Program Files\TestStand 2014\Components\Icons

and also from 

search directory option for icon (New Idea)

 

If icons can also be loaded in path mentioned search directory, It help a lot in handling things among a large ATE Team (50 Test Developers)

 

11111.png

 

Hello,

 

It would be nice to have a tool such "Trace Toll kit" for TestStand, in order to be abble to view the currently loaded modules. 

 

When you have big Sequences, with many loops, you can get memory problems. Smiley Sad

 

Then you'll have to play with the load options, the results recording, the on the fly reporting .... Smiley Mad

 

It should be nice to had a tools which could show us the memory used by every modules, structures, Globals, fileGlobals, parameters, locals ...

So it would be easier to point to the main memory consumers  !!!! Smiley Wink

 

Or better ... let TestStand access the 64bit world Smiley Happy !

Get rid of the ActivX architecture !Smiley Wink

Memory management should not influence Test creation ... 

 

Thanks a lot.

 

Manu.net

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).

At our facility, we have a shared Users.ini file on a network that is used by all test systems in our entire organization (somewhere between 150 and 200 systems).  It contains hundreds of different users and many different user groups and its contents change frequently.  I recently upgraded to a newer version of TestStand and learned that a single Users.ini cannot be used by multiple versions of TestStand; it can only be used by the version of TestStand in which it was created (or saved, when upgrading).


This is problematic because it means I have to maintain multiple Users.ini files for the different versions of TestStand in use at my facility; whenever I need to make a user change, instead of changing it in one location, I have to make the same change in multiple Users.ini files.  Because there is a mixture of TestStand versions in use at my facility, it would be really nice if different versions of TestStand were able to use the same Users.ini file.

Although BuildTSD allows for builds from the command line, they are still not automatable because someone must be logged in for the run to work. All of our other build tools (Visual Studio, Eclipse, MPLAB, Quartus, NIOS, Matlab, etc.) allow for headless, remote, automated builds which support our move toward continuous integration, continuous deployment, and agile development.

Can we have the UI show a different status for a disabled socket?  It shows the socket as "Completed [Passed]" if I disable a socket when running the batch model.  This seems misleading.  It should say "disabled" and maybe have a null symbol icon or something to signify that it didn't actually pass any test.

Under TestStand Sequence Editor, a lot of IVI Class are not encapsulated in Steps Type.

It should be interesting to have IVI Step Type because the development and the maintains of a Hardware Abstraction Layer is complex and requires a lot of time.

Under Labview all IVI class are presents. Why not in TestStand?

 

 

 IVI2.png

 Xavier

Test Architect - Alstom Transport

 

Hi,

 

As in the subject.

 

In the Call sequence step please make the list of sub-sequences to call (combo box) sortable.

 

Now, the list is not sorted an it is very difficult to find the sequence we need to call.

 

Cheers,

 

K.

Provide capability to allow set a property that contains the full path of the file to be downloaded/uploaded via an expression browser. When running my tests with my sequence file I won't know my filename/pathname until the test is completed. Provide an expression browser for the remote path and the local path so I can dynamically set the property of the path at the end of the test.

 

Expression Browsers Feature.png

 

 

 

 

 

 

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.
Let consider I have an array of containers. The container is defined as a user type, (array of the same elements) and consist, let say, from three string variables A, B and C. And, let say the array size is for, example 4.
 
Now, let say, the developer needs to access the array of elements A. Let say he/she has to create an array od strings called StrArr So what he has to do is for example like below:
 
FileGlobals.StrArr={FileGlobals.MyContainerArray[0].A, FileGlobals.MyContainerArray[1].A,FileGlobals.MyContainerArray[2].A, FileGlobals.MyContainerArray[3].A}

 

It is a lot of writing isn't it?
 
Wouldn't be worth considering to implement implicit conversion which allow just to write
 
FileGlobals.StrArr=FileGlobals.MyContainerArray.A

 

or
 
FileGlobals.StrArr=FileGlobals.MyContainerArray[].A

 

It would be awesome if we could drag and drop attributes from the attributes dialog into expression panes in TestStand.

Return the last element of an array by indexing it with -1, as in myArray[-1].

 

For a bonus, the second-to-last could be returned by usinging index -2, etc.