FlexStand OI

How to pass data from a Teststand sequence to the FlexStand OI GUI?

Applies to: All FlexStand OI versions

 

UIMessage

It is often desired to pass measured data from a TestStand sequence to the plugin in FlexStand. For simple parameters like numerics, Booleans and strings these can be send using the Teststand UIMsg system.

 

For other data types, like for example frequency spectrums or other complex data, VI server can be used to transfer data.

 

This FAQ describes a method that uses VI server technology.

Background

The problem of transferring data occurs because the LabVIEW instance that TestStand uses for executing the sequence is different from the LabVIEW instance that FlexStand uses for the GUI.

 

This means that the FlexStand GUI cannot just call a VI used by the steptypes because these run in a different instance.

 

By using the method of remote VI server call, an instance of LabVIEW can call any other VI on any other PC, if access is not blocked by firewalls.

Example

In the following example, we assume that the captured data are stored in a functional global. This functional global is used by the steps in the Teststand sequence for storing data.

This functional global stores a number of frequency spectras for left and right channel. This is an example and the functional global can hold any data types. The functional global has modes of Clear, Write and Read.

 

Note that this functional global also returns the server port used by this instance of LabVIEW. This port number must be used by the remote server to access this VI when reading the data (mode=read). All other code in this functional global is as a standard functional global.

 

The server port number can now be send to the FlexStand GUI plugin using a standard UIMsg:

 

In this example the ServerPort is stored in a local variable.

The FlexStand GUI plugin receives the UIMsg and stores the port number for later use.

 

When the FlexStand GUI should update the data on the GUI, it calls a VI that, via VI server, executes the VI in the other instance:

The contents of the VI is:

 

Network settings

VI server must be enabled in the FlexStand_OI.ini file:

 

 

It is also important that no firewalls blocks the communication