diff --git a/docs/a320-simvars.md b/docs/a320-simvars.md index 744fe23ad7c..a7be7d4c38f 100644 --- a/docs/a320-simvars.md +++ b/docs/a320-simvars.md @@ -391,6 +391,14 @@ - Number - The current mode of the right radio management panel. +- A32NX_RMP_L_NAV_BUTTON_SELECTED + - Bool + - Whether the NAV push button on the left RMP is pushed or not. + +- A32NX_RMP_R_NAV_BUTTON_SELECTED + - Bool + - Whether the NAV push button on the right RMP is pushed or not. + - A32NX_RMP_L_VHF2_STANDBY - Hz - The VHF 2 standby frequency for the left RMP. @@ -407,6 +415,10 @@ - Hz - The VHF 3 standby frequency for the right RMP. +- A32NX_RMP_ILS_MLS_TUNED + - Bool + - If the ILS/MLS is tuned via the RMP + - A32NX_TO_CONFIG_FLAPS_ENTERED - Bool - True if the pilot has entered a FLAPS value in the PERF TAKE OFF takeoff diff --git a/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js b/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js index 4718447a0c8..8a7c3aaa4cb 100644 --- a/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js +++ b/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js @@ -2304,6 +2304,8 @@ class FMCMainDisplay extends BaseAirliners { } else if (this.ilsFrequency > 0 && SimVar.GetSimVarValue('L:A32NX_RADIO_RECEIVER_LOC_IS_VALID', 'number') === 1) { course = SimVar.GetSimVarValue('NAV LOCALIZER:3', 'degrees'); } + SimVar.SetSimVarValue('L:A32NX_RMP_ILS_MLS_TUNED', 'boolean', false); + return SimVar.SetSimVarValue('L:A32NX_FM_LS_COURSE', 'number', course); } diff --git a/src/instruments/src/PFD/LandingSystemIndicator.tsx b/src/instruments/src/PFD/LandingSystemIndicator.tsx index e2cfe334af7..909e83755a2 100644 --- a/src/instruments/src/PFD/LandingSystemIndicator.tsx +++ b/src/instruments/src/PFD/LandingSystemIndicator.tsx @@ -72,6 +72,8 @@ class LandingSystemInfo extends DisplayComponent<{ bus: EventBus }> { private dme = 0; + private rmpTuned = false; + private dmeVisibilitySub = Subject.create('hidden'); private destRef = FSComponent.createRef(); @@ -111,6 +113,11 @@ class LandingSystemInfo extends DisplayComponent<{ bus: EventBus }> { this.dme = dme; this.updateContents(); }); + + sub.on('ilsRMPTuned').whenChanged().handle((rmpTuned) => { + this.rmpTuned = rmpTuned; + this.updateContents(); + }); } private updateContents() { @@ -124,7 +131,7 @@ class LandingSystemInfo extends DisplayComponent<{ bus: EventBus }> { let distLeading = ''; let distTrailing = ''; - if (this.hasDme) { + if (this.hasDme && !this.rmpTuned) { this.dmeVisibilitySub.set('display: inline'); const dist = Math.round(this.dme * 10) / 10; diff --git a/src/instruments/src/PFD/instrument.tsx b/src/instruments/src/PFD/instrument.tsx index 391906df61c..1b6112e16fc 100644 --- a/src/instruments/src/PFD/instrument.tsx +++ b/src/instruments/src/PFD/instrument.tsx @@ -144,6 +144,7 @@ class A32NX_PFD extends BaseInstrument { this.simVarPublisher.subscribe('targetSpeedManaged'); this.simVarPublisher.subscribe('vfeNext'); this.simVarPublisher.subscribe('ilsCourse'); + this.simVarPublisher.subscribe('ilsRMPTuned'); this.simVarPublisher.subscribe('tla1'); this.simVarPublisher.subscribe('tla2'); this.simVarPublisher.subscribe('metricAltToggle'); diff --git a/src/instruments/src/PFD/shared/PFDSimvarPublisher.tsx b/src/instruments/src/PFD/shared/PFDSimvarPublisher.tsx index 17981971ef1..c0d9b0d7456 100644 --- a/src/instruments/src/PFD/shared/PFDSimvarPublisher.tsx +++ b/src/instruments/src/PFD/shared/PFDSimvarPublisher.tsx @@ -76,6 +76,7 @@ export interface PFDSimvars { selectedFpa: number; vfeNext: number; ilsCourse: number; + ilsRMPTuned: boolean; metricAltToggle: boolean; tla1: number; tla2: number; @@ -190,6 +191,7 @@ export enum PFDVars { selectedFpa = 'L:A32NX_AUTOPILOT_FPA_SELECTED', vfeNext = 'L:A32NX_SPEEDS_VFEN', ilsCourse = 'L:A32NX_FM_LS_COURSE', + ilsRMPTuned = 'L:A32NX_RMP_ILS_MLS_TUNED', metricAltToggle = 'L:A32NX_METRIC_ALT_TOGGLE', tla1='L:A32NX_AUTOTHRUST_TLA:1', tla2='L:A32NX_AUTOTHRUST_TLA:2', @@ -306,6 +308,7 @@ export class PFDSimvarPublisher extends SimVarPublisher { ['selectedFpa', { name: PFDVars.selectedFpa, type: SimVarValueType.Degree }], ['vfeNext', { name: PFDVars.vfeNext, type: SimVarValueType.Number }], ['ilsCourse', { name: PFDVars.ilsCourse, type: SimVarValueType.Number }], + ['ilsRMPTuned', { name: PFDVars.ilsRMPTuned, type: SimVarValueType.Bool }], ['metricAltToggle', { name: PFDVars.metricAltToggle, type: SimVarValueType.Bool }], ['tla1', { name: PFDVars.tla1, type: SimVarValueType.Number }], ['tla2', { name: PFDVars.tla2, type: SimVarValueType.Number }], diff --git a/src/instruments/src/RMP/Components/NavRadioPanel.tsx b/src/instruments/src/RMP/Components/NavRadioPanel.tsx index 784a5f587e6..09e45a559e2 100644 --- a/src/instruments/src/RMP/Components/NavRadioPanel.tsx +++ b/src/instruments/src/RMP/Components/NavRadioPanel.tsx @@ -130,6 +130,9 @@ export const NavRadioPanel = (props: Props) => { } else { setActive(Avionics.Utils.make_adf_bcd32(standbyHz)); } + if (props.transceiver === TransceiverType.ILS || props.transceiver === TransceiverType.MLS) { + SimVar.SetSimVarValue('L:A32NX_RMP_ILS_MLS_TUNED', 'boolean', true); + } } else { setCourse(course); setMode(Mode.FREQUENCY);