From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

process model : Include PreUUT and PostUUT Step results in report

Solved!
Go to solution

hallo Everyone,

Bit of background :

My test team has 4 developer writing code for 4 different components. For endurance tests, we have common requirements like variable input voltage and temperature. Rather than using common setup template we prefer using PreUUT process model element of TestStand. This helps each of us follow the strict coding style.

Problem:

There are lot of examples to log PreUUT and PostUUT results in the report. However, all these examples require client sequence file modification. How do I implement this feature in the Process model itself ? So that the developers do not have to Process ModelCallback or use templates in their code and still the modified voltage and temperature in ProcessModel would be logged to the report.

Ah yeah, I am using TestStand 2013 (4.1) 

Regards

Mitun

0 Kudos
Message 1 of 6
(5,972 Views)

Append the parameters (that you want to log) of both callbacks to the result list that gets returned from MainSequence.

 

So basically if you look in Test UUTs entry point you have Locals.ResultList.  That gets populated by the call to MainSequence.  You can put steps in there to add results (such as the Additional Results step type).  In there you can log the proper locals that are coming back from the callbacks.

 

The problem is that PostUUT Callback happens after UUT Done Plugin (which is where the report and DB ar written).  So you'll have to ether move UUT Done Plugin call to after Post UUT or something else of that nature.

 

Let me know if you have specific questions.

 

Regards,

jigg
CTA, CLA
testeract.com
~Will work for kudos and/or BBQ~
Message 2 of 6
(5,950 Views)

Hallo Jigg,

 

Thanks for the reply.

 

However, things are still  not clear. Based on this http://www.ni.com/example/29069/en/ example I tried to modify my Process model without any success.

I copy Locals.ResultList of PreUUT sequence to StationGlobals.ResultList and then copy back the contents of the StationGlobals.ResultList to the Locals.ResultList of my ClientSequence. This needs adding a step to my Client Sequence, which I do unwilingly. (lack knowledge to modify in Process modle itself )

Am I on right path?

 

I hope my problem is clearer. It would be great if you can help me with it. I shall think about PostUUT step results once I solve PreUUT result problem.

 

Regards

Mitun

0 Kudos
Message 3 of 6
(5,924 Views)
Solution
Accepted by topic author mikan900

Thanks Jiggs,

 

Some of your other posts helped me solve PreUUT problem. I am not sure if it is correct method but it works fine for me.

 

Did the following :

1. In ProcessModel Sequence enabled Result Recording for all step in PreUUT subsequence.

2. In PreUUT subsequence added following statement -

RunState.ProcessModelClient.Data.Seq["MainSequence"].Locals.ResultList = Locals.ResultList

 

 

And voila, I have PreUUT Step results in my report. I would like to have a feedback from you. Is it a right method? Do u see any risk?

Now the next challenge in line is to log PostUUT Results in Report.

 

Regards,

Mitun

0 Kudos
Message 4 of 6
(5,913 Views)

If it works and the results from your MainSequence are also showing then I'd say you have a winner.  I don't see any risks with that method.

 

As for the PostUUT you will be in a little bit of trouble.  The problem here is that if you look in the TestUUTs entry point you will see that Model Plugin - UUT Done occurs directly after MainSequence Callback.  This means that all of the plugins have already processed the results and spit out the report by the time you get to PostUUT. 

 

Now you could move PostUUT to occur between the two steps.  However, if you look at the parameters being passed to Model Plugin - UUT Done it uses the previous step's (in this case MainSequence) results.  So you would have to change that logic somehow.

 

What is happening in the PostUUT that you need to see on the report?  I've never came accross a situation where this was needed.  Could you move the functionality to before or during MainSequence?

jigg
CTA, CLA
testeract.com
~Will work for kudos and/or BBQ~
Message 5 of 6
(5,907 Views)
Solution
Accepted by topic author mikan900

Yes I too would prefer things in my Sequence File.

We need to start a test in PreUUT and this test runs in a new thread. So to say, UUT monitoring VI is running parallel to UUT test sequence. And monitoring requirement is same for all 4 UUT test developer. After the UUT test is completed, I need to terminate the monitoring VI started in PreUUT step and log the results of this VI in UUT test report. This is done as PostUUT step.

 

As you suggested, I moved the PostUUT Callback ahead of UUT done and Post UUT. And added following statements

 

Setup :

Locals.ResultList = RunState.Root.Locals.ResultList[0].TS.SequenceCall.ResultList

 

Cleanup :

RunState.Root.Locals.ResultList[0].TS.SequenceCall.ResultList= Locals.ResultList

 

Thanks for all the help and suggestions.

 

Regards,

Mitun

0 Kudos
Message 6 of 6
(5,885 Views)