diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md
index c78eaf4f312..d0f325d2388 100644
--- a/.github/CHANGELOG.md
+++ b/.github/CHANGELOG.md
@@ -62,6 +62,7 @@
1. [FMGC] Improve procedure loading performance - @tracernz (Mike)
1. [EFB] Added Payload Loading to EFB - @2hwk (2Cas#1022)
1. [MODEL] Remove blue highlights in lock mode - @tracernz (Mike)
+1. [RMP] Fixed the behavior of the RMPs and ACPs (VHFs only) - Julian Sebline (Julian Sebline#8476 on Discord)
## 0.8.0
@@ -312,6 +313,7 @@
1. [ATSU] Add FANS-C simulation for CPDLC - @Sven [de en] - (Sven Czarnian)
1. [ATSU] Add VDL3-simulation of datalink transport protocol - @Sven [de en] - (Sven Czarnian)
1. [FMGC] Improve robustness of ILS auto-tuning - @tracernz (Mike)
+1. [OVHD] Fixed fire push button not being able to be stowed - Julian Sebline (Julian Sebline#8476 on Discord)
## 0.7.0
@@ -1094,5 +1096,4 @@
1. [MISC] Standby Instrument stays ON if emergency power should be available, bug fixes - @2hwk (2Cas#1022 on discord)
1. [CDU] Full +/- button functionality - @lhoenig (Lukas Hoenig)
1. [DCDU] Fixed MSG- and MSG+ button labels - @tyler58546 (tyler58546)
-1. [OVHD] Fixed fire push button not being able to be stowed - Julian Sebline (Julian Sebline#8476 on Discord)
1. [ISIS] Fixed issue where ISIS was allowing a bug to be set while in the OFF state - Patrick Macken (@Pat M on Discord)
diff --git a/flybywire-aircraft-a320-neo/ModelBehaviorDefs/A32NX/AirlinerCommon.xml b/flybywire-aircraft-a320-neo/ModelBehaviorDefs/A32NX/AirlinerCommon.xml
index 50d2598d41e..cf366cabd1c 100644
--- a/flybywire-aircraft-a320-neo/ModelBehaviorDefs/A32NX/AirlinerCommon.xml
+++ b/flybywire-aircraft-a320-neo/ModelBehaviorDefs/A32NX/AirlinerCommon.xml
@@ -276,7 +276,8 @@
1
- 0.03
+ 0.04
+ 0.01
AIRLINER
1
@@ -338,6 +339,7 @@
BUTTON
FBW_AIRLINER_Audio_Volume_Knob_Template
+ (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool) (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH, bool) and
#NODE_ID_RECEIVER_VHF_L#
#NODE_ID_LIGHT_RECEIVER_VHF_L#
#ANIM_NAME_KNOB_RECEIVER_VHF_L#
@@ -348,8 +350,6 @@
#NODE_ID_BUTTON_SEQ1_VHF_L#
#NODE_ID_BUTTON_SEQ2_VHF_L#
VHF_L
- 1
- 1
0
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_L_VOLUME_DEC
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_L_VOLUME_INC
@@ -359,6 +359,7 @@
BUTTON
FBW_AIRLINER_Audio_Volume_Knob_Template
+ (L:A32NX_ELEC_DC_2_BUS_IS_POWERED, Bool) (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH, bool) and
#NODE_ID_RECEIVER_VHF_C#
#NODE_ID_LIGHT_RECEIVER_VHF_C#
#ANIM_NAME_KNOB_RECEIVER_VHF_C#
@@ -369,8 +370,6 @@
#NODE_ID_BUTTON_SEQ1_VHF_C#
#NODE_ID_BUTTON_SEQ2_VHF_C#
VHF_C
- 2
- 2
1
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_C_VOLUME_DEC
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_C_VOLUME_INC
@@ -380,6 +379,7 @@
BUTTON
FBW_AIRLINER_Audio_Volume_Knob_Template
+ (L:A32NX_ELEC_DC_1_BUS_IS_POWERED, Bool) (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH, bool) and
#NODE_ID_RECEIVER_VHF_R#
#NODE_ID_LIGHT_RECEIVER_VHF_R#
#ANIM_NAME_KNOB_RECEIVER_VHF_R#
@@ -390,8 +390,6 @@
#NODE_ID_BUTTON_SEQ1_VHF_R#
#NODE_ID_BUTTON_SEQ2_VHF_R#
VHF_R
- 3
- 3
2
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_R_VOLUME_DEC
TT:COCKPIT.TOOLTIPS.TRANSMITTER_VHF_R_VOLUME_INC
@@ -413,30 +411,17 @@
- #AUDIO_KNOB_POWERED# ! if{
+ #SEQ1_POWERED# ! if{
0
} els{
- (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) #Button_ID# (L:XMLVAR_COM_Transmit_Channel) == ! and (L:A32NX_OVHD_INTLT_ANN) 0 == or if{
- 14 #EMISSIVE_DIM# *
+ 1 (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) == (L:A32NX_OVHD_INTLT_ANN) 0 == or if{
+ 3.0 #EMISSIVE_DIM# *
} els{
- (A:LIGHT POTENTIOMETER:#POTENTIOMETER#, Percent over 100) 0.5 *
+ 0
}
}
-
-
-
- 3
-
- (A:COM TRANSMIT:#Radio_ID#, Bool) if{
- #Button_ID# (>L:XMLVAR_COM_Transmit_Channel)
- }
-
-
-
-
-
@@ -445,13 +430,43 @@
#ANIM_NAME_BUTTON#
#NODE_ID_BUTTON_SEQ1#
#NODE_ID_BUTTON_SEQ2#
+
- #Button_ID# (>L:XMLVAR_COM_Transmit_Channel)
- #TRANSMIT_ID# (>K:PILOT_TRANSMITTER_SET)
- 4 (>K:COPILOT_TRANSMITTER_SET)
+ #SEQ1_POWERED# if{
+ #TRANSMIT_ID# (L:XMLVAR_COM_PANEL#ID#_Transmit_Channel) == if{
+ 4 (>L:XMLVAR_COM_PANEL#ID#_Transmit_Channel)
+ } els{
+ #TRANSMIT_ID# (>L:XMLVAR_COM_PANEL#ID#_Transmit_Channel)
+ }
+
+ #ID# 1 == if{
+ (A:PILOT TRANSMITTER TYPE, Enum) #TRANSMIT_ID# == if{
+ 4 (>K:PILOT_TRANSMITTER_SET)
+ } els{
+ #TRANSMIT_ID# (>K:PILOT_TRANSMITTER_SET)
+ }
+ (L:XMLVAR_COM_PANEL2_Transmit_Channel) (>K:COPILOT_TRANSMITTER_SET)
+ } els{
+ (A:COPILOT TRANSMITTER TYPE, Enum) #TRANSMIT_ID# == if{
+ 4 (>K:COPILOT_TRANSMITTER_SET)
+ } els{
+ #TRANSMIT_ID# (>K:COPILOT_TRANSMITTER_SET)
+ }
+ }
+ }
- #NODE_ID_BUTTON#
- #Button_ID# (L:XMLVAR_COM_Transmit_Channel) == (L:A32NX_OVHD_INTLT_ANN) 0 == or #SEQ1_POWERED# and #EMISSIVE_DIM# *
+
+
+ #SEQ1_POWERED# if{
+ #TRANSMIT_ID# (L:XMLVAR_COM_PANEL#ID#_Transmit_Channel) == (L:A32NX_OVHD_INTLT_ANN) 0 == or #EMISSIVE_DIM# *
+ }
+
+
+
+ #SEQ1_POWERED# if{
+ #TRANSMIT_ID# (L:XMLVAR_COM_PANEL#ID#_Transmit_Channel) == (L:A32NX_OVHD_INTLT_ANN) 0 == or #EMISSIVE_DIM# *
+ }
+
fcubutton
0.1
fcubutton
@@ -477,19 +492,33 @@
False
0.002
(L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) 100 *
- (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT# + 1 min (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) 1 (>I:XMLVAR_COM_UpdateVolumes)
- (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT# - 0 max (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) 1 (>I:XMLVAR_COM_UpdateVolumes)
-
- (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down)
- #Button_ID# (L:XMLVAR_COM_Transmit_Channel) == or 100 *
-
+
+ 0 (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) == if{
+ (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT_HARD# + 1 min (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#)
+ } els{
+ (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT# + 1 min (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#)
+ }
+
+
+ 0 (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) == if{
+ (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT_HARD# - 0 max (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#)
+ } els{
+ (L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#) #VOLUME_INCREMENT# - 0 max (>L:XMLVAR_COM_#ID#_Volume_#FREQ_ID#)
+ }
+
+ (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) 100 *
#ANIM_NAME_SWITCH#
- #Button_ID# (L:XMLVAR_COM_Transmit_Channel) != if{
- (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) ! (>L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down)
- 1 (>I:XMLVAR_COM_UpdateReceivers)
- }
+ #SEQ1_POWERED# if{
+ (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) ! (>L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down)
+ 1 (>I:XMLVAR_COM_UpdateReceivers)
+ }
+
+ #SEQ1_POWERED# if{
+ 1 (L:XMLVAR_COM_#ID#_#FREQ_ID#_Switch_Down) == (L:A32NX_OVHD_INTLT_ANN) 0 == or #EMISSIVE_DIM# *
+ }
+
mcdubuttons
0.1
@@ -515,84 +544,74 @@
- 1
+ 15
- (A:COM RECEIVE:1, Bool) sp1
- (A:COM RECEIVE:2, Bool) sp2
- (A:COM RECEIVE:3, Bool) sp3
-
- (L:XMLVAR_COM_1_VHF_L_Switch_Down) (L:XMLVAR_COM_2_VHF_L_Switch_Down) (L:XMLVAR_COM_3_VHF_L_Switch_Down) or or sp4
- (L:XMLVAR_COM_1_VHF_C_Switch_Down) (L:XMLVAR_COM_2_VHF_C_Switch_Down) (L:XMLVAR_COM_3_VHF_C_Switch_Down) or or sp5
- (L:XMLVAR_COM_1_VHF_R_Switch_Down) (L:XMLVAR_COM_2_VHF_R_Switch_Down) (L:XMLVAR_COM_3_VHF_R_Switch_Down) or or sp6
-
- (A:COM VOLUME:1, Percent over 100) sp7
- (A:COM VOLUME:2, Percent over 100) sp8
- (A:COM VOLUME:3, Percent over 100) sp9
-
- (L:XMLVAR_COM_1_Volume_VHF_L) (L:XMLVAR_COM_2_Volume_VHF_L) (L:XMLVAR_COM_3_Volume_VHF_L) max max sp10
- (L:XMLVAR_COM_1_Volume_VHF_C) (L:XMLVAR_COM_2_Volume_VHF_C) (L:XMLVAR_COM_3_Volume_VHF_C) max max sp11
- (L:XMLVAR_COM_1_Volume_VHF_R) (L:XMLVAR_COM_2_Volume_VHF_R) (L:XMLVAR_COM_3_Volume_VHF_R) max max sp12
-
- (* Check if the Simvars have been toggled externaly *)
- (I:XMLVAR_COM_UpdateReceivers) if{
- l4 (>K:COM1_RECEIVE_SELECT)
- l5 (>K:COM2_RECEIVE_SELECT)
- l6 (>K:COM3_RECEIVE_SELECT)
- 0 (>I:XMLVAR_COM_UpdateReceivers)
- } els{
- (* Update XML Values if SimVar has changed *)
- (O:XMLVAR_COM_1_Receive_PreviousValue) l1 != l4 l1 != and if{
- 1 (>L:XMLVAR_COM_1_VHF_L_Switch_Down)
- }
- (O:XMLVAR_COM_2_Receive_PreviousValue) l2 != l5 l2 != and if{
- 1 (>L:XMLVAR_COM_2_VHF_C_Switch_Down)
- }
- (O:XMLVAR_COM_3_Receive_PreviousValue) l3 != l6 l3 != and if{
- 1 (>L:XMLVAR_COM_3_VHF_R_Switch_Down)
+
+
+
+
+
+
+
+
+ (I:XMLVAR_COM_UpdateReceivers) if{
+ (L:XMLVAR_COM_1_VHF_L_Switch_Down) (L:XMLVAR_COM_2_VHF_L_Switch_Down) or (>K:COM1_RECEIVE_SELECT)
+ (L:XMLVAR_COM_1_VHF_C_Switch_Down) (L:XMLVAR_COM_2_VHF_C_Switch_Down) or (>K:COM2_RECEIVE_SELECT)
+ 0 (>I:XMLVAR_COM_UpdateReceivers)
}
- }
- (I:XMLVAR_COM_UpdateVolumes) if{
- l10 100 * (>K:COM1_VOLUME_SET)
- l11 100 * (>K:COM2_VOLUME_SET)
- l12 100 * (>K:COM3_VOLUME_SET)
- 0 (>I:XMLVAR_COM_UpdateVolumes)
- } els{
- (* Update XML Values if SimVar has changed *)
- (O:XMLVAR_COM_1_Volume_PreviousValue) l7 != l10 l7 != and if{
- l10 l7 > if{
- l7 (L:XMLVAR_COM_1_Volume_VHF_L) min (>L:XMLVAR_COM_1_Volume_VHF_L)
- l7 (L:XMLVAR_COM_2_Volume_VHF_L) min (>L:XMLVAR_COM_2_Volume_VHF_L)
- l7 (L:XMLVAR_COM_3_Volume_VHF_L) min (>L:XMLVAR_COM_3_Volume_VHF_L)
+
+ (L:XMLVAR_COM_1_VHF_L_Switch_Down) (L:XMLVAR_COM_2_VHF_L_Switch_Down) or if{
+ (L:XMLVAR_COM_1_VHF_L_Switch_Down) (L:XMLVAR_COM_2_VHF_L_Switch_Down) and if{
+ (L:XMLVAR_COM_1_Volume_VHF_L) (L:XMLVAR_COM_2_Volume_VHF_L) max max 100 * (>K:COM1_VOLUME_SET)
} els{
- l7 (>L:XMLVAR_COM_1_Volume_VHF_L)
+ 1 (L:XMLVAR_COM_1_VHF_L_Switch_Down) == if{
+ (L:XMLVAR_COM_1_Volume_VHF_L) 100 * (>K:COM1_VOLUME_SET)
+ } els{
+ (L:XMLVAR_COM_2_Volume_VHF_L) 100 * (>K:COM1_VOLUME_SET)
+
+ }
}
+ } els{
+ 0 (>K:COM1_VOLUME_SET)
}
- (O:XMLVAR_COM_2_Volume_PreviousValue) l8 != l11 l8 != and if{
- l11 l8 > if{
- l8 (L:XMLVAR_COM_1_Volume_VHF_C) min (>L:XMLVAR_COM_1_Volume_VHF_C)
- l8 (L:XMLVAR_COM_2_Volume_VHF_C) min (>L:XMLVAR_COM_2_Volume_VHF_C)
- l8 (L:XMLVAR_COM_3_Volume_VHF_C) min (>L:XMLVAR_COM_3_Volume_VHF_C)
- } els{
- l8 (>L:XMLVAR_COM_2_Volume_VHF_C)
+
+ (A:COM RECEIVE:2, Bool) if{
+ (L:XMLVAR_COM_1_VHF_C_Switch_Down) (L:XMLVAR_COM_2_VHF_C_Switch_Down) or if{
+ (L:XMLVAR_COM_1_VHF_C_Switch_Down) (L:XMLVAR_COM_2_VHF_C_Switch_Down) and if{
+ (L:XMLVAR_COM_1_Volume_VHF_C) (L:XMLVAR_COM_2_Volume_VHF_C) max max 100 * (>K:COM2_VOLUME_SET)
+ } els{
+ 1 (L:XMLVAR_COM_1_VHF_C_Switch_Down) == if{
+ (L:XMLVAR_COM_1_Volume_VHF_C) 100 * (>K:COM2_VOLUME_SET)
+ } els{
+ (L:XMLVAR_COM_2_Volume_VHF_C) 100 * (>K:COM2_VOLUME_SET)
+ }
+ }
}
+ } els{
+ 0 (>K:COM2_VOLUME_SET)
}
- (O:XMLVAR_COM_3_Volume_PreviousValue) l9 != l12 l9 != and if{
- l12 l9 > if{
- l9 (L:XMLVAR_COM_1_Volume_VHF_R) min (>L:XMLVAR_COM_1_Volume_VHF_R)
- l9 (L:XMLVAR_COM_2_Volume_VHF_R) min (>L:XMLVAR_COM_2_Volume_VHF_R)
- l9 (L:XMLVAR_COM_3_Volume_VHF_R) min (>L:XMLVAR_COM_3_Volume_VHF_R)
- } els{
- l9 (>L:XMLVAR_COM_3_Volume_VHF_R)
+
+ (A:COM RECEIVE:3, Bool) if{
+ (L:XMLVAR_COM_1_VHF_R_Switch_Down) (L:XMLVAR_COM_2_VHF_R_Switch_Down) or if{
+ (L:XMLVAR_COM_1_VHF_R_Switch_Down) (L:XMLVAR_COM_2_VHF_R_Switch_Down) and if{
+ (L:XMLVAR_COM_1_Volume_VHF_R) (L:XMLVAR_COM_2_Volume_VHF_R) max max 100 * (>K:COM3_VOLUME_SET)
+ } els{
+ 1 (L:XMLVAR_COM_1_VHF_R_Switch_Down) == if{
+ (L:XMLVAR_COM_1_Volume_VHF_R) 100 * (>K:COM3_VOLUME_SET)
+ } els{
+ (L:XMLVAR_COM_2_Volume_VHF_R) 100 * (>K:COM3_VOLUME_SET)
+ }
+ }
}
}
- }
-
- l4 (>O:XMLVAR_COM_1_Receive_PreviousValue)
- l5 (>O:XMLVAR_COM_2_Receive_PreviousValue)
- l6 (>O:XMLVAR_COM_3_Receive_PreviousValue)
- l10 (>O:XMLVAR_COM_1_Volume_PreviousValue)
- l11 (>O:XMLVAR_COM_2_Volume_PreviousValue)
- l12 (>O:XMLVAR_COM_3_Volume_PreviousValue)
diff --git a/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/model/A320_NEO_INTERIOR.xml b/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/model/A320_NEO_INTERIOR.xml
index c5987bafdd4..49510a1905e 100644
--- a/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/model/A320_NEO_INTERIOR.xml
+++ b/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/model/A320_NEO_INTERIOR.xml
@@ -4105,16 +4105,39 @@
+
+
+
+
+ 1
L
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
(L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+
+
+ 0 (>L:XMLVAR_COM_PANEL1_Transmit_Channel)
+ 0 (>K:PILOT_TRANSMITTER_SET)
+
+ 1 (>L:XMLVAR_COM_1_VHF_L_Switch_Down)
+ 1 (>L:XMLVAR_COM_1_VHF_C_Switch_Down)
+
+ 1 (>K:COM1_RECEIVE_SELECT)
+ 1 (>K:COM2_RECEIVE_SELECT)
+ 1 (>K:COM3_RECEIVE_SELECT)
+
+ 0.8 (>L:XMLVAR_COM_1_Volume_VHF_L)
+ 0.4 (>L:XMLVAR_COM_1_Volume_VHF_C)
+ 0 (>L:XMLVAR_COM_1_Volume_VHF_R)
+ 0 (>K:COM3_VOLUME_SET)
+
1
+ L
KNOB_AUDIOL_VHF1
PUSH_AUDIOL_VHF1_EMIS
KNOB_AUDIOL_VHF1
@@ -4139,9 +4162,6 @@
PUSH_AUDIOL_CALL3
PUSH_AUDIOL_CALL3_SEQ1
PUSH_AUDIOL_CALL3_SEQ2
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
@@ -4154,102 +4174,119 @@
PUSH_AUDIOL_RESET
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
-
+ 0
+ 0
PUSH_AUDIOL_VOICE
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOL_PA
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
-
+ 0
+ 0
PUSH_AUDIOL_ATT
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOL_MECH
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOL_CALL4
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOL_CALL5
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOL_VOR1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_VOR2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_MKR_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_ILS_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_HF1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_MLS_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_HF2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_ADF1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_INT_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_ADF2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_CAB_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOL_PA1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
+
+
+
+
+ 2
R
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ (L:A32NX_ELEC_DC_2_BUS_IS_POWERED, Bool)
(L:A32NX_ELEC_DC_2_BUS_IS_POWERED, Bool)
+
+ 0 (>L:XMLVAR_COM_PANEL2_Transmit_Channel)
+ 0 (>K:COPILOT_TRANSMITTER_SET)
+
+ 1 (>L:XMLVAR_COM_2_VHF_L_Switch_Down)
+ 1 (>L:XMLVAR_COM_2_VHF_C_Switch_Down)
+
+ 0.8 (>L:XMLVAR_COM_2_Volume_VHF_L)
+ 0.4 (>L:XMLVAR_COM_2_Volume_VHF_C)
+ 0 (>L:XMLVAR_COM_2_Volume_VHF_R)
+
2
+ R
KNOB_AUDIOR_VHF1
PUSH_AUDIOR_VHF1_EMIS
KNOB_AUDIOR_VHF1
@@ -4274,9 +4311,6 @@
PUSH_AUDIOR_CALL3
PUSH_AUDIOR_CALL3_SEQ1
PUSH_AUDIOR_CALL3_SEQ2
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
@@ -4289,88 +4323,88 @@
PUSH_AUDIOR_RESET
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
-
+ 0
+ 0
PUSH_AUDIOR_VOICE
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOR_PA
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
-
+ 0
+ 0
PUSH_AUDIOR_ATT
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOR_MECH
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOR_CALL4
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOR_CALL5
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
- (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool)
+ 0
+ 0
PUSH_AUDIOR_VOR1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_VOR2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_MKR_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_ILS_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_HF1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_MLS_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_HF2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_ADF1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_INT_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_ADF2_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_CAB_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
PUSH_AUDIOR_PA1_EMIS
- (L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED, Bool)
+ 0
diff --git a/src/behavior/src/A32NX_Interior_RMP.xml b/src/behavior/src/A32NX_Interior_RMP.xml
index 8d007b38943..58fc50a96bc 100644
--- a/src/behavior/src/A32NX_Interior_RMP.xml
+++ b/src/behavior/src/A32NX_Interior_RMP.xml
@@ -64,7 +64,11 @@
+
+
+ 0 (>K:COM3_RADIO_SET_HZ)
+
BUTTON
ASOBO_GT_Push_Button
@@ -132,20 +136,50 @@
AM
+
+
+
+ 7
+
+ let indicatorsPowered = #INDICATORS_POWERED, bool#;
+ let id = #ID, number#;
+ alias toggleSwitch = (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH, bool);
+ alias selectedModeLeft = (L:A32NX_RMP_L_SELECTED_MODE, number);
+ alias selectedModeRight = (L:A32NX_RMP_R_SELECTED_MODE, number);
+ alias annunciatorLight = (L:A32NX_OVHD_INTLT_ANN, number);
+ let emissiveDim = if annunciatorLight == 2 { 0.05 } else { 1 };
+ // @todo abnormal defined differently with NAV modes available.
+ let rmpLeftAbnormal = selectedModeLeft != 1 or selectedModeRight == 1;
+ let rmpRightAbnormal = selectedModeRight != 2 or selectedModeLeft == 2;
+ let sideLeftCheck = id == 1;
+ let sideRightCheck = id == 2;
+ (if (toggleSwitch and ((rmpLeftAbnormal and sideLeftCheck) or (rmpRightAbnormal and sideRightCheck)) or (annunciatorLight == 0)) and indicatorsPowered {
+ 1 * emissiveDim
+ } else {
+ 0
+ })
+
+
+
+
+ 7
let indicatorsPowered = #INDICATORS_POWERED, bool#;
+ let id = #ID, number#;
alias toggleSwitch = (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH, bool);
alias selectedModeLeft = (L:A32NX_RMP_L_SELECTED_MODE, number);
alias selectedModeRight = (L:A32NX_RMP_R_SELECTED_MODE, number);
alias annunciatorLight = (L:A32NX_OVHD_INTLT_ANN, number);
let emissiveDim = if annunciatorLight == 2 { 0.05 } else { 1 };
// @todo abnormal defined differently with NAV modes available.
- let rmpLeftAbnormal = selectedModeLeft != 1;
- let rmpRightAbnormal = selectedModeRight != 2;
- (if (toggleSwitch and (rmpLeftAbnormal or rmpRightAbnormal) or (annunciatorLight == 0)) and indicatorsPowered {
+ let rmpLeftAbnormal = selectedModeLeft != 1 or selectedModeRight == 1;
+ let rmpRightAbnormal = selectedModeRight != 2 or selectedModeLeft == 2;
+ let sideLeftCheck = id == 1;
+ let sideRightCheck = id == 2;
+ (if (toggleSwitch and ((rmpLeftAbnormal and sideLeftCheck) or (rmpRightAbnormal and sideRightCheck)) or (annunciatorLight == 0)) and indicatorsPowered {
1 * emissiveDim
} else {
0
@@ -156,6 +190,7 @@
+ 7
SEL
@@ -288,7 +323,7 @@
- (A:LIGHT POTENTIOMETER:#POTENTIOMETER#, Percent over 100) #BACKLIGHTS_POWERED# *
+ (A:LIGHT POTENTIOMETER:#POTENTIOMETER#, Percent over 100) #BACKLIGHTS_POWERED# (L:A32NX_RMP_#SIDE#_TOGGLE_SWITCH) * *
diff --git a/src/instruments/src/Common/EWDMessages.tsx b/src/instruments/src/Common/EWDMessages.tsx
index 4748b8ac74c..84758378d54 100644
--- a/src/instruments/src/Common/EWDMessages.tsx
+++ b/src/instruments/src/Common/EWDMessages.tsx
@@ -102,6 +102,7 @@ const EWDMessages = {
'000055201': '\x1b<3mCOMPANY MSG',
'000056001': '\x1b<3mHI ALT SET',
'000068001': '\x1b<3mADIRS SWTG',
+ '000056701': '\x1b<3mVHF3 VOICE',
'213122101': '\x1b<2m\x1b4mCAB PR\x1bm EXCESS CAB ALT',
'213122102': '\x1b<5m -CREW OXY MASKS.....USE',
'213122103': '\x1b<5m -SIGNS...............ON',
diff --git a/src/instruments/src/EWD/elements/PseudoFWC.tsx b/src/instruments/src/EWD/elements/PseudoFWC.tsx
index 8f03d03ef1f..96632be7424 100644
--- a/src/instruments/src/EWD/elements/PseudoFWC.tsx
+++ b/src/instruments/src/EWD/elements/PseudoFWC.tsx
@@ -297,6 +297,8 @@ const PseudoFWC: React.FC = () => {
const [pack2On] = useSimVar('L:A32NX_OVHD_COND_PACK_2_PB_IS_ON', 'bool');
const [excessPressure] = useSimVar('L:A32NX_PRESS_EXCESS_CAB_ALT', 'bool', 500);
+ const [voiceVHF3] = useSimVar('A:COM ACTIVE FREQUENCY:3', 'number', 500);
+
/* WARNINGS AND FAILURES */
const landASAPRed: boolean = !!(!aircraftOnGround
&& (
@@ -1390,6 +1392,17 @@ const PseudoFWC: React.FC = () => {
sysPage: -1,
side: 'RIGHT',
},
+ '0000567': // VHF3 VOICE
+ {
+ flightPhaseInhib: [],
+ simVarIsActive: voiceVHF3 !== 0 && [1, 2, 6, 9, 10].includes(flightPhase),
+ whichCodeToReturn: [0],
+ codesToReturn: ['000056701'],
+ memoInhibit: false,
+ failure: 0,
+ sysPage: -1,
+ side: 'RIGHT',
+ },
};
/* TO CONFIG */
@@ -1697,6 +1710,7 @@ const PseudoFWC: React.FC = () => {
unit,
usrStartRefueling,
wingAntiIce,
+ voiceVHF3,
]);
useEffect(() => {
diff --git a/src/instruments/src/RMP/Components/RadioPanelDisplay.tsx b/src/instruments/src/RMP/Components/RadioPanelDisplay.tsx
index c338eeae0e1..a2ada050a57 100644
--- a/src/instruments/src/RMP/Components/RadioPanelDisplay.tsx
+++ b/src/instruments/src/RMP/Components/RadioPanelDisplay.tsx
@@ -8,6 +8,8 @@ interface Props {
value: number | string,
}
+const TEXT_DATA_MODE_VHF3 = 'DATA';
+
/**
* Format the given frequency to be displayed.
* @param frequency The given frequency number in Hz.
@@ -23,14 +25,39 @@ const formatFrequency = (frequency: number): string => (frequency / 1000000).toF
export function RadioPanelDisplay(props: Props) {
const [lightsTest] = useSimVar('L:A32NX_OVHD_INTLT_ANN', 'Boolean', 1000);
- // If the passed value prop is a number, we'll use formatFrequency to get string format.
- const value = typeof props.value === 'number' ? formatFrequency(props.value) : props.value;
+ let content: JSX.Element;
- return (
-