From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, 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: 

Engine Callbacks Confusion question

Studying for the CTD

 

i am kind of confused on the callbacks.( i know how to use them and all that but that will not answer the CTD questions lol)

 

So please explain this for dummies

 

From the book: " you can override a SequenceFile Engine callbacks in any sequences file"...

 

From the Book leson 6 page 4...

 

Consider the following example"

A process model seq file, overrrides the X engine callback. A Client(my seqeunce?) seq file that uses the Process Model also overrides X callback. 

 

When the client sequence file executes using the process model, the X engine callback overriden in the process model executes after the execution of every step in the process model file. the X engine callback overriden in the client sequence file executes after the executiong of every step in the client sequence file. The X engine call back overriden in the process modes dos not execute for stepes withing the client sequence file.... Please explain me this...

 

what i understood is that X call back executes Twice, one on the process model and on for the sequence file client?

 

 

CLAD, CTD
0 Kudos
Message 1 of 5
(4,868 Views)

Hi buton,

 

When you overrride a SequenceFile engine callback, that action will be scoped to the sequence file in which you define it. So, if you override SequenceFilePostStep callback in a process model sequence file (for example, SequentialModel.seq), this will execute after every step in that sequence file. You will not see this action after every step in the client sequence file that uses this process model. If you wanted to specify a PostStep behavior unique to a client sequence file, you could define a SequenceFilePostStep callback within that client sequence file.

 

Hope this helps; happy studying!

 

Regards,

Regards,

Kristen M

Automated Test Product Marketing Engineer
National Instruments
0 Kudos
Message 2 of 5
(4,850 Views)

There are 3 types of engine callbacks:

  • SequenceFile
  • ProcessModel
  • Station

Each can only reside in certain types of sequence files:

  • SequenceFile can be any any .seq file
  • ProcessModel can only reside in a .seq file marked as a process model
  • Station can only reside in a .seq file marked as Station Callbacks

Each applies to a different scope:

  • SequenceFile only applies to steps within the .seq file in which it resides
  • ProcessModel only applies to steps in any client or callee of the client to the process model
  • Station applies to any step in TestStand except steps in the Station Callback file

Here are a few scenarios:

 

Scenario 1:  ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks.  A step in the client fails.  Only the ProcessModelPostStepFailure will get called.

 

Scenario 2: ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks.  Client file has SequenceFilePostStepFailure callback.  A step in the client fails.  Both the ProcessModelPostStepFailure in the process model and the SequenceFilePostStepFailure in the client will execute.  The SequenceFilePostStepFailure in the process model will NOT execute.

 

Scenario 3:  ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks. Client file has SequenceFilePostStepFailure callback.  A step in the process model fails.  Only the SequenceFilePostStepFailure in the process model will execute.

 

Scenario 4: Station Callback file has StationPostStepFailure.  ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks.  Client file has SequenceFilePostStepFailure callback.  A step in the client fails.  All three of the StationPostStepFailure in the station callback file, the ProcessModelPostStepFailure in the process model and the SequenceFilePostStepFailure in the client will execute.  The SequenceFilePostStepFailure in the process model will NOT execute.

 

Hope this helps clarify.

jigg
CTA, CLA
testeract.com
~Will work for kudos and/or BBQ~
Message 3 of 5
(4,795 Views)

Thanks jiggawax... great answer.... 🙂

CLAD, CTD
0 Kudos
Message 4 of 5
(4,790 Views)

The location in which you place your callback depends on how global you want the behavior to be. If you only want the behavior to be present in a certain sequence file, place the callback in the sequence file<SequenceFileCallback>. If you want the behavior to happen for every file(Client Sequence) using a process model, place the callback in the process model<ProcessModelCallBack>. If you want the behavior to happen no matter what model a sequence file uses, place the callback in the station callback<StationCallback>. Defining an Engine callback in multiple files does not override behavior. The TestStand Engine calls each callback in this case.

Refer the link for more Detail:

http://www.ni.com/product-documentation/6605/en/

0 Kudos
Message 5 of 5
(2,261 Views)