NI TestStand Idea Exchange

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

Right now, the breakpoints/watches window  (Debug >> Breakpoints/Watches) is modal against sequence editor.  This makes my life harder because I can't keep that window open to enable/disable a bunch of breakpoints scattered across a sequence(s) during an execution -- I need to be stopped at a breakpoint, open that window, enable/disable other breakpoints as desired, close the breakpoint window, continue execution, and repeat.  I'd like to be able to just keep that breakpoint management window open the whole time (Just like I can with LabVIEW).

 

Another related thing that would be nice is to be able to manage breakpoints per execution.  At this point I can have multiple simulatenous executions, and I can add breakpoints at run time that are specific to that execution.  However, I can only manage those breakpoints easily through the execution view windows, and not through the breakpoint manager.  It would be nice to see individual executions show up in the tree structure of the breakpoint manager the way each sequence file does.

 

Recently ran into a problem when I was configuring a LabVIEW module that passed in/out clusters/types.  I had a mistake in my code that the teststand data type was not configured to allow it to pass to LabVIEW clusters, but the problem was not as obvious as I thought it should be.

 

Here's what I had:

noconnectionproblems.png

 

And when I click on the red checkmark "check expression" for "Cluster", it shows up as "No Errors".  Everything looks great, right?  Well, it isn't. 

It's not until I expand "Cluster" to show the elements that I see that there are connectivity problems.

nowseeconnectionproblems.png

 

It would be nice if "Locals.mylocal" expression would turn RED and show a "check expression error" if any of it's children also had a connection problem (specifically in this case that the type in TestStand was not configured to allow passing to LabVIEW clusters).  This way it would be a lot easier to see.

 

Even worse, this problem is NOT found by sequence analyzer -- it's left to be found at runtime.

 

I know this is all because I had a bug/mistake in my code, but it would be a lot easier to track down and fix if these changes were made.

Imagine this as a scenario:

you write some code to work with the standard out-of-the-box process model. 

Then you need to later run this code using a different process model (or changes are made to whatever process model you are using).  With this new process model / changes to your existing process model you happen to have a new callback sequence, and that callback sequence happens to be named exactly the same as some other sequence in your client sequence file (that you wrote with no intention of it being a callback override). 

Now, when you try to run your client sequence file, you will either get errors because the callback parameters do not match up (for this random sequence that wasn't supposed to be a callback override).

 

Granted this can be avoided by having good naming conventions for sequences in your client sequence file and any process model callbacks you add, but sometimes you are not in control of one or either of those.

 

I suggest adding a property of a sequence that flags it as "not available to be used as a callback override" -- this way you can configure all your "never intended to be a callback override" client sequence file sequences as such, and you won't end up in this trap. 

 

Something like this:

nocallbackoverride.png

I think it's time to improve condition builder --

 

The features of it are rather limited right now -- All I can do is AnyOf and AllOf.    What I want to do is NoneOf and OneOf.  To some extent I can "DeMorgan" myself to get to these, but that often makes it less logical to read -- and condition builder is all about making it easy to read crazy long complicated conditions.

 

If we can get new functions added to TestStand (like NoneOf and OneOf as sisters to AnyOf and AllOf), and those functions supported by the condition builder, that would be great.  (this means the "Insert XXXX" button and "change to XXX" buttons would rpboably need to be rearchitected since there would be too many choices there).

 

Another idea with Condition Builder would be to support "Negating" a condition.  This way I could choose "Insert AllOf", highlight it, and choose "Negate" and it would change to "! AllOf:"

 

I could ALMOST do this negating manually now in the expression after the building of it (use condition builder, choose OK, then manually tweak the expression to add my !'s), except that once condition builder now sees !AllOf() it won't process the expresion anymore and split it into the condition tree.

 

How about something like this:

condition builder change.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.

Could R&D develop an option to make the standard message pop up automatically go away after a set period of time?  I understand that the message pop up is typically used to receive input from the user/operator, but other times I would just like to notify the operator of pertinent information and then have it go away.  It would be nice if there were a checkbox to enable this feature and then a text box where I could enter the time in seconds I would like the pop up displayed.

 

Regards,

 

Shawn S.

When editing in CVI, I often find it useful to copy the contents of 'Find Results' into an edit window so I can edit/parse/filter/sort the information.  I would like to be able to do the same thing in the TestStand Sequence Editor.  Saving the Find Results to a plain text file would be an acceptable alternative.

 

Thanks,

JoeN

It would be nice to have some kind of Custom Step which gets triggered when a step is deleted from a sequence. Something very much similar to "OnNewStep" which is triggered when a Step is dropped into the sequence.


We may have an option, say, "OnStepDeletion" to detect the deletion of a step. This will be very helpful in many of the step usages.

 

The TestStand Flow Control Steps like "IF" and "FOR" use the "OnNewStep" to create an "END" step along with them when they are dropped. But there is no means to automatically remove the created "End" when the "FOR" or "IF" Steps are deleted from the sequence. The proposed "OnStepDeletion" can be handy in such cases.

I hope you all will support this idea as it will make many of the functionalities more efficient. 

 

Regards,
Nitz 

(PS : Forgive me if anyone has posted this idea already. I couldn't find any such posts)

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.

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

 

NI has gone through a lot work to get the IVI Components integrated within TestStand as step types. I was wondering why NI has not incorporated the NI-DAQmx technology into TestStand as step types. I realize most TestStand developers would just create TestStand Adapters in the sequence step written in CVI or LV to interface to NI-DAQmx functions. Even the more advanced TestStand Developers would create their own custom step types to interface to NIDAQmx. I have just done that to where I have created a framework of custom DAQmx step types that I use as a small subset from all the NIDAQmx functions used from the NI-DAQmx library. 

When a step cannot be preloaded due to the prototype being out of date (if, for example, a VI was updated after it had been placed in a sequence), an error message pops up telling the user what is wrong. This can then be used to track down where the step is that is causing the issue. Some of the error descriptions get quite lengthy.

 

While this does provide the user with information as to where the error is occuring, the only option is to click "OK", which then closes the message. In long sequences with many subsequence calls and steps (many of which may be similarily named), it is cumbersome to find the specific step that was listed in the error message that is now no longer viewable. At times I find myself having to get to the general area where I thought the error was listed as occuring, and then click RUN again just to get the error message to pop up again, and then continue narrowing it down (repeating this process several times). This is very cumbersome.

 

There is a simple solution to this issue. The easiest method would be to simply include a second button in the error message that brings you directly to the step that is causing the issue (with it selected in the step window). This would solve the main issue of trying to find the step that was listed in the error message as being the problem.

 

To go a step further, there could be a button that simply activates the "reload step prototype" that you have to do once you are at the step that is out of date.

 

To go even a step further, and solve another issue I would like to see remedied, there could be the option of reloading all steps that call that module (since they are now likely all out of date and need the prototype refreshed). Currently, if a VI is called repeated throughout the sequence, then each one must be found and have its prototype reloaded manually. This is very tedious.

 

There may be other preloading errors besides the "prototype out of date" issue (ex: VI not found, etc.) that could use the same functionality of a button that brings you to the offending step, but this is what I am running into at the moment.

 

Regards,

It would be nice to be able to drag a sequence from the sequences pane over into the steps pane and have it automatically insert a Sequence Call Step with the dragged sequence selected. 

Hi all,

 

Currently if you go to File>>New, there is an option to create a New Sequence File, New Workspace File and New Analyzer Project, but no option to create a new Sequence.  Instead you have go to your sequences pane right-click and select New Sequence.  This can be confusing to new users who may be looking in the File>>New menu to create a new sequence.  Why not make this an option?

 

teststand new.JPG

LabVIEW recognizes any cluster of <Bool, I32, String> as an error cluster.  TestStand should recognize this as well and default any such cluster output to Step.Result.Error.

 

With the addition of the Silver controls in LabVIEW 2012 "error out" was changed to follow the style guide recommended naming convention of leading caps and is now labled "Error Out"  which is not intercepted and assigned to step.result.error.

A nice feature of reporting is the ability to form the report file pathname using an expression.  However, since the path is resolved before the client Sequence file is executed, you cannot use properties populated in the client sequence file as part of the report pathname. Currently the only way to accomplish this without modifying the model or reportOptions callback is by including the <UUTStatus> macro in the path expression, which enables a portion of the process model which copies the report to a new path based on the result of the UUT:

 1.png

 

I propose that we add an option to force the report path to be re-evaluated after the client sequence to allow users to include properties evaluated in the client sequence file in the report file path without needing to include the <UUTStatus> macro.  (basically exposing the ReportOptions.NewFileNameForEachUUTStatus property in the dialog)

 

2.png

  • Have a spec that declares the name of the measurements signal?- Drag-n-Drop from the doc to the Limits>Measurement name field. no need to copy, select, enter field, paste
  • Know what module you want for the step? -Drag-n-Drop from Workspace or Explorer window to Module Path. I browsed there allready and can start slinging modules in
  • Have a list of Parameter Values in a file? -Drag-n-Drop into the value field. No need to retype and we know the data type allready- add the "" around string litterals (And why am I trying to get in between them anyhow pray-tell? TestStand can put the back-it put em there once allreadySmiley Wink 
  • Know what parameter or operation you want in the Expression?- Drag-Drop into the expression field or the expression builder.
  • Duplicating Limits or selecting a comparison? Drag-n-Drop into TestStand

Drag-n-Drop

Drag-n-Drop

Drag-n-Drop

Drag-n-Drop

Drag-n-Drop

Drag-n-Drop.....Sooooooo easy

 You can copy the value of a selected variable to another element.

CopyValue.png

 

But you cannot paste the value into the selected element in an easy manner.

No_Paste_Value.png

 

What you have to do is click into the selected variable’s value field and then Paste, but this doesn’t produce the correct result (for strings anyway)......

 

PasteValue.png

 

You end up with is double quotes!!!

 

Resultant Paste.png

 

Also if you had ‘Copy Value’ on multiple selected elements and pasted them then you get

 

multiple selection.png

 

So it cannot handle multiple selections.

 

It would have been better if you could have selected the place where you wanted to paste the value(s) and a new menu item became available ie ‘Paste Value’.

 

New_PasteValue.png

 

This way should also be able to handle multiple selections.

 

The problem with double quotes shouldn’t occur and should be corrected with the current pasting of values.

 

Hello,

 

It would be nice to add some more expressions to the SequenceCall STEP, when this one has the "Specify by expression" set to true.

 

I would like to be abble to set the folowing parameter by expressions ...

 

  • Use Current file

 

Manu.net

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