Skip to content

Commit

Permalink
feat(hyd): hydraulic thrust reverser (#7762)
Browse files Browse the repository at this point in the history
  • Loading branch information
crocket63 authored May 23, 2023
1 parent ae9d705 commit 809d536
Show file tree
Hide file tree
Showing 21 changed files with 1,779 additions and 248 deletions.
2 changes: 2 additions & 0 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
1. [SD] Corrected fuel transfer valve amber logic - @tracernz (Mike)
1. [FMS] TO SPEEDS TOO LOW uses FQI fuel quantity after engine start to avoid spurious warnings - @tracernz (Mike)
1. [ND] Fix ROSE VOR/LS conditions and ILS course - @tracernz (Mike)
1. [HYD] Added hydraulic reverser actuators - @Crocket63 (crocket)

## 0.10.0

Expand Down Expand Up @@ -140,6 +141,7 @@
1. [LIGHTS] Fixed trim decal emissive and floods - @FinalLightNL (FinalLight#2113)
1. [FLIGHTMODEL/FUEL] Fix outer tank transfer behaviour - @donstim (donbikes#4084)


## 0.9.0

1. [MODEL] Add Wheel Chocks and GSE Safety Cones - @bouveng (Johan Bouveng)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@
<!-- SPDX-License-Identifier: GPL-3.0 -->

<ModelBehaviors>
<Include RelativeFile="../generated/A32NX_Exterior_Engines.xml"/>
<Include RelativeFile="../generated/A32NX_Windshield.xml"/>
</ModelBehaviors>
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fuel_flow_gain = 1 ; Gain on fuel flow
inlet_area = 29 ; Square Feet, engine nacelle inlet area
rated_N2_rpm = 19391 ; RPM, second stage compressor rated value
static_thrust = 27120 ; Lbs, max rated static thrust at Sea Level
reverser_available = 1
reverser_available = 0
reverser_mach_controlled = 0
afterburner_available = 0
afterburner_throttle_threshold = 0.011
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,13 +236,15 @@
<BLURRED_NODE_ID>PROP_BLURRED_RIGHT</BLURRED_NODE_ID>
<BLURRED_SPINNER_NODE_ID>PROP_BLURRED_CONE_RIGHT</BLURRED_SPINNER_NODE_ID>
</UseTemplate>
<UseTemplate Name="FBW_ENGINE_Turbine_ReverseThrust_Template">
<ID>1</ID>
<UseTemplate Name="ASOBO_GT_Anim">
<ANIM_NAME>thrust_rev_1</ANIM_NAME>
<ANIM_CODE>(L:A32NX_REVERSER_1_POSITION) 100 *</ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
</UseTemplate>
<UseTemplate Name="FBW_ENGINE_Turbine_ReverseThrust_Template">
<ID>2</ID>
<UseTemplate Name="ASOBO_GT_Anim">
<ANIM_NAME>thrust_rev_2</ANIM_NAME>
<ANIM_CODE>(L:A32NX_REVERSER_2_POSITION) 100 *</ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
</UseTemplate>
</Component>
<Component ID="INTERACTIVE_POINTS">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1003,14 +1003,14 @@
</Sound>


<Sound WwiseEvent="ReverseL" NodeName="SOUND_ENGINE_LEFT" FadeOutType="2" FadeOutTime="1" WwiseData="true" SimVar="TURB ENG REVERSE NOZZLE PERCENT" Units="percent" Index="1" Continuous="true">
<Range LowerBound="1" />
<Sound WwiseEvent="ReverseL" NodeName="SOUND_ENGINE_LEFT" FadeOutType="2" FadeOutTime="1" WwiseData="true" LocalVar="A32NX_REVERSER_1_POSITION" Units="PERCENT OVER 100" Index="1" Continuous="true">
<Range LowerBound="0.1" />
<WwiseRTPC SimVar="TURB ENG N1" Units="percent" Index="1" RTPCName="SIMVAR_TURB_ENG_N1" />
<WwiseRTPC LocalVar="A32NX_SOUND_INTERIOR_ENGINE" Units="number" Index="0" RTPCName="LOCALVAR_A32NX_INTERIOR_ENG_VOLUME" />
</Sound>

<Sound WwiseEvent="ReverseR" NodeName="SOUND_ENGINE_RIGHT" FadeOutType="2" FadeOutTime="1" WwiseData="true" SimVar="TURB ENG REVERSE NOZZLE PERCENT" Units="percent" Index="2" Continuous="true">
<Range LowerBound="1" />
<Sound WwiseEvent="ReverseR" NodeName="SOUND_ENGINE_RIGHT" FadeOutType="2" FadeOutTime="1" WwiseData="true" LocalVar="A32NX_REVERSER_2_POSITION" Units="PERCENT OVER 100" Index="2" Continuous="true">
<Range LowerBound="0.1" />
<WwiseRTPC SimVar="TURB ENG N1" Units="percent" Index="2" RTPCName="SIMVAR_TURB_ENG_N1" />
<WwiseRTPC LocalVar="A32NX_SOUND_INTERIOR_ENGINE" Units="number" Index="0" RTPCName="LOCALVAR_A32NX_INTERIOR_ENG_VOLUME" />
</Sound>
Expand Down Expand Up @@ -1319,14 +1319,14 @@
<WwiseRTPC LocalVar="A32NX_SOUND_EXTERIOR_MASTER" Units="number" Index="0" RTPCName="LOCALVAR_A32NX_EXTERIOR_VOLUME" />
</Sound>

<Sound WwiseEvent="ReverseLEXT" NodeName="SOUND_ENGINE_LEFT" FadeOutType="2" FadeOutTime="1" WwiseData="true" SimVar="TURB ENG REVERSE NOZZLE PERCENT" Units="percent" Index="1" Continuous="true">
<Range LowerBound="1" />
<Sound WwiseEvent="ReverseLEXT" NodeName="SOUND_ENGINE_LEFT" FadeOutType="2" FadeOutTime="1" WwiseData="true" LocalVar="A32NX_REVERSER_1_POSITION" Units="PERCENT OVER 100" Index="1" Continuous="true">
<Range LowerBound="0.1" />
<WwiseRTPC SimVar="TURB ENG N1" Units="percent" Index="1" RTPCName="SIMVAR_TURB_ENG_N1" />
<WwiseRTPC LocalVar="A32NX_SOUND_EXTERIOR_MASTER" Units="number" Index="0" RTPCName="LOCALVAR_A32NX_EXTERIOR_VOLUME" />
</Sound>

<Sound WwiseEvent="ReverseREXT" NodeName="SOUND_ENGINE_RIGHT" FadeOutType="2" FadeOutTime="1" WwiseData="true" SimVar="TURB ENG REVERSE NOZZLE PERCENT" Units="percent" Index="2" Continuous="true">
<Range LowerBound="1" />
<Sound WwiseEvent="ReverseREXT" NodeName="SOUND_ENGINE_RIGHT" FadeOutType="2" FadeOutTime="1" WwiseData="true" LocalVar="A32NX_REVERSER_2_POSITION" Units="PERCENT OVER 100" Index="2" Continuous="true">
<Range LowerBound="0.1" />
<WwiseRTPC SimVar="TURB ENG N1" Units="percent" Index="2" RTPCName="SIMVAR_TURB_ENG_N1" />
<WwiseRTPC LocalVar="A32NX_SOUND_EXTERIOR_MASTER" Units="number" Index="0" RTPCName="LOCALVAR_A32NX_EXTERIOR_VOLUME" />
</Sound>
Expand Down
42 changes: 0 additions & 42 deletions fbw-a32nx/src/behavior/src/A32NX_Exterior_Engines.xml

This file was deleted.

18 changes: 9 additions & 9 deletions fbw-a32nx/src/systems/instruments/src/EWD/N1.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ export class AvailRev extends DisplayComponent<AvailRevProps> {

private idleN1: number = 0;

private reverse: boolean = false;
private reverserInTransit: boolean = false;

private reverseNozzle: number = 0;
private reverserDeployed: boolean = false;

private state: number = 0;

Expand All @@ -49,12 +49,12 @@ export class AvailRev extends DisplayComponent<AvailRevProps> {
this.idleN1 = n1;
});

sub.on(`engine${this.props.engine}Reverse`).whenChanged().handle((rev) => {
this.reverse = rev;
sub.on(`engine${this.props.engine}ReverserTransit`).whenChanged().handle((rev) => {
this.reverserInTransit = rev;
});

sub.on(`engine${this.props.engine}ReverseNozzle`).whenChanged().handle((rev) => {
this.reverseNozzle = rev;
sub.on(`engine${this.props.engine}ReverserDeployed`).whenChanged().handle((rev) => {
this.reverserDeployed = rev;
});

sub.on(`engine${this.props.engine}State`).whenChanged().handle((state) => {
Expand All @@ -63,12 +63,12 @@ export class AvailRev extends DisplayComponent<AvailRevProps> {

sub.on('realTime').handle((_t) => {
const availVisible = this.n1 > Math.floor(this.idleN1) && this.state === 2;
const isVisible = (availVisible || this.reverse) || !this.fadec;
const revReady = this.fadec && Math.round(this.reverseNozzle * 100) > 5;
const isVisible = (availVisible || this.reverserInTransit || this.reverserDeployed) || !this.fadec;
const revReady = this.fadec && this.reverserDeployed;

this.visibility.set(isVisible ? 'visible' : 'hidden');
this.availVisible.set(availVisible ? 'visible' : 'hidden');
this.revVisible.set((this.reverse && !availVisible) || !this.fadec ? 'visible' : 'hidden');
this.revVisible.set(((this.reverserInTransit || this.reverserDeployed) && !availVisible) || !this.fadec ? 'visible' : 'hidden');
this.revText.set(this.fadec ? 'REV' : 'XX');
this.revClass.set(revReady ? 'Huge Center Green' : 'Huge Center Amber');
});
Expand Down
8 changes: 4 additions & 4 deletions fbw-a32nx/src/systems/instruments/src/EWD/instrument.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ class A32NX_EWD extends BaseInstrument {
this.simVarPublisher.subscribe('engine1FF');
this.simVarPublisher.subscribe('engine1N1');
this.simVarPublisher.subscribe('engine1N2');
this.simVarPublisher.subscribe('engine1Reverse');
this.simVarPublisher.subscribe('engine1ReverseNozzle');
this.simVarPublisher.subscribe('engine1ReverserTransit');
this.simVarPublisher.subscribe('engine1ReverserDeployed');
this.simVarPublisher.subscribe('engine1State');

this.simVarPublisher.subscribe('engine2AntiIce');
Expand All @@ -85,8 +85,8 @@ class A32NX_EWD extends BaseInstrument {
this.simVarPublisher.subscribe('engine2FF');
this.simVarPublisher.subscribe('engine2N1');
this.simVarPublisher.subscribe('engine2N2');
this.simVarPublisher.subscribe('engine2Reverse');
this.simVarPublisher.subscribe('engine2ReverseNozzle');
this.simVarPublisher.subscribe('engine2ReverserTransit');
this.simVarPublisher.subscribe('engine2ReverserDeployed');
this.simVarPublisher.subscribe('engine2State');

this.simVarPublisher.subscribe('ewdLowerLeft1');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ export type EwdSimvars = {
engine1FF: number;
engine1N1: number;
engine1N2: number;
engine1Reverse: boolean;
engine1ReverseNozzle: number;
engine1ReverserTransit: boolean;
engine1ReverserDeployed: boolean;
engine1State: number;
engine2AntiIce: boolean;
engine2EGT: number;
engine2Fadec: boolean;
engine2FF: number;
engine2N1: number;
engine2N2: number;
engine2Reverse: boolean;
engine2ReverseNozzle: number;
engine2ReverserTransit: boolean;
engine2ReverserDeployed: boolean;
engine2State: number;
wingAntiIce: boolean;
apuBleedPressure: number;
Expand Down Expand Up @@ -84,17 +84,17 @@ export enum EwdVars {
engine1FF = 'L:A32NX_ENGINE_FF:1',
engine1N1 = 'L:A32NX_ENGINE_N1:1',
engine1N2 = 'L:A32NX_ENGINE_N2:1',
engine1Reverse = 'L:A32NX_AUTOTHRUST_REVERSE:1',
engine1ReverseNozzle = 'A:TURB ENG REVERSE NOZZLE PERCENT:1',
engine1ReverserTransit = 'L:A32NX_REVERSER_1_DEPLOYING',
engine1ReverserDeployed = 'L:A32NX_REVERSER_1_DEPLOYED',
engine1State = 'L:A32NX_ENGINE_STATE:1',
engine2AntiIce = 'L:XMLVAR_Momentary_PUSH_OVHD_ANTIICE_ENG2_Pressed',
engine2EGT = 'L:A32NX_ENGINE_EGT:2',
engine2Fadec = 'L:A32NX_FADEC_POWERED_ENG2',
engine2FF = 'L:A32NX_ENGINE_FF:2',
engine2N1 = 'L:A32NX_ENGINE_N1:2',
engine2N2 = 'L:A32NX_ENGINE_N2:2',
engine2Reverse = 'L:A32NX_AUTOTHRUST_REVERSE:2',
engine2ReverseNozzle = 'A:TURB ENG REVERSE NOZZLE PERCENT:2',
engine2ReverserTransit = 'L:A32NX_REVERSER_2_DEPLOYING',
engine2ReverserDeployed = 'L:A32NX_REVERSER_2_DEPLOYED',
engine2State = 'L:A32NX_ENGINE_STATE:2',
wingAntiIce = 'L:A32NX_PNEU_WING_ANTI_ICE_SYSTEM_SELECTED',
apuBleedPressure = 'L:APU_BLEED_PRESSURE',
Expand Down Expand Up @@ -148,17 +148,17 @@ export class EwdSimvarPublisher extends SimVarPublisher<EwdSimvars> {
['engine1FF', { name: EwdVars.engine1FF, type: SimVarValueType.Number }],
['engine1N1', { name: EwdVars.engine1N1, type: SimVarValueType.Number }],
['engine1N2', { name: EwdVars.engine1N2, type: SimVarValueType.Number }],
['engine1Reverse', { name: EwdVars.engine1Reverse, type: SimVarValueType.Bool }],
['engine1ReverseNozzle', { name: EwdVars.engine1ReverseNozzle, type: SimVarValueType.Number }],
['engine1ReverserTransit', { name: EwdVars.engine1ReverserTransit, type: SimVarValueType.Bool }],
['engine1ReverserDeployed', { name: EwdVars.engine1ReverserDeployed, type: SimVarValueType.Bool }],
['engine1State', { name: EwdVars.engine1State, type: SimVarValueType.Enum }],
['engine2AntiIce', { name: EwdVars.engine2AntiIce, type: SimVarValueType.Bool }],
['engine2EGT', { name: EwdVars.engine2EGT, type: SimVarValueType.Number }],
['engine2Fadec', { name: EwdVars.engine2Fadec, type: SimVarValueType.Bool }],
['engine2FF', { name: EwdVars.engine2FF, type: SimVarValueType.Number }],
['engine2N1', { name: EwdVars.engine2N1, type: SimVarValueType.Number }],
['engine2N2', { name: EwdVars.engine2N2, type: SimVarValueType.Number }],
['engine2Reverse', { name: EwdVars.engine2Reverse, type: SimVarValueType.Bool }],
['engine2ReverseNozzle', { name: EwdVars.engine2ReverseNozzle, type: SimVarValueType.Number }],
['engine2ReverserTransit', { name: EwdVars.engine2ReverserTransit, type: SimVarValueType.Bool }],
['engine2ReverserDeployed', { name: EwdVars.engine2ReverserDeployed, type: SimVarValueType.Bool }],
['engine2State', { name: EwdVars.engine2State, type: SimVarValueType.Enum }],
['wingAntiIce', { name: EwdVars.wingAntiIce, type: SimVarValueType.Bool }],
['apuBleedPressure', { name: EwdVars.apuBleedPressure, type: SimVarValueType.PSI }],
Expand Down
Loading

0 comments on commit 809d536

Please sign in to comment.