NI TestStand Idea Exchange

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

How cool would it be to sequence any LabVIEW VI in TestStand? I realize one could make a wrapper around any VI, but that adds not only a layer of complexity, but customization. I am a staunch follower of the KISS philosophy, and custom wrappers are not so simple; well, at least not as simple as no wrapper at all ; )

Did not know where to put this idea since NI Requirements Gateway Tool is not listed anywhere in Idea Labels.

Since IBM is phasing out Rational Requisite Pro (end of life) and replacing it with IBM Requirements Composer, NI should provide capability to interface with at least with IBM Requirements Composer and other current Requirements Management Tools that are commercially available today. NI also should provide some kind of tools that create ATML test descriptions from the Requirements Management Tools or tools like Rhapsody that can automatically generate test sequence files for TestStand.

It is common to want to place a shortcut to a TestStand User Interface or even a TestStand sequence file on the Windows Desktop for each user of a computer.  This is done by placing a shortcut in the Windows All Users Desktop directory.  Currently, the TestStand Deployment Utility only allows you to create a shortcut on the current user's Desktop.  It would be really nice if the TestStand Deployment Utility allowed you to also create shortcuts on the Windows All Users Desktop so that everyone using the computer could see this shortcut on his or her Desktop.

I've got a bunch of variables in StationGlobals.  Many of them are types.  I want to edit the type of one of the variables to add a parameter.

 

Workflow -- 

Open StationGlobals pane by clicking the "world" icon along the top.

Find the variable instance.  I right click on the variable instance, and this is the listing I get

Darn.  I was hoping to be automatically linked to the type definition.

AddViewToSGviewer.png

 

 

Frustrated, I was convinced I had right clicked on instances of types before and been able to directly link to the type definition for that variable.  So I go to my empty dummy sequence file, and try doing the same thing from the variables pane of "Sequence File 1"

 

viewexistsinSFview.png

 

Ah Ha!!! that's what I wanted.

 

So how about this -- why don't we just take this "Right click -> view -> type definition" ability that exists in the variables view, and get that feature added to the station globals view, kinda like this:

 

addedView.png

 

 

I have noticed that many TestStand users are not aware that the sequence editor menu bar and tool bar are fully customizable.  This option is fairly well hidden: You have to right click the toolbar (not a common operation) to access the "customize..." option.  There should be a way to access the Customize dialog from the TestStand Menus, perhaps in Configure:

 

customizeMenus.png

 

It would also be nice if this was accessible from the UI configuration tab in the Sequence Editor options.

The current keyboard shortcut for Undo in TestStand and LabVIEW is "Ctrl+z", which is pretty standard in most programs.

 

In TestStand the ReDo shortcut is "Ctrl+y", but in LabVIEW the ReDo shortcut is "Shift+Ctrl+z". Both of these are relatively common among various programs, but it would be nice if the two programs used the same shortcut for such a simple and common task.

 

In LabVIEW, "Ctrl+y" already does something else (VI History), but in TestStand, "Shift+Ctrl+z" does not seem to have any functionality. This means that "Shift+Ctrl+z" could also be used in TestStand without breaking any backward compatibility ("Ctrl+y" could also cause a Redo action to avoid breaking that functionality for those who are accustomed to it).

 

Other NI software may benefit from this standardization as well, but I am referring to LabVIEW and TestStand in this post.

 

I know it's a simple thing, but as much as one switches back and forth between the two integrated programs it would be nice if this was common functionality!

 

Thanks,

The TestStand Deployment Utility lets you select the TestStand Application Data directory as an installation directory for files.  This is great because the installers know how to handle this path which differs between operations systems (such as Windows XP and Windows 7).  Unfortunately, there is no similar entry for the TestStand Application Data directory in the list of default TestStand search directories.  There really needs to be an equivalent TestStand Application Data directory entry there because it will need to be a search directory required by a deployment that installed files to that location.

 

Yes, you can add the absolute path to the Application Data directory to the TestStand search directories by hand, but the paths differ from operating system to operating system.  This means that if you want to create a deployment that runs on multiple operating systems, you have to manually add search directory entries corresponding to the Application Data directory for each operating system on which you are running, even if they are not used.  Then you have to include the modified TestExec.ini with your deployment.  If the TestStand default search directories contained an entry corresponding to the Application Data directory and interpreted that entry according to operating system (the same as the TestStand Public Directory entry), that would be fabulous.  That way, you could create a single deployment installer that worked on multiple operating systems instead of creating individual installers for different operating systems.

 

The  reason why I am making this suggestion is that I have files in my deployment that need to be written at run-time by my sequence files but the deployment needs to run on a Windows 7 computer without administrator privileges.  If you try to write files from an application running under Windows 7 without administrator privileges, you will get access denial errors unless the files are located in all but a few defined paths.  The TestStand Application Data and Public directories are examples of those paths.

 

Also, for the sake of consistency, if the TestStand Deployment Utility allows you to install files to the Application Data directory, the TestStand search directories should also provide support for the same location since search directories determine where to load dependencies.

Create a step type that is similar to the multi-numeric limit step type except that it handles the 3 basic data types: Numeric, String, Boolean.

 

We use sub sequences as our "tests".  Because we don't like indentations on our reports and all of the information is relavent to the "test" and we want it grouped it would be nice for the step type to handle those basic datatypes. Also, the report looks messy with all the indentations....granted that could be overcome with some tweaks to the style sheets and such.

 

You could have a BooleanArray, StringArray and NumericArray as step properties to hold the data source info.

 

This step type would eliminate all of the test types.

 

See attachement.

 

Often customers unknowingly use debug DLL and this results in reduction of the test time.

Sequence analyzer tool should give a warning if it detects that the dll used is not a released one.

I know that I can write my own sequence analyzer tasks, but I think this one should be default out-of-the-box from NI:

 

Add a sequence analyzer warning task that checks for usage of obsolete methods / properties / events.  This way we can use sequence analyzer to help find them and make our code easier to upgrade with future versions of TS

 

Otherwise, trying to find all the obsolete "stuff" is REALLY REALLY annoying -- a lot of searching

 

obsoleteAnalysis.png

Right now it is pretty easy (Thanks guys!!!) to go from a variable that is of a custom type, and find it in the types palette.

viewtype.png

 

This is great, and it should just stay the way it is.

The problem comes when you have an array of type "FOO".  When you try to do this trick on the array of type FOO, it doesn't work.  Arrays of type "Foo" are common enough, and it would be great to be able to go directly to the type definition for the array element, something like this:

 

viewtypearray.png

(I could see removing the "Types" selection right above the new element circled in red -- it has limited functionality even now).

 

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.

 

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

 

 

I haven't been able to figure out how to use the cmd prompt to query which TS version is active. Is this possible? if not, it would be nice to have.

In the report options, when you have selected to include measurements and insert graphs, it would be nice if TestStand could provide an option to display multiple numeric limit test measurements in graphical form. To expand on that, when the value goes outside of a limit, it would be nice to have a red point on the graph to show where this occurred at. 

 

mnlt.jpg

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.

This method ensures that the correct test sequence and its corresponding DLL/VI/custom files are run.

 

This feature needs to be optional as during development phase this feature is not desired.

 

Configuration :

User selects the test sequence.

User (optional) selects related files like dll/vi/etc

The checksum of the package is determined and tagged with the sequence.

 

Execution:

User enables the checksum option.

User selects the above sequence to run.

Teststand automatically checks for the sequence checksum and also the checksum of the related files.

 

The sequence will run only if the checksum matches.

See Also

Simulated Devices in LabVIEW projects

Project and Workspace Context in MAX

 

Link to those ideas in next post

 

We can already create tasks, channels and scales in a LabVIEW project but, We cannot then use MAX to run those Tasks and we must use MAX to create a simulated device on a development machine.  After a few projects the Max configuration becomes cluttered.  Deployment and importing of the hardware configuration can get problematic to say the least! 

 

On the other hand- if the Hardware, Data neighborhood and IVI session set-ups could be added to the workspace, deployment would be a snap! just import the *.nce from the workspace without having to create one from MAX and exclude items not concerned for the deployment.

 

For integration and station troubleshooting the Sessions, Aliases, Tasks et al would be organized by deployment in MAX and fault identification has all the "tools" any repair tech could want to isolate a failure.

A customer noticed odd behavior when modifying custom data types in TestStand.  After reproducing the behavior, I think it's a better product suggestion because it looks as if what the customer notices is more of a design choice implemented by our software developers than a feature that is not behaving correctly.

 

The customer, David, created a custom type called DavidsType which was composed of a container and within this container was a collection of strings:

 

 

image1.jpg

 

He then created an instance of this type in his DavidTest.seq file under the file global variables.  He called the instance MyType.

 

image2.jpg

 

Then he goes back to the Types pane and modifies the structure of the custom data type to include another string with a default value of "C".

 

image3.jpg

 

However, when he goes back to view the already created instance of his data type (MyType) within the variables pane of DavidTest.seq, he notices that only the structure is updated and not the default value.

 

image4.jpg

 

New instances of the custom data type, however, do show up with the default value as shown below by MyType_Instance2.

 

image5.jpg

 

The problem is that the customer has many instances of this type that already exist within his code.  He would currently have to create new instances of each type to load the new default value or he would have to hunt down all of the current instances and enter the default value of the new string manually.  I understand that the structure is updated, but shouldn't we build/provide an option to scan current instances of the custom data type and update default values for the elements that are new to a custom data type's structure?

 

I understand that it is expected behavior to load the default values of a custom data type only with a new instance of said custom data type, but I think we should provide an option/tool/function to our customers which updates all preexisting instances with the default value as well as the change in structure to the current types.  Currently only the structure is updated with a null string.

 

 

 

Currently, to export properties which are part of an array, such as the limits of a multiple numeric limit test, you have to specify each index of the array separately, like in the first screen shot, or else you get all of the raw XML, which is difficult to interpret and use. 

 

exports2.JPG

 

exports1.JPG

 

 

This is both labor intensive and unituitive. . If instead we had the option to export the array with the "?" and have it parse the information out like in picture 1, it would be much simpler to use.

 

Regards,

 

Kyle Mozdzyn

Applications Engineering

National Instruments