NI TestStand Idea Exchange

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

Do you ever write an expression in TestStand with a bunch of parenthesis () and get lost halfway through trying to figure out which pairs are open and which are closed.  Well, I do.  Every Day.  And I spend accumulated hours a week just trying to keep track of which ) goes with which (.  If I'm lucky I can look for a little red item in the expression, or click on the check expression checkbox, but when I have a 'only runtime evaluatable' expression I'm out of luck (which is rather often) ).  Some languages/editors have a parenthesis matching, where the ) your cursor is on causes the matching ( to get bold or flash.  Others start coloring each pair a different color, so it's easy to see them all.  Why can't TestStand do something like this????

TSparenthesis.png

 

It would be nice to be able to "fold" control flow blocks (like if - else -end, while - end etc.). Despite the vertical lines connecting the control flow steps on the same level, it is sometimes very hard to find where a long control block actually ends or what the condition for the "end" is you are currently looking at.

 

In such cases it would be helpful, if the entire control flow block could be hidden under its first line, tree-view like with a +/- icon to show/hide the interior of the block.

 

Regards

 

Peter

The settings field can easily become too long to see every active option and there's not necesarily any consistency between steps if they have differing options. What I mean by that is if you only set the "Do Not Record Result" (my favorite) option in one step, it will be on the left of the settings field. But if you now set several options on another step, the settings are not lined up so that it becomes hard to see at a quick glance which steps I forgot to not record (because TS still doesn't default to not recording steps). You have to analyze the settings line for each step.

Current settings.PNG

 

I propose something more graphical and ordered. Here's my idea of at least ordered. The text could be replaced with icons representing each setting.

Ordered settings.PNG

 

Then it would be graphical, ordered, and concise. What more can you ask for?

When monitoring values within a loop in TestStand, it is often desired to only record step failure results.  It would be useful to have a "Result Recording Option" of "Enabled On Step Failure":

 

TestStand Idea Exchange - Enable Result Recording On Step Failure.png

 

This is possible through various means (SequenceFilePostResultListEntry callbacks and other custom code).  However, I believe this would simplify TestStand sequence development significantly.

Obviously it's not a great idea to have loads of nested conditional steps, but for longer sequences even with only a few nested conditions, I find it hard to find the matching END for example when an if-statement. Sure I can count the number of lines, but I think it would be a lot easier if the "scope line" that indicates the scope would stand out more and become bold or blue (like the selected line)

 

Here's are two mockups (bold line)

 

bold-line.png

 

An alternative indication could be to highlight the ending line of the scope like below.

 

end-highlight.png

 

Having a keyboard shortcut for jumping between beginning and the ending within a scope would also be very helpful!

In Microsoft Visual Studio there's a keyboard shortcut (CTRL + [ ) which toggles the cursor position between the and and beginning of a scope, and it works with all things that encapsulates a scope or a string or expression. e.g. curly braces in code sections, quoted strings etc.

The built-in Wait step currently causes TestStand to simply stop at that step until the specified period has elapsed. For steps longer than a few seconds, it would be nice to have some sort of indicator to show how much time is left to wait (and to show that the computer hasn't locked up on those waits that are more than 15 seconds).

 

It would be really nice to have a check box option to show some sort of wait indicator, even if it was simply using the progress indicator in the lower right corner of the screen (something that simple could even just always be enabled).

 

On a related note, could the progress bar be made wider so that there is more resolution as to how much progress has been made? If there was a ten minute wait for something, the bar would be moving very slowly and hard to tell progression was being made.

How many times have you found yourself typing double backslashes "C:\\Windows\\System32\\cmd.exe" or even worse, going through a copied path to change every backslash to a double backslash (and inevitably missing one), just so you can pass a file or directory as a constant to a code module or another sequence?

 

string issue.png

 

I'd like to see a symbol for 'explicit string' in the TestStand expression language, much like C# does with the @ symbol.

So if we typed @"C:\windows\temp" we would actually get the string "C:\Windows\temp" instead of "C:\Windows<tab>emp".

 

To really go the extra mile on this:

  • Drag and drop could be enabled, so that any file dragged from another window into an expression box would automatically paste the filename.
  • A browse button could be added to the expression browse dialog which would bring up the usual file open dialog and insert the selected filename.
Message Edited by Josh W on 06-14-2010 12:57 PM
Message Edited by Josh W on 06-14-2010 12:58 PM

I'm taking a bunch of steps and trying to put a "If" flow control step around them. 

Kinda like this:

TS_StartIf.png

 

But what I end up with is just a If/End statement in the middle of the steps that I selected (well, after the first step in the selection)

 

TS_ResultsIf.png

 

What I would have liked to see is this:

 

TS_wantedIf.png

 

Whare the If/End wraps the steps that I selected.

I don't quite know how best to handle the situation where the steps you have selected are not sequential (there's an unselected step in the middle), but that could probably just behave how it is now.

 

It would be nice if the Step Settings for a Sequence Call step's Module tab would also list the calling sequences comments field and the parameter comments in addition to the prototype information. This would allow sequence calls to easily present information on the expected use of the sequence, along with parameter information (ranges, default options, etc) that would be useful to the developer. I've created a simple mockup of what I'd like to see here:

 

19657iFA3E1FCBE0E24E08

 

By adding these features, sequences can contain their own 'help' information which would allow the developer to configure the call without having to leave the step module dialog.

 

Thanks,

 

-Jack

For some reason I was certain this was already in the idea exchange, but I couldn't find it -- so I'll post it.

 

Select Case structures are frustratingly difficult to use if you want one case to support multiple values.

 

In text languages you can often do something like

 

Switch (Foo) {

Case 1:

execute this code;

Case 2:

execute this code;

Case 3:

Case 4:

Case 5:

execute this code;

Case 6:

execute this code;

Default:

execute this code;

}

 

Notice that the case for 3,4,5 is all the same, and I just need to put it in place once.

TestStand can't do this.  You need to do something like this:

how to do select case on multiple values

which is horribly difficult to write, maintain, and understand what is happening.  It would be MUCH easier if select case on multiple values worked like this:

SelectCaseImplementA.png

where it looks just like other text based languages, although it takes up quite a bit of realestate on the screen.

or maybe something like this:

SelectCaseImplementB.png

where I can just type in a comma separated list of allowed values.  The similarity with text based languages disappears here, but it is much smaller on screen (but notice how it shows nicely in the description field) and lines up better with LabVIEW notation.

 

 

Note: LabVIEW already supports doing this, and also supports ranges of values (eg 3, 5..10, 12 for numerics) which would also be nice, and also supports case sensitive and insensitive comparison for cases. 

I think that this simple change to the sequence file callbacks dialog would make it far more simple and intuitive.

 

new:

 newcallbacks.png

 

current:

 

callbacksDialog.png

This idea mostly goes along with this idea.  I use type def all the time in LabVIEW, especially with enums.  TestStand can interact with my VIs with enums, but they are handled as a number.  Furthermore, if the enum gets changed, the wrong value of the enum is often used.  I really like the idea of custom data type of an enum.  The ultimate would be if I only had to alter the enum once (in ctl file) and TestStand would automatically update its data type.  This should be the same for clusters.

When using the TestStand API, I always find myself switching back and forth between TestStand and the TestStand reference help.  While the intellisense function help is usually enough, many times I like seeing the more detailed information in the help.  I would really like to have the option of displaying context specific help in a TestStand pane, similar to the context help window in LabVIEW.

 

This pane could dynamically update to display function information when using expressions, or show general information about the active pane or dialog (for newer users).  Much of the linking for the second case is already done, since the F1 key will pull up relevant help for the active pane currently.

 

TestStand context help pane.png

Do you ever have too many custom data types, and it looks something like this

datatype_list.png

This just really sucks when you have 100's of data types to go through.  My list is currently 150 long.  That's a lot of clicking on that little arrow at the bottom.

 

How about something like this:

 

datatype_menu.png

 

Go through and reorganize your types 

<< insert some whiz-bang graphical editor here that allows dragging/dropping of types into groups -- none of this "move up in list" "move down in list" stuff that we are doing now to move step types in/out of groups >>

 

Now when you go to insert a type, you see a tree structure and all your types are organized

datatypes_treelist.png

 

This would be so much easier to find the type I want.

Currently, when you rename a variable, you have to rename all the places where you are using the variable manually. It would be helpful to have a "smart rename" option which, after renaming the variable will update its uses.

 

smart_rename.png

Handling arrays in TestStand is pretty limiting and more often that not you have to pop into a code module to perform any sort of array handling.

The following is the default functions that can be used in expressions:

[Array
GetArrayBounds(array, lower, upper) Retrieves the upper and lower bounds of an array.
GetNumElements(array) Returns the number of elements in an array.
InsertElements(array, index, numElements) Inserts new elements into a one-dimensional array.
RemoveElements(array, index, numElements) Removes elements from a one-dimensional array.
SetArrayBounds(array, lower, upper) Changes the bounds of an array.
SetNumElements(array, numElements) Sets the number of elements in a one-dimensional array.

]

 

 

I would like to see this expanded to avoided have to resort to using code module.
The following is some suggestion:


Array Subset function
Array Max & Min
Replace Array Subset function
Search 1D Array
Sort 1D Array

 

 

regards

Ray Farmer

In instances of nested expressions, it would be useful to be able to press tab to indent a line. I propose inserting "n" spaces when pressing tab.

 

Coding style of course varies, but for readability, I rather dislike the following

 

Trim(Locals.SomeLocal) == "" ? (Locals.SomeLocal = "foo",Locals.AnotherLocal = "bar", Locals.SomethingOrRather = "zoo") : False

 ...and much prefer this styling:

 

Trim(Locals.SomeLocal) == "" ? (
                Locals.SomeLocal = "foo",
                Locals.AnotherLocal = "bar",
                Locals.SomethingOrRather = "zoo" ) : False

...but at present the latter is tedious because one has to insert a lot of whitespace manually or worse yet, use another text editor and paste it into TestStand. It would be nice if TestStand's expression editor supported this basic feature available in almost every text editor or IDE.

 

Thanks,

 

Mr. Jim

 

 

 

I would like to enhance the TestStand Message Box step to add a 'Preview' button.  When selected, it would show how the currently configured message box will look when run.

 

I find that I am often switching around the text, fonts, and other aspects and would like to get that straightened out before run time.  I know you can run the step individually by selecting 'Run Selected Step' but that is tedious, plus you have to take into account preconditions and other functionality.  Normally, I have to remove the precondition (if there is one) as often the step cannot be run by itself.

 

So here is my example with the button added.  Not exactly sure what tab it would belong on.

 

 Message Box with Preview


 

Thanks,

 

Paul

 

It would be nice to be able to create a new sequence from highlighting steps in a sequence and performing a right mouse click, "Create New Sequence...", this would be a kin to Create SubVI in LabVIEW.

 

This action could display a dialog to give possible options such as, to copy the Setup and/or Cleanup group, Create in a New SequenceFile or in Current SequenceFile, the option to Move or Copy highlighted Steps. It could also include creating any locals and /or  FileGlobals (if creating in a new SequenceFile) used by those highlight steps.

 

Currently, if you create a step type and name it OnNewStep, it will execute when an instance of the step is created.  This is pretty confusing to new users - why don't we just have an OnNewStep substep type (like prestep, edit, etc)? Custom steps would then just be meant to be called manually using the Step.ExecuteSubstep() Method as documented in the help.

 

onNewStep.png

 

We could keep the "onNewStep" custom step functionality to maintain backwards compatibility with older step types.