NI TestStand Idea Exchange

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

When LV throws an error, it's all very easy to catch via callback and/or is auto propigated through the system to Runstate.SequenceError etc.so it can be detected.

 

When LV throws a warning... the data doesn't seem to go much of anywhere in TS... and unlike LV it doesn't propigate from step to step either.

 

I'd like to catch and log these warnings in my error handlers (naturally with different logic, but I don't want to lose the data either, it's important sometimes!)

 

from poking around, it looks like my options are:

(1) creating a custom steptype wrapper around all LabVIEW step calls,

(2) editing each VI called by TS manually

(3) some fun expression(s) in the 'add additional result' or 'post expressions' sectionsof each LV step, to create new variables in TS on the fly...  (or using a post-step callback to do the same)

 

It would be nice if the LV adapter / LV steptypes had some native way of catching this 'almost error' behavior and getting it into the report at least. I don't know if leaning on the error callback is the right answer, since, afterall, these aren't errors... but having a warning callback feels too LV specific...

 

How about a checkbox in the LV adapter, where you could specify 'treat warnings like errors' and then in the Error callback you could check to see if the bool was false, and punt as desired?

 

Is there something I'm not seeing that would be a better solution?

 

--Elaine R.

 

It is really easy to get a user in system by name via the current API methods

 

User = Engine.GetUser("loginName")

 

but if you want to (A) delete that user, or (B) update values related to that user (password/fullname/loginname) there feels like an unnecessary number of hoops that must be vaulted through related to digging through UserFile->userList->AsPropertyObject-> Get/SetPropertyObjectByOffset()

 

in both cases, I'm obliged to loop through the userList to find the element I want, and then fetch/set/delete it.

 

I would love if there was some shortcut in the API to take on this chore for me in a more efficient manner.  Something as simple as:

index = Engine.GetUserIndex("loginName")

 

would match behavior that already exists with Sequences and Steps so that I can efficiently know what array element I want to interact with based on the current name.

 

or if we wanted to get fancy we could have an:

 

success = Engine.UpdateUser("loginName", UpdatedUser obj) 

 

function that would go all the way and actually take a replacement user object and do the array overwrite & save the file for me... but I'd be content to do that myself if there was just an easier way to get the information I wanted in/out of the userlist having to maintain my own search list for users in memory feels tedious.  We already have GetStepIndex() and GetSequenceIndex(), so why not one for users too?

 

--Elaine R.

Right now in "On Run-Time Error" combo box in Execution tab in Station option we have the option as below:

 

Untitled222.png

 

I think another one shall be added which would be Retry. At some ocassions, it'd be good if TestStand, in case of an error, could retry to execute the step for second - or even third or forth - time, by default.

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.

When editing the Value text within Step Settings for a parameter, the Undo command completely reverts back to the state of the step prior to any entry modification. This is frustrating when a notable amount of code has been added/edited to an entry box and you want to "back up" a bit to a point somewhere between now and when you started editing. This functionality is already present in the expression browser: activating the Undo simply steps back into the process of the code you are writing. Can this functionality also be present in the Step Settings pane when entering code there? Once you press "Enter" to complete the entry, then the functionality could be as before (Undo reverts the entire edit). But when you're in the middle of typing code, Undo seems like it should just reverse the last steps of the code you are writing rather than completely abolish everything you've done during the edit.

 

Essentially, while actually editing the Value entry there should be a temporary Undo stack that is used for the text edits. This stack can be abolished and the main Undo Stack is resumed when the entry is submitted (press Enter, select a different field, etc.).

Background --

I LOVE the autocomplete feature within any of the formula windows.  Start typing Locals.F, and it allows you to autocomplete to Locals.Foo.

 

However, if you have Locals.Foo1, Locals.Foo2, Locals.Foo3, etc, you need to keep typing until you get enough to uniquely match the one you want, or start using the arrow keys in the list (or select with a mouse).

 

The problem is that if you just type Locals.F, the list of items that shows up is the entire list of Locals.*, in the order they are in Locals.*  In reality, once I've typed Locals.F, I should only get the locals variables that start with F, so I don't need to down arrow through all the other Locals.Bar1, Locals.Bar2 that are inbetween Locals.Foo1 and Locals.Foo2 (because for some weird reason I really want the order of my locals variables to be Foo1, Bar1, Bar2, Foo2, Foo3).

 

So, let's restrict the autocomplete function to only show the items that match what I have already typed, or at least regroup the matching variables at the top of the list so they are easier to select from.

 

Even better would be to have it context aware.  If the formula I am typing is "Locals.MyNumber = 3.1415 * Locals.F", and Locals.Foo1 is a string, Locals.Foo2 is an array of booleans, and Locals.Foo3 is a number, then it should skip over Locals.Foo1 and Foo2 because the context requires a number.  Foo1, Foo2, Foo3 should all be in the list of items to choose from if I want to arrow up or down in the list (or use a mouse to select), but Foo3 should be the "defaulted" item that is used if I just hit enter after Locals.F.

Every so often it turns into a mess of trying to do math in TestStand.  Or manage arrays (finally got some of that cleared up in TS2012).

LabVIEW "solved" some of that by implementing formula nodes, which are kinda just like the expressions we currently have in TestStand.  Then they realized that formula nodes didn't have all the functionality that users needed, and why not just expand to a "industry standard" and implement MathScript.  Why can't TestStand do the same?  Build the MathScript engine into the TestStand distribution, and allow us to write expressions (or at lest a 'mscript statement step') in mscript format.  This would help remove pressure from adding more functionalty to the TestStand API (since a lot of it would already be built into mathscript language).

 

I could imagine writing a statement like Locals.MyArray = Mscript.ones(15)

Hi,

 

As in the subject: add ability to sign the sequence with the digital signature.

 

It would be good in this feature will be able to access the certificates stored not only in Windows containers, as it is done in LV now, but the containers located on external carriers USB cards, card readers.

 

 

Hi,

 

Exactly as in the subject.

 

There is a need to add the explicit, text-based, if-then-elseif-else syntax to the list of command allowable in the statements and function definitions.

 

I know I can use C++ style of the if-then-else-elseif syntax, but in more nested expresions the readibility of it gets worse and worse very quickly.

 

Having this functionality would simplyfy the readibility of the statements.

The MOST annoying part of working with TestStand is the fact that the developer has to re-enter e-v-e-r-y bloody value for a given parameter when the prototype changes in a LabVIEW VI. 

 

As a sister idea to this one, what is more annoying is the fact that when the container exists for a previous step and is already populated with all the values that you want to repeat elsewhere, TestStand does not allow you to copy and replace a parameter!  Unless there a non-obvious way of doing this (I will attempt a few unorthodox ways to get this done).  If so, it should be an obvious method and not something that requires contortions to accomplish a simple copy & paste. 

 

 

 

Even if the copy & paste could be done from within the parameters, ie: ability to select multiple values and paste them all into the parameter.  This is such a basic feature is most or all programming languages and applications that I cannot believe it does not exist in TestStand. 

 

In this particular case, the values are from Locals. variables.  And there are lots of them; between two parameters, over 300!!

 

Let's get on with the times!!  Improve the copy & paste feature, even for an ultra basic request like the one Ray Farmer requested in 2011..  See this link:

http://forums.ni.com/t5/NI-TestStand-Idea-Exchange/New-Paste-Value/idc-p/2504798#M721

 

 

The MOST annoying part of working with TestStand is the fact that the developer has to re-enter e-v-e-r-y bloody value for a given parameter when the prototype changes in a LabVIEW VI.  I seem to recall that older versions of TestStand would allow the user to do that, but the more recent version don't.  Maybe my mind is playing tricks on me and this was never possible..

 

In any case... When dealing with two parameters which have over 300 (yes!! THREE HUNDRED) entries, this is a bloody nightmare!!  Doing it once is nightmareish.. Doing it multiple times is a death sentence!!!  Sidenote:  I inherited the code and cannot change its structure...

 

In this particular case, the valeus are all Locals.

 

The first idea on this subject is to allow editing the original parameters when making changes to a prototype (LabVIEW or any other source).  Or as the sister idea to this one, allow to Copy & Pate the contents of a container!  See this thread!

 

 

Background --

 

When I have a step in a sequence file, and I change the Load Option of the step, and I go to Sequence File Properties and change the global Load Option to something other than "use step load option", I get red exclamation marks next to my load options on my steps to let me know that that value is overridden by the global sequence file option.

 

HOWEVER

if I look at the Result Recording Option, I see the step result recording option configured for that step.  But, that can be overridden by the Sequence Properties  -> "Disable Result Recording for All Steps".  I would expect that I would get a similar red exclamation mark next to the result recording option in my step properties configuration page to let me know that that value is overridden by the sequence option.  Possibly also update the settings column to include "result recording disabled" message like it would if I flagged just that step option to disable result recording (although I am a little more on the fence about this part)

 

highlightResultRecordingOption.png

 

On a similar but different topic, it is horribly hard to understand whether a sequence itself has configured to disable results recording.  I need to go through each sequence individually and look at the sequence properties.  Adding a settings column for the sequence list view would be nice.

 

Imagine the scenario where you have some custom types files and you want to validate those types are in good shape.  So you want to run the TestStand "Sequence" Analyzer utlity on them.

To do this, I need to create an arbitrary analyzer project, make sure it is configured to analyze the type palettes, and then run that analyzer project. 

 

If I were doing a 1-off sequence file, I can just open the sequence file and click the Start Analysis button (don't need to create an analyzer project if I just want to accept all the normal defaults).  However, if I open the types palette I can't select the types file I am interested in and just hit the Start Analysis button (it's disabled). 

 

I'd love to be able to have the "start Analysis" button enabled and work if I am in the types palette, and have it just analyze the types file I have selected.  Or analyze StationGlobals if I am in the station globals window.  Or users configuration if I am in the user manager.

Hello all TestStand fans, 

 

For my recent project i had to modify the frontEnd callback.

 

=> According to the TestStand help, the only path where this file can be created is in TestStand default path or in the corresponding user path.

.... But no where else !!!! Smiley Mad

 

It would be nice to be abble to configure the frontEndCallback path in the configure options !

 

=> Doing so, the path of this callback could be placed everywhere ! (In the configuration path would be nice !)

=> Doing so, it would be possible to create a frontendcallback for each configuration !

 

I am a TestStand developper, a NI partner, not a TestStand end user.

My work is to provide custom sequencer for my customer.

On my computer i had to manage many different sequencer !

 

  • If file are threated as global ... i had to customize my computer to switch among my different sequencers ! (Or to create virtual PC's : Virtual box / VmWare ... ) Smiley Mad

 

  • If all TestStand configuration files where identified in the "Configuration directory", my only work to switch from 1 project to an other would be to point on a different Configuration path ! Smiley Very Happy

I think that if it is impossible to do so, today, is because this callback is loaded before the "Station configuration" is loaded ?  

 

My ideas should be applyed to all global files ...

  • Station callbacks
  • Localization file
  • ... i dont't know the behaviour of all files !

 

  • Please get rid off all "Global files" ! Smiley Sad
  • Replace them by files, with path configuration in the "Station options" ... and located in the "Configuration path" Smiley Happy

Doing so, will also simplify the deployement process !!!! Smiley Happy

=> A single path copy ... is quite easyer as a complicate deployment process ! Smiley Wink

 

Thanks for your help.

 

Manu.net

 

Please make the mouse navigation buttons work with the teststand navigation buttons Teststand navigation.JPG (Go Back & Go Foreward) 

Just like it would work in Internet Explorer.

Mouse.jpg

The settings field can easily become too long to see every active option and there's not necesarily any consistency between steps if they have differing options. What I mean by that is if you only set the "Do Not Record Result" (my favorite) option in one step, it will be on the left of the settings field. But if you now set several options on another step, the settings are not lined up so that it becomes hard to see at a quick glance which steps I forgot to not record (because TS still doesn't default to not recording steps). You have to analyze the settings line for each step.

Current settings.PNG

 

I propose something more graphical and ordered. Here's my idea of at least ordered. The text could be replaced with icons representing each setting.

Ordered settings.PNG

 

Then it would be graphical, ordered, and concise. What more can you ask for?

Often times a sequence file ends up containing dozens (or even hundreds) of sequences.  Currently they all show up in the sequence editor Sequence Window as a flat list.  It sure would be nice to view them organized in folders so that, for instance, all my sequences dealing with Rs485 communications or whatever could be group together in a "folder" called "RS485".  Also it would be great if there was a displayable property for each sequence showing the date/time last modified.  Then you could sort the list on that and see which sequences have changed. (really helpful if you have multiple guys who might be making changes.)

When using the TestStand API, I always find myself switching back and forth between TestStand and the TestStand reference help.  While the intellisense function help is usually enough, many times I like seeing the more detailed information in the help.  I would really like to have the option of displaying context specific help in a TestStand pane, similar to the context help window in LabVIEW.

 

This pane could dynamically update to display function information when using expressions, or show general information about the active pane or dialog (for newer users).  Much of the linking for the second case is already done, since the F1 key will pull up relevant help for the active pane currently.

 

TestStand context help pane.png

When creating custom step types, it is highly recommended to use Post-Step for calling execution module instead of Default Module.

Thus, when instanciating a custom step type, parameters passing is not saved within the sequence but only in the step type definition.

This allows to change parameters passing without having to update all the step types instances.

 

In some big test benches, it is intersesting to have low-level step types and high step types based on low level step types.

High level step types execution modules are sequences using low level step types.

 

Since sequence adapter is not available for Post-Step, we are obliged to call the sequence through Default Module.

Thus it can generate problems when adding parameters in sequence call.

 

I suggess to allow Sequence Call in SubStep creation :

 

SequenceAdapterInPostStep.png

 

Jean-Louis Schricke, MESULOG

TestStand Architect

The Sequence File Documentation Tool allows you to create documentation in the file formats HTML and text.

 

It would be nice if it could also create XML based documentation similar to report generation. Selecting a style sheet will ensure that the XML file is presented in a certain way using a browser.

 

Norbert