NI TestStand Idea Exchange

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

We have dozens of custom analyzers.  Every time we want to update a tsarules file, we are force to manually check each box to include in the export.  It would be nice to add common toolbar items to perform such task.  This includes commands like Select All, Unselect All, etc..

 

Thanks

 

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)

- Disabling the editing of text in the response text box of a message popup step.

- Ability to include various fonts in the message popup rather than one overall font for everything...

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

Hi,

 

I'm using TS2016. I'd like to suggest adding multiline watch view. I put some serial communication data in a variable, and watch it, but I can only see the top line. Of course, I can mouse over it, and see the entire thing, but it would be nice if I could see it automatically.

I am a AE here in the UK. Just had a customer with TestStand.

 

He was given a project to do in TestStand that was estimated 5 days to develop, but his managers told him to add another 5 days on just for deployment of the system, mainly because they have issues deploying the system.

 

The problem was including a DLL in the Workspace. Of course this is very easy to do, but they were expecting that it would automatically add the DLL to the workspace when in the sequence they were calling it, given how powerful TestStand is. 

 

Would it be wise to add this small feature into TestStand to smoothen out the process of deployment for newer customers?

 

It looks like it's a widerspread issue due to the fact that the manager would recommend 5 days for deployment due to experiences with previous projects. I understand to those who have used TestStand before may think it is not much to just add the DLL into the workspace, however adding an auto include feature would be nice and could even save newer engineers time.

 

In addition, he suggested including .NET and C++ installers because most of the Engineers he knows use these instead of LabVIEW.

 

Let me know what you think of this Idea.

 

Daniel

 

 

Hi all,

 

Based on a lot of experimentation, there is no way at run-time to map a logical name to a VISA descriptor in the Session Manager API.

...at least not without adding an entry to NISessionMgr.ini.

 

[VISA Logical Names]
LittleOldComPort = "ASRL1::INSTR"

  

If I don't do this I can't open an instrument session. I'd still like to use the session manager, but use an external method to map my logical names. (e.g. a database, XML, or something a little less obscure than an .ini file buried in program files)

 

If the Session Manager is still a supported product, is it possible to add a method to add a logical names for VISA descriptors without using the INI file?

 

 

If there's already a way to do this, please excuse my ignorance.

 

Thanks as always,

 

Mr. Jim

Here are some suggestions to improve the preloading task and reduce debugging expense:

- abort the process at the first unloadable module with keeping the loading window open to get the related module information

- return a list of unloadable modules

- return an error when preloading is not successful

In the first TestStand tutorial,  one suggestion for tracking local variable values is to apply a breakpoint to the code, then step through the execution and observe the variable values on the Variables tab in the Execution window.  One problem I see with this is that with each Step Over in the execution, the focus switches back to the Steps tab.  I have to keep switching back to the Variables tab to see the values.  And this method is taught in the NI tutorial.

 

Perhaps NI can provide a way to lock focus on one of the tabs, in this case Variables, as we step through the execution (such as when debugging code).  Maybe allow the user to jump to another view manually, but then set the focus such as when the next Step is requested, the view automatically jumps back to the view that was set in focus lock.  This would make such a method truly helpful when debugging a TestStand sequence.

It will be good to have a converter to convert numeric/string value as dotnet object or get the numeric/string value from dotnet object, just like the fuctions present in LabVIEW. While using the dll in teststand , it will be helpful

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.

Adding Wait function i.e. you could insert a delay in case of "Looping" setting different from "none".

 

Paolo

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

 

Paolo

When running teststand deployment licence there is no Teststand GUI available to set or configure Results Processing.

I think it should be easy to export the active configuration to file. And then have a property loader type step to load the settings back into the sequence at runtime on the deployed machine. Note in my case I want to run different sequences with different reporting requirements on the same deployment PC.


I have found https://decibel.ni.com/content/docs/DOC-32076
and after more stuffing around than was justified I have got it working with TestStand 2014.

 

Export.png

 

 

Also it should be much easier to specify a relative UDL file. 

UDL.png

 

 

I resolved this by adding an expression after ReadEx that was:

Parameters.ModelPlugin.PluginSpecific.Options.ConnectionString="\"FILE NAME="+Left(RunState.SequenceFile.Path, Find(RunState.SequenceFile.Path, "\\", 0, True, True)) +"\\60467Database.udl\""

 

This means I can select an absolute path to the UDL file in the development directory on my laptop and then use a relative to sequence path in the deployment. 

 

I feel there should be an more obvious way or am I missing something?

I would like to see more options in "Include Step Results", such as "Include ReportText" and "Include Additional Results".  This way, more customized reports can be created without modifying the stylesheet.

 

Report Options with Additional Example.png

 

We have a custom TestStand UI, where we display some DUT specific waveforms. These waveforms derive from a custom step type which returns an array of waveforms, whereas these will be stored in a TestStand variable type LabVIEWAnalogWaveform.

 

To pass these waveforms to the GUI, we have to basically build up the waveform again in the GUI, because the representation of the waveforms are different in TS and LV 😞 This is a time-consuming operation. As I know, the only problem is the different representation of t0 --> this is a string in TS, but a timestamp in LV.

 

There must be a way to pass waveforms from TS to a custom GUI. Either changing the t0 representation in TestStand, or using an automatic conversion.

 

The return value of PropertyObject.GetValVariant could be simply type casted back to array of waveforms...

 

Madottati

There is no HEX format dropdown entry for formatting a received string to HEX. TestStand only provides "ASCII String" or "Binary".

 

It would be very very helpful for developers to have this, as many times one has to command equipment that is controlled with commands written in HEX format and response from devices is in HEX as well.

 hexformat.jpg

When creating an MNL step, and you've created a long list of limits (and unfortunately, had to specify the datasource for each measurement) it would be really nice to be able to right click, copy and paste (or have more buttons on the limits tab that do this).  It would be really nice to be able to multiple select lots of these and just paste them and modify them as needed.  It's cool that it copies the limits, comparison type, etc. from the measurement above when you add a new one, but it would be REALLY cool if you could copy and paste entire limits by selecting which ones.  Would save lots of time in some instances.

TestStand API SearchDirectory objects in TestStand have the following writeable properties:

 

Disabled
ExcludeFileExtension
ExcludeHiddenSubdirectories
FileExtensionRestrictions
Path
SearchSubdirectories

 

When you use the SearchDirectories.Insert method to add a new search directory, you can only specify the following for the new search directory:

 

Disabled

ExcludeFileExtension

FileExtensionRestrictions

Path

SearchSubdirectories

 

It would be really nice if the SearchDirectories.Insert method also had an additional input parameter for setting the ExcludeHiddenSubdirectories property for the new search directory.  This would result in a more consistent interface and fewer API calls when working with new search directories.

The TestStand search directories dialog appears to add and remove items by adding or removing entries to and from the TestExec.ini file directly.  This poses a problem because it isn't using the TestStand API to manipulate search directories.  This results in a difference in behavior between the API and the dialog.  In the case of the dialog, you can add search directory entries that don't exist (invalid paths) but with the API, you can't do so.  It would be really nice if either:

 

1. The search directory dialog used the TestStand API for adding and removing entries (so that there isn't a discrepancy in behavior)

2. The TestStand API allowed addition of non-existent (invalid) search directory paths

 

It is convenient for me to have search directory entries that are invalid so that my deployments will run on either Windows 7 or Windows XP rather than having to create a separate deployment for each operating system.  You can obviously do that through the TestStand search directories dialog.  However, that is not possible if you attempt to do it programmatically through the TestStand API.

 

In addition to using the search directories dialog, I also have a utility that can be used to programmatically modify the search directory entries.  Because the TestStand API throws errors if you try to add a search directory entry that is an invalid path, the utility often ends up modifying more than the user-requested changes (by being forced to remove invalid paths that were configured previously through the search directories dialog).