NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

"Pause" showing the inner sequence

Hi
 
if i enable onthefly report in test. when i press pause button during execution the SequenceView control shows the Processmodelpostresultlistentry(It contains the steps -Logresult, Processstep result callback, Discard result) sequence instead showing the mainsquece paused step. how can i avoid it. i want to show only my testsequence(steps) not the teststand sequences(steps)
 
Thanks and Reagards,
Srini
0 Kudos
Message 1 of 6
(3,992 Views)

Hi Srini,

It seems that this behavior is possibly resulted from the Station Options >> Execution Tracing settings. Try unchecking all the options and see if you still see the same behavior. We have not been able to reproduce this behavior back to back but sometimes when checking the various station options. Also, let me know which options you do have set and what steps you are going through to produce the behavior. Thanks

Hope this helps!

Best Regards,

Jonathan N.
National Instruments
0 Kudos
Message 2 of 6
(3,965 Views)
Hi Jonathan ,
 
These options when enabled result in the behaviour said by srini :
 
1) Enable Configure > Report Option > On The Fly Reporting
 
2) Enable Station Options >> Execution Tracing and choose only Allow Tracing with Setup and Cleanup
 
Please calrify on how can the behaviour be stopped even when these options are enabled.
 
Thanks and Regards,
MadhuSri
 
0 Kudos
Message 3 of 6
(3,952 Views)

Hi MadhuSri,

 

I am not sure what language you are working in, but to fix your issue you will need to create an event callback for the Break command that is generated by the ExecutionView Manager. The data that is passed into this event will contain the execution, sequence context, and thread object.  From the sequence context you can get the IsProcessModel property to see if the sequence that is executing for the sequence context is within the process model sequence file.  If so, then call the ExecutionView Manager method, SetStepOut that sets the execution to suspend again after execution of the current sequence completes. So, for example in C# the code would say

 

If (e.ctxt.IsProcessModel)

{

      e.exec.StepOut();

}

 

For LabVIEW, see the attached screenshot.

 

This should fix your issue.

 

Hope this helps!

Jonathan N.
National Instruments
Message 4 of 6
(3,938 Views)

Hi Jonathan,

thanks for the solution. It worked out the way i expected.

Thanks and Regards,

MadhuSri

0 Kudos
Message 5 of 6
(3,920 Views)

Jonathan,

Very nice description of how to do this! From this I was able to implement it using CVI.

For CVI, the registration and callback function would look like this:

errChk( TSUI__ExecutionViewMgrEventsRegOnBreak (gMainWindow.executionViewMgr,
                                                ExecutionViewMgr_OnBreak, NULL, 1, NULL));

HRESULT CVICALLBACK ExecutionViewMgr_OnBreak (CAObjHandle caServerObjHandle,
                                              void *caCallbackData,
                                              TSUIObj_Execution  exec,
                                              TSUIObj_Thread  thrd,
                                              TSUIObj_SequenceContext  ctxt)
{
   int error = 0;
   ERRORINFO errorInfo = {0, 0, "", "", "", 0, 0};
   ErrMsg errMsg = "";

   VBOOL isProcessModel = VFALSE;
 
   tsErrChk( TS_SeqContextGetIsProcessModel (ctxt, &errorInfo, &isProcessModel));
 
   if (isProcessModel)
   {
      tsErrChk( TS_ExecutionStepOut (exec, &errorInfo));
   }
 
Error:;
   DisplayError(error, errMsg);
   return S_OK;
} // ExecutionViewMgr_OnBreak

0 Kudos
Message 6 of 6
(3,846 Views)