Quantcast
Channel: All NI TestStand posts
Viewing all 24389 articles
Browse latest View live

Re: read tip strip of labview indicators in teststand

$
0
0

Hi,

 

the cat bites its tail here - speaking only from a LabVIEW side of the problem:

 

How do you want to get properties of a control who´s name you don ´t have? You can implement a VI, that gives you a list of the names of the front panel elements of another VI. Then, you can get properties of single front panel elements. But how do you know how to look for the tipstrip/label of an elemet, when you do not know which one?

 

In the Teststand LabVIEW Adapter you exchange Data over the known Frontpanel Elements of a VI - you need to know what you implement in the adapter

 

Regards

René


Access the result list from the main sequence in my plugin...

$
0
0

Hi Guys,

 

Ok, first post here, but I am a bit stuck. I am writing a model plugin to generate a custom HTML report (my requirement has a very specific layout for the report which is not at all compatible with the html reports generated from teststand normally). Anyway. I have generated all of the labview code I need to do the report in the format I need, but I am really struggling to actually get the information from teststand in a way that is easiest.

 

What I want to do is iterate over the result list from the main sequence in the UUT-Done sequence callback of the pluging sequence, which is stored in

Parameters.MainSequenceResult.TS.SequenceCall.ResultList according to the documentation, but how do I actually access this as an array that I can iterate over? All I have in my parameter list is a reference to parameters.MainSequenceResult, and for the life of me I cannot work out what to call this as to actually just get it in a format I can then use to iterate over in a "for each" loop to pull out those parameters.

 

I am on teststand 2014, and on a windows 7 machine.

 

Any help you could give would be really appreciated! 

 

J

Re: read tip strip of labview indicators in teststand

$
0
0

hi René,

 

 

I only want the tip strip infor for   the indicators , I have as parameters in  teststand step

 

controls(Inputs) are not relavent here.

 

Re: Step fail Messages with numbering

$
0
0

I am not sure I understand entirely but did you consider adding a command in the post expression of the pass/fail test. If you add the following command the user will see the results in the report.

 

(fail condition 1)? (Step.Result.ReportText = "the reference number you indicated") : (Step.Result.ReportText = "")

(fail condition 2)? (Step.Result.ReportText = "the reference number you indicated") : (Step.Result.ReportText = "")

(fail condition 3)? (Step.Result.ReportText = "the reference number you indicated") : (Step.Result.ReportText = "")

Re: Step fail Messages with numbering

$
0
0

hi Andrew,

Ya tht surely is  one way to do it.

Re: read tip strip of labview indicators in teststand

$
0
0

Hi,

 

It is absolutely the same thing if you are looking for properties of indicator or controls.

 

To get the issues straightend out a little bit:

 

You have your LabVIEW Adapter in Teststand. You configure the Adpater to get the results of some indicators.

 

Let say, you read back the value of the indicator "MyIndicatorA". You already know the label of the indicator, otherwise you could not have configured the step. What are you looking for here exactely?

 

As for reading the tip strips of control, indicator... it doesn´t matter. Over the VI Server of LabVIEW you can get references to elements. Indicators are Elements. But the VI Server is bundle of function that you woul have to use in your LabVIEW Programm

 

A solution was already posted here: write VIs that put out the information you are looking for, using VI Server functionality. I think, what you are hoping for is a function in the Teststand VI Adapter "VI Indicator Tip Strip" of the indicator that gives you your parameter.

 

As far as I know , that doen ´t exist.

 

Regards

René

Re: Access the result list from the main sequence in my plugin...

$
0
0

The top level result list is at: Parameters.MainSequenceResult.TS.SequenceCall.ResultList

 

To find this, I dragged Parameters.MainSequenceResult into the watch window at a breakpoint and expanded it until I found the result list.

 

The ResultList is a PropertyObject that is an array of containers, so methods like GetPropertyObjectByOffset and GetNumElements will work on it.

 

 

Re: Access the result list from the main sequence in my plugin...

$
0
0

Hi James,

 

Casting it as a propertyObject indeed solved my problem!

 

Your help is very much appreciated!!

 

J


Re: Step fail Messages with numbering

$
0
0

aparab wrote:

 

hi

 

In case of a step failure (pass /fail  for eg)   I would like to give  number  & then mention the number in a text file  where the  reason & soln will be specified  (similar to labview)

 

I know the eg for numeric test where it shows the limits & its clear to the operator the  Value is out of limits  but in case of a  pass /fail  its different

 

pass/fail can have multiple  boolean Inputs with  [AND] [OR] logic. &  therefore its  essential to specify the cause.

 

is there a  tried tested method to acheive this or I have to make my custom step for the same...

 

had it been so comfortable if Teststand had also a Failed  status Line  (Failcode, status, source)  on the lines of "error"  ist easy to keep track of events & docementing also


One idea is, rather than combining a bunch of conditions into one pass/fail step, split out the condition checking into multiple steps. One for each reason you want to give a separate failure description for, and just make the step name indicate the reason for the failure.

 

You can use none-adapter pass/fail steps for the condition checking if there is only one code module to call to get back multiple booleans.

 

Hope this helps,

-Doug

Re: Multiple Comparisons on Single Data Source: NaN vs. Large Number

$
0
0

Hello Again,

 

  Tried the conditional operator by manually setting the limits (hard coding), and it appeared to work properly.  However, my objective test application is a little more complicated.  I actually read the limits from a configuration file, and inject them into the test step by use of the "TestStand - Set Property Value"  function. 

 

I have tried to inject the expression as a string, but when the step runs, it expects a number in order to set the limit, and an error occurs.  I know of functions that will convert simple decimal strings to numbers, but I am unaware of one that can handle an expression that includes the conditional operator. 

 

Looks like I either need to find a way to convert a complex string into a number, or I need to find a way to make the limit field accept a string from Labview.  I see there is also an option in the "Set Property Fuinction" for an object type, but I am unfamiliar with how that is used.  Any ideas?  Please advise.  Thanks again.

 

GSinMN       

Re: Multiple Comparisons on Single Data Source: NaN vs. Large Number

$
0
0

Probably because you are trying to set the Low limit property.  You need to set the Low Limit Expression property and set the Use Expression flag to true.

 

Consider the screen shot attached.  If UseLowExpr is False then the Low numeric property is used.  If it is True then the LowExpr property is used.

 

Hope this helps,

Re: Multiple Comparisons on Single Data Source: NaN vs. Large Number

$
0
0

Yes, that's exactly what I was doing.  Thanks for the correction.  You're awesome, as usual.

 

 GSinMN

Re: Multiple Comparisons on Single Data Source: NaN vs. Large Number

$
0
0

Thank you for the kind words.  I'm glad it is working.

Two New TestStand NI Labs postings!

$
0
0

Hello all!

I wanted to let everyone know that we recently posted two new TestStand projects to NI Labs that you might find useful.

 

Command Line Deployment Tool – This project provides instructions on how to pass command line inputs to the TestStand Deployment Utility (TSDU) so customers can programmatically create deployments with TestStand 2012 and later. This can enable users to create automatic nightly builds off of source code repositories when working on projects with multiple developers.

 

Text-based Sequence File Format (TSText) – This project allows users to create TestStand Sequence Files in a JSON-like text format rather than creating them in either the TestStand Sequence Editor or an Full OI. TestStand will then translate the text-based format into a true sequence file before running.

 

 

Additionally, if you weren't already aware we have had what was called the "TestStand Toolkit for Large Application Development" on NI Labs for some time. We've recently split these out into the two separate pages below:

  • TestStand Sequence File Viewer – This tool lets users open and explore TestStand sequence files that have been saved in the XML format on machines that do not have TestStand installed
  • TestStand Type Differ – This tool allows developers to determine and resolve differences in types between any two TestStand files

Check them out and let us know if you have any feedback for us!

 

Lars

Re: Step fail Messages with numbering

$
0
0

thanks Doug,

 

 

thts also an approach

 

 

i will try it out & hope its scalable.

 

 

  hope NI  thinks abt implementing  the same.


Re: read tip strip of labview indicators in teststand

$
0
0

Thanks René,

 

ya VI server can help

 

I was just looking at the possibilities    so I can put tht   responsibility on the Test-Developer.

 

Reset global/static global variables in DLL loaded by TestStand

$
0
0

I have projects where I create multiple sequence files that call a DLL with C or extern C'd C++ code.  Each project has a unique DLL.  Once the sequence execution starts the DLL is loaded ( preload since that's the default ) and the DLL isn't unloaded until the sequence file is closed ( again default behavior ).

 

What I'd like to do is the following:

 

* Be able to reset all global/static global variables in the DLL between executions

* Be able to run the top level or any subsequence independently

* Be able to run any sequence multiple times

 

I've considered the following solutions:

 

* Change each sequence to unload after execution  --> potential downfall if someone forgets to change the setting on a new sequence

 

* Add a function call to the DLL with some generic name and a step in a/all the process model sequence(s) to call and the function would call functions in each module to reset the static variables --> potential downfall if you forget one variable

 

* Update some known callback to do an UnloadAllModules --> have to change many sequences, possible to miss one

 

* Add a RunState.Engine.UnloadAllModules call to the process model sequence --> so far I can't get this to work.  I added it before the PreUUTCallback inside the UUT Loop ( SequentialModel ).  That way, each execution would be unloaded.  This doesn't seem to work and I think it's because the UnloadAllModules wants to unload the station model as well and it can't be unloaded since it's to be used and/or because it's in use when that step is called.

 

Does anyone have another thought on how to do that helps mitigate the concerns?  I can write the code to guard against variables not being cleared, can force a clear for some variables, and hope if all goes well that this is a mute concern but in reality you want to know the state of values at program start.  This is a function of the DLL being loaded and multiple executions potentially being run before the DLL is unloaded.

 

Thanks.

-G-

 

 

 

Re: Getting the Test Stand version number of an old sequence file

$
0
0

What if the sequence file is in binary format, not INI style?

You see rubbish when open it with a text editor.

 

This is a possibility after some version of TS.

Re: Getting the Test Stand version number of an old sequence file

$
0
0

As Sean stated back in 2010, you can also read the version number in clear text. You can read some parts of the file in a text editor, the version number is one of those....

 

Norbert

Re: How to check any directory existance in TestStand?

$
0
0

At Least according to the NI TestStand 2012 documentation, Engine.FindPath and Engine.FindFile work only within the NI TestStand SearchDirectories.

 

Maybe related: remote paths (\\server\path\to\file.ext) are considered "invalid" by Engine.FindPath.

Viewing all 24389 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>