Merge branch 'dev' into pfd-rework
This commit is contained in:
commit
8069ebae11
36 changed files with 2899 additions and 824 deletions
|
@ -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>
|
||||
|
|
BIN
Models/FlightDeck/QRH/1.jpeg
Normal file
BIN
Models/FlightDeck/QRH/1.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
Models/FlightDeck/QRH/2.jpeg
Normal file
BIN
Models/FlightDeck/QRH/2.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
BIN
Models/FlightDeck/QRH/3.jpeg
Normal file
BIN
Models/FlightDeck/QRH/3.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>setprop("sim/sounde/oh-btn", 1);</script>
|
||||
<script>libraries.pushbutton();</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 |
|
@ -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
|
@ -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"),
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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 #
|
||||
##########
|
||||
|
|
|
@ -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: {
|
||||
|
|
|
@ -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
94
Nasal/QRH/QRH.nas
Normal 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);
|
||||
}
|
|
@ -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));
|
||||
},
|
||||
};
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"),
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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"),
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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>
|
||||
|
|
BIN
Sounds/Cockpit/pushbutton.wav
Normal file
BIN
Sounds/Cockpit/pushbutton.wav
Normal file
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
1266
Systems/a320-fwc.xml
1266
Systems/a320-fwc.xml
File diff suppressed because it is too large
Load diff
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -1 +1 @@
|
|||
39
|
||||
41
|
Loading…
Add table
Reference in a new issue