1
0
Fork 0

Merge branch 'dev' into pfd-rework

This commit is contained in:
legoboyvdlp R 2020-10-20 18:55:06 +01:00
commit 8069ebae11
36 changed files with 2899 additions and 824 deletions

View file

@ -212,6 +212,7 @@
<oh-btn type="bool">0</oh-btn>
<switch1 type="bool">0</switch1>
<flaps-click type="bool">0</flaps-click>
<pushbutton type="bool">0</pushbutton>
<spdbrk-click type="bool">0</spdbrk-click>
<relay-batt-1 type="bool">0</relay-batt-1>
<relay-batt-2 type="bool">0</relay-batt-2>
@ -459,6 +460,15 @@
<value>1</value>
</binding>
</item>
<item>
<label>Canvas QRH</label>
<binding>
<command>nasal</command>
<script>
canvas_qrh.createCanvasQRH();
</script>
</binding>
</item>
</menu>
</default>
</menubar>
@ -1175,6 +1185,7 @@
<right-tank-pump-1 type="bool">0</right-tank-pump-1>
<right-tank-pump-2 type="bool">0</right-tank-pump-2>
</fuel>
<gear type="bool">0</gear>
<hydraulic>
<blue-edp type="bool">0</blue-edp>
<blue-elec type="bool">0</blue-elec>
@ -4358,6 +4369,9 @@
<canvas_mcdu>
<file>Aircraft/A320-family/Models/Instruments/MCDU/MCDU.nas</file>
</canvas_mcdu>
<canvas_qrh>
<file>Aircraft/A320-family/Nasal/QRH/QRH.nas</file>
</canvas_qrh>
<mcdu_scratchpad> <!-- delay till after canvas mcdu -->
<file>Aircraft/A320-family/Nasal/FMGC/mcdu-messages.nas</file>
</mcdu_scratchpad>

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View file

@ -6174,9 +6174,8 @@
<button>3</button>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>controls/flight/elevator-trim</property>
<step>0.01</step>
<command>nasal</command>
<script>libraries.slewPitchWheel(1);</script>
</binding>
</action>
<action>
@ -6184,9 +6183,8 @@
<button>4</button>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>controls/flight/elevator-trim</property>
<step>-0.01</step>
<command>nasal</command>
<script>libraries.slewPitchWheel(-1);</script>
</binding>
</action>
</animation>

View file

@ -1662,9 +1662,15 @@ var canvas_lowerECAM_elec = {
}
# Bus indicators
if (systems.ELEC.Bus.dcBat.getValue() > 25) {
me["ELEC-DCBAT-label"].setColor(0.0509,0.7529,0.2941);
if (systems.ELEC.Switch.bat1.getValue() or systems.ELEC.Switch.bat2.getValue()) {
me["ELEC-DCBAT-label"].setText("DC BAT");
if (systems.ELEC.Bus.dcBat.getValue() > 25) {
me["ELEC-DCBAT-label"].setColor(0.0509,0.7529,0.2941);
} else {
me["ELEC-DCBAT-label"].setColor(0.7333,0.3803,0);
}
} else {
me["ELEC-DCBAT-label"].setText("XX"); # BCL not powered hence no voltage info supplied from BCL
me["ELEC-DCBAT-label"].setColor(0.7333,0.3803,0);
}

View file

@ -879,7 +879,7 @@ var canvas_MCDU_base = {
}
} else if (page == "ATCMENU2") {
if (!pageSwitch[i].getBoolValue()) {
me.defaultHide();
me.defaultHideWithCenter();
me["Simple_Title"].setText("ATC MENU");
me["Simple_Title"].setColor(1, 1, 1);
me["Simple_PageNum"].setText("2/2");
@ -891,6 +891,8 @@ var canvas_MCDU_base = {
me["Simple_L0S"].hide();
me.showLeftS(-1, -1, -1, -1, -1, 1);
me.showLeftArrow(1, 1, -1, -1, -1, 1);
me.showCenter(-1, -1, -1, -1, -1, -1);
me.showCenterS(1, -1, -1, -1, -1, -1);
me.showRight(1, -1, -1, -1, -1, -1);
me.showRightS(-1, -1, -1, -1, -1, -1);
me.showRightArrow(1, -1, -1, -1, -1, -1);
@ -898,10 +900,13 @@ var canvas_MCDU_base = {
me["Simple_C4B"].hide();
me.standardFontSize();
me.fontSizeCenter(normal, normal, normal, normal, normal, normal);
me.standardFontColour();
me.colorCenterS("wht", "wht", "wht", "wht", "wht", "wht");
me["Simple_L1"].setText(" DEPART REQ");
me["Simple_L2"].setText(" OCEANIC REQ");
me["Simple_C1S"].setText(" -------- ATS623 PAGE -------- ");
me["Simple_L6S"].setText(" ATSU DLK");
me["Simple_L6"].setText(" RETURN");
@ -1184,41 +1189,35 @@ var canvas_MCDU_base = {
me["Simple_Title"].setText("VHF3 DATA MODE");
me.defaultPageNumbers();
me.showLeft(-1, 1, 1, 1, -1, 1);
me.showLeft(1, 1, 1, -1, -1, 1);
me["Simple_L0S"].hide();
me.showLeftS(1, 1, 1, 1, -1, -1);
me.showLeftArrow(-1, 1, 1, 1, -1, 1);
me.showLeftS(1, -1, -1, -1, -1, -1);
me.showLeftArrow(-1, 1, 1, -1, -1, 1);
me.showCenter(-1, -1, -1, -1, -1, -1);
me.showCenterS(1, -1, -1, -1, -1, -1);
me.showRight(-1, 1, 1, -1, -1, 1);
me.showRightS(1, 1, 1, -1, -1, 1);
me.showRight(1, 1, 1, -1, -1, 1);
me.showRightS(1, -1, -1, -1, -1, 1);
me.showRightArrow(-1, 1, 1, -1, -1, -1);
me["Simple_C3B"].hide();
me["Simple_C4B"].hide();
me.standardFontSize();
me.colorLeft("wht", "blu", "blu", "blu", "wht", "wht");
me.colorLeftS("grn", "blu", "blu", "blu", "wht", "wht");
me.colorLeft("grn", "blu", "blu", "blu", "wht", "wht");
me.colorLeftS("wht", "blu", "blu", "blu", "wht", "wht");
me.colorLeftArrow("wht", "blu", "blu", "blu", "wht", "wht");
me.colorCenterS("grn", "wht", "wht", "wht", "wht", "wht");
me.colorRight("wht", "blu", "blu", "wht", "wht", "blu");
me.colorRightS("grn", "blu", "blu", "wht", "wht", "blu");
me.colorRight("grn", "blu", "blu", "wht", "wht", "blu");
me.colorRightS("wht", "blu", "blu", "wht", "wht", "blu");
me.colorRightArrow("wht", "blu", "blu", "wht", "wht", "wht");
me["Simple_L1S"].setText(" AUTO");
me["Simple_C1S"].setText("SITA725 ");
me["Simple_L2S"].setText(" SITA725");
me["Simple_L2"].setText(" EUROPE");
me["Simple_L3S"].setText(" SITA550");
me["Simple_L3"].setText(" ASIA/AUST");
me["Simple_L4S"].setText(" AVICOM");
me["Simple_L4"].setText(" JAPAN");
me["Simple_R1S"].setText(" 131.725");
me["Simple_R2S"].setText("ARINC ");
me["Simple_R2"].setText("USA ");
me["Simple_R3S"].setText("AIRCANADA ");
me["Simple_R3"].setText("CANADA ");
me["Simple_L1S"].setText(" ATIS");
me["Simple_C1S"].setText("ACTIVE SERVERS");
me["Simple_L2"].setText(" FAA");
me["Simple_L3"].setText(" VATSIM");
me["Simple_R1S"].setText("METAR ");
me["Simple_R2"].setText("NOAA ");
me["Simple_R3"].setText("VATSIM ");
me["Simple_L6S"].setText(" RETURN TO");
me["Simple_L6"].setText(" COMM MENU");
me["Simple_R6S"].setText("PAGE ");
@ -1226,6 +1225,25 @@ var canvas_MCDU_base = {
pageSwitch[i].setBoolValue(1);
}
if (atsu.AOC.server == 1) {
me["Simple_R1"].setText("VATSIM ");
me["Simple_R2_Arrow"].show();
me["Simple_R3_Arrow"].hide();
} elsif (atsu.AOC.server == 0) {
me["Simple_R1"].setText("NOAA ");
me["Simple_R2_Arrow"].hide();
me["Simple_R3_Arrow"].show();
}
if (atsu.ATIS.server == 1) {
me["Simple_L1"].setText(" VATSIM");
me["Simple_L2_Arrow"].show();
me["Simple_L3_Arrow"].hide();
} elsif (atsu.ATIS.server == 0) {
me["Simple_L1"].setText(" FAA");
me["Simple_L2_Arrow"].hide();
me["Simple_L3_Arrow"].show();
}
} else if (page == "COMMINIT") {
if (!pageSwitch[i].getBoolValue()) {
me.defaultHide();

View file

@ -11,8 +11,6 @@
<!-- No button lights without power! -->
<animation>
<type>select</type>
<object-name>ACESSFeedBtn1F</object-name>
<object-name>ACESSFeedBtn2A</object-name>
<object-name>ACPack1Btn1F</object-name>
<object-name>ACPack1Btn2O</object-name>
<object-name>ACPack2Btn1F</object-name>
@ -95,6 +93,8 @@
<animation>
<type>select</type>
<object-name>ACESSFeedBtn1F</object-name>
<object-name>ACESSFeedBtn2A</object-name>
<object-name>AftCargoIsoBtn1F</object-name>
<object-name>AftCargoIsoBtn2O</object-name>
<object-name>AftCargoSmkBtn1S</object-name>
@ -355,7 +355,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<mod-up>
<binding>
@ -416,7 +416,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -464,7 +464,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -872,7 +872,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -934,7 +934,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -996,7 +996,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1230,7 +1230,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1297,7 +1297,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1364,7 +1364,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1431,7 +1431,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1498,7 +1498,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1565,7 +1565,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1632,7 +1632,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1700,7 +1700,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1767,7 +1767,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1833,7 +1833,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1876,7 +1876,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1919,7 +1919,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -1964,7 +1964,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2040,7 +2040,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -2126,7 +2126,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2193,7 +2193,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2260,7 +2260,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2327,7 +2327,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2395,7 +2395,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2454,7 +2454,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2519,7 +2519,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2584,7 +2584,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2648,7 +2648,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2713,7 +2713,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2778,7 +2778,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2843,7 +2843,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2909,7 +2909,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -2970,7 +2970,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3037,7 +3037,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3134,9 +3134,13 @@
<repeatable>false</repeatable>
<binding>
<condition>
<and>
<and>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<property>/engines/engine[0]/n2-actual</property>
<value>14.0</value>
</greater-than-equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
</greater-than-equals>
<equals>
@ -3210,23 +3214,14 @@
<repeatable>false</repeatable>
<binding>
<condition>
<or>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
</greater-than-equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
</or>
<property>/systems/electrical/sources/idg-1/gcu-1-powered</property>
</condition>
<command>property-toggle</command>
<property>controls/electrical/switches/gen-1</property>
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3278,12 +3273,12 @@
<condition>
<or>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
<property>systems/electrical/bus/ac-1</property>
<value>110</value>
</greater-than-equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
<property>systems/electrical/bus/ac-2</property>
<value>110</value>
</greater-than-equals>
</or>
</condition>
@ -3292,7 +3287,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3343,17 +3338,14 @@
<repeatable>false</repeatable>
<binding>
<condition>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
</greater-than-equals> <!-- control is on DC BAT bus 301PP via 11 PB - so if you enter EMER ELEC with it turned off, too bad -->
<property>/systems/electrical/sources/apu/gcu-powered</property>
</condition>
<command>property-toggle</command>
<property>controls/electrical/switches/apu</property>
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3424,7 +3416,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3468,7 +3460,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3532,23 +3524,14 @@
<repeatable>false</repeatable>
<binding>
<condition>
<or>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
</greater-than-equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
</or>
<property>/systems/electrical/sources/idg-2/gcu-2-powered</property>
</condition>
<command>property-toggle</command>
<property>controls/electrical/switches/gen-2</property>
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -3635,7 +3618,11 @@
<condition>
<and>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<property>/engines/engine[1]/n2-actual</property>
<value>14.0</value>
</greater-than-equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-bat</property>
<value>25</value>
</greater-than-equals>
<equals>
@ -3725,7 +3712,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<mod-up>
<binding>
@ -3887,7 +3874,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -4248,7 +4235,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4312,7 +4299,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4385,7 +4372,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4458,7 +4445,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4524,7 +4511,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4597,7 +4584,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4671,7 +4658,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -4862,7 +4849,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -4939,7 +4926,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -5448,7 +5435,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5509,7 +5496,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5570,7 +5557,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5635,7 +5622,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5678,7 +5665,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5729,7 +5716,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5793,7 +5780,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -5865,7 +5852,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -5970,7 +5957,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
@ -7355,7 +7342,7 @@
</mod-up>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -7401,7 +7388,7 @@
</mod-up>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -7499,7 +7486,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -7540,7 +7527,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -7592,7 +7579,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>

View file

@ -68,7 +68,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
@ -169,7 +169,7 @@
</equals>
</condition>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>

View file

@ -53,7 +53,7 @@
</binding>
<binding>
<command>nasal</command>
<script>setprop("sim/sounde/oh-btn", 1);</script>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>

View file

@ -15,6 +15,8 @@ var updateR = 0;
var elapsedtime = 0;
var altTens = 0;
var altPolarity = "";
var track_diff = 0;
var AICenter = nil;
# Fetch nodes:
var state1 = props.globals.getNode("/systems/thrust/state1", 1);
@ -126,6 +128,16 @@ var inner_marker = props.globals.getNode("/instrumentation/marker-beacon/inner",
var flap_config = props.globals.getNode("/controls/flight/flaps-input", 1);
var hundredAbove = props.globals.getNode("/instrumentation/pfd/hundred-above", 1);
var minimum = props.globals.getNode("/instrumentation/pfd/minimums", 1);
var aoa_1 = props.globals.getNode("/systems/navigation/adr/output/aoa-1", 1);
var aoa_2 = props.globals.getNode("/systems/navigation/adr/output/aoa-2", 1);
var aoa_3 = props.globals.getNode("/systems/navigation/adr/output/aoa-3", 1);
var adr_1_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-1", 1);
var adr_2_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-2", 1);
var adr_3_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-3", 1);
var adr_1_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-1-fault", 1);
var adr_2_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-2-fault", 1);
var adr_3_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-3-fault", 1);
var air_data_switch = props.globals.getNode("/controls/navigation/switching/air-data", 1);
# Create Nodes:
var alt_diff = props.globals.initNode("/instrumentation/pfd/alt-diff", 0.0, "DOUBLE");
@ -137,7 +149,7 @@ var horizon_ground = props.globals.initNode("/instrumentation/pfd/horizon-ground
var hdg_diff = props.globals.initNode("/instrumentation/pfd/hdg-diff", 0.0, "DOUBLE");
var hdg_scale = props.globals.initNode("/instrumentation/pfd/heading-scale", 0.0, "DOUBLE");
var track = props.globals.initNode("/instrumentation/pfd/track-deg", 0.0, "DOUBLE");
var track_diff = props.globals.initNode("/instrumentation/pfd/track-hdg-diff", 0.0, "DOUBLE");
#var track_diff = props.globals.initNode("/instrumentation/pfd/track-hdg-diff", 0.0, "DOUBLE"); # returns incorrect value
var du1_test = props.globals.initNode("/instrumentation/du/du1-test", 0, "BOOL");
var du1_test_time = props.globals.initNode("/instrumentation/du/du1-test-time", 0.0, "DOUBLE");
var du1_offtime = props.globals.initNode("/instrumentation/du/du1-off-time", 0.0, "DOUBLE");
@ -200,6 +212,9 @@ var canvas_PFD_base = {
me.AI_horizon_hdg_trans = me["AI_heading"].createTransform();
me.AI_horizon_hdg_rot = me["AI_heading"].createTransform();
me.AI_fpv_trans = me["FPV"].createTransform();
me.AI_fpv_rot = me["FPV"].createTransform();
me.page = canvas_group;
return me;
@ -212,7 +227,7 @@ var canvas_PFD_base = {
"AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_box_flash","ALT_box","ALT_box_amber","ALT_scale","ALT_target","ALT_target_digit","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP",
"ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting","QNH_std","QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale",
"HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame","TRK_pointer","machError","ilsError","ils_code","ils_freq","dme_dist","dme_dist_legend","ILS_HDG_R","ILS_HDG_L",
"ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref","spdLimError"];
"ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref","FPV","spdLimError"];
},
updateDu1: func() {
var elapsedtime_act = elapsedtime.getValue();
@ -961,12 +976,15 @@ var canvas_PFD_base = {
me["HDG_target"].hide();
}
me["TRK_pointer"].setTranslation((math.clamp(track_diff.getValue(), -23.62, 23.62) / 10) * 98.5416, 0);
var heading_deg = heading.getValue();
track_diff = geo.normdeg180(track.getValue() - heading_deg);
me["TRK_pointer"].setTranslation(me.getTrackDiffPixels(track_diff),0);
split_ils = split("/", ils_data1.getValue());
if (ap_ils_mode.getValue() == 1 and size(split_ils) == 2) {
magnetic_hdg = ils_crs.getValue();
magnetic_hdg_dif = geo.normdeg180(magnetic_hdg - heading.getValue());
magnetic_hdg_dif = geo.normdeg180(magnetic_hdg - heading_deg);
if (magnetic_hdg_dif >= -23.62 and magnetic_hdg_dif <= 23.62) {
me["CRS_pointer"].setTranslation((magnetic_hdg_dif / 10) * 98.5416, 0);
me["ILS_HDG_R"].hide();
@ -1010,6 +1028,28 @@ var canvas_PFD_base = {
me.AI_horizon_hdg_rot.setRotation(-roll_cur * D2R, me["AI_center"].getCenter());
me["AI_heading"].update();
},
# Get Angle of Attack from ADR1 or, depending on Switching panel, ADR3
getAOAForPFD1: func() {
if (air_data_switch.getValue() != -1 and adr_1_switch.getValue() and !adr_1_fault.getValue()) return aoa_1.getValue();
if (air_data_switch.getValue() == -1 and adr_3_switch.getValue() and !adr_3_fault.getValue()) return aoa_3.getValue();
return nil;
},
# Get Angle of Attack from ADR2 or, depending on Switching panel, ADR3
getAOAForPFD2: func() {
if (air_data_switch.getValue() != 1 and adr_2_switch.getValue() and !adr_2_fault.getValue()) return aoa_2.getValue();
if (air_data_switch.getValue() == 1 and adr_3_switch.getValue() and !adr_3_fault.getValue()) return aoa_3.getValue();
return nil;
},
# Convert difference between magnetic heading and track measured in degrees to pixel for display on PFDs
# And set max and minimum values
getTrackDiffPixels: func(track_diff_deg) {
return ((math.clamp(track_diff_deg, -23.62, 23.62) / 10) * 98.5416);
},
};
var canvas_PFD_1 = {
@ -1087,6 +1127,26 @@ var canvas_PFD_1 = {
me["FD_pitch"].hide();
}
# If TRK FPA selected, display FPV on PFD1
if (ap_trk_sw.getValue() == 0 ) {
me["FPV"].hide();
} else {
var aoa = me.getAOAForPFD1();
if (aoa == nil or (systems.ADIRS.ADIRunits[0].aligned != 1 and att_switch.getValue() == 0) or (systems.ADIRS.ADIRunits[2].aligned != 1 and att_switch.getValue() == -1)){
me["FPV"].hide();
} else {
var roll_deg = roll.getValue() or 0;
AICenter = me["AI_center"].getCenter();
var track_x_translation = me.getTrackDiffPixels(track_diff);
me.AI_fpv_trans.setTranslation(track_x_translation, math.clamp(aoa, -20, 20) * 12.5);
me.AI_fpv_rot.setRotation(-roll_deg * D2R, AICenter);
me["FPV"].setRotation(roll_deg * D2R); # It shouldn't be rotated, only the axis should be
me["FPV"].show();
}
}
# ILS
if (ap_ils_mode.getValue() == 1) {
me["LOC_scale"].show();
@ -1842,6 +1902,25 @@ var canvas_PFD_2 = {
me["FD_pitch"].hide();
}
# If TRK FPA selected, display FPV on PFD2
if (ap_trk_sw.getValue() == 0 ) {
me["FPV"].hide();
} else {
var aoa = me.getAOAForPFD2();
if (aoa == nil or (systems.ADIRS.ADIRunits[1].aligned != 1 and att_switch.getValue() == 0) or (systems.ADIRS.ADIRunits[2].aligned != 1 and att_switch.getValue() == 1)) {
me["FPV"].hide();
} else {
var roll_deg = roll.getValue() or 0;
AICenter = me["AI_center"].getCenter();
var track_x_translation = me.getTrackDiffPixels(track_diff);
me.AI_fpv_trans.setTranslation(track_x_translation, math.clamp(aoa, -20, 20) * 12.5);
me.AI_fpv_rot.setRotation(-roll_deg * D2R, AICenter);
me["FPV"].setRotation(roll_deg * D2R); # It shouldn't be rotated, only the axis should be
me["FPV"].show();
}
}
# ILS
if (ap_ils_mode2.getValue() == 1) {
me["LOC_scale"].show();

View file

@ -8,7 +8,7 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="pfd.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
id="svg2"
version="1.1"
viewBox="0 0 1024 1024"
@ -39,15 +39,15 @@
showguides="true"
inkscape:current-layer="svg2"
inkscape:window-maximized="1"
inkscape:window-y="-8"
inkscape:window-x="-8"
inkscape:cy="15.365836"
inkscape:cx="507.05751"
inkscape:zoom="0.76179535"
inkscape:window-y="18"
inkscape:window-x="3840"
inkscape:cy="557.03495"
inkscape:cx="619.57094"
inkscape:zoom="0.53867065"
showgrid="true"
id="namedview371"
inkscape:window-height="705"
inkscape:window-width="1366"
inkscape:window-height="1062"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="1"
guidetolerance="10"
@ -926,9 +926,10 @@
<path
sodipodi:nodetypes="cccccccccccc"
inkscape:connector-curvature="0"
id="rect4760-1"
id="fixed_aircraft_outline_1"
d="m 279.39676,473.84829 20.67975,-1.3e-4 v 15.43882 0 l 1.8e-4,25.65723 h -15.4389 l -0.14628,-25.65723 v 0 l -81.2588,-5e-5 v -15.43891 l 76.16405,2.1e-4 z"
style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375005;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:label="fixed_aircraft_outline_1" />
</g>
<g
id="g4856"
@ -950,9 +951,10 @@
<path
style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375005;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 279.39676,473.84829 20.67975,-1.3e-4 v 15.43882 0 l 1.8e-4,25.65723 h -15.4389 l -0.14628,-25.65723 v 0 l -81.2588,-5e-5 v -15.43891 l 76.16405,2.1e-4 z"
id="path4854"
id="fixed_aircraft_outline_2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc" />
sodipodi:nodetypes="cccccccccccc"
inkscape:label="fixed_aircraft_outline_2" />
</g>
<path
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.19994998;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
@ -2394,17 +2396,12 @@
</g>
<text
id="ALT_tens"
y="289.66925"
y="317.73038"
x="898.703"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:0.75"
xml:space="preserve"
inkscape:label="#text913"
transform="scale(0.96366556,1.0377044)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30.8364px;line-height:95%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#0dc04b;fill-opacity:1;stroke-width:0.75"
y="289.66925"
x="898.703"
id="tspan911"
sodipodi:role="line" /><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30.8364px;line-height:87%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#0dc04b;fill-opacity:1;stroke-width:0.75"
y="317.73038"
x="898.703"
@ -6191,7 +6188,7 @@
id="spdLimError"
y="742.30011"
x="135.06754"
style="font-style:normal;font-weight:normal;font-size:30.00000191px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
style="font-style:normal;font-weight:normal;font-size:30px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42px;line-height:0.5;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#ff0000;fill-opacity:1;stroke-width:0.75"
y="742.30011"
@ -6203,4 +6200,37 @@
x="135.06754"
sodipodi:role="line"
id="tspan1860">LIM</tspan></text>
<g
id="FPV"
inkscape:label="#g4866"
transform="matrix(1.1096488,0,0,1.1096488,-44.149294,-44.038907)">
<rect
transform="rotate(90)"
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:4.32775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4864"
width="11.546137"
height="4.3256927"
x="471.68945"
y="-445.96243" />
<path
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:4.32569;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 461.34624,502.24844 c 0,9.69662 -7.86065,17.55727 -17.55727,17.55727 -9.69662,0 -17.55727,-7.86065 -17.55727,-17.55727 0,-9.69662 7.86065,-17.55727 17.55727,-17.55727 9.69662,0 17.55727,7.86065 17.55727,17.55727 z"
id="path4858"
inkscape:connector-curvature="0"
sodipodi:nodetypes="zzzzz" />
<rect
y="500.03757"
x="399.82227"
height="4.3256927"
width="25.012779"
id="rect4860"
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:6.36979;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:6.36977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4862"
width="25.012671"
height="4.3256927"
x="462.76437"
y="500.03757" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 337 KiB

After

Width:  |  Height:  |  Size: 339 KiB

View file

@ -15,7 +15,7 @@ var overflow = props.globals.initNode("/ECAM/warnings/overflow", 0, "BOOL");
var dc_ess = props.globals.getNode("/systems/electrical/bus/dc-ess", 1);
var lights = [props.globals.initNode("/ECAM/warnings/master-warning-light", 0, "BOOL"), props.globals.initNode("/ECAM/warnings/master-caution-light", 0, "BOOL")];
var aural = [props.globals.initNode("/sim/sound/warnings/crc", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/chime", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/cricket", 0, "BOOL")];
var aural = [props.globals.initNode("/sim/sound/warnings/crc", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/chime", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/cricket", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/retard", 0, "BOOL")];
var warningFlash = props.globals.initNode("/ECAM/warnings/master-warning-flash", 0, "BOOL");
var lineIndex = 0;
@ -58,7 +58,18 @@ var warningNodes = {
fac12Fault: props.globals.initNode("/ECAM/warnings/logic/fac-12-fault"),
fac1Fault: props.globals.initNode("/ECAM/warnings/logic/fac-1-fault"),
fac2Fault: props.globals.initNode("/ECAM/warnings/logic/fac-2-fault"),
stallWarn: props.globals.initNode("/ECAM/warnings/logic/stall/stall-warn-on"),
yawDamper12Fault: props.globals.initNode("/ECAM/warnings/logic/yaw-damper-12-fault"),
gearNotDown1: props.globals.initNode("/ECAM/warnings/fctl/gear-not-down-not-cancellable"),
gearNotDown2: props.globals.initNode("/ECAM/warnings/fctl/gear-not-down-cancellable"),
gearNotDownLocked: props.globals.initNode("/ECAM/warnings/fctl/gear-not-down-locked"),
gearNotDownLockedFlipflop: props.globals.initNode("/ECAM/warnings/fctl/gear-not-downlocked-output"),
blueGreen: props.globals.initNode("/ECAM/warnings/hyd/blue-green-failure"),
blueGreenFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-green-fuel-consumpt"),
blueYellow: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-failure"),
blueYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-fuel-consumpt"),
greenYellow: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-failure"),
greenYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-fuel-consumpt"),
},
Timers: {
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
@ -78,6 +89,7 @@ var warningNodes = {
eng2AiceNotClsd: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-open-output"),
eng1AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-1-closed-output"),
eng2AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-closed-output"),
LRElevFault: props.globals.initNode("/ECAM/warnings/fctl/lrElevFault-output"),
waiLhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-left"),
waiRhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-right"),
pack1Fault: props.globals.initNode("/ECAM/warnings/timer/pack-1-fault-2"),
@ -90,10 +102,19 @@ var warningNodes = {
navTerrFault: props.globals.initNode("/ECAM/warnings/timer/nav-gpws-terr-fault"),
},
Flipflops: {
apuGenFault: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault"),
apuGenFaultOnOff: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault-on-off"),
bleed1LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-1-low-temp-flipflop-output"),
bleed2LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-2-low-temp-flipflop-output"),
gen1Fault: props.globals.initNode("/ECAM/warnings/flipflop/gen-1-fault"),
gen2Fault: props.globals.initNode("/ECAM/warnings/flipflop/gen-2-fault"),
gen1FaultOnOff: props.globals.initNode("/ECAM/warnings/flipflop/gen-1-fault-on-off"),
gen2FaultOnOff: props.globals.initNode("/ECAM/warnings/flipflop/gen-2-fault-on-off"),
pack1Ovht: props.globals.initNode("/ECAM/warnings/flipflop/pack-1-ovht"),
pack2Ovht: props.globals.initNode("/ECAM/warnings/flipflop/pack-2-ovht"),
parkBrk: props.globals.initNode("/ECAM/warnings/config/park-brk/park-brk-output"),
eng1ThrLvrAbvIdle: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle"),
eng2ThrLvrAbvIdle: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle"),
},
};
@ -152,7 +173,7 @@ var warning = {
me.noRepeat = 1;
},
sound: func() {
if (me.aural > 2) { return; }
if (me.aural > 3) { return; }
if (me.active == 0 and me.wasActive == 1) {
aural[me.aural].setBoolValue(0);
me.wasActive = 0;
@ -166,7 +187,7 @@ var warning = {
aural[me.aural].setBoolValue(1);
}, 0.15);
} else {
aural[me.aural].setBoolValue(1);
aural[me.aural].setBoolValue(1);
}
me.noRepeat2 = 1;
},

File diff suppressed because it is too large Load diff

View file

@ -11,42 +11,33 @@
var warnings = std.Vector.new([
var stall = warning.new(msg: "", aural: 2),
var flap_not_zero = warning.new(msg: "F/CTL FLAP LVR NOT ZERO", colour: "r", aural: 0, light: 0),
var flap_not_zero = warning.new(msg: "F/CTL FLAP LVR NOT ZERO", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var overspeed = warning.new(msg: "OVER SPEED", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var overspeedVMO = warning.new(msg: "-VMO/MMO.......350 /.82", colour: "r"),
var overspeedGear = warning.new(msg: "-VLE...........280 /.67", colour: "r"),
var overspeedFlap = warning.new(msg: "-VFE................XXX", colour: "r"),
var overspeed = warning.new(msg: "OVER SPEED", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var overspeedVMO = warning.new(msg: "-VMO/MMO.......350 /.82", colour: "r"),
var overspeedGear = warning.new(msg: "-VLE...........280 /.67", colour: "r"),
var overspeedFlap = warning.new(msg: "-VFE................XXX", colour: "r"),
# DUAL ENG FAIL
var dualFail = warning.new(msg: "ENG DUAL FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var dualFailModeSel = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
var dualFailLevers = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
var dualFailRelightSPD = warning.new(msg: " OPTIMUM RELIGHT SPD.280", colour: "c"),
var dualFailRelightSPDCFM = warning.new(msg: " OPTIMUM RELIGHT SPD.300", colour: "c"),
var dualFailElec = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var dualFailRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c"),
var dualFailFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var dualFailRelight = warning.new(msg: "•IF NO RELIGHT AFTER 30S", colour: "w", isMainMsg: 1),
var dualFailMasters = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c"),
var dualFailSuccess = warning.new(msg: " •IF UNSUCCESSFUL : ", colour: "w", isMainMsg: 1),
var dualFailAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
var dualFailAPUwing = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
var dualFailAPUbleed = warning.new(msg: " -APU BLEED...........ON", colour: "c"),
var dualFailMastersAPU = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c"),
var dualFailSPDGD = warning.new(msg: " OPTIMUM SPEED.....G DOT", colour: "c"),
var dualFailAPPR = warning.new(msg: " •EARLY IN APPR : ", colour: "w", isMainMsg: 1),
var dualFailcabin = warning.new(msg: " -CAB SECURE.......ORDER", colour: "c"),
var dualFailrudd = warning.new(msg: " -USE RUDDER WITH CARE ", colour: "c"),
var dualFailflap = warning.new(msg: " -FOR LDG.....USE FLAP 3", colour: "c"),
var dualFail5000 = warning.new(msg: " •AT 5000 FT AGL : ", colour: "w", isMainMsg: 1),
var dualFailgear = warning.new(msg: " -L/G.........GRVTY EXTN", colour: "c"),
var dualFailfinalspeed = warning.new(msg: " TARGET SPEED.....150 KT", colour: "c"),
var dualFailtouch = warning.new(msg: " •AT TOUCH DOWN : ", colour: "w", isMainMsg: 1),
var dualFailmasteroff = warning.new(msg: " -ENG MASTERS........OFF", colour: "c"),
var dualFailapuoff = warning.new(msg: " -APU MASTER SW......OFF", colour: "c"),
var dualFailevac = warning.new(msg: " -EVAC..........INITIATE", colour: "c"),
var dualFailbatt = warning.new(msg: " -BAT 1+2............OFF", colour: "c"),
var allEngFail = warning.new(msg: "ENG ALL ENGINES FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var allEngFailElec = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var allEngFailSPD1 = warning.new(msg: " OPT RELIGHT SPD.260/.77", colour: "c"),
var allEngFailSPD2 = warning.new(msg: " OPT RELIGHT SPD.270/.77", colour: "c"),
var allEngFailSPD3 = warning.new(msg: " OPT RELIGHT SPD.280/.77", colour: "c"),
var allEngFailSPD4 = warning.new(msg: " OPT RELIGHT SPD.300/.77", colour: "c"),
var allEngFailAPU = warning.new(msg: " -APU..............START", colour: "c"),
var allEngFailLevers = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
var allEngFailFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var allEngFailGlide = warning.new(msg: " GLDG DIST: 2NM/1000FT", colour: "c"),
var allEngFailDiversion = warning.new(msg: " -DIVERSION.....INITIATE", colour: "c"),
var allEngFailProc = warning.new(msg: " -ALL ENG FAIL PROC.APPLY", colour: "c"),
# ENG 1 THR LEVER ABV IDLE
var eng1ThrLvrAbvIdle = warning.new(msg: "ENG 1 THR LEVER ABV IDLE", colour: "r", aural: 3, light: 0, isMainMsg: 1),
var eng1ThrLvrAbvIdle2 = warning.new(msg: " -THR LEVER 1.......IDLE", colour: "c"),
# ENG 2 THR LEVER ABV IDLE
var eng2ThrLvrAbvIdle = warning.new(msg: "ENG 2 THR LEVER ABV IDLE", colour: "r", aural: 3, light: 0, isMainMsg: 1),
var eng2ThrLvrAbvIdle2 = warning.new(msg: " -THR LEVER 2.......IDLE", colour: "c"),
# ENG 1 FIRE (flight)
var eng1Fire = warning.new(msg: "ENG 1 FIRE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
@ -63,17 +54,13 @@ var warnings = std.Vector.new([
var eng1FireGnlever = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
var eng1FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w", isMainMsg: 1),
var eng1FireGnparkbrk = warning.new(msg: " -PARKING BRK.........ON", colour: "c"),
var eng1FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
var eng1FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
var eng1FireGnmaster = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
var eng1FireGnPB = warning.new(msg: " -ENG 1 FIRE P/B....PUSH", colour: "c"),
var eng1FireGnAgent1 = warning.new(msg: " -AGENT 1..........DISCH", colour: "c"),
var eng1FireGnAgent2 = warning.new(msg: " -AGENT 2..........DISCH", colour: "c"),
var eng1FireGnmaster2 = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
var eng1FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
var eng1FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
var eng1FireGnevac = warning.new(msg: " •IF EVAC RQRD:", colour: "w", isMainMsg: 1),
var eng1FireGnevacSw = warning.new(msg: " -EVAC COMMAND........ON", colour: "c"),
var eng1FireGnevacApu = warning.new(msg: " -APU MASTER SW......OFF", colour: "c"),
var eng1FireGnevacBat = warning.new(msg: " -BAT 1+2............OFF", colour: "c"),
var eng1FireGnEvac = warning.new(msg: " -EMER EVAC PROC...APPLY", colour: "c"),
# ENG 2 FIRE (flight)
var eng2Fire = warning.new(msg: "ENG 2 FIRE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
@ -90,17 +77,13 @@ var warnings = std.Vector.new([
var eng2FireGnlever = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
var eng2FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w", isMainMsg: 1),
var eng2FireGnparkbrk = warning.new(msg: " -PARKING BRK.........ON", colour: "c"),
var eng2FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
var eng2FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
var eng2FireGnmaster = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
var eng2FireGnPB = warning.new(msg: " -ENG 2 FIRE P/B....PUSH", colour: "c"),
var eng2FireGnAgent1 = warning.new(msg: " -AGENT 1..........DISCH", colour: "c"),
var eng2FireGnAgent2 = warning.new(msg: " -AGENT 2..........DISCH", colour: "c"),
var eng2FireGnmaster2 = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
var eng2FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
var eng2FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
var eng2FireGnevac = warning.new(msg: " •IF EVAC RQRD:", colour: "w", isMainMsg: 1),
var eng2FireGnevacSw = warning.new(msg: " -EVAC COMMAND........ON", colour: "c"),
var eng2FireGnevacApu = warning.new(msg: " -APU MASTER SW......OFF", colour: "c"),
var eng2FireGnevacBat = warning.new(msg: " -BAT 1+2............OFF", colour: "c"),
var eng2FireGnEvac = warning.new(msg: " -EMER EVAC PROC...APPLY", colour: "c"),
# APU FIRE
var apuFire = warning.new(msg: "APU FIRE ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "apu"),
@ -122,45 +105,94 @@ var warnings = std.Vector.new([
var rud_trim_config_1 = warning.new(msg: " NOT IN T.O. RANGE", colour: "r", aural: 0, light: 0),
var park_brk_config = warning.new(msg: "CONFIG PARK BRK ON", colour: "r", aural: 0, light: 0),
# FCTL L+R ELEV FAULT
var lrElevFault = warning.new(msg: "F/CTL L+R ELEV FAULT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var lrElevFaultSpeed = warning.new(msg: " MAX SPEED.......320/.77", colour: "c"),
var lrElevFaultTrim = warning.new(msg: " -MAN PITCH TRIM.....USE", colour: "c"),
var lrElevFaultSpdBrk = warning.new(msg: " SPD BRK......DO NOT USE", colour: "c"),
# Gear not down
var gearNotDown = warning.new(msg: "L/G GEAR NOT DOWN", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var gearNotDownLocked = warning.new(msg: "L/G GEAR NOT DOWNLOCKED", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var gearNotDownLockedRec = warning.new(msg: " -L/G LEVER......RECYCLE", colour: "c"),
var gearNotDownLockedWork = warning.new(msg: " •IF UNSUCCESSFUL:", colour: "c"),
var gearNotDownLocked120 = warning.new(msg: " AFTER 120S:", colour: "c"),
var gearNotDownLockedGrav = warning.new(msg: " -L/G.........GRVTY EXTN", colour: "c"),
# Autopilot off involuntary
var ap_offw = warning.new(msg: "AUTO FLT AP OFF", colour: "r", light: 0, isMainMsg: 1),
# Cargo smoke
var cargoSmokeFwd = warning.new(msg: "SMOKE FWD CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var cargoSmokeFwdAgent = warning.new(msg: "-AGENT............DISCH", colour: "c"),
var cargoSmokeFwdAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
var cargoSmokeAft = warning.new(msg: "SMOKE AFT CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var cargoSmokeAftAgent = warning.new(msg: "-AGENT............DISCH", colour: "c"),
var cargoSmokeAftAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
# ESS Bus on Bat
var essBusOnBat = warning.new(msg: "ELEC ESS BUSES ON BAT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var essBusOnBatLGUplock = warning.new(msg: " •WHEN L/G UPLOCKED :", colour: "w"),
var essBusOnBatManOn = warning.new(msg: "-EMER ELEC PWR...MAN ON", colour: "c"),
var essBusOnBatRetract = warning.new(msg: " •IF L/G RETRACT FAULT:", colour: "w"),
var essBusOnBatMinSpeed = warning.new(msg: "MIN RAT SPD......180 KT", colour: "c"),
var essBusOnBatLGCB = warning.new(msg: "-LGCIU1 C/B (C09)..PULL", colour: "c"),
var essBusOnBatManOn2 = warning.new(msg: "-EMER ELEC PWR...MAN ON", colour: "c"),
var essBusOnBatLGUplock = warning.new(msg: " •WHEN L/G UPLOCKED :", colour: "w"),
var essBusOnBatManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var essBusOnBatRetract = warning.new(msg: " •IF L/G RETRACT FAULT:", colour: "w"),
var essBusOnBatMinSpeed = warning.new(msg: " MIN RAT SPD......180 KT", colour: "c"),
var essBusOnBatLGCB = warning.new(msg: " -LGCIU1 C/B (C09)..PULL", colour: "c"),
var essBusOnBatManOn2 = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
# Emer Config
var emerconfig = warning.new(msg: "ELEC EMER CONFIG", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var emerconfigMinRat = warning.new(msg: "MIN RAT SPD......140 KT", colour: "c"),
var emerconfigGen = warning.new(msg: "-GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var emerconfigBusTie = warning.new(msg: "-BUS TIE............OFF", colour: "c"),
var emerconfigGen3 = warning.new(msg: "-GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigManOn = warning.new(msg: "-EMER ELEC PWR...MAN ON", colour: "c"),
var emerconfigEngMode = warning.new(msg: "-ENG MODE SEL.......IGN", colour: "c"),
var emerconfigRadio = warning.new(msg: "-VHF1/ATC1..........USE", colour: "c"),
var emerconfigIcing = warning.new(msg: "AVOID ICING CONDITIONS", colour: "c"),
var emerconfigFuelG = warning.new(msg: "FUEL GRVTY FEED", colour: "c"),
var emerconfigFuelG2 = warning.new(msg: "PROC:GRVTY FUEL FEEDING", colour: "c"),
var emerconfigFAC = warning.new(msg: "-FAC 1......OFF THEN ON", colour: "c"),
var emerconfigBusTie2 = warning.new(msg: "-BUS TIE...........AUTO", colour: "c"),
var emerconfigAPU = warning.new(msg: "-APU (IF AVAIL)...START", colour: "c"),
var emerconfigVent = warning.new(msg: "-BLOWER + EXTRACT..OVRD", colour: "c"),
var emerconfigMinRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var emerconfigGen = warning.new(msg: " -GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var emerconfigBusTie = warning.new(msg: " -BUS TIE............OFF", colour: "c"),
var emerconfigGen3 = warning.new(msg: " -GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var emerconfigEngMode = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
var emerconfigRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c"),
var emerconfigIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
var emerconfigFuelG = warning.new(msg: " FUEL GRVTY FEED", colour: "c"),
var emerconfigFuelG2 = warning.new(msg: " PROC:GRVTY FUEL FEEDING", colour: "c"),
var emerconfigFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var emerconfigBusTie2 = warning.new(msg: " -BUS TIE...........AUTO", colour: "c"),
var emerconfigAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
var emerconfigVent = warning.new(msg: " -BLOWER + EXTRACT..OVRD", colour: "c"),
var emerconfigAltn = warning.new(msg: "F/CTL ALTN LAW", colour: "a"),
var emerconfigProt = warning.new(msg: " (PROT LOST)", colour: "a"),
var emerconfigMaxSpeed = warning.new(msg: " MAX SPEED........320 KT", colour: "c"),
# B + Y LO PR
var hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydBYloPrRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var hydBYloPrYElec = warning.new(msg: " -YELLOW ELEC PUMP....ON", colour: "c"),
var hydBYloPrRatOn = warning.new(msg: " -RAT.............MAN ON", colour: "c"),
var hydBYloPrBElec = warning.new(msg: " -BLUE ELEC PUMP.....OFF", colour: "c"),
var hydBYloPrYEng = warning.new(msg: " -YELLOW ENG 2 PUMP..OFF", colour: "c"),
var hydBYloPrMaxSpd = warning.new(msg: " MAX SPEED.......320/.77", colour: "c"),
var hydBYloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydBYloPrGaPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
var hydBYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydBYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# G + B LO PR
var hydGBloPr = warning.new(msg: "HYD G+B SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydGBloPrRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var hydGBloPrRatOn = warning.new(msg: " -RAT.............MAN ON", colour: "c"),
var hydGBloPrBElec = warning.new(msg: " -BLUE ELEC PUMP.....OFF", colour: "c"),
var hydGBloPrGEng = warning.new(msg: " -GREEN ENG 1 PUMP...OFF", colour: "c"),
var hydGBloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydGBloPrGaPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
var hydGBloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydGBloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# G + Y LO PR
var hydGYloPr = warning.new(msg: "HYD G+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydGYloPrPtu = warning.new(msg: " -PTU................OFF", colour: "c"),
var hydGYloPrGEng = warning.new(msg: " -GREEN ENG 1 PUMP...OFF", colour: "c"),
var hydGYloPrYEng = warning.new(msg: " -YELLOW ENG 2 PUMP..OFF", colour: "c"),
var hydGYloPrYElec = warning.new(msg: " -YELLOW ELEC PUMP....ON", colour: "c"),
var hydGYloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydGYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydGYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# DC EMER CONFIG
var dcEmerconfig = warning.new(msg: "ELEC DC EMER CONFIG", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var dcEmerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
@ -212,9 +244,27 @@ var warnings = std.Vector.new([
var dcBusEssShedIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
# AC ESS BUS SHED
var acBusEssShed = warning.new(msg: "ELEC DC ESS BUS SHED", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var acBusEssShed = warning.new(msg: "ELEC AC ESS BUS SHED", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var acBusEssShedAtc = warning.new(msg: " -ATC..............SYS 2", colour: "c"),
# GEN 1 FAULT
var gen1fault = warning.new(msg: "ELEC GEN 1 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var gen1faultGen = warning.new(msg: "-GEN 1......OFF THEN ON", colour: "c"),
var gen1faultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var gen1faultGen3 = warning.new(msg: "-GEN 1..............OFF", colour: "c"),
# GEN 2 FAULT
var gen2fault = warning.new(msg: "ELEC GEN 2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var gen2faultGen = warning.new(msg: "-GEN 2......OFF THEN ON", colour: "c"),
var gen2faultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var gen2faultGen3 = warning.new(msg: "-GEN 2..............OFF", colour: "c"),
# APU GEN FAULT
var apuGenfault = warning.new(msg: "ELEC APU GEN FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var apuGenfaultGen = warning.new(msg: "-APU GEN....OFF THEN ON", colour: "c"),
var apuGenfaultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var apuGenfaultGen3 = warning.new(msg: "-APU GEN............OFF", colour: "c"),
# Autothrust
var athr_offw = warning.new(msg: "AUTO FLT A/THR OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var athr_offw_1 = warning.new(msg: "-THR LEVERS........MOVE", colour: "c"),

View file

@ -150,3 +150,9 @@ var toggleSTD = func {
pts.Instrumentation.Altimeter.std.setBoolValue(1);
}
}
var pushbuttonSound = props.globals.getNode("/sim/sounde/pushbutton");
var pushbutton = func {
pushbuttonSound.setValue(1);
settimer(func {pushbuttonSound.setValue(0);},0.20);
}

View file

@ -7,7 +7,6 @@ print("------------------------------------------------");
print("Copyright (c) 2016-2020 Josh Davidson (Octal450)");
print("------------------------------------------------");
setprop("/sim/menubar/default/menu[0]/item[0]/enabled", 0);
setprop("/sim/menubar/default/menu[2]/item[0]/enabled", 0);
setprop("/sim/menubar/default/menu[2]/item[2]/enabled", 0);
@ -463,6 +462,23 @@ setlistener("/controls/flight/elevator-trim", func {
}
}, 0, 0);
# For the cockpit rotation and anywhere else you want to use it
var cmdDegCalc = 0;
var slewPitchWheel = func(d) {
cmdDegCalc = math.round(pts.Fdm.JSBsim.Hydraulics.ElevatorTrim.cmdDeg.getValue(), 0.1);
if (d > 0) { # DN
if (cmdDegCalc < 4) {
cmdDegCalc = (cmdDegCalc + 0.1) / 13.5; # Add and normalize, NOT 4! 13.5 = 1 on either polarity
pts.Controls.Flight.elevatorTrim.setValue(cmdDegCalc);
}
} else { # UP
if (cmdDegCalc > -13.5) {
cmdDegCalc = (cmdDegCalc - 0.1) / 13.5; # Subtract and normalize
pts.Controls.Flight.elevatorTrim.setValue(cmdDegCalc);
}
}
}
##########
# Lights #
##########

View file

@ -26,6 +26,7 @@ var Controls = {
firePb: [props.globals.getNode("/controls/engines/engine[0]/fire-btn"), props.globals.getNode("/controls/engines/engine[1]/fire-btn")],
throttle: [props.globals.getNode("/controls/engines/engine[0]/throttle"), props.globals.getNode("/controls/engines/engine[1]/throttle")],
throttleFdm: [props.globals.getNode("/controls/engines/engine[0]/throttle-fdm"), props.globals.getNode("/controls/engines/engine[1]/throttle-fdm")],
throttleLever: [props.globals.getNode("/controls/engines/engine[0]/throttle-lever"), props.globals.getNode("/controls/engines/engine[1]/throttle-lever")],
throttleOutput: [props.globals.getNode("/controls/engines/engine[0]/throttle-output"), props.globals.getNode("/controls/engines/engine[1]/throttle-output")],
throttlePos: [props.globals.getNode("/controls/engines/engine[0]/throttle-pos"), props.globals.getNode("/controls/engines/engine[1]/throttle-pos")],
throttleRev: [props.globals.getNode("/controls/engines/engine[0]/throttle-rev"), props.globals.getNode("/controls/engines/engine[1]/throttle-rev")],
@ -39,6 +40,7 @@ var Controls = {
elevatorTrim: props.globals.getNode("/controls/flight/elevator-trim"),
flaps: props.globals.getNode("/controls/flight/flaps"),
flapsTemp: 0,
flapsInput: props.globals.getNode("/controls/flight/flaps-input"),
flapsPos: props.globals.getNode("/controls/flight/flaps-pos"),
speedbrake: props.globals.getNode("/controls/flight/speedbrake"),
speedbrakeArm: props.globals.getNode("/controls/flight/speedbrake-arm"),
@ -96,8 +98,11 @@ var Fdm = {
elevator: props.globals.getNode("/fdm/jsbsim/fbw/elevator-sidestick"),
},
Hydraulics: {
ElevatorTrim: {
cmdDeg: props.globals.getNode("/fdm/jsbsim/hydraulics/elevator-trim/cmd-deg"),
},
Rudder: {
trimDeg: props.globals.getNode("fdm/jsbsim/hydraulics/rudder/trim-deg"),
trimDeg: props.globals.getNode("/fdm/jsbsim/hydraulics/rudder/trim-deg"),
},
},
Inertia: {

View file

@ -355,6 +355,8 @@ var lskbutton = func(btn, i) {
pageNode[i].setValue("DATAMODE");
} else if (page == "RECEIVEDMSGS") {
canvas_mcdu.myReceivedMessages[i].leftKey(2);
} else if (page == "DATAMODE") {
atsu.ATIS.server = 0;
} else {
mcdu_message(i, "NOT ALLOWED");
}
@ -408,6 +410,8 @@ var lskbutton = func(btn, i) {
pageNode[i].setValue("VOICEDIRECTORY");
} else if (page == "RECEIVEDMSGS") {
canvas_mcdu.myReceivedMessages[i].leftKey(3);
} else if (page == "DATAMODE") {
atsu.ATIS.server = 1;
} else {
mcdu_message(i, "NOT ALLOWED");
}
@ -693,6 +697,8 @@ var rskbutton = func(btn, i) {
pageNode[i].setValue("COMPANYCALL");
} else if (page == "AOCMENU") {
pageNode[i].setValue("WEATHERREQ");
} else if (page == "DATAMODE") {
atsu.AOC.server = 0;
} else {
mcdu_message(i, "NOT ALLOWED");
}
@ -730,6 +736,8 @@ var rskbutton = func(btn, i) {
canvas_mcdu.myReceivedMessages[i] = nil;
canvas_mcdu.myReceivedMessages[i] = receivedMessagesPage.new(i);
pageNode[i].setValue("RECEIVEDMSGS");
} else if (page == "DATAMODE") {
atsu.AOC.server = 1;
} else {
mcdu_message(i, "NOT ALLOWED");
}

94
Nasal/QRH/QRH.nas Normal file
View file

@ -0,0 +1,94 @@
# A3XX Canvas QRH
# Jonathan Redpath (legoboyvdlp)
# Copyright (c) 2020 Jonathan Redpath (legoboyvdlp)
var QRHpageNo = props.globals.initNode("/canvas/canvasQRH/page-number", 1, "INT");
var _pageNo = 1;
var _MAXPAGE = 3;
var width = 550;
var height = 625;
var QRH = nil;
var prevPage = func() {
_pageNo = QRHpageNo.getValue();
if (_pageNo == 1) { return; }
QRHpageNo.setValue(_pageNo - 1);
};
var nextPage = func() {
_pageNo = QRHpageNo.getValue();
if (_pageNo == _MAXPAGE) { return; }
QRHpageNo.setValue(_pageNo + 1);
};
var createCanvasQRH = func() {
var window = canvas.Window.new([width,height],"dialog")
.set("title","A320 QRH");
var qrhCanvas = window.createCanvas().set("background", canvas.style.getColor("bg_color"));
var root = qrhCanvas.createGroup();
var myHBox = canvas.HBoxLayout.new();
qrhCanvas.setLayout(myHBox);
QRH = canvas.gui.widgets.Label.new(root, canvas.style, {} )
.setImage("Aircraft/A320-family/Models/FlightDeck/QRH/" ~ QRHpageNo.getValue() ~ ".jpeg")
.move(0,-25)
.setSize(400,625);
myHBox.addItem(QRH);
var verticalGroup = canvas.VBoxLayout.new();
myHBox.addItem(verticalGroup);
var buttonInc = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Size Up")
.setFixedSize(75,25);
var buttonReset = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Reset Size")
.setFixedSize(75,25);
var buttonDec = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Size Down")
.setFixedSize(75,25);
var buttonPrev = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Prev Page")
.setFixedSize(75,25);
var buttonNext = canvas.gui.widgets.Button.new(root, canvas.style, {})
.setText("Next Page")
.setFixedSize(75,25);
buttonInc.listen("clicked", func {
width = width * 1.10;
height = height * 1.10;
window.setSize(width, height);
});
buttonReset.listen("clicked", func {
width = 550;
height = 650;
window.setSize(width, height);
});
buttonDec.listen("clicked", func {
width = width * 0.91;
height = height * 0.91;
window.setSize(width, height);
});
buttonPrev.listen("clicked", func {
prevPage();
QRH.setImage("Aircraft/A320-family/Models/FlightDeck/QRH/" ~ QRHpageNo.getValue() ~ ".jpeg");
});
buttonNext.listen("clicked", func {
nextPage();
QRH.setImage("Aircraft/A320-family/Models/FlightDeck/QRH/" ~ QRHpageNo.getValue() ~ ".jpeg");
});
verticalGroup.addItem(buttonInc);
verticalGroup.addItem(buttonReset);
verticalGroup.addItem(buttonDec);
verticalGroup.addItem(buttonPrev);
verticalGroup.addItem(buttonNext);
}

View file

@ -2,6 +2,10 @@
# Jonathan Redpath
# Copyright (c) 2020 Josh Davidson (Octal450)
var defaultServer = "https://www.aviationweather.gov/adds/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&mostRecent=true&hoursBeforeNow=12&stationString=";
var serverString = "";
var result = nil;
var ATSU = {
working: 0,
loop: func() {
@ -93,13 +97,14 @@ var CompanyCall = {
var AOC = {
station: nil,
selectedType: "HOURLY WX", # 0 = METAR 1 = TAF
selectedType: "HOURLY WX",
lastMETAR: nil,
lastTAF: nil,
sent: 0,
sentTime: nil,
received: 0,
receivedTime: nil,
server: 0, # 0 = noaa, 1 = vatsim
newStation: func(airport) {
if (size(airport) == 3 or size(airport) == 4) {
if (size(findAirportsByICAO(airport)) == 0) {
@ -152,8 +157,19 @@ var AOC = {
me.sent = 0;
return 1;
}
http.load("https://www.aviationweather.gov/adds/dataserver_current/httpparam?dataSource=metars&requestType=retrieve&format=xml&mostRecent=true&hoursBeforeNow=12&stationString=" ~ airport)
.fail(func print("Download failed!"))
serverString = "";
if (me.server == 0) {
serverString = defaultServer;
} elsif (me.server == 1) {
serverString = "https://api.flybywiresim.com/metar?source=vatsim&icao=";
} else { # fall back to NOAA silently
serverString = defaultServer;
}
http.load(serverString ~ airport)
.fail(func(r) print("Download failed; try changing your server to NOAA"))
.done(func(r) me.processMETAR(r, i));
return 0;
},
@ -201,4 +217,89 @@ var AOC = {
mcdu.ReceivedMessagesDatabase.addMessage(message);
}, math.max(rand()*6, 2.25));
},
};
var ATIS = {
station: nil,
lastATIS: nil,
sent: 0,
sentTime: nil,
received: 0,
receivedTime: nil,
server: 0,
newStation: func(airport) {
if (size(airport) == 3 or size(airport) == 4) {
if (size(findAirportsByICAO(airport)) == 0) {
return 2;
} else {
me.station = airport;
return 0;
}
} else {
return 1;
}
},
sendReq: func(i) {
if (me.station == nil or (me.sent and !me.received)) {
return 1;
}
me.sent = 1;
me.received = 0;
var sentTime = left(getprop("/sim/time/gmt-string"), 5);
me.sentTime = split(":", sentTime)[0] ~ "." ~ split(":", sentTime)[1] ~ "Z";
result = me.fetchATIS(atsu.ATIS.station, i);
if (result == 0) {
return 0;
} elsif (result == 1) {
return 3;
} elsif (result == 2) {
return 4;
}
},
fetchATIS: func(airport, i) {
if (!ATSU.working) {
me.sent = 0;
return 2;
}
if (ecam.vhf3_voice.active) {
me.sent = 0;
return 1;
}
serverString = "";
if (me.server == 0) {
serverString = "https://api.flybywiresim.com/atis?source=faa&icao=";
} elsif (me.server == 1) {
serverString = "https://api.flybywiresim.com/atis?source=vatsim&icao=";
} else { # fall back to FAA silently
serverString = "https://api.flybywiresim.com/atis?source=faa&icao=";
}
http.load(serverString ~ airport)
.fail(func(r) return 3)
.done(func(r) me.processATIS(r, i));
return 0;
},
processATIS: func(r, i) {
var raw = r.response;
if (find("combined", raw)) {
raw = split('{"combined":"', raw)[1];
raw = split('"}', raw)[0];
} else {
raw = split('{"arr":"', raw)[1];
raw = split('","dep":', raw)[0];
}
me.lastATIS = raw;
settimer(func() {
me.received = 1;
mcdu.mcdu_message(i, "WX UPLINK");
var receivedTime = left(getprop("/sim/time/gmt-string"), 5);
me.receivedTime = split(":", receivedTime)[0] ~ "." ~ split(":", receivedTime)[1] ~ "Z";
var message = mcdu.ACARSMessage.new(me.receivedTime, me.lastATIS);
mcdu.ReceivedMessagesDatabase.addMessage(message);
}, math.max(rand()*10, 2.25));
},
};

View file

@ -25,7 +25,7 @@ var eng_init = func {
# Trigger Startups and Stops
setlistener("/controls/engines/engine[0]/cutoff-switch", func {
if (getprop("/controls/engines/engine[0]/cutoff-switch") == 0) {
if (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
if (getprop("/systems/acconfig/autoconfig-running") == 1) {
fast_start_one();
} else {
@ -35,7 +35,7 @@ setlistener("/controls/engines/engine[0]/cutoff-switch", func {
eng_one_man_start.start();
}
}
} else if (getprop("/controls/engines/engine[0]/cutoff-switch") == 1) {
} else if (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 1) {
cutoff_one();
}
});
@ -75,7 +75,7 @@ setlistener("/controls/engines/engine[0]/man-start", func {
var start_one_mancheck = func {
if (getprop("/controls/engines/engine[0]/man-start") == 1) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (getprop("/controls/engines/engine[0]/cutoff-switch") == 1)) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 1)) {
setprop("/systems/pneumatics/valves/starter-valve-1", 1);
settimer(start_one_mancheck_b, 0.5);
}
@ -96,20 +96,20 @@ var start_one_mancheck_b = func {
}
var start_one_check = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and getprop("/controls/engines/engine[0]/cutoff-switch") == 0) {
if (getprop("/controls/engines/engine-start-switch") == 2 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
setprop("/systems/pneumatics/valves/starter-valve-1", 1);
settimer(start_one_check_b, 0.5);
}
}
var start_one_check_b = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine1.getValue() and !getprop("/controls/engines/engine[0]/cutoff-switch")) {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine1.getValue() and !pts.Controls.Engines.Engine.cutoffSw[0].getValue()) {
auto_start_one();
}
}
setlistener("/controls/engines/engine[1]/cutoff-switch", func {
if (getprop("/controls/engines/engine[1]/cutoff-switch") == 0) {
if (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
if (getprop("/systems/acconfig/autoconfig-running") == 1) {
fast_start_two();
} else {
@ -119,7 +119,7 @@ setlistener("/controls/engines/engine[1]/cutoff-switch", func {
eng_two_man_start.start();
}
}
} else if (getprop("/controls/engines/engine[1]/cutoff-switch") == 1) {
} else if (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 1) {
cutoff_two();
}
});
@ -158,7 +158,7 @@ setlistener("/controls/engines/engine[1]/man-start", func {
var start_two_mancheck = func {
if (getprop("/controls/engines/engine[1]/man-start") == 1) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (getprop("/controls/engines/engine[1]/cutoff-switch") == 1)) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 1)) {
setprop("/systems/pneumatics/valves/starter-valve-2", 1);
settimer(start_two_mancheck_b, 0.5);
}
@ -179,14 +179,14 @@ var start_two_mancheck_b = func {
}
var start_two_check = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and getprop("/controls/engines/engine[1]/cutoff-switch") == 0) {
if (getprop("/controls/engines/engine-start-switch") == 2 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
setprop("/systems/pneumatics/valves/starter-valve-2", 1);
settimer(start_two_check_b, 0.5);
}
}
var start_two_check_b = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine2.getValue() >= 25 and !getprop("/controls/engines/engine[1]/cutoff-switch")) {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine2.getValue() >= 25 and !pts.Controls.Engines.Engine.cutoffSw[1].getValue()) {
auto_start_two();
}
}

View file

@ -25,7 +25,7 @@ var eng_init = func {
# Trigger Startups and Stops
setlistener("/controls/engines/engine[0]/cutoff-switch", func {
if (getprop("/controls/engines/engine[0]/cutoff-switch") == 0) {
if (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
if (getprop("/systems/acconfig/autoconfig-running") == 1) {
fast_start_one();
} else {
@ -35,7 +35,7 @@ setlistener("/controls/engines/engine[0]/cutoff-switch", func {
eng_one_man_start.start();
}
}
} else if (getprop("/controls/engines/engine[0]/cutoff-switch") == 1) {
} else if (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 1) {
cutoff_one();
}
});
@ -75,7 +75,7 @@ setlistener("/controls/engines/engine[0]/man-start", func {
var start_one_mancheck = func {
if (getprop("/controls/engines/engine[0]/man-start") == 1) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (getprop("/controls/engines/engine[0]/cutoff-switch") == 1)) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 1)) {
setprop("/systems/pneumatics/valves/starter-valve-1", 1);
settimer(start_one_mancheck_b, 0.5);
}
@ -96,20 +96,20 @@ var start_one_mancheck_b = func {
}
var start_one_check = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and getprop("/controls/engines/engine[0]/cutoff-switch") == 0) {
if (getprop("/controls/engines/engine-start-switch") == 2 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
setprop("/systems/pneumatics/valves/starter-valve-1", 1);
settimer(start_one_check_b, 0.5);
}
}
var start_one_check_b = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine1.getValue() and !getprop("/controls/engines/engine[0]/cutoff-switch")) {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine1.getValue() and !pts.Controls.Engines.Engine.cutoffSw[0].getValue()) {
auto_start_one();
}
}
setlistener("/controls/engines/engine[1]/cutoff-switch", func {
if (getprop("/controls/engines/engine[1]/cutoff-switch") == 0) {
if (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
if (getprop("/systems/acconfig/autoconfig-running") == 1) {
fast_start_two();
} else {
@ -119,7 +119,7 @@ setlistener("/controls/engines/engine[1]/cutoff-switch", func {
eng_two_man_start.start();
}
}
} else if (getprop("/controls/engines/engine[1]/cutoff-switch") == 1) {
} else if (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 1) {
cutoff_two();
}
});
@ -158,7 +158,7 @@ setlistener("/controls/engines/engine[1]/man-start", func {
var start_two_mancheck = func {
if (getprop("/controls/engines/engine[1]/man-start") == 1) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (getprop("/controls/engines/engine[1]/cutoff-switch") == 1)) {
if (getprop("/controls/engines/engine-start-switch") == 2 and (pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 1)) {
setprop("/systems/pneumatics/valves/starter-valve-2", 1);
settimer(start_two_mancheck_b, 0.5);
}
@ -179,14 +179,14 @@ var start_two_mancheck_b = func {
}
var start_two_check = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and getprop("/controls/engines/engine[1]/cutoff-switch") == 0) {
if (getprop("/controls/engines/engine-start-switch") == 2 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
setprop("/systems/pneumatics/valves/starter-valve-2", 1);
settimer(start_two_check_b, 0.5);
}
}
var start_two_check_b = func {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine2.getValue() >= 25 and !getprop("/controls/engines/engine[1]/cutoff-switch")) {
if (getprop("/controls/engines/engine-start-switch") == 2 and systems.PNEU.Psi.engine2.getValue() >= 25 and !pts.Controls.Engines.Engine.cutoffSw[1].getValue()) {
auto_start_two();
}
}

View file

@ -120,10 +120,10 @@ var ELEC = {
EmerGen: {
volts: props.globals.getNode("/systems/electrical/sources/emer-gen/output-volt"),
hertz: props.globals.getNode("/systems/electrical/sources/emer-gen/output-hertz"),
voltsRelay: props.globals.getNode("/systems/electrical/relay/emer-glc/output"),
},
Ext: {
volts: props.globals.getNode("/systems/electrical/sources/ext/output-volt"),
voltsRelay: props.globals.getNode("/systems/electrical/relay/emer-glc/output"),
hertz: props.globals.getNode("/systems/electrical/sources/ext/output-hertz"),
},
tr1: {
@ -153,9 +153,9 @@ var ELEC = {
},
Switch: {
acEssFeed: props.globals.getNode("/controls/electrical/switches/ac-ess-feed"),
busTie: props.globals.getNode("/controls/electrical/switches/bus-tie"),
bat1: props.globals.getNode("/controls/electrical/switches/bat-1"),
bat2: props.globals.getNode("/controls/electrical/switches/bat-2"),
busTie: props.globals.getNode("/controls/electrical/switches/bus-tie"),
emerGenTest: props.globals.getNode("/controls/electrical/switches/emer-gen-test"),
extPwr: props.globals.getNode("/controls/electrical/switches/ext-pwr"),
galley: props.globals.getNode("/controls/electrical/switches/galley"),

View file

@ -630,7 +630,7 @@ eng2Agent2TimerMakeTimerFunc = func() {
}
setlistener("/controls/apu/fire-btn", func() {
if (getprop("/controls/apu/fire-btn") == 1) {
if (systems.APUNodes.Controls.fire.getValue() == 1) {
ecam.shutUpYou();
systems.APUController.APU.emergencyStop();
apuAgentTimerMakeTimer.stop();

View file

@ -34,10 +34,16 @@ var HYD = {
active: props.globals.getNode("/systems/hydraulic/sources/ptu/ptu-hydraulic-condition"),
diff: props.globals.getNode("/systems/hydraulic/yellow-psi-diff"),
},
Pump: {
yellowElec: props.globals.getNode("/systems/hydraulic/sources/yellow-elec/pump-operate"),
},
Qty: {
blueInput: props.globals.initNode("/systems/hydraulic/blue-qty-input", 0, "INT"),
blue: props.globals.getNode("/systems/hydraulic/blue-qty"),
greenInput: props.globals.initNode("/systems/hydraulic/green-qty-input", 0, "INT"),
green: props.globals.getNode("/systems/hydraulic/green-qty"),
yellowInput: props.globals.initNode("/systems/hydraulic/yellow-qty-input", 0, "INT"),
yellow: props.globals.getNode("/systems/hydraulic/yellow-qty"),
},
Rat: {
position: props.globals.getNode("/systems/hydraulic/sources/rat/position"),

View file

@ -115,8 +115,8 @@ var PNEU = {
setprop("/systems/pressurization/outflowpos-man", "0.5");
setprop("/systems/pressurization/outflowpos-man-sw", "0");
setprop("/systems/pressurization/outflowpos-norm-cmd", "0");
setprop("/systems/pressurization/cabinalt", getprop("instrumentation/altimeter/indicated-altitude-ft"));
setprop("/systems/pressurization/targetalt", getprop("instrumentation/altimeter/indicated-altitude-ft"));
setprop("/systems/pressurization/cabinalt", pts.Instrumentation.Altimeter.indicatedFt.getValue());
setprop("/systems/pressurization/targetalt", pts.Instrumentation.Altimeter.indicatedFt.getValue());
setprop("/systems/pressurization/diff-to-target", "0");
setprop("/systems/pressurization/ditchingpb", 0);
setprop("/systems/pressurization/targetvs", "0");

View file

@ -935,6 +935,21 @@
<max-dist>100.0</max-dist>
</retard>
<retard>
<name>retard2</name>
<path>Aircraft/A320-family/Sounds/GPWS/retard.wav</path>
<mode>looped</mode>
<condition>
<property>/sim/sound/warnings/retard</property> <!-- must be EMER CANCEL -->
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
</retard>
<apoff>
<name>apoff-looped</name>
<mode>looped</mode>
@ -1528,6 +1543,20 @@
</volume>
</switch>
<switch>
<name>Pushbutton</name>
<mode>once</mode>
<type>avionics</type>
<path>Aircraft/A320-family/Sounds/Cockpit/pushbutton.wav</path>
<condition>
<property>/sim/sounde/pushbutton</property>
</condition>
<volume>
<property>sim/current-view/internal</property>
<factor>0.25</factor>
</volume>
</switch>
<switch>
<name>Flaps Lever</name>
<mode>once</mode>

Binary file not shown.

View file

@ -5,6 +5,8 @@
<system name="A320: Electrical">
<property value="0">/systems/electrical/some-electric-thingie/rat-deploy</property>
<property value="0">/systems/electrical/relay/gen-1-glc/contact-pos</property>
<property value="0">/systems/electrical/relay/gen-2-glc/contact-pos</property>
<channel name="Main Electrical" execrate="8">
@ -361,7 +363,6 @@
<switch name="/systems/electrical/sources/idg-1/working">
<default value="1"/>
<test logic="OR" value="0">
/controls/engines/engine[0]/fire-btn eq 1
/systems/failures/electrical/idg-1 eq 1
/controls/electrical/switches/idg-1-disc eq 0
</test>
@ -380,8 +381,8 @@
</quotient>
</function>
<clipto>
<min>1.3</min>
<max>2.8</max>
<min>1.315</min>
<max>2.667</max>
</clipto>
</fcs_function>
@ -423,7 +424,8 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/failures/electrical/gen-1 ne 1
/systems/electrical/sources/idg-1/csd-rpm ge 11500
/controls/engines/engine[0]/fire-btn eq 0
/systems/electrical/sources/idg-1/drive-rpm ge 4730
</test>
</switch>
@ -446,7 +448,6 @@
<switch name="/systems/electrical/sources/idg-2/working">
<default value="1"/>
<test logic="OR" value="0">
/controls/engines/engine[1]/fire-btn eq 1
/systems/failures/electrical/idg-2 eq 1
/controls/electrical/switches/idg-2-disc eq 0
</test>
@ -465,8 +466,8 @@
</quotient>
</function>
<clipto>
<min>1.3</min>
<max>2.8</max>
<min>1.315</min>
<max>2.667</max>
</clipto>
</fcs_function>
@ -508,7 +509,8 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/failures/electrical/gen-2 ne 1
/systems/electrical/sources/idg-2/csd-rpm ge 11500
/controls/engines/engine[1]/fire-btn eq 0
/systems/electrical/sources/idg-2/drive-rpm ge 4730
</test>
</switch>
@ -523,27 +525,15 @@
</pure_gain>
<!-- APU gen -->
<pure_gain name="/systems/electrical/sources/apu/drive-rpm-input">
<pure_gain name="/systems/electrical/sources/apu/drive-rpm">
<input>/engines/engine[2]/n1</input>
<gain>240.34</gain>
</pure_gain>
<switch name="/systems/electrical/sources/apu/working">
<default value="1"/>
<test logic="OR" value="0">
/controls/apu/fire-btn eq 1
</test>
</switch>
<pure_gain name="/systems/electrical/sources/apu/drive-rpm">
<input>/systems/electrical/sources/apu/drive-rpm-input</input>
<gain>/systems/electrical/sources/apu/working</gain>
</pure_gain>
<fcs_function name="/systems/electrical/sources/apu/pmg-volt">
<function>
<product>
<property>/systems/electrical/sources/apu/drive-rpm-input</property>
<property>/systems/electrical/sources/apu/drive-rpm</property>
<quotient>
<value>115</value>
<value>24000</value>
@ -556,7 +546,7 @@
<function>
<quotient>
<product>
<property>/systems/electrical/sources/apu/drive-rpm-input</property>
<property>/systems/electrical/sources/apu/drive-rpm</property>
<value>2</value> <!-- Number of poles in generator -->
</product>
<value>120</value>
@ -567,9 +557,10 @@
<switch name="/systems/electrical/sources/apu/gcr-relay">
<default value="0"/>
<test logic="AND" value="1">
/controls/apu/fire-btn ne 1
/controls/electrical/switches/apu eq 1
/systems/failures/electrical/apu ne 1
/systems/electrical/sources/apu/drive-rpm-input ge 23000
/systems/electrical/sources/apu/drive-rpm ge 22800
</test>
</switch>
@ -656,6 +647,15 @@
<gain>/systems/electrical/sources/si-1/inverter-gain</gain>
</pure_gain>
<switch name="/systems/electrical/sources/si-1/fault">
<default value="0"/>
<test logic="OR" value="1">
/systems/electrical/sources/bat-1/volt lt 23.5
/systems/electrical/sources/si-1/output-volt lt 110
/systems/electrical/sources/si-1/output-volt ge 120
</test>
</switch>
<switch name="/systems/electrical/sources/si-1/output-hertz">
<default value="0"/>
<test logic="AND" value="400">
@ -761,15 +761,69 @@
</switch>
<!-- Source Relays -->
<switch name="/systems/electrical/relay/gen-1-glc/contact-pos">
<switch name="/systems/electrical/sources/idg-1/gcu-1-powered">
<default value="0"/>
<test logic="OR" value="1">
/systems/electrical/bus/dc-bat ge 25
/systems/electrical/sources/idg-1/pmg-volt ge 110
</test>
</switch>
<switch name="/systems/electrical/sources/idg-1/gcu-1-voltage-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/idg-1/gcu-1-voltage-trip eq 1
/controls/electrical/switches/gen-1 eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/gen-1-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/idg-1/output-volt lt 110
/systems/electrical/sources/idg-1/output-volt gt 130
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/idg-1/gcu-1-frequency-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/idg-1/gcu-1-frequency-trip eq 1
/controls/electrical/switches/gen-1 eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/gen-1-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/idg-1/output-hertz lt 363
/systems/electrical/sources/idg-1/output-hertz gt 433
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/idg-1/gcu-1-fault">
<default value="0"/>
<test logic="OR" value="0">
/systems/acconfig/autoconfig-running eq 1
/sim/time/elapsed-sec lt 10
</test>
<test logic="OR" value="1">
/systems/electrical/sources/idg-1/gcu-1-voltage-trip eq 1
/systems/electrical/sources/idg-1/gcu-1-frequency-trip eq 1
/systems/electrical/sources/idg-1/drive-rpm lt 4730
</test>
</switch>
<switch name="/systems/electrical/relay/gen-1-glc/contact-pos">
<default value="0"/>
<test logic="OR" value="0">
/sim/time/elapsed-sec lt 10
</test>
<test logic="AND" value="1">
/controls/electrical/switches/gen-1 eq 1
/systems/electrical/sources/idg-1/output-hertz ge 363
/systems/electrical/sources/idg-1/output-hertz le 433
/systems/electrical/sources/idg-1/output-volt ge 110
/systems/electrical/sources/idg-1/output-volt le 130
/systems/electrical/sources/idg-1/output-hertz ge 390
/systems/electrical/sources/idg-1/output-hertz le 410
/controls/electrical/switches/gen-1-line-contactor ne 1
/systems/electrical/sources/idg-1/gcu-1-fault ne 1 <!-- software trip -->
</test>
</switch>
@ -780,14 +834,69 @@
</test>
</switch>
<switch name="/systems/electrical/relay/gen-2-glc/contact-pos">
<switch name="/systems/electrical/sources/idg-2/gcu-2-powered">
<default value="0"/>
<test logic="OR" value="1">
/systems/electrical/bus/dc-bat ge 25
/systems/electrical/sources/idg-2/pmg-volt ge 110
</test>
</switch>
<switch name="/systems/electrical/sources/idg-2/gcu-2-voltage-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/idg-2/gcu-2-voltage-trip eq 1
/controls/electrical/switches/gen-2 eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/gen-2-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/idg-2/output-volt lt 110
/systems/electrical/sources/idg-2/output-volt gt 130
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/idg-2/gcu-2-frequency-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/idg-2/gcu-2-frequency-trip eq 1
/controls/electrical/switches/gen-2 eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/gen-2-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/idg-2/output-hertz lt 363
/systems/electrical/sources/idg-2/output-hertz gt 433
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/idg-2/gcu-2-fault">
<default value="0"/>
<test logic="OR" value="0">
/systems/acconfig/autoconfig-running eq 1
/sim/time/elapsed-sec lt 10
</test>
<test logic="OR" value="1">
/systems/electrical/sources/idg-2/gcu-2-voltage-trip eq 1
/systems/electrical/sources/idg-2/gcu-2-frequency-trip eq 1
/systems/electrical/sources/idg-2/drive-rpm lt 4730
</test>
</switch>
<switch name="/systems/electrical/relay/gen-2-glc/contact-pos">
<default value="0"/>
<test logic="OR" value="0">
/sim/time/elapsed-sec lt 10
</test>
<test logic="AND" value="1">
/controls/electrical/switches/gen-2 eq 1
/systems/electrical/sources/idg-2/output-hertz ge 363
/systems/electrical/sources/idg-2/output-hertz le 433
/systems/electrical/sources/idg-2/output-volt ge 110
/systems/electrical/sources/idg-2/output-volt lt 130
/systems/electrical/sources/idg-2/output-hertz ge 390
/systems/electrical/sources/idg-2/output-hertz le 410
/systems/electrical/sources/idg-2/output-volt le 130
/systems/electrical/sources/idg-2/gcu-2-fault ne 1 <!-- software trip -->
</test>
</switch>
@ -814,16 +923,70 @@
</test>
</switch>
<switch name="/systems/electrical/sources/apu/gcu-powered">
<default value="0"/>
<test logic="OR" value="1">
/systems/electrical/bus/dc-bat ge 25
/systems/electrical/sources/apu/pmg-volt ge 101.5
</test>
</switch>
<switch name="/systems/electrical/sources/apu/gcu-voltage-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/apu/gcu-voltage-trip eq 1
/controls/electrical/switches/apu eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/apu-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/apu/output-volt lt 101.5
/systems/electrical/sources/apu/output-volt gt 130
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/apu/gcu-frequency-trip">
<default value="0"/>
<test logic="AND" value="1">
/systems/electrical/sources/apu/gcu-frequency-trip eq 1
/controls/electrical/switches/apu eq 1
</test>
<test logic="AND" value="1">
/systems/electrical/relay/apu-glc/contact-pos eq 1
<test logic="OR">
/systems/electrical/sources/apu/output-hertz lt 361
/systems/electrical/sources/apu/output-hertz gt 435
</test>
</test>
</switch>
<switch name="/systems/electrical/sources/apu/gcu-fault">
<default value="0"/>
<test logic="OR" value="0">
/systems/acconfig/autoconfig-running eq 1
/sim/time/elapsed-sec lt 10
</test>
<test logic="OR" value="1">
/systems/electrical/sources/apu/gcu-voltage-trip eq 1
/systems/electrical/sources/apu/gcu-frequency-trip eq 1
</test>
</switch>
<switch name="/systems/electrical/relay/apu-glc/contact-pos">
<default value="0"/>
<test logic="OR" value="0">
/sim/time/elapsed-sec lt 10
</test>
<test logic="AND" value="1">
/controls/apu/master eq 1
/controls/electrical/switches/apu eq 1
/systems/electrical/sources/apu/output-volt ge 110
/systems/electrical/sources/apu/output-volt lt 130
/systems/electrical/sources/apu/output-hertz ge 390
/systems/electrical/sources/apu/output-hertz le 410
/systems/electrical/sources/apu/output-volt ge 101.5
/systems/electrical/sources/apu/output-volt le 130
/systems/electrical/sources/apu/output-hertz ge 361
/systems/electrical/sources/apu/output-hertz le 435
/systems/electrical/relay/ext-epc/contact-pos eq 0
/systems/electrical/sources/apu/gcu-fault ne 1 <!-- software trip -->
</test>
</switch>
@ -907,10 +1070,24 @@
</switch>
<!-- AC ESS Relays -->
<switch name="/systems/electrical/relay/ac-ess-feed-1/auto-switch">
<default value="0"/>
<test logic="OR" value="1">
/systems/electrical/bus/ac-1 lt 110
</test>
</switch>
<actuator name="/systems/electrical/relay/ac-ess-feed-1/auto-switch-timer">
<input>/systems/electrical/relay/ac-ess-feed-1/auto-switch</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.33333333333</rate_limit> <!-- 3 seconds -->
</actuator>
<switch name="/systems/electrical/relay/ac-ess-feed-1/contact-pos"> <!-- TODO: via 1XC CB on 123VU -->
<default value="0"/>
<test logic="AND" value="1"> <!-- old AC ESS FEED supply mode -->
/controls/electrical/switches/ac-ess-feed eq 0
/systems/electrical/relay/ac-ess-feed-1/auto-switch-timer lt 1
/controls/electrical/switches/emer-gen-test eq 0
</test>
</switch>
@ -925,7 +1102,10 @@
<switch name="/systems/electrical/relay/ac-ess-feed-2/contact-pos"> <!-- TODO: via 2XC CB on 123VU -->
<default value="0"/>
<test logic="AND" value="1"> <!-- old AC ESS FEED supply mode -->
/controls/electrical/switches/ac-ess-feed eq 1
<test logic="OR">
/controls/electrical/switches/ac-ess-feed eq 1
/systems/electrical/relay/ac-ess-feed-1/auto-switch-timer eq 1
</test>
/controls/electrical/switches/emer-gen-test eq 0
</test>
</switch>
@ -1420,13 +1600,6 @@
</test>
</switch>
<switch name="/systems/electrical/relay/dc-ess-shed-switch/output">
<default value="0"/>
<test value="/systems/electrical/bus/dc-ess">
/systems/electrical/relay/dc-ess-shed-switch/contact-pos eq 1
</test>
</switch>
<!-- DC Service Bus -->
<switch name="/systems/electrical/relay/dc-svc-bus-contactor-tr/contact-pos"> <!-- TODO: via 1PX CB on 124VU -->
<default value="0"/>
@ -1626,7 +1799,7 @@
<pure_gain name="/systems/electrical/bus/dc-ess-shed">
<input>/systems/electrical/bus/dc-ess</input>
<gain>1</gain>
<gain>/systems/electrical/relay/dc-ess-shed-switch/contact-pos</gain>
</pure_gain>
<!-- Hot Buses -->
@ -1699,7 +1872,6 @@
</switch>
<actuator name="/systems/electrical/some-electric-thingie/static-inverter-timer">
<description>Timer for the ECAM system</description>
<input>/systems/electrical/relay/ac-ess-feed-inverter/contact-pos</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1</rate_limit> <!-- 10 seconds -->
@ -1750,11 +1922,16 @@
<default value="0"/>
<test logic="AND" value="1">
/controls/electrical/switches/apu eq 1
/systems/electrical/relay/apu-glc/contact-pos eq 0
/systems/electrical/relay/ext-epc/contact-pos eq 0
/systems/electrical/relay/gen-1-glc/contact-pos eq 0
/systems/electrical/relay/gen-2-glc/contact-pos eq 0
/systems/electrical/sources/apu/drive-rpm gt 2000
<test logic="OR">
/systems/electrical/sources/apu/gcu-fault eq 1
<test logic="AND">
/systems/electrical/relay/apu-glc/contact-pos eq 0
/systems/electrical/relay/ext-epc/contact-pos eq 0
/systems/electrical/relay/gen-1-glc/contact-pos eq 0
/systems/electrical/relay/gen-2-glc/contact-pos eq 0
</test>
</test>
/systems/electrical/sources/apu/drive-rpm gt 22800
</test>
</switch>
@ -1781,7 +1958,10 @@
<default value="0"/>
<test value="1">
/controls/electrical/switches/gen-1 eq 1
/systems/electrical/relay/gen-1-glc/contact-pos eq 0
<test logic="OR">
/systems/electrical/sources/idg-1/gcu-1-fault eq 1
/systems/electrical/relay/gen-1-glc/contact-pos eq 0
</test>
</test>
</switch>
@ -1789,7 +1969,10 @@
<default value="0"/>
<test value="1">
/controls/electrical/switches/gen-2 eq 1
/systems/electrical/relay/gen-2-glc/contact-pos eq 0
<test logic="OR">
/systems/electrical/sources/idg-2/gcu-2-fault eq 1
/systems/electrical/relay/gen-2-glc/contact-pos eq 0
</test>
</test>
</switch>
@ -1797,7 +1980,7 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/failures/electrical/idg-1 eq 1
/systems/electrical/sources/idg-1/csd-rpm gt 2000
/systems/electrical/sources/idg-1/drive-rpm gt 2000
</test>
<test logic="AND" value="1">
/controls/electrical/switches/idg-1-disc-momentary eq 1
@ -1808,7 +1991,7 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/failures/electrical/idg-2 eq 1
/systems/electrical/sources/idg-2/csd-rpm gt 2000
/systems/electrical/sources/idg-2/drive-rpm gt 2000
</test>
<test logic="AND" value="1">
/controls/electrical/switches/idg-2-disc-momentary eq 1

View file

@ -317,7 +317,7 @@
<aerosurface_scale name="hydraulics/elevator-trim/cmd-deg">
<input>/controls/flight/elevator-trim</input>
<domain>
<min>-1.00</min>
<min>-1.0</min>
<max>0.296296</max>
</domain>
<range>
@ -857,8 +857,15 @@
<channel name="Landing Gear">
<switch name="gear/gear-cmd-switch">
<default value="gear/gear-cmd-norm"/>
<test logic="OR" value="gear/gear-pos-norm">
/systems/failures/gear eq 1
</test>
</switch>
<kinematic name="rubbish/gear-pos-norm">
<input>gear/gear-cmd-norm</input>
<input>gear/gear-cmd-switch</input>
<traverse>
<setting>
<position>0</position>

View file

@ -767,7 +767,9 @@
/consumables/fuel/tank[3]/level-norm lt 0.9999
</test>
</switch>
</channel>
<channel name="Final Flow Rates">
<summer name="/systems/fuel/internal/left-outer-flow-rate">
<input>/systems/fuel/internal/left-outer-wing-tank-refuel</input>
<input>-/systems/fuel/internal/left-wing-outer-to-inner-tank</input>

File diff suppressed because it is too large Load diff

View file

@ -230,6 +230,7 @@
<default value="0"/>
<test logic="AND" value="1">
/controls/hydraulic/switches/yellow-elec eq 1
/systems/failures/hydraulic/yellow-elec ne 1
<test logic="OR"> <!-- TODO: via 3XX CB 122VU -->
/systems/electrical/sources/ext/output-volt ge 110
/systems/electrical/bus/ac-2 ge 110
@ -239,20 +240,13 @@
<fcs_function name="/systems/hydraulic/sources/yellow-elec/source-psi">
<function>
<ifthen>
<nq>
<property>/systems/failures/hydraulic/yellow-elec</property>
<value>1</value>
</nq>
<table>
<independentVar lookup="row">/systems/hydraulic/sources/yellow-elec/pump-operate</independentVar>
<tableData>
0 0
1 3000
</tableData>
</table>
<value>0</value>
</ifthen>
<table>
<independentVar lookup="row">/systems/hydraulic/sources/yellow-elec/pump-operate</independentVar>
<tableData>
0 0
1 3000
</tableData>
</table>
</function>
</fcs_function>
@ -587,6 +581,40 @@
/systems/hydraulic/green-qty lt 3.5
</test>
</switch>
<switch name="/systems/hydraulics/warnings/blue-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/blue-psi lt 1750
/systems/hydraulics/warnings/blue-lo-pr eq 1
</test>
/systems/hydraulic/blue-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/green-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/green-psi lt 1750
/systems/hydraulics/warnings/green-lo-pr eq 1
</test>
/systems/hydraulic/green-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/yellow-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/yellow-psi lt 1750
/systems/hydraulics/warnings/yellow-lo-pr eq 1
</test>
/systems/hydraulic/yellow-psi lt 1450
</test>
</switch>
</channel>
</system>

View file

@ -399,6 +399,66 @@
</flipflop>
<!-- falling edge detector - take inverse of following -->
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>4.5</value>
</time>
<S>
<property>ECAM/phases/monostable/phase-8</property>
</S>
<output>ECAM/phases/monostable/phase-8-output</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.5</value>
</time>
<S>
<property>/ECAM/warnings/logic/eng/eng-1-retard-case-2</property>
</S>
<output>/ECAM/warnings/logic/eng/eng-1-retard-case-2-fall-output</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.5</value>
</time>
<S>
<property>/ECAM/warnings/logic/eng/eng-2-retard-case-2</property>
</S>
<output>/ECAM/warnings/logic/eng/eng-2-retard-case-2-fall-output</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.5</value>
</time>
<S>
<property>/ECAM/warnings/logic/eng/eng-1-reverse</property>
</S>
<output>/ECAM/warnings/logic/eng/eng-1-reverse-fall</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.5</value>
</time>
<S>
<property>/ECAM/warnings/logic/eng/eng-2-reverse</property>
</S>
<output>/ECAM/warnings/logic/eng/eng-2-reverse-fall</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
@ -525,6 +585,17 @@
</flipflop>
<!-- rising detector: when -pulse is true and switch is true -->
<flipflop>
<type>monostable</type>
<time>
<value>1.0</value>
</time>
<S>
<not><property>/ECAM/warnings/fctl/gear-lever-down</property></not>
</S>
<output>/ECAM/warnings/fctl/gear-lever-down-pulse</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
@ -558,6 +629,39 @@
<output>/ECAM/warnings/logic/apu-bleed-sw-pulse</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
<value>1.0</value>
</time>
<S>
<not><property>/controls/electrical/switches/apu</property></not>
</S>
<output>/ECAM/warnings/logic/apu-elec-gen-pulse</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
<value>1.0</value>
</time>
<S>
<not><property>/controls/electrical/switches/gen-1</property></not>
</S>
<output>/ECAM/warnings/logic/gen-1-pulse</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
<value>1.0</value>
</time>
<S>
<not><property>/controls/electrical/switches/gen-2</property></not>
</S>
<output>/ECAM/warnings/logic/gen-2-pulse</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
@ -796,4 +900,174 @@
<output>/ECAM/warnings/flipflop/pack-2-off</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/gen-1-fault-set-output</property>
</S>
<R>
<property>/ECAM/warnings/logic/gen-1-fault-reset</property>
</R>
<output>/ECAM/warnings/flipflop/gen-1-fault</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/gen-1-fault-on-off-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/gen-1-fault-on-off-reset</property>
</R>
<output>/ECAM/warnings/flipflop/gen-1-fault-on-off</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/gen-2-fault-set-output</property>
</S>
<R>
<property>/ECAM/warnings/logic/gen-2-fault-reset</property>
</R>
<output>/ECAM/warnings/flipflop/gen-2-fault</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/gen-2-fault-on-off-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/gen-2-fault-on-off-reset</property>
</R>
<output>/ECAM/warnings/flipflop/gen-2-fault-on-off</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/timer/apu-gen-fault-set</property>
</S>
<R>
<property>/ECAM/warnings/timer/apu-gen-fault-reset</property>
</R>
<output>/ECAM/warnings/flipflop/apu-gen-fault</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/apu-gen-fault-on-off-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/apu-gen-fault-on-off-reset</property>
</R>
<output>/ECAM/warnings/flipflop/apu-gen-fault-on-off</output>
</flipflop>
<flipflop>
<type>SR</type>
<S>
<property>/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle-reset</property>
</R>
<output>/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle</output>
</flipflop>
<flipflop>
<type>SR</type>
<S>
<property>/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle-reset</property>
</R>
<output>/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle</output>
</flipflop>
<!-- falling edge detector, take inverse -->
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.0</value>
</time>
<S>
<property>/ECAM/warnings/logic/stall/phase-4</property>
</S>
<output>/ECAM/warnings/logic/stall/phase-4-output</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.0</value>
</time>
<S>
<property>/ECAM/warnings/logic/stall/phase-5</property>
</S>
<output>/ECAM/warnings/logic/stall/phase-5-output</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.0</value>
</time>
<S>
<property>/ECAM/warnings/logic/stall/phase-8</property>
</S>
<output>/ECAM/warnings/logic/stall/phase-8-output</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/logic/stall/phase-flipflop-set</property>
</S>
<R>
<property>/ECAM/warnings/logic/stall/phase-flipflop-reset</property>
</R>
<output>/ECAM/warnings/logic/stall/phase-flipflop</output>
</flipflop>
<flipflop>
<type>SR</type>
<S>
<property>/ECAM/warnings/config/park-brk/park-brk-set</property>
</S>
<R>
<property>/ECAM/warnings/config/park-brk/park-brk-reset</property>
</R>
<output>/ECAM/warnings/config/park-brk/park-brk-output</output>
</flipflop>
<flipflop>
<type>SR</type>
<S>
<property>/ECAM/warnings/fctl/gear-not-downlocked-set</property>
</S>
<R>
<property>/ECAM/warnings/fctl/gear-not-downlocked-reset</property>
</R>
<output>/ECAM/warnings/fctl/gear-not-downlocked-output</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>/ECAM/warnings/fctl/gear-not-down-locked-set</property>
</S>
<R>
<property>/ECAM/warnings/fctl/gear-not-down-locked-reset</property>
</R>
<output>/ECAM/warnings/fctl/gear-not-down-locked</output>
</flipflop>
</PropertyList>

View file

@ -1 +1 @@
39
41