NI TestStand Idea Exchange

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

Modifying names in interface are never good idea, but some times it is must.

No matter is the change made in LabVIEW Front Panel or in TestStand type cluster mapping. Or the cluster type is changed for some other reason. The changes needs to be applied in LabVIEW module call parameters.

When you have multiple sequence files and multiple calls to same VI or with same cluster type in each of them, you would not really want to go trough the steps one by one.

 

Ideas:

- Cluster mapping changes apllied with LabVIEW Protorype reload

- Cluster mapping changes applied to hole sequence file or/and to all same VI calls in the sequence file

- Need of cluster mapping change applying notified with Analyzer

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...

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

 

The fact that TestStand has now a Python adapter is just amazing.
One thing I'm currently missing is the dict or json datatype which can be used to transfer bigger property data between the python script and TS.
Currently tuple is supported but is limited especially if you have a array property with container in it.

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

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.

It would be nice to have the option of making an Enumeration of Expression type and be able to use the Enumeration directly in an Evaluate() expression.

vrv_0-1605611723913.png

 

The expression might look like this investigating if "operator" have technician rights Evaluate(Enums.MyConstants.Techincian)

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.

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))

I'm working extensively with LabVIEW VIs and Test Stand, and one of the most helpful features existing is the ability to configure a TestStand type to pass its data to and from a LabVIEW Cluster.

 

I think a great way to expand upon this would be to allow the developer to override specific variables within the LabVIEW cluster.

 

For instance, say I have defined a TestStand type with 5 total variables, all of which may pass to a LabVIEW cluster. If my LabVIEW cluster has at least the same number and type of variables, then this cluster passing has no issue.

 

However, if my LabVIEW cluster has 6 variables, then the TestStand type can only account for its defined five variables, and I am effectively locked out from the sixth variable. I cannot edit the sixth variable, nor can I assign it a default value (see Ex1_broken.PNG)

 

This wouldn't cause an issue if I could override specific variables within the cluster passing. That is to say, if I were given access to that sixth variable from the example, then I could assign it to a local variable. The other five variables would still be satisfied by the TestStand type, and no errors should be generated by the step. (see Ex1_fixed.PNG for what I envision this to look like)

Download All

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

It's a relatively minor gripe, but wouldn't it be nice to be able to center justify a message in the MessagePopup step type?

 

Step.MsgFontData.Justify

...is strangely missing.  It could be an integer as in LabVIEW:

0 = Left

1 = Center

2 = Right

 

Yeah, I know it's easy to write code to produce a custom dialog, but it seems simple enough that it should be there natively.

 

Thanks as always,

Mr. Jim

Currently in TestStand, for a Numeric Limit Test, the "Numeric Format" applies to both the measurement and the test limits.  I would like to be able to have different numeric formats for the test limits and the measurement.  For example, I might want my limits to be %.2f (e.g. 1.23-2.34) and my measurement to be %.3f (e.g. 1.345) so that I can demonstrate a certain measurement accuracy.

 

Pulido Technologies LLC

This idea must already be on here somewhere, but a search did not find it.

Currently, it is necessary to give all types a unique name. So if I have multiple products, all with similar data types, I need to add a prefix to like types. This is the same as LabVIEW used to be. Why not allow for type libraries? This likely means a rewrite of code that loads and manages types, so I can understand why NI would be hesitant.

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

The "TestStand - Set Property Value" and "TestStand - Get Property Value" VIs do not have containers as an option.

 

Set-Get Property Value.png

 

Is this something that can be added?  I can see requiring a cluster input being part of the Set/Get VI that requires the user to match the names/data types of the container.  This is similar to Bundle By Name where you have to provide an input cluster.

 

PS - While you're at it, please add Array of Containers as well.

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.

To have shortest TS Sequence will be great the possibility to apply specific precondition for each measurement in Multiple Numeric Limit Test

 

Paolo

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.

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)