Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: A32NX BatDisplay to fbw-common / add A380 separate BAT instrument #8495

Merged
merged 20 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added input events to the BAT Selector knob
  • Loading branch information
frankkopp committed Feb 21, 2024
commit 4e22fa1285caf0d62a1e525fb6fbb53e66a8b0ef
2 changes: 1 addition & 1 deletion fbw-a380x/docs/a380-simvars.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
- Bool
- True when the AC ESS FEED push button is NORMAL

- A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB
- A380X_OVHD_ELEC_BAT_SELECTOR_KNOB
- Number
- The position of the battery display knob from left to right
- ESS=0, APU=1, OFF=2, BAT1=3, BAT2=4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ A32NX_PRIM_3_PUSHBUTTON_PRESSED=1
A32NX_SEC_1_PUSHBUTTON_PRESSED=1
A32NX_SEC_2_PUSHBUTTON_PRESSED=1
A32NX_SEC_3_PUSHBUTTON_PRESSED=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
XMLVAR_Baro1_Mode=1
XMLVAR_KNOB_OVHD_CABINPRESS_LDGELEV=10.5
XMLVAR_RMP_L_On=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
STROBE_1_Auto=1
XMLVAR_A320_WEATHERRADAR_MODE = 1
XMLVAR_ALT_MODE_REQUESTED=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
LANDING_1_Retracted=1
LANDING_2_Retracted=1
LANDING_3_Retracted=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
STROBE_1_Auto=1
XMLVAR_A320_WEATHERRADAR_MODE = 1
XMLVAR_ALT_MODE_REQUESTED=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
STROBE_1_Auto=1
XMLVAR_A320_WEATHERRADAR_MODE = 1
XMLVAR_ALT_MODE_REQUESTED=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
LANDING_1_Retracted=1
LANDING_2_Retracted=1
PUSH_OVHD_OXYGEN_CREW=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@
<Include RelativeFile="behaviour\generic\gear.xml" />

<!-- A380X Includes - External Components -->
<Include RelativeFile="behaviour\overhead\flight-control.xml" />
<Include RelativeFile="behaviour\overhead\ovhd-inputs.xml" />
<Include RelativeFile="behaviour\overhead\electrical.xml" />
<Include RelativeFile="behaviour\overhead\cargo-air-cond.xml" />
<Include RelativeFile="behaviour\overhead\flight-control.xml" />
<Include RelativeFile="behaviour\efis-cp.xml" />
<Include RelativeFile="behaviour\ecam-cp.xml" />
<Include RelativeFile="behaviour\fcu.xml" />
Expand Down Expand Up @@ -2392,33 +2394,9 @@
</DefaultTemplateParameters>

<!-- Overhead Battery Voltage Display Selector -->
<Component ID="KNOB_OVHD_BAT" Node="KNOB_OVHD_BAT">
<UseTemplate Name="ASOBO_GT_Switch_XStates">
<NODE_ID>KNOB_OVHD_BAT</NODE_ID>
<PART_ID>KNOB_OVHD_BAT</PART_ID>
<ANIM_NAME>KNOB_OVHD_BAT</ANIM_NAME>
<WWISE_EVENT>turnknob</WWISE_EVENT>
<NUM_STATES>5</NUM_STATES>
<SWITCH_DIRECTION>Horizontal</SWITCH_DIRECTION>
<SWITCH_POSITION_TYPE>L</SWITCH_POSITION_TYPE>
<SWITCH_POSITION_VAR>A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB</SWITCH_POSITION_VAR>
<ARROW_TYPE>Curved</ARROW_TYPE>
<ANIMREF_ID>0</ANIMREF_ID>
<ANIMCURSOR_MIN>0</ANIMCURSOR_MIN>
<ANIMCURSOR_MAX>1</ANIMCURSOR_MAX>
<TOOLTIPID>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB</TOOLTIPID>
<ANIMTIP_0>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_ESS</ANIMTIP_0>
<ANIMTIP_1>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_APU</ANIMTIP_1>
<ANIMTIP_2>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_OFF</ANIMTIP_2>
<ANIMTIP_3>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_BAT1</ANIMTIP_3>
<ANIMTIP_4>TT:COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_BAT2</ANIMTIP_4>
<CODE_POS_0/>
<CODE_POS_1/>
<CODE_POS_2/>
<CODE_POS_3/>
<CODE_POS_4/>
</UseTemplate>
</Component>
<UseTemplate Name="FBW_A380X_OVHD_BAT_Knob_Template">
<NODE_ID>KNOB_OVHD_BAT</NODE_ID>
</UseTemplate>

<UseTemplate Name="FBW_Airbus_Battery_Master_Switch">
<NODE_ID>PUSH_OVHD_ELEC_BAT1</NODE_ID>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<!-- Copyright (c) 2024 FlyByWire Simulations -->
<!-- SPDX-License-Identifier: GPL-3.0 -->

<ModelBehaviors>
<!-- This is the base template for the A380X overhead panel electrical system -->
<!-- It is used to define the input event source per panel for B: events -->
<Template Name="FBW_A32NX_OVHD_ELEC_Base_Template">
<Parameters Type="Default">
<INPUT_EVENT_ID_SOURCE>A380X_OVHD_ELEC</INPUT_EVENT_ID_SOURCE>
</Parameters>
<UseTemplate Name="ASOBO_Interaction_Base_Template">
<USE_INPUT_EVENT_ID>A380X_OVHD_ELEC</USE_INPUT_EVENT_ID>
</UseTemplate>
</Template>

<!-- This is the template for the A380X overhead panel battery knob -->
<!-- It is used to define the knob behavior itself and also its corresponding B: event info -->
<Template Name="FBW_A380X_OVHD_BAT_Knob_Template">
<Parameters Type="Default">
<NODE_ID>KNOB_OVHD_BAT</NODE_ID>
<IE_NAME>BAT_SELECTOR_KNOB</IE_NAME>
</Parameters>
<Parameters Type="Default">
<ANIM_NAME>#NODE_ID#</ANIM_NAME>
<PART_ID>#NODE_ID#</PART_ID>
<LOCAL_VAR>A380X_OVHD_ELEC_#IE_NAME#</LOCAL_VAR>
<!-- how fast the animation should be - the higher the number, the faster the animation -->
<ANIM_LAG>1000</ANIM_LAG>
<NUM_STATES>5</NUM_STATES>
<WWISE_EVENT>turnknob</WWISE_EVENT>
<!-- Tooltip metadata - use A380X prefix to avoid conflicts with existing asobo definitions -->
<!-- Use @TT_Package (Marco) to reference existing tooltips from: -->
<!-- Asobo-Official-OneStore/fs-base/en-US.locPak -->
<TOOLTIP_TITLE>A380X.TOOLTIPS.BAT_SELECTOR_TITLE</TOOLTIP_TITLE>
<TT_DESCRIPTION_ID>A380X.TOOLTIPS.BAT_SELECTOR_ACTION</TT_DESCRIPTION_ID>
<TT_VALUE_0>A380X.TOOLTIPS.STATE_ESS</TT_VALUE_0>
<TT_VALUE_1>A380X.TOOLTIPS.STATE_APU</TT_VALUE_1>
<TT_VALUE_2>@TT_Package.GT_STATE_OFF</TT_VALUE_2>
<TT_VALUE_3>@TT_Package.GT_STATE_1</TT_VALUE_3>
<TT_VALUE_4>@TT_Package.GT_STATE_2</TT_VALUE_4>
<ICON>ROTATE</ICON>
<ARROW_TYPE>Curved</ARROW_TYPE>
<!-- These are used to build the corresponding B: events -->
<STR_STATE_0>ESS</STR_STATE_0>
<STR_STATE_1>APU</STR_STATE_1>
<STR_STATE_2>Off</STR_STATE_2>
<STR_STATE_3>1</STR_STATE_3>
<STR_STATE_4>2</STR_STATE_4>
<!-- INC and DEC are automatically generated by the ASOBO_GIE_Anim_Handling behavior -->
</Parameters>
<UseTemplate Name="FBW_A32NX_OVHD_ELEC_Base_Template">
<KNOB_TYPE>X_STATES</KNOB_TYPE>
<INTERACTION_TYPE>Knob</INTERACTION_TYPE>
<SET_STATE_EXTERNAL>(O:A380X_OVHD_ELEC_#IE_NAME#_Position) (&gt;L:#LOCAL_VAR#)</SET_STATE_EXTERNAL>
<GET_STATE_EXTERNAL>(L:#LOCAL_VAR#, enum)</GET_STATE_EXTERNAL>
<LOCAL_VAR_TO_WATCH_0>#LOCAL_VAR#</LOCAL_VAR_TO_WATCH_0>
</UseTemplate>
</Template>
</ModelBehaviors>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- Copyright (c) 2023-2024 FlyByWire Simulations -->
<!-- SPDX-License-Identifier: GPL-3.0 -->

<ModelBehaviors>
<Include ModelBehaviorFile="ASOBO\Inputs\Helpers.xml"/>

<!-- A380X_OVHD_ELEC Input Event definition - as it uses the ASOBO_GIE_Anim_Handling -->
<!-- behavior, it is very simpel to define the input event. -->
<InputEvent ID="A380X_OVHD_ELEC">
<Presets>
<Extend Target="ASOBO_GIE_Anim_Handling">
<Parameters Type="Default">
<INPUT_EVENT_ID_SOURCE>A380X_OVHD_ELEC</INPUT_EVENT_ID_SOURCE>
</Parameters>
</Extend>
</Presets>
</InputEvent>
</ModelBehaviors>
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ A32NX_VENTILATION_BLOWER_TOGGLE=1
A32NX_VENTILATION_CABFANS_TOGGLE=1
A32NX_VENTILATION_EXTRACT_FAULT=0
A32NX_VENTILATION_EXTRACT_TOGGLE=1
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
STROBE_1_Auto=1
XMLVAR_A320_WEATHERRADAR_MODE = 1
XMLVAR_ALT_MODE_REQUESTED=1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ A32NX_SEC_3_PUSHBUTTON_PRESSED=1
A32NX_START_STATE=3
A32NX_SVGEINT_OVRD_ON = 0
A32NX_SWITCH_TCAS_TRAFFIC_POSITION = 2
A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB=2
A380X_OVHD_ELEC_BAT_SELECTOR_KNOB=2
STROBE_1_Auto=1
XMLVAR_A320_WEATHERRADAR_MODE = 1
XMLVAR_A320_WeatherRadar_Sys=1
Expand Down
13 changes: 5 additions & 8 deletions fbw-a380x/src/base/flybywire-aircraft-a380-842/en-US.locPak
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,13 @@
"A380X.LOADING.TIPS.A380_008": "The maximum design load on the 6-wheel body gear is 260 tonnes - equivalent to 200 VW Golfs",
"A380X.LOADING.TIPS.A380_009": "The engine's 116 inch (2.95 m) diameter fan blades suck in over one and a quarter tons of air every second",

"A380X.TOOLTIPS.STATE_ESS": "ESS",
"A380X.TOOLTIPS.STATE_APU": "APU",
"A380X.TOOLTIPS.BAT_SELECTOR_TITLE": "Battery Voltage Selector",
"A380X.TOOLTIPS.BAT_SELECTOR_ACTION": "Select the battery voltage to display",

"COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_LEFT": "Adjust selected heading to the left (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)",
"COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_RIGHT": "Adjust selected heading to the right (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)",

"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB": "Battery Voltage Indicator Selector Knob",
"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_ESS": "Shows the voltage of the ESS battery",
"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_APU": "Shows the voltage of the APU battery",
"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_OFF": "Shows no valid voltage (00.0V)",
"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_BAT1": "Shows the voltage of battery 1",
"COCKPIT.TOOLTIPS.BATTERY_VOLTAGE_INDICATOR_KNOB_BAT2": "Shows the voltage of battery 2"

}
}
}
2 changes: 1 addition & 1 deletion fbw-a380x/src/systems/instruments/src/BAT/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {BatDisplay} from '@flybywiresim/bat';
import {useSimVar} from '@flybywiresim/fbw-sdk';

const BatRoot = () => {
const [selectedBattery, setSelectedBattery] = useSimVar('L:A380X_OVHD_BAT_DISPLAY_SELECTOR_KNOB', 'Number', 100);
const [selectedBattery, setSelectedBattery] = useSimVar('L:A380X_OVHD_ELEC_BAT_SELECTOR_KNOB', 'Number', 100);

// set to OFF if the value is out of range
if (selectedBattery < 0 || selectedBattery > 4) {
Expand Down