XControl: Difference between revisions
Extra info on Facade VI |
m →Facade Ability VI: gr |
||
Line 54: | Line 54: | ||
== Facade Ability VI== | == 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. | The Facade VI is the running heart of the XControl. It decides on which events applied to the XControl should be reacted to in which ways. | ||
[[Image:XControl.xctl_Facade_Empty.png|center|thumb|600px|Example XControl Facade VI showing the Timeout frame]] | [[Image:XControl.xctl_Facade_Empty.png|center|thumb|600px|Example XControl Facade VI showing the Timeout frame]] | ||
===Facade Ability VI Data=== | ===Facade Ability VI Data=== |
Revision as of 03:09, 8 May 2007
Introduction
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 in 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.
Abilities
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 to in which ways.
Facade Ability VI Data
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 | NA |
Facade Ability VI Events
The Facade VI contains an event structure inside a while loop. To be useable inside the XControl framework the VI has to be terminated after each event. To enforce this LabVIEW's template XControl has a timeout of 0 ms which finishes the while loop, the XControl can be ended in any of the event cases.
Event Name | Function | Called if |
---|---|---|
Data Changed | To keep the representation of the XControl up to date with the data of the XControl | On load of the XControl, if a new value to the terminal/local variable/'value' property is written or the 'value (sgl)' property is called |
Display State Change | To communicate between XControl parts | The XControl is loaded into memory, a custom property or method is used |
Direction Change | To inform the XControl of the 'gender' of it's terminal | The terminal of the XControl is converted from Control to indicator and visa versa. On initial drop of the XControl, or load into memory |
Exec State Changed | To inform the XControl of the mode of it's owning VI | If the owning VI is started or stopped. If the owning VI is loaded into memory |