Model Behaviours Overview
Model behaviours are provided for the easy setup of all buttons for the Epic2 avionics. The setup of the screen emissives is not included in the Epic2 model behaviours and must be done seperately by developers.
Included within the Epic2 model behaviours are:
- A template for setting up the Display Unit bezel buttons
- A template for setting up the Touchscreen Controller bezel buttons and knobs
- A template for setting up the PFD Controller buttons and knobs
- A template for setting up the MFD Controller buttons and knobs
- A template for setting up the Autopilot panel
- A template for setting up the throttle levers, to be used in place of
ASOBO_ENGINE_Throttle_Template
.
To make use of the Epic2 model behaviours include the following line in your model behaviour
<Include ModelBehaviorFile="WorkingTitle/GlassCockpit/Epic2v2/Epic2.xml"/>
To use sim attachments for display units will require some additional model behaviour work than what is documented in the section below. When using simattachments in this way follow the below documentation but with the following caveats:
- the DU_INDEX and DU_TYPE will require a dynamic parameter to ensure they are correct if using a simattachment display unit multiple times.
- by default, node names are set using the CONTROLLER_ID, DU_TYPE and DU_INDEX parameters. Node names cannot use dynamic parameters, so any node prefixes or suffixes for the Display Units and PFD Controllers must be set to match your model.
Display Unit Bezels
To setup the display unit bezel softkeys the WT_Epic2_Display_Unit_Bezel_Template
should be used.
This template makes use of the following parameters:
Parameter | Description | Values | Optional |
---|---|---|---|
DU_TYPE | The type of display unit | PFD or MFD | No |
DU_INDEX | The local index of the display unit | 1 or 2 | No |
This template will create the bezel softkeys, setting up their node IDs and animations.
The template requires that bezel softkeys have a node ID in the form of #DU_TYPE#_#DU_INDEX#_SOFTKEY_[1-20]
, and that they use an animation name that is the same.
Touchscreen Controller Bezel
To setup the touchscreen bezel softkeys and knobs the WT_Epic2_Touchscreen_Controller_Bezel_Template
should be used.
This template makes use of the following parameters:
Parameter | Description | Values | Optional |
---|---|---|---|
LEFT_KNOB_PREFIX | The node prefix of the left knob | String (default TSC_KNOB_L ) | Yes |
RIGHT_KNOB_PREFIX | The node prefix of the right knob | String (default TSC_KNOB_R ) | Yes |
This template requires:
- bezel softkeys have a node ID in the form of
TSC_SOFTKEY_[1-3]
, and that they use an animation name that is the same. - bezel knobs have a node ID in the form of
#LEFT_KNOB_PREFIX#_[OUTER|INNER]
or#RIGHT_KNOB_PREFIX#_[OUTER|INNER]
, and that they use an animation name that is the same.
PFD Controller Buttons and Knobs
To setup the PFD controller buttons and knobs the WT_Epic2_PFD_Controller_Template
should be used.
This template makes use of the following parameters:
Parameter | Description | Values | Optional |
---|---|---|---|
CONTROLLER_ID | The index of the PFD controller | 1 or 2 | No |
BTN_NODE_ID_PREFIX | The node prefix for the controller buttons | String (default PFDCTRL ) | Yes |
KNOB_NODE_ID_PREFIX | The node prefix for the controller knobs | String (default PFDCTRL ) | Yes |
NODE_ID_SUFFIX | The suffix for the controller node IDs | String (default _#CONTROLLER_ID# ) | Yes |
This template requires:
- buttons have a node ID in the form of
#BTN_NODE_ID_PREFIX#_[BUTTON_NAME]#NODE_ID_SUFFIX#
, and that they use an animation name that is the same. - knobs have a node ID in the form of
#KNOB_NODE_ID_PREFIX#_[KNOB_NAME]#NODE_ID_SUFFIX#
, and that they use an animation name that is the same. - knob push buttons have a node ID in the form of
#KNOB_NODE_ID_PREFIX#_[KNOB_NAME]#NODE_ID_SUFFIX#_Push
In addition, this template allows for individual buttons to have specific node IDs and animation names to be set.
To do so, you need to define a parameter NODE_ID_[BUTTON_NAME]
or ANIM_NAME_[BUTTON_NAME]
.
The same can be done for knobs, substituting the button name for the knob name. For knob push buttons you should also append _PUSH
to the parameter name, i.e. NODE_ID_[KNOB_NAME]_PUSH
.
Example:
<UseTemplate Name="WT_Epic2_PFD_Controller_Template">
<CONTROLLER_ID>2</CONTROLLER_ID>
<NODE_ID_MSG>Example_MSG_Button</NODE_ID_MSG> <!-- This sets only the message button's node ID (and will also set the animation name to be the same) -->
<NODE_ID_RANGE>Example_RANGE_Knob</NODE_ID_RANGE> <!-- Sets the range knob node ID and anim name -->
<ANIM_NAME_VOLUME_PUSH>Volume_Knob_Push_Animation_Name</ANIM_NAME_VOLUME_PUSH>
</UseTemplate>
The following button names are used:
- NAV_SEL
- NAV_PREVIEW
- BRG1
- BRG2
- HSI
- ET
- ADHRS
- PFD
- IDENT
- VFR
- DME
- DETAIL
The following knob names are used:
- BARO (has push)
- COURSE_SEL (has push)
- RANGE
- VOLUME (has push)
- RADIO_SEL_INNER (has push)
- RADIO_SEL_OUTER
MFD Controller Buttons and Knobs
To setup the MFD controller buttons and knobs the WT_Epic2_MFD_Controller_Template
should be used.
This template makes use of the following parameters:
Parameter | Description | Values | Optional |
---|---|---|---|
KEYBOARD_NODE_ID_PREFIX | The node prefix for the keyboard buttons | String (default MFD_Controller_Key ) | Yes |
CONTROL_NODE_ID_PREFIX | The node prefix for the control buttons | String (default MFD_Controller_Push ) | Yes |
CCD_NODE_ID_PREFIX | The node prefix for the cursor control buttons (currently only the CCD enter button) | String (default MFD_Controller_CCD_Push ) | Yes |
This template requires:
- keyboard buttons have a node ID in the form of
#KEYBOARD_NODE_ID_PREFIX#_[KEYBOARD_BUTTON_NAME]
, and that they use an animation name that is the same. - control buttons have a node ID in the form of
#CONTROL_NODE_ID_PREFIX#_[CONTROL_BUTTON_NAME]
, and that they use an animation name that is the same. - cursor control buttons have a node ID in the form of
#CCD_NODE_ID_PREFIX#_[CCD_BUTTON_NAME]
, and that they use an animation name that is the same.
In addition, this template allows for individual buttons to have specific node IDs and animation names to be set.
To do so, you need to define a parameter NODE_ID_[BUTTON_NAME]
or ANIM_NAME_[BUTTON_NAME]
.
The same can be done for knobs, substituting the button name for the knob name. For knob push buttons you should also append _PUSH
to the parameter name, i.e. NODE_ID_[KNOB_NAME]_PUSH
.
Example:
<UseTemplate Name="WT_Epic2_MFD_Controller_Template">
<NODE_ID_ENTER>Example_ENTER_Button</NODE_ID_MSG> <!-- This sets only the enter button's node ID (and will also set the animation name to be the same) -->
<NODE_ID_XPDR>Example_Transponder_Button</NODE_ID_XPDR>
</UseTemplate>
The following keyboard button names are used:
- A to Z
- ENTER
- SPACE
- BACKSPACE
- MINUS
- PLUS
- PERIOD
The following control button names are used:
- COM
- NAV
- XPDR
- CAS
- FLAP_OVERRIDE
- GS_INHIBIT
- DIRECT
- INFO
- CKLIST
- EVENT
- CHART
- TERR_INHIBIT
- FREQ_SWAP
- LEFT_PFD
- RIGHT_PFD
- UPPER_MFD
- LOWER_MFD
- MFD_SWAP
The following CCD button names are used:
- CCD_ENTER
Autopilot Control Panel
To setup the autopilot control panel buttons and knobs the WT_Epic2_Autopilot_Panel_Template
should be used.
Please be aware that this template assumes that vertical speed is controlled with a knob and not using push buttons. If push buttons are used then they will need their own model behaviour.
This template makes use of the following parameters:
Parameter | Description | Values | Optional |
---|---|---|---|
HAS_AUTOTHROTTLE | Whether the aircraft has an autothrottle | True or False | Yes (defaults True ) |
This template assumes:
- buttons and knobs have a node ID in the form of
AUTOPILOT_[CONTROL_NAME]_1
, and that they use an animation name that is the same. - knob push animations have a name which is the same as the knob animation name, with
_Push
appended. - status lights have a node ID in the form of
AUTOPILOT_[CONTROL_NAME]_Active_1
.
In addition, this template allows for individual buttons and knobs to have specific node IDs and animation names to be set.
To do so, you need to define a parameter NODE_ID_[CONTROL_NAME]
or ANIM_NAME_[CONTROL_NAME]
. To define a specific status light node id you need to define a parameter NODE_ID_STATUS_LIGHT_[CONTROL_NAME]
.
To define a specific knob push animation you would use the ANIM_NAME_[CONTROL_NAME]_PUSH
parameter.
Example:
<UseTemplate Name="WT_Epic2_Autopilot_Panel_Template">
<CONTROLLER_ID>2</CONTROLLER_ID>
<NODE_ID_Knob_Altitude_1000>Example_1000s_Altitude_Knob</NODE_ID_Knob_Altitude_1000> <!-- This sets only the 1000ft increment knob's node ID (and will also set this animation name to be the same) -->
<ANIM_NAME_Knob_SpeedMach>Example_SpeedMach_Push_Animation</ANIM_NAME_Knob_SpeedMach>
</UseTemplate>
The following control names are used:
- Knob_VerticalSpeed
- Knob_Heading
- Knob_SpeedMach
- Knob_Altitude_100
- Knob_Altitude_1000
- Knob_Minimums
- Switch_Heading_Track
- Push_Bank
- Push_Approach
- Push_Heading
- Push_Navigation
- Switch_Speed_Mode
- Push_VerticalSpeed
- Push_FlightLevelChange
- Push_Altitude
- Push_VerticalNavigation
- Push_FlightDirector
- Push_FlightDirector_Coupling
- Push_Autopilot
- Push_YawDamper
- Push_Autothrottle
Engine Throttle
The WT_Epic2_Engine_Throttle_Template
can just be used in place of ASOBO_ENGINE_Throttle_Template
with no extra work required.