NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

I would like to implement UIuserB

ase Messages in the Execution Display.vi that ships with TestStand. The Main Message loop polls for meassage types(string names). If I post a user message from a .seq file, I do not see a message type string at the selector input. What am I missing? ThanksDo I need to make some modifications to code other than the Execution Display?
0 Kudos
Message 1 of 3
(3,219 Views)
ase Messages in the Execution Display.vi that ships with TestStand. The Main Message loop polls for meassage types(string names). If I post a user message from a .seq file, I do not see a message type string at the selector input. What am I missing? ThanksYou can view the entire operator interface as having 4 main parts. Two of them are in the sequence display VI (\OperatorInterfaces\NI\LV\Sequence Display\TestStand - Sequence Display.vi) and the other two are in the execution display VI (\OperatorInterfaces\NI\LV\Execution Display\TestStand - Execution Display.vi).

In the sequence display VI there is a state machine that and sends a message to the specific Execution UIMessage Handler to which the UIMessage belongs. The Central UIMessage handler first gets the event code from the UIMessage (a property), which tells the type of UIMessage and determines which case to enter. Within the specific case, the Execution ID is obtained from the UIMessage. Using the Execution ID, the Central UIMessage
Handler looks up the VI name of the execution display that corresponds to the UIMessage. It looks up the VI name in a LV 2 style global variable (\OperatorInterfaces\NI\LV\Globals\TestStand VI GLOBAL - Execution List.vi). It just so happens that the VI name of the execution display for a particular UIMessage, is also the name of the queue that controls the specific Execution UIMessage Handler. Therefore the UIMessage can be forwarded through the queue to the specific Execution UIMessage Handler to which the message belongs.


In the execution display VI there is a state machine that mainly handles the commands (buttons, menus etc.) that you issue through the execution display GUI, and there is the Specific Execution UIMessage Handler that processes the UIMessages for that particular execution.

So, in order to custom UIMessages, you must modify both the Central UIMessage handler of the sequence display AND the specific Execution UIMessage handler of the execution
display.

Hope this all makes sense.
Message 2 of 3
(3,219 Views)
ase Messages in the Execution Display.vi that ships with TestStand. The Main Message loop polls for meassage types(string names). If I post a user message from a .seq file, I do not see a message type string at the selector input. What am I missing? ThanksIf you are posting custom UIMessages, then you must handle them within the vi \OperatorInterfaces\NI\LV\Sequence Display\TestStand - UI Message Handler.vi. Inside of the "Default" case, you will add another case structure that will have different cases to handle your custom messages. In other words, a case for 10000, 10001, 10004,...). Please have a look at the example titled "LabVIEW/TestStand Simple Operator Interface with Yield Information". This example is an example program that is on the website (zone.ni.com). This should demostrate how to handle custom UI Messages.

Once you have handled this message, you need to insert it in the queue, so that the correct Execution Display can extract it. Each execution display VI (multiple executions) wi
ll have its own uniquely named queue. You may or may not need to do this, depending on where you want the information. Have a look at how we do it in other cases within the UI Message Handler.vi.

Hope this helps.
Message 3 of 3
(3,219 Views)