Jump to content

XControl

From LabVIEW Wiki
Revision as of 14:45, 7 May 2007 by Tcplomp (talk | contribs)

XControls are introduced in LabVIEW 8.0 and enhance the power of front panel objects in great ways.

Essentially an XControl is a front panel object with dedicated code linked to react on certain user events.

An XControl exists of several parts, managed in a .xctl file. The .xctl file is a XML-file like the project-file. Other parts of the XControl are abilities. The following abilities are obliged

Ability Function Called if/when LabVIEW file type Optional?
Init To initialize memory, convert from previous version, load data from a previous session The first time a Xcontrol is added to a VI, an Xcontrol is upgraded, a VI with an XControl is opened Instrument (VI) No
Data Interface to the calling VI NA Control (ctl) No
State Contains local data for the XControl NA Control (ctl) No
Facade Contains the code running when the XControl is active Every time an event inside the Facade VI is triggered Instrument (VI) No
Uninit To close items allocated in Init The XControl is unloaded from memory Instrument (VI) Yes
Convert state for save Change the data that is saved inside a VI The VI containing the XControl is saved Instrument (VI) Yes


Facade Ability VI

The Facade VI is the running heart of the XControl. It decides on which events applied to the XControl should be reacted in which ways.

Example XControl Facade VI showing the Timeout frame

The Facade Ability VI has several data in- and outputs to fit in the XControl framework.

Name Description Type
Data In Returns last saved value of 'Data Out' Control
Data Out Outputs the value for use inside the containing VI Indicator
Display State In Holds internal data of the XControl Control
Display State Out Placeholder for internal data Indicator
Container State Holds information about the XControl for use inside the XControl Control
Container State.Indicator? Returns True if the XControl is an indicator NA
Container State.Runmode? Returns True if the VI containing the XControl is in Runmode. NA
Container State.Refnum Reference to the control representing the XControl NA
Action Contains commands for LabVIEW about the current XControl event session Indicator
Action.DataChanged? If this boolean is true LabVIEW will save te 'Data Out' value, if false the value will revert to 'Data In' NA
Action.StateChanged? If this boolean is true LabVIEW will save te 'Display State Out' value, if false the value will revert to 'Display State In' NA
Action.Action Name Can be used to track changes made by XControls for undo for instance