NI TestStand Idea Exchange

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

Find yourself placing a Sequence Call step and trying to determine the appropriate value to enter for a numeric parameter called "Direction"?  Tired of creating sequences with numeric parameters named like the following: "Direction_0_Up_1_Down_2_Left_3_Right"?

 

The solution is to support the creation of variables with enumerated type within TestStand.  Enums could be created as custom variables and then used as wherever a self-documenting variable is required.

 

 

Enum type creation:

 24440i0A04C051A35273A4

 

 

 

As seen from a Sequence Call step to a subsequence that uses an Enum as a parameter: 

 

24442i5CDD825A78B161E5

 

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.

It would be helpful to be able to provide a regular expression (like Labview Match Pattern) as a string value test limit.  We often look for a pattern of data within a string rather than a constant.

Maybe also a regular expression function within the built in functions within TestStand expressions would be a help also.  This could provide more flexibility if a user needs it.  For example adding option to gain match position, and match length as well as give the option to search in reverse and ignore case.

The Step Type Messaga Popup .

 

Usually I use the same text in the Step Name for the Title Expression

 

default MessagePopup.PNG

 

and for a long time now I have used NameOf(Step) in the Title Expression so as not to have to duplicate the Step Name.

 

new Default MessagePopup.PNG

 

Now that Templates are available I can save a copy this version to use instead of the default step type. But thats only true for my development PC.

This may not be saved on other development PC.

 

What would be nice if the default value for Title Expression was NameOf(Step) instead of "untitled".

 

regards

Ray Farmer

 

 

 

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. 

It would be nice to beable to define a variable as constant.This could apply to Locals, FileGlobals, StationGlobals.

 

Once set mark it so as to be easily identifible as a Const.

 

The API would also need to include either a Property or Method so that one could determine if a variable is a Constant.

 

17017i0EE4006F51D2E91C

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)

when manipulating data between different system, JSON string are very usefull to have a standardize, simple and readable exchange format.

 

Python or LabVIEW can dump structure (dictionnaires or Cluster) to JSON and vice versa.

It can be very usefull to allow to dump a TestStand variable or container to JSON and vice versa.

 

It can be good to have also a way to have native function in string functions to read, write or add a specific value in a JSON string.

 

MaximeR

In some cases it could be handy, if you were able to convert a container you've constructed in the variable pane into a type directly from the variables pane.

type_from_variable.png

One case could be, if you chose to store some settings in the sequence file, but the settings are dependent upon fx equipment or the product variant. It can be handy to have a variable with the settings, and an array of settings specific to various configurations from which you can choose. But the 'settings' container and the type in the array of settings containers, of course have to align. And this is best achieved by a custom data type.

Often sequences start out for one configuration only, and later on the need for multiple configurations occurs - and that's why I think it could be handy - if you were able to convert a container, already in the variable pane, into a custom data type.

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

TestStand can support LabVIEW Clusters, but with Object-Oriented LabVIEW development becoming more and more common, and OOP particularly suited to driver development it seems crazy that one NI product does not properly support the other!

 

One of the biggest benefits I see is that the inheritance property of classes could allow us to create flexible test systems that can have a particular driver changed without having to change the sequence itself.

 

Shaun 

Hi,
I would like to show the following problem with the Update Custom Data Type from Cluster tool when updating TestStand container type definition based on LabVIEW cluster.

 

TestStand creates new container type definition according to the LabVIEW cluster items order. The problem apears after you create the TestStand type definition and then reaorder LabVIEW cluster. After this change in LabVIEW, TestStand will not properlly reorder items in its definition. So for example:

  1. We have LabVIEW cluster { 1My String, 2My Numeric, 3My Boolean },
  2. Then we create TestStand type from it and we have { 1My_String, 2My_Numeric, 3My_Boolean},
  3. Now, we change order in LabVIEW { 3My Boolean, 1My String, 2My Numeric },
  4. TestStand do not see change,
  5. Then we add new item in LabVIEW { 3My Boolean, This is new, 1My String, 2My Numeric },
  6. Update in TestStand will be { This_is_new, 1My_String, 2My_Numeric, 3My_Boolean}.

 

So at the end we have:

  • in LabVIEW : { 3My Boolean, This is new, 1My String, 2My Numeric },
  • in TestStand : { This_is_new, 1My_String, 2My_Numeric, 3My_Boolean}.

 

IMO items order can be sometimes (if not always) important part of good style. That's why I would like to suggest to update also items order if you select Force Exact Match.

Hi,

 

When you develop custom step types in LV, you often need to unload all modules in order to modify your LV code (it's faster than going on your step type definition, clic Properties -> substeps -> specify code module -> edit...).

A keyboard shortcut to 'Unload all modules' would be so nice to even speed up the process ! Smiley Tongue

Currently, if you have LabVIEW code modules that use maps or sets you have to use something like an Action Engine to interact with the map, you cannot pass a map from LabVIEW into TestStand and vice-versa.

 

Maps are an incredibly useful data structure and having support for them natively in TestStand would be very helpful, not just for LabVIEW but also due to how prevalent maps (dictionaries) are used in Python as well.

 

JorrEl_0-1674075180101.png

 

I have extended the multi-numeric step type to use the string and Boolean comparisons.  We have several tests that require string verification to match the exact string and to verify the string format. Therefore I have added the ability for the multi-numeric step type to use string comparisons, including regular expression for string testing. 

 

 

  Multi-Measurement.JPG

MultiMeasurement 2.JPG

 

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.

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.

 

 

 

I think it can a be a really good idea to review and give feedback on all Idea exchange.

 

You ask us to give feedback but you don't finish the loop.

 

Some idea are mark as new for many years now...

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.