NI TestStand Idea Exchange

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

I’m trying to work with the tool Requirement Gateway. I started with some examples which are contained in install packet of this tool. I need to connect Gateway with HTML document and manage coverage with another HTML document. I managed to get from HTML document load the list of requirements to Gateway tool. If I tried to open the particular requirement from Gateway than the HTML document was opened on first page always. I can’t set the Gateway for opening the HTML document on particular place, when is described requirement.

 

My point of view is make some modification for better connection Gateway tool with internet browser.

We found a need to customize the NI version of this step to give more functionality.  Our edits updates to allow multiple response text boxes (up to 10), and we added an option to configure the response to be a list controls rather than simple strings. Just added a Boolean to switch to list box and then the user just gives comma separated list of options with the default item first as the initial response string.

Modified Message Popup

This is a simple change to the step and allows far greater flexibility for the step type (also it was easy to make the step upgradeable from the exiting step version maintainign the functionality if one or no string responses being used).

These features are very useful for collecting all UUT information during PreUUT rather than having to throw up popup after popup or create a custom module with a popup in it.  Would be great if these features could be included in the standard NI step.

Defining a custom step type is an iterative process getting the Post Step VI, Edit VI, Step Type Fields, etc. all matched up and working together.  I often tweak controls and indicators throughout the process.  If I have defined the substeps in TestStand, that means reloading the VI prototype throughout this iteration.

 

Custom Step Type Properties.png

 

Reload Proto.PNG

 

If my controls/indicators are numerics, strings, or arrays of either, the existing parameter values are retained during the reload.  Containers are different, however.  If the cluster input of the VI is unchanged between the exisiting prototype and the reloaded version, the container parameter values are retained.  My complaint is that if one element in the cluster changes, the entire container gets thrown out during the reload.

paramter assignments.PNG

 

In this particular case, all I did was change a cluster element from an array to an element.  Nothing else (cluster labels, etc.) changed.  Because of this, the entire container gets thrown out during the reload along with 30+ values that I had assigned.

 

Unfortunately, I find myself doing this multiple times during development so the time it takes to re-type everyhting adds up over the entire dev cycle.

 

My idea is to have container values retained (similar to non-container values) during a VI prototype reload.

 

Thanks,

Jacob

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.

 

 

 

CreateSameProperty.png

 

Let's say we have a parameter to a subsequence of a named type, and we want to create a so-named Local or FileGlobal with the same type.

One way to do this with our current workflow is to:

  • Type the same property name in the parameter value
  • Right-click the parameter
  • Click on "Create Locals.whatever"
  • mouse over the types menu
  • Glance through most of the types, select the custom type

 

I'm proposing a simpler workflow for cases when you just want to duplicate or "clone" the property with the same name and type in Locals or FileGlobals:

  • Right-click the empty parameter value
  • Select "Create Locals.whatever" or "Create FileGlobals.whatever"

The respective menu options would appear if the so-named variable does not already exist.

The subproperty is created in the Locals or FileGlobals with the same type as the parameter.

I was pretty surprised that this isn't already possible or that there wasn't an idea in the ideas exchange for it. The idea is to allow custom step types to embed their 'edit' dialogue into the configuration tab for the step settings. At the moment you have to click a generic 'edit <step type>' button to launch a dialogue.

 

Instead of:

Embed Dialogue.PNG

 

Have:

Embed Dialogue 2.png

 

This would make custom step types much more user friendly and save unnecessary clicks/steps required to custom and bring the experience of configuring steps more in line with the built-in step types.

 

I appreciate that it might require a little more effort on the developers part (e.g. posting new values on value change instead of on 'ok'/'cancel') but it could also help to avoid some issues like 'hanging' TestStand when the dialogue is closed and the panel close isn't disabled/handled.

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.

Currently, the step icon for a custom step type is defined statically:

 

2016-03-04_144812.png

 

 It would be nice if the step icon could also be specitied via expression.  This would allow step types where the step icon changes based on the configuration.  For example, the lock step could be made more intuitive:

 

Current static icon:

2016-03-04_142247.png

 

With dynamic icons:

lockIconExample.png

 

To accomplish this currently, you need to update the icon for the step via the API in the edit substep, which is cumbersome and adds coupling between the edit substep code and the icon names.

When setting arrays, even multi-dimensional arrays, it is possible to initialize them in single assignment expression. For example, "Locals.Array = {1, 2, 3}" will re-define Locals.Array as a 1D array with elements "1", "2", and "3". This is essentially the same as C-style initialization syntax, which also supports structs.

 

It would be helpful if containers could be assigned in a similar manner. For example, the illustrated container:

 

Untitled.png

 

could be assigned completely using "Locals.Container = {True, 1, "foo"}".

 

Currently, that syntax generates a run-time error, "Expected Container, found Array of Containers".

 

The only scenario I could think of where assignment gets a little weird is with Object types, but in that case you'll have to be assigning Nothing, the return of a function call, or an existing object from another property - there's no way to define a literal value to assign there, but that's already the inherent nature of Object types.

 

My use case is often container initialization. There are several kludges around this - keeping an empty copy of the container and assigning it to the working copy to clear the working copy, individually listing out each parameter, and a few others. Another case is when it's useful to assign a constant to module parameter - it's debatable that may be bad form, but would still dramatically improves the ease of skimming parameters if it were implemented. It would be a slight bonus to Sequence adapter in particular, which cannot expand containers in the parameter list, as other adapter types can (go kudos Allow Sequence Adapter to expand containers in the module tab to fix that!).

We already have a collection of sequence files which contain a library of common functions that we perform for all tests which amount to hundreds and hundreds of sub-sequences. The sub-sequence from all the sequence perform a variety of functions which include utilities that are commonly reused in our tests.

 

 

Rather than re-writing these commonly used sub-sequences again and again in the different sequence files we are trying to re-use the same sub-sequences from all the sequence files in one place. "Code Re-use".

 

For the step types which also includes our own custom step types, when a post action property is invoked, there is no way we can use these commonly used sub-sequence from a different file.

 

The work around solution is to call another "Call Sequence" step in the same sequence file which then calls the sub-sequence from another file. Seems kind of cumbersome and awkward.

 

Don't know if NI has already looked at this or not.

 

See attachment of the Post Action Property.

I am a new user of TestStand for about 6 months or so. Please pardon me if this post is duplicate ... I did a basic search to make sure it wasn't.

 

Test Stand is able to load a cluster from LabVIEW and show its elements, very cool.

It might be awesome if a Container in TestStand can be loaded into LabVIEW that'd do the same.

I'm trying to pull out all parameters from a sequence when it errors and save it as an additional result. This is to help the debugging process in a custom report plugin.

 

It falls over when enums are used as they can't be pulled out as GetValVariants then converted to strings.

 

I suggest that the if a variant for enum is called it keeps the number and string text inside of it "[5] Item number 6" for example. This can then be interpretted into a string by Str().

 

Example expression:

Locals.ConcParams = Locals.ConcParams + "Parameter: " + RunState.Caller.Parameters.GetNthSubProperty("",Locals.X,0).Name + " Value: " + Str(RunState.Caller.Parameters.GetNthSubProperty("",Locals.X,0).GetValVariant("",0))

It would be great to have an OTB TestStand type to support LabVIEW complex numbers, at this point (TS4.1) you have to map each component individually even if you create your own type with the same components.

 

Thanks!

 

<<-N->>

Could some distinction be made between a button timeout and a button press, on a Message Popup step? Step.Result.ButtonHit returns the same value regardless. Perhaps return a negative value for a timeout, and a positive one for a button press?

 

Thanks 

Bruce

Like described in this article I have to build Custom Data Types manually to pass enum strings to TestStand.

It would be very nice if I could import LabVIEW Enum TypeDefs into Teststand as Custom Data Types. This way I could save a lot of time.

It would be nice to have the message popup be more generic so that it can be used in more situations. For example to notify the user that there is a wait in progress. It is currently not possible to remove the button from the Message popup.

It would be good to be able to use UInt64 directly in numeric limit step, instead of something like this:

Step.Result.Status = CheckLimits(FileGlobals.F1_10, Locals.FrequencyInputLimits.Freq10GhzMax, Locals.FrequencyInputLimits.Freq10GhzMin, "GELE", False)

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

 

 

 

 

 

 

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.

It is not possible to perfrom manual selection (for example, between different products to be Tested by the sequence file) in TestStand by using the Message Popup.

 

It would be great if a TestStand Message popup had pull down list or radio buttons or etc. to provide manual selection from a list.

pull down list and the picture paths could be populated from a 2D array, something similar like this LabVIEW VI:

 

 

Select_from_list.JPG

 

The reason why I requested this feature is that I am developing a Test solution, where we have to

manually select the product to be tested. My test solution will be used by lots of Test Engineers in the future.

 

I know that this feature can be realized with a LabVIEW VI easily, but this case, I have no control on the arrangement, layout and stile of this dialog box in the future. In LabVIEW, the pull dow list, buttons and picture can be put everywhere

 

TestStand would provide a standard arrangement for this dialog.

 

layout.JPG