Merge branch 'dev' into new-font
This commit is contained in:
commit
96a9885e9a
44 changed files with 3232 additions and 1618 deletions
|
@ -812,6 +812,10 @@
|
|||
<brake-left type="double">0</brake-left>
|
||||
<brake-right type="double">0</brake-right>
|
||||
</autobrake>
|
||||
<cabin>
|
||||
<footwarmer-cpt type="bool">0</footwarmer-cpt>
|
||||
<footwarmer-fo type="bool">0</footwarmer-fo>
|
||||
</cabin>
|
||||
<CVR>
|
||||
<erase type="bool">0</erase>
|
||||
<gndctl type="bool">0</gndctl>
|
||||
|
@ -819,6 +823,9 @@
|
|||
<test type="bool">0</test>
|
||||
<tone type="bool">0</tone>
|
||||
</CVR>
|
||||
<doors>
|
||||
<doorc-switch type="int">0</doorc-switch>
|
||||
</doors>
|
||||
<electric>
|
||||
<avionics-switch type="bool">true</avionics-switch>
|
||||
</electric>
|
||||
|
@ -1336,15 +1343,22 @@
|
|||
</fuel>
|
||||
<gear type="bool">0</gear>
|
||||
<hydraulic>
|
||||
<blue-edp type="bool">0</blue-edp>
|
||||
<blue-elec type="bool">0</blue-elec>
|
||||
<blue-elec-ovht type="bool">0</blue-elec-ovht>
|
||||
<blue-leak type="bool">0</blue-leak>
|
||||
<blue-reservoir-air-press-lo type="bool">0</blue-reservoir-air-press-lo> <!-- true at 22 psi relative, false at 25 psi relative -->
|
||||
<blue-reservoir-ovht type="bool">0</blue-reservoir-ovht> <!-- 95 deg, cancel at 88.4 deg -->
|
||||
<green-edp type="bool">0</green-edp>
|
||||
<green-leak type="bool">0</green-leak>
|
||||
<green-reservoir-air-press-lo type="bool">0</green-reservoir-air-press-lo>
|
||||
<green-reservoir-ovht type="bool">0</green-reservoir-ovht>
|
||||
<ptu type="bool">0</ptu>
|
||||
<yellow-edp type="bool">0</yellow-edp>
|
||||
<yellow-elec type="bool">0</yellow-elec>
|
||||
<yellow-elec-ovht type="bool">0</yellow-elec-ovht> <!-- 162 deg -->
|
||||
<yellow-leak type="bool">0</yellow-leak>
|
||||
<yellow-reservoir-air-press-lo type="bool">0</yellow-reservoir-air-press-lo>
|
||||
<yellow-reservoir-ovht type="bool">0</yellow-reservoir-ovht>
|
||||
</hydraulic>
|
||||
<icing>
|
||||
<wing-left-valve type="bool">0</wing-left-valve>
|
||||
|
@ -1597,6 +1611,7 @@
|
|||
<options n="0">
|
||||
<system n="0">
|
||||
<keyboard-mode type="bool">0</keyboard-mode>
|
||||
<fgcamera-keys-enabled type="bool">0</fgcamera-keys-enabled>
|
||||
</system>
|
||||
<steep-ils type="bool">0</steep-ils>
|
||||
<steep-ils-avail type="bool">0</steep-ils-avail>
|
||||
|
@ -2233,11 +2248,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("1", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>1</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2271,11 +2295,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("2", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>2</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2310,11 +2343,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("3", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>3</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2349,11 +2391,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("4", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>4</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2388,11 +2439,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("5", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>5</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2429,11 +2489,20 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("6", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>6</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<not><property>/options/system/keyboard-mode</property></not>
|
||||
<not><property>/options/system/fgcamera-keys-enabled</property></not>
|
||||
</condition>
|
||||
<command>property-assign</command>
|
||||
<property>/sim/current-view/view-number</property>
|
||||
|
@ -2478,6 +2547,14 @@
|
|||
<property>/sim/current-view/view-number</property>
|
||||
<value></value>
|
||||
</binding-->
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>7</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
|
@ -2506,6 +2583,14 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("8", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>8</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<!--binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
|
@ -2520,7 +2605,7 @@
|
|||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
<not><property>/FMGC/keyboard-right</property></not>
|
||||
<property>/options/system/keyboard-mode</property>
|
||||
<property>/options/system/keyboard-mode</property>
|
||||
</condition>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
|
@ -2545,6 +2630,14 @@
|
|||
<command>nasal</command>
|
||||
<script>mcdu.button("9", 1);</script>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</condition>
|
||||
<command>fgcamera-select</command>
|
||||
<camera-id>9</camera-id>
|
||||
<camera-type>aircraft</camera-type>
|
||||
</binding>
|
||||
<!--binding>
|
||||
<condition>
|
||||
<not><property>/FMGC/keyboard-left</property></not>
|
||||
|
|
|
@ -51,6 +51,7 @@ setprop("/systems/acconfig/out-of-date", 0);
|
|||
setprop("/systems/acconfig/mismatch-code", "0x000");
|
||||
setprop("/systems/acconfig/mismatch-reason", "XX");
|
||||
setprop("/systems/acconfig/options/keyboard-mode", 0);
|
||||
setprop("/systems/acconfig/options/fgcamera-keys-enabled", 0);
|
||||
setprop("/systems/acconfig/options/weight-kgs", 1);
|
||||
setprop("/systems/acconfig/options/adirs-skip", 0);
|
||||
setprop("/systems/acconfig/options/allow-oil-consumption", 0);
|
||||
|
@ -214,6 +215,7 @@ var renderingSettings = {
|
|||
var readSettings = func {
|
||||
io.read_properties(pts.Sim.fgHome.getValue() ~ "/Export/A320-family-config.xml", "/systems/acconfig/options");
|
||||
setprop("/options/system/keyboard-mode", getprop("/systems/acconfig/options/keyboard-mode"));
|
||||
if (getprop("/sim/fgcamera/enable")) setprop("/options/system/fgcamera-keys-enabled", getprop("/systems/acconfig/options/fgcamera-keys-enabled")); # read only when FGCamera enabled
|
||||
setprop("/options/system/weight-kgs", getprop("/systems/acconfig/options/weight-kgs"));
|
||||
setprop("/options/system/save-state", getprop("/systems/acconfig/options/save-state"));
|
||||
setprop("/controls/adirs/skip", getprop("/systems/acconfig/options/adirs-skip"));
|
||||
|
@ -228,6 +230,7 @@ var readSettings = func {
|
|||
|
||||
var writeSettings = func {
|
||||
setprop("/systems/acconfig/options/keyboard-mode", getprop("/options/system/keyboard-mode"));
|
||||
setprop("/systems/acconfig/options/fgcamera-keys-enabled", getprop("/options/system/fgcamera-keys-enabled"));
|
||||
setprop("/systems/acconfig/options/weight-kgs", getprop("/options/system/weight-kgs"));
|
||||
setprop("/systems/acconfig/options/save-state", getprop("/options/system/save-state"));
|
||||
setprop("/systems/acconfig/options/adirs-skip", getprop("/controls/adirs/skip"));
|
||||
|
@ -391,9 +394,9 @@ var beforestart_b = func {
|
|||
setprop("/controls/adirs/mcducbtn", 1);
|
||||
setprop("/controls/switches/beacon", 1);
|
||||
setprop("/controls/lighting/nav-lights-switch", 1);
|
||||
libraries.noSmokingSwitch.setValue(0.5);
|
||||
libraries.seatbeltSwitch.setValue(1.0);
|
||||
libraries.emerLtsSwitch.setValue(0.5);
|
||||
pts.Controls.Switches.noSmokingSwitch.setValue(0.5);
|
||||
pts.Controls.Switches.seatbeltSwitch.setValue(1.0);
|
||||
pts.Controls.Switches.emerLtsSwitch.setValue(0.5);
|
||||
setprop("/controls/radio/rmp[0]/on", 1);
|
||||
setprop("/controls/radio/rmp[1]/on", 1);
|
||||
setprop("/controls/radio/rmp[2]/on", 1);
|
||||
|
@ -488,9 +491,9 @@ var taxi_b = func {
|
|||
setprop("/controls/switches/beacon", 1);
|
||||
setprop("/controls/switches/wing-lights", 1);
|
||||
setprop("/controls/lighting/nav-lights-switch", 1);
|
||||
libraries.noSmokingSwitch.setValue(0.5);
|
||||
libraries.seatbeltSwitch.setValue(1.0);
|
||||
libraries.emerLtsSwitch.setValue(0.5);
|
||||
pts.Controls.Switches.noSmokingSwitch.setValue(0.5);
|
||||
pts.Controls.Switches.seatbeltSwitch.setValue(1.0);
|
||||
pts.Controls.Switches.emerLtsSwitch.setValue(0.5);
|
||||
setprop("/controls/radio/rmp[0]/on", 1);
|
||||
setprop("/controls/radio/rmp[1]/on", 1);
|
||||
setprop("/controls/radio/rmp[2]/on", 1);
|
||||
|
|
|
@ -242,6 +242,27 @@
|
|||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Enable FGCamera 0-9 keys</label>
|
||||
<halign>left</halign>
|
||||
<enable>/sim/fgcamera/enable</enable>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>/options/system/fgcamera-keys-enabled</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.writeSettings();
|
||||
</script>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<!-- TODO Comment back in, when fully implemented -->
|
||||
<checkbox>
|
||||
<label>Weight in KG</label>
|
||||
|
|
|
@ -557,14 +557,6 @@
|
|||
<object-name>radar_glare</object-name>
|
||||
</effect>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>engine_fault_1</object-name>
|
||||
<condition>
|
||||
<property>systems/unused/unused-ped</property>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>engine_fire_1</object-name>
|
||||
|
@ -585,15 +577,7 @@
|
|||
<blue>1.0</blue>
|
||||
</emission>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>engine_fault_2</object-name>
|
||||
<condition>
|
||||
<property>systems/unused/unused-ped</property>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>engine_fire_2</object-name>
|
||||
|
@ -866,6 +850,19 @@
|
|||
<script>atc.transponderPanel.modeSwitch(getprop("controls/atc/mode-knob") + 1);</script>
|
||||
</binding>
|
||||
</action>
|
||||
<hovered>
|
||||
<binding>
|
||||
<command>set-tooltip</command>
|
||||
<tooltip-id>atc_stby_mode</tooltip-id>
|
||||
<label>Mode: %s</label>
|
||||
<property>controls/atc/mode-knob</property>
|
||||
<mapping>nasal</mapping>
|
||||
<script>
|
||||
var modes = ['STANDBY','ALT','XPNDR','TA ONLY','TA/RA'];
|
||||
return modes[arg[0]];
|
||||
</script>
|
||||
</binding>
|
||||
</hovered>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
|
@ -1058,12 +1055,13 @@
|
|||
<path>Aircraft/A320-family/Models/Instruments/IESI/IESI.xml</path>
|
||||
</model>
|
||||
|
||||
<!-- No button lights without power! -->
|
||||
<!-- Button lights 115 mA, 5 VAC on BRT setting -->
|
||||
<!-- Sourced from 4 transformers -->
|
||||
|
||||
|
||||
<!-- 31LP AC ESS SHED 801XP 5VAC transformer -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>abs_low_on</object-name>
|
||||
<object-name>abs_med_on</object-name>
|
||||
<object-name>abs_max_on</object-name>
|
||||
<object-name>alt-text</object-name>
|
||||
<object-name>alt-text-test</object-name>
|
||||
<object-name>ap1_led</object-name>
|
||||
|
@ -1071,9 +1069,9 @@
|
|||
<object-name>appr_led</object-name>
|
||||
<object-name>arpt_led</object-name>
|
||||
<object-name>arpt_led.001</object-name>
|
||||
<object-name>a-thr_led</object-name>
|
||||
<object-name>atc-code</object-name>
|
||||
<object-name>atc-test</object-name>
|
||||
<object-name>a-thr_led</object-name>
|
||||
<object-name>audio_att_led</object-name>
|
||||
<object-name>audio_att_sgn</object-name>
|
||||
<object-name>audio_call_hf2_led</object-name>
|
||||
|
@ -1085,19 +1083,165 @@
|
|||
<object-name>audio_hf2_led</object-name>
|
||||
<object-name>audio_mech_led</object-name>
|
||||
<object-name>audio_mech_sgn</object-name>
|
||||
<object-name>audio_pa_led</object-name>
|
||||
<object-name>audio_voice_led</object-name>
|
||||
<object-name>audio_vhf1_led</object-name>
|
||||
<object-name>audio_vhf2_led</object-name>
|
||||
<object-name>audio_vhf3_led</object-name>
|
||||
<object-name>autoland_light_on</object-name>
|
||||
<object-name>brk_fan_on</object-name>
|
||||
<object-name>brk_hot_on</object-name>
|
||||
<!-- <object-name>clock_glare</object-name>-->
|
||||
<object-name>cstr_led</object-name>
|
||||
<object-name>cstr_led.001</object-name>
|
||||
<object-name>exped_led</object-name>
|
||||
<object-name>fcu_screen</object-name>
|
||||
<object-name>fd1_led</object-name>
|
||||
<object-name>fd2_led</object-name>
|
||||
<object-name>fpa-text</object-name>
|
||||
<object-name>hdg-text</object-name>
|
||||
<object-name>hdg-text-test</object-name>
|
||||
<object-name>ils_led</object-name>
|
||||
<object-name>ils2_led</object-name>
|
||||
<object-name>loc_led</object-name>
|
||||
<object-name>mach-text</object-name>
|
||||
<object-name>ndb_led</object-name>
|
||||
<object-name>ndb_led.001</object-name>
|
||||
<object-name>qnh-hpa</object-name>
|
||||
<object-name>qnh-inhg</object-name>
|
||||
<object-name>qnh-std</object-name>
|
||||
<object-name>qnh-test</object-name>
|
||||
<object-name>radio_adf_led</object-name>
|
||||
<object-name>radio_am_led</object-name>
|
||||
<object-name>radio_bfo_led</object-name>
|
||||
<object-name>radio_hf1_led</object-name>
|
||||
<object-name>radio_hf2_led</object-name>
|
||||
<object-name>radio_ls_led</object-name>
|
||||
<object-name>radio_nav_led</object-name>
|
||||
<object-name>radio_opt_led</object-name>
|
||||
<object-name>radio_vhf1_led</object-name>
|
||||
<object-name>radio_vhf2_led</object-name>
|
||||
<object-name>radio_vhf3_led</object-name>
|
||||
<object-name>radio_vor_led</object-name>
|
||||
<object-name>spd-text</object-name>
|
||||
<object-name>spd-text-test</object-name>
|
||||
<object-name>vord_led</object-name>
|
||||
<object-name>vord_led.001</object-name>
|
||||
<object-name>vs-text</object-name>
|
||||
<object-name>vs-text-last-2-digits</object-name>
|
||||
<object-name>vs-text-test</object-name>
|
||||
<object-name>wpt_led</object-name>
|
||||
<object-name>wpt_led.001</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- Special for master warning -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>autoland_light_on</object-name>
|
||||
<object-name>master_caution_on</object-name>
|
||||
<object-name>master_warning_on</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-2</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 35LP AC ESS SHED 801XP 5VAC transformer
|
||||
BACKUP 901XP STAT INV
|
||||
-->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>engine_fire_1</object-name>
|
||||
<object-name>engine_fire_2</object-name>
|
||||
<object-name>gear_lever_down_arrow</object-name>
|
||||
<object-name>lgear_down</object-name>
|
||||
<object-name>lgear_unlk</object-name>
|
||||
<object-name>ngear_down</object-name>
|
||||
<object-name>ngear_unlk</object-name>
|
||||
<object-name>rgear_down</object-name>
|
||||
<object-name>rgear_unlk</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 36LP AC 2 202XP 5VAC transformer -->
|
||||
<!-- ATC MSG (dual power with 37LP?) -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>brk_fan_on</object-name>
|
||||
<object-name>brk_hot_on</object-name>
|
||||
<object-name>CockpitDoorFault</object-name>
|
||||
<object-name>CockpitDoorOpen</object-name>
|
||||
<object-name>engine_fault_1</object-name>
|
||||
<object-name>engine_fault_2</object-name>
|
||||
<object-name>prio_fo.arrow</object-name>
|
||||
<object-name>prio_fo_fo</object-name>
|
||||
<condition>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-2</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 37LP AC 1 103XP 5VAC transformer -->
|
||||
<!-- ATC MSG, GPWS annunciator -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>abs_low_on</object-name>
|
||||
<object-name>abs_med_on</object-name>
|
||||
<object-name>abs_max_on</object-name>
|
||||
<object-name>dec_low_on</object-name>
|
||||
<object-name>dec_med_on</object-name>
|
||||
<object-name>dec_max_on</object-name>
|
||||
<object-name>prio_capt.arrow</object-name>
|
||||
<object-name>prio_capt.arrow.001</object-name>
|
||||
<object-name>prio_capt.capt</object-name>
|
||||
<object-name>prio_capt.capt.001</object-name>
|
||||
<object-name>radio_sel_led</object-name>
|
||||
<object-name>terr_on_nd_on_l</object-name>
|
||||
<object-name>terr_on_nd_on_r</object-name>
|
||||
<condition>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-1</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- Direct DC power from DC2 206PP to ECP LEDs and rudder trim indicator -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ecam_apu_led</object-name>
|
||||
<object-name>ecam_bleed_led</object-name>
|
||||
<object-name>ecam_cond_led</object-name>
|
||||
|
@ -1114,66 +1258,6 @@
|
|||
<object-name>ecam_press_led</object-name>
|
||||
<object-name>ecam_sts_led</object-name>
|
||||
<object-name>ecam_wheel_led</object-name>
|
||||
<object-name>exped_led</object-name>
|
||||
<object-name>fcu_screen</object-name>
|
||||
<object-name>fd1_led</object-name>
|
||||
<object-name>fd2_led</object-name>
|
||||
<object-name>fpa-text</object-name>
|
||||
<object-name>hdg-text</object-name>
|
||||
<object-name>hdg-text-test</object-name>
|
||||
<object-name>ils_led</object-name>
|
||||
<object-name>ils2_led</object-name>
|
||||
<object-name>lgear_down</object-name>
|
||||
<object-name>lgear_unlk</object-name>
|
||||
<object-name>loc_led</object-name>
|
||||
<object-name>mach-text</object-name>
|
||||
<object-name>master_caution_on</object-name>
|
||||
<object-name>master_warning_on</object-name>
|
||||
<object-name>ndb_led</object-name>
|
||||
<object-name>ndb_led.001</object-name>
|
||||
<object-name>ngear_down</object-name>
|
||||
<object-name>ngear_unlk</object-name>
|
||||
<object-name>qnh-hpa</object-name>
|
||||
<object-name>qnh-inhg</object-name>
|
||||
<object-name>qnh-std</object-name>
|
||||
<object-name>qnh-test</object-name>
|
||||
<object-name>radio_adf_led</object-name>
|
||||
<object-name>radio_am_led</object-name>
|
||||
<object-name>radio_bfo_led</object-name>
|
||||
<object-name>radio_hf1_led</object-name>
|
||||
<object-name>radio_hf2_led</object-name>
|
||||
<object-name>radio_ls_led</object-name>
|
||||
<object-name>radio_nav_led</object-name>
|
||||
<object-name>radio_opt_led</object-name>
|
||||
<object-name>radio_sel_led</object-name>
|
||||
<object-name>radio_vhf1_led</object-name>
|
||||
<object-name>radio_vhf2_led</object-name>
|
||||
<object-name>radio_vhf3_led</object-name>
|
||||
<object-name>radio_vor_led</object-name>
|
||||
<object-name>rgear_down</object-name>
|
||||
<object-name>rgear_unlk</object-name>
|
||||
<object-name>spd-text</object-name>
|
||||
<object-name>spd-text-test</object-name>
|
||||
<object-name>terr_on_nd_label</object-name>
|
||||
<object-name>terr_on_nd_on_l</object-name>
|
||||
<object-name>terr_on_nd_on_r</object-name>
|
||||
<object-name>vord_led</object-name>
|
||||
<object-name>vord_led.001</object-name>
|
||||
<object-name>vs-text</object-name>
|
||||
<object-name>vs-text-last-2-digits</object-name>
|
||||
<object-name>vs-text-test</object-name>
|
||||
<object-name>wpt_led</object-name>
|
||||
<object-name>wpt_led.001</object-name>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>rudder-trim-letter</object-name>
|
||||
<object-name>rudder-trim</object-name>
|
||||
<condition>
|
||||
|
@ -1211,13 +1295,10 @@
|
|||
<object-name>audio_mech_sgn</object-name>
|
||||
<object-name>ecam_c_b_led</object-name>
|
||||
<object-name>ecam_el_dc_led</object-name>
|
||||
<object-name>ecam_sts_led</object-name>
|
||||
<object-name>engine_fault_1</object-name>
|
||||
<object-name>engine_fault_2</object-name>
|
||||
<object-name>exped_led</object-name>
|
||||
<object-name>qnh-test</object-name>
|
||||
<object-name>radio_opt_led</object-name>
|
||||
<object-name>ver.fmgc</object-name>
|
||||
<condition>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</condition>
|
||||
|
@ -1228,7 +1309,9 @@
|
|||
<object-name>alt-text-test</object-name>
|
||||
<object-name>hdg-text-test</object-name>
|
||||
<object-name>spd-text-test</object-name>
|
||||
<object-name>qnh-test</object-name>
|
||||
<object-name>vs-text-test</object-name>
|
||||
<object-name>ver.fmgc</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<not><property>FMGC/FCU-working</property></not>
|
||||
|
@ -1435,6 +1518,89 @@
|
|||
</action>
|
||||
</animation>
|
||||
|
||||
<!-- Cocktpit Door Switch -->
|
||||
|
||||
<animation>
|
||||
<type>slider</type>
|
||||
<object-name>CockpitDoorSwitch</object-name>
|
||||
<object-name>CockpitDoorSwitch.mark</object-name>
|
||||
<property>controls/doors/doorc-switch</property>
|
||||
<drag-direction>vertical</drag-direction>
|
||||
<action>
|
||||
<binding>
|
||||
<command>property-adjust</command>
|
||||
<property>controls/doors/doorc-switch</property>
|
||||
<factor>-1</factor>
|
||||
<min>-1</min>
|
||||
<max>1</max>
|
||||
<wrap>0</wrap>
|
||||
</binding>
|
||||
</action>
|
||||
<release>
|
||||
<binding>
|
||||
<command>property-assign</command>
|
||||
<property>controls/doors/doorc-switch</property>
|
||||
<value>0</value>
|
||||
</binding>
|
||||
</release>
|
||||
<hovered>
|
||||
<binding>
|
||||
<command>set-tooltip</command>
|
||||
<tooltip-id>doorc-switch-lock</tooltip-id>
|
||||
<label>Cockpit door switch</label>
|
||||
</binding>
|
||||
</hovered>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>rotate</type>
|
||||
<object-name>CockpitDoorSwitch</object-name>
|
||||
<object-name>CockpitDoorSwitch.mark</object-name>
|
||||
<property>controls/doors/doorc-switch</property>
|
||||
<interpolation>
|
||||
<entry><ind>-1</ind><dep>-25</dep></entry>
|
||||
<entry><ind> 0</ind><dep> 0</dep></entry>
|
||||
<entry><ind> 1</ind><dep> 25</dep></entry>
|
||||
</interpolation>
|
||||
<axis>
|
||||
<object-name>CockpitDoorSwitch.axis</object-name>
|
||||
</axis>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>CockpitDoorOpen</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<not-equals>
|
||||
<property>sim/model/door-positions/doorc/lock-status</property>
|
||||
<value>1</value>
|
||||
</not-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>CockpitDoorFault</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>sim/model/door-positions/doorc/lock-status</property>
|
||||
<value>-9</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- Terr on ND -->
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
|
@ -2062,6 +2228,76 @@
|
|||
</axis>
|
||||
</animation>
|
||||
|
||||
<!-- Foot warner switches -->
|
||||
|
||||
<animation>
|
||||
<type>rotate</type>
|
||||
<object-name>foot_warmer_cpt_sw</object-name>
|
||||
<object-name>foot_warmer_cpt_sw.mark</object-name>
|
||||
<property>controls/cabin/footwarmer-cpt</property>
|
||||
<interpolation>
|
||||
<entry><ind>1</ind><dep>-20</dep></entry>
|
||||
<entry><ind>0</ind><dep>20</dep></entry>
|
||||
</interpolation>
|
||||
<axis>
|
||||
<object-name>foot_warmer_cpt_sw.axis</object-name>
|
||||
</axis>
|
||||
</animation>
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
<object-name>foot_warmer_cpt_sw</object-name>
|
||||
<object-name>foot_warmer_cpt_sw.mark</object-name>
|
||||
<action>
|
||||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
<property>controls/cabin/footwarmer-cpt</property>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>/sim/sounde/switch1</property>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>rotate</type>
|
||||
<object-name>foot_warmer_fo_sw</object-name>
|
||||
<object-name>foot_warmer_fo_sw.mark</object-name>
|
||||
<property>controls/cabin/footwarmer-fo</property>
|
||||
<interpolation>
|
||||
<!-- Axis inverted!! -->
|
||||
<entry><ind>1</ind><dep>20</dep></entry>
|
||||
<entry><ind>0</ind><dep>-20</dep></entry>
|
||||
</interpolation>
|
||||
<axis>
|
||||
<object-name>foot_warmer_fo_sw.axis</object-name>
|
||||
</axis>
|
||||
</animation>
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
<object-name>foot_warmer_fo_sw</object-name>
|
||||
<object-name>foot_warmer_fo_sw.mark</object-name>
|
||||
<action>
|
||||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
<property>controls/cabin/footwarmer-fo</property>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>/sim/sounde/switch1</property>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>
|
||||
|
||||
|
||||
<!-- ECAM Controls -->
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
|
@ -5916,28 +6152,16 @@
|
|||
<type>select</type>
|
||||
<object-name>gear_lever_down_arrow</object-name>
|
||||
<condition>
|
||||
<and>
|
||||
<or>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/ac-2</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>ECAM/warnings/landing-gear-warning-light</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>ECAM/warnings/landing-gear-warning-light</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -5945,28 +6169,16 @@
|
|||
<type>material</type>
|
||||
<object-name>gear_lever_down_arrow</object-name>
|
||||
<condition>
|
||||
<and>
|
||||
<or>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/ac-2</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>ECAM/warnings/landing-gear-warning-light</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>ECAM/warnings/landing-gear-warning-light</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
<emission>
|
||||
<red>1.00</red>
|
||||
|
|
|
@ -1,15 +1,6 @@
|
|||
# A3XX Lower ECAM Canvas
|
||||
# Copyright (c) 2021 Josh Davidson (Octal450) and Jonathan Redpath
|
||||
|
||||
var elec_pump_y_ovht = props.globals.initNode("/systems/hydraulic/elec-pump-yellow-ovht", 0, "BOOL");
|
||||
var elec_pump_b_ovht = props.globals.initNode("/systems/hydraulic/elec-pump-blue-ovht", 0, "BOOL");
|
||||
var y_resv_ovht = props.globals.initNode("/systems/hydraulic/yellow-resv-ovht", 0, "BOOL");
|
||||
var b_resv_ovht = props.globals.initNode("/systems/hydraulic/blue-resv-ovht", 0, "BOOL");
|
||||
var g_resv_ovht = props.globals.initNode("/systems/hydraulic/green-resv-ovht", 0, "BOOL");
|
||||
var y_resv_lo_press = props.globals.initNode("/systems/hydraulic/yellow-resv-lo-air-press", 0, "BOOL");
|
||||
var b_resv_lo_press = props.globals.initNode("/systems/hydraulic/blue-resv-lo-air-press", 0, "BOOL");
|
||||
var g_resv_lo_press = props.globals.initNode("/systems/hydraulic/green-resv-lo-air-press", 0, "BOOL");
|
||||
|
||||
var canvas_lowerECAMPageHyd =
|
||||
{
|
||||
new: func(svg,name) {
|
||||
|
@ -46,22 +37,33 @@ var canvas_lowerECAMPageHyd =
|
|||
# init
|
||||
|
||||
obj.update_items = [
|
||||
props.UpdateManager.FromHashValue("blue", 25, func(val) {
|
||||
if (val >= 100) {
|
||||
obj["Press-Blue"].setText(sprintf("%s", math.round(val, 50)));
|
||||
} else {
|
||||
obj["Press-Blue"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val > 1450) {
|
||||
obj["Blue-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Blue"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Blue-label"].setColor(0.8078,0.8039,0.8078);
|
||||
props.UpdateManager.FromHashList(["blue", "dcEssShed"], 25, func(val) {
|
||||
if (val.dcEssShed >= 25) {
|
||||
if (val.blue >= 100) {
|
||||
obj["Press-Blue"].setText(sprintf("%s", math.round(val.blue, 50)));
|
||||
} else {
|
||||
obj["Press-Blue"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val.blue > 1450) {
|
||||
obj["Blue-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Blue-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Blue"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Blue-label"].setColor(0.8078,0.8039,0.8078);
|
||||
} else {
|
||||
obj["Blue-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Blue-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Blue-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Blue-Line-Bottom"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Blue-Indicator"].setColor(0.7333,0.3803,0);
|
||||
obj["Press-Blue"].setColor(0.7333,0.3803,0);
|
||||
obj["Blue-label"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
} else {
|
||||
obj["Press-Blue"].setText(sprintf("%s", "XX"));
|
||||
obj["Blue-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Blue-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Blue-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
|
@ -71,23 +73,35 @@ var canvas_lowerECAMPageHyd =
|
|||
obj["Blue-label"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("yellow", 25, func(val) {
|
||||
if (val >= 100) {
|
||||
obj["Press-Yellow"].setText(sprintf("%s", math.round(val, 50)));
|
||||
} else {
|
||||
obj["Press-Yellow"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val > 1450) {
|
||||
obj["Yellow-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Middle"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Yellow"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-label"].setColor(0.8078,0.8039,0.8078);
|
||||
props.UpdateManager.FromHashList(["yellow", "dcEssShed"], 25, func(val) {
|
||||
if (val.dcEssShed >= 25) {
|
||||
if (val.yellow >= 100) {
|
||||
obj["Press-Yellow"].setText(sprintf("%s", math.round(val.yellow, 50)));
|
||||
} else {
|
||||
obj["Press-Yellow"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val.yellow > 1450) {
|
||||
obj["Yellow-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Middle"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Yellow"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Yellow-label"].setColor(0.8078,0.8039,0.8078);
|
||||
} else {
|
||||
obj["Yellow-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Yellow-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Yellow-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Yellow-Line-Middle"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Yellow-Line-Bottom"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Yellow-Indicator"].setColor(0.7333,0.3803,0);
|
||||
obj["Press-Yellow"].setColor(0.7333,0.3803,0);
|
||||
obj["Yellow-label"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
} else {
|
||||
obj["Press-Yellow"].setText(sprintf("%s", "XX"));
|
||||
obj["Yellow-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Yellow-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Yellow-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
|
@ -98,23 +112,35 @@ var canvas_lowerECAMPageHyd =
|
|||
obj["Yellow-label"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("green", 25, func(val) {
|
||||
if (val >= 100) {
|
||||
obj["Press-Green"].setText(sprintf("%s", math.round(val, 50)));
|
||||
} else {
|
||||
obj["Press-Green"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val > 1450) {
|
||||
obj["Green-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Middle"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Green"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Green-label"].setColor(0.8078,0.8039,0.8078);
|
||||
props.UpdateManager.FromHashList(["green", "dcEssShed"], 25, func(val) {
|
||||
if (val.dcEssShed) {
|
||||
if (val.green >= 100) {
|
||||
obj["Press-Green"].setText(sprintf("%s", math.round(val.green, 50)));
|
||||
} else {
|
||||
obj["Press-Green"].setText(sprintf("%s", 0));
|
||||
}
|
||||
|
||||
if (val.green > 1450) {
|
||||
obj["Green-Line"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Top"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Middle"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Line-Bottom"].setColorFill(0.0509,0.7529,0.2941);
|
||||
obj["Green-Indicator"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Press-Green"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["Green-label"].setColor(0.8078,0.8039,0.8078);
|
||||
} else {
|
||||
obj["Green-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Green-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Green-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Green-Line-Middle"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Green-Line-Bottom"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Green-Indicator"].setColor(0.7333,0.3803,0);
|
||||
obj["Press-Green"].setColor(0.7333,0.3803,0);
|
||||
obj["Green-label"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
} else {
|
||||
obj["Press-Green"].setText(sprintf("%s", "XX"));
|
||||
obj["Green-Line"].setColor(0.7333,0.3803,0);
|
||||
obj["Green-Line"].setColorFill(0.7333,0.3803,0);
|
||||
obj["Green-Line-Top"].setColorFill(0.7333,0.3803,0);
|
||||
|
@ -514,14 +540,14 @@ var canvas_lowerECAMPageHyd =
|
|||
};
|
||||
|
||||
var input = {
|
||||
hydBlueResvOvht: "/systems/hydraulic/blue-resv-ovht",
|
||||
hydGreenResvOvht: "/systems/hydraulic/green-resv-ovht",
|
||||
hydYellowResvOvht: "/systems/hydraulic/yellow-resv-ovht",
|
||||
hydBlueResvLoPrs: "/systems/hydraulic/blue-resv-lo-air-press",
|
||||
hydGreenResvLoPrs: "/systems/hydraulic/green-resv-lo-air-press",
|
||||
hydYellowResvLoPrs: "/systems/hydraulic/yellow-resv-lo-air-press",
|
||||
hydYellowElecPumpOvht: "/systems/hydraulic/elec-pump-yellow-ovht",
|
||||
hydBlueElecPumpOvht: "/systems/hydraulic/elec-pump-blue-ovht",
|
||||
hydBlueResvOvht: "/systems/hydraulic/relays/blue-reservoir-overheat",
|
||||
hydGreenResvOvht: "/systems/hydraulic/relays/green-reservoir-overheat",
|
||||
hydYellowResvOvht: "/systems/hydraulic/relays/yellow-reservoir-overheat",
|
||||
hydBlueResvLoPrs: "/systems/failures/hydraulic/blue-reservoir-air-press-lo",
|
||||
hydGreenResvLoPrs: "/systems/failures/hydraulic/green-reservoir-air-press-lo",
|
||||
hydYellowResvLoPrs: "/systems/failures/hydraulic/yellow-reservoir-air-press-lo",
|
||||
hydBlueElecPumpOvht: "/systems/failures/hydraulic/blue-elec-ovht",
|
||||
hydYellowElecPumpOvht: "/systems/failures/hydraulic/yellow-elec-ovht",
|
||||
hydRATPosition: "/systems/hydraulic/sources/rat/position",
|
||||
hydGreenFireValve: "/systems/hydraulic/sources/green-edp/fire-valve",
|
||||
hydYellowFireValve: "/systems/hydraulic/sources/yellow-edp/fire-valve",
|
||||
|
@ -531,7 +557,7 @@ var input = {
|
|||
hydYellowEDPPumpSwitch: "/controls/hydraulic/switches/yellow-edp",
|
||||
hydPTUSwitch: "/controls/hydraulic/switches/ptu",
|
||||
hydPTUFault: "/systems/failures/hydraulic/ptu",
|
||||
hydPTUActive: "/systems/hydraulic/sources/ptu/ptu-hydraulic-condition",
|
||||
hydPTUActive: "/systems/hydraulic/sources/ptu/ptu-loop-sound-cmd",
|
||||
hydPTUDiff: "/systems/hydraulic/yellow-psi-diff",
|
||||
hydBlueQTY: "/systems/hydraulic/blue-qty",
|
||||
hydGreenQTY: "/systems/hydraulic/green-qty",
|
||||
|
|
|
@ -80,9 +80,6 @@ var mcdu1_lgt = props.globals.getNode("/controls/lighting/DU/mcdu1", 1);
|
|||
var mcdu2_lgt = props.globals.getNode("/controls/lighting/DU/mcdu2", 1);
|
||||
var acType = props.globals.getNode("/MCDUC/type", 1);
|
||||
var engType = props.globals.getNode("/MCDUC/eng", 1);
|
||||
var database1 = props.globals.getNode("/FMGC/internal/navdatabase", 1);
|
||||
var database2 = props.globals.getNode("/FMGC/internal/navdatabase2", 1);
|
||||
var databaseCode = props.globals.getNode("/FMGC/internal/navdatabasecode", 1);
|
||||
|
||||
# INT-A
|
||||
var ADIRSMCDUBTN = props.globals.getNode("/controls/adirs/mcducbtn", 1);
|
||||
|
@ -2133,9 +2130,9 @@ var canvas_MCDU_base = {
|
|||
}
|
||||
|
||||
me["Simple_L1"].setText(sprintf("%s", engType.getValue()));
|
||||
me["Simple_L2"].setText(sprintf("%s", " " ~ database1.getValue()));
|
||||
me["Simple_L3"].setText(sprintf("%s", " " ~ database2.getValue()));
|
||||
me["Simple_R2"].setText(sprintf("%s", databaseCode.getValue() ~ " "));
|
||||
me["Simple_L2"].setText(" " ~ fmgc.navDataBase.currentDate);
|
||||
me["Simple_L3"].setText(" " ~ fmgc.navDataBase.standbyDate);
|
||||
me["Simple_R2"].setText(fmgc.navDataBase.currentCode);
|
||||
|
||||
if (fmgc.WaypointDatabase.getCount() >= 1) {
|
||||
me["Simple_R4"].show();
|
||||
|
@ -5225,6 +5222,12 @@ var canvas_MCDU_base = {
|
|||
|
||||
me.colorRight(myVertRev[i].R1[2],myVertRev[i].R2[2],myVertRev[i].R3[2],myVertRev[i].R4[2],myVertRev[i].R5[2],myVertRev[i].R6[2]);
|
||||
}
|
||||
|
||||
if (myVertRev[i] != nil and (myVertRev[i].type == 1 and fmgc.FMGCInternal.desSpdLimSet) or (myVertRev[i].type != 1 and fmgc.FMGCInternal.clbSpdLimSet)) {
|
||||
me["Simple_L2"].setFontSize(normal);
|
||||
} else {
|
||||
me["Simple_L2"].setFontSize(small);
|
||||
}
|
||||
pageSwitch[i].setBoolValue(1);
|
||||
}
|
||||
} else if (page == "DEPARTURE") {
|
||||
|
|
|
@ -25,7 +25,7 @@ var new = func(layer) {
|
|||
map: layer.map,
|
||||
listeners: [],
|
||||
};
|
||||
layer.searcher._equals = func(l,r) 0; # TODO: create model objects instead?
|
||||
layer.searcher._equals = func(l,r) return (l == r);
|
||||
append(m.listeners, setlistener(layer.options.active_node, func m.layer.update() ), setlistener(layer.options.wp_num, func m.layer.update() ));
|
||||
m.addVisibilityListener();
|
||||
var driver = opt_member(m.layer.options, 'route_driver');
|
||||
|
|
|
@ -8,57 +8,69 @@
|
|||
|
||||
<!-- ANIMATIONS -->
|
||||
|
||||
<!-- No button lights without power! -->
|
||||
<!-- Button lights 115 mA, 5 VAC on BRT setting -->
|
||||
<!-- 31LP AC ESS SHED 801XP 5VAC transformer -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ACPack1Btn1F</object-name>
|
||||
<object-name>ACPack1Btn2O</object-name>
|
||||
<object-name>ACPack2Btn1F</object-name>
|
||||
<object-name>ACPack2Btn2O</object-name>
|
||||
<object-name>ADR1Btn1F</object-name>
|
||||
<object-name>ADR1Btn2O</object-name>
|
||||
<object-name>ADR2Btn1F</object-name>
|
||||
<object-name>ADR2Btn2O</object-name>
|
||||
<object-name>ADR3Btn1F</object-name>
|
||||
<object-name>ADR3Btn2O</object-name>
|
||||
<object-name>BatteryBtn11F</object-name>
|
||||
<object-name>BatteryBtn21F</object-name>
|
||||
<object-name>BusTieBtn2O</object-name>
|
||||
<object-name>DitchBtn2O</object-name>
|
||||
<object-name>EmerExtLtBtn2O</object-name>
|
||||
<object-name>Eng1AntiIceBtn1F</object-name>
|
||||
<object-name>Eng1AntiIceBtn2O</object-name>
|
||||
<object-name>Eng2AntiIceBtn1F</object-name>
|
||||
<object-name>Eng2AntiIceBtn2O</object-name>
|
||||
<object-name>ExtPwrBtn2O</object-name>
|
||||
<object-name>IR1Btn1F</object-name>
|
||||
<object-name>IR1Btn2O</object-name>
|
||||
<object-name>IR2Btn1F</object-name>
|
||||
<object-name>IR2Btn2O</object-name>
|
||||
<object-name>IR3Btn1F</object-name>
|
||||
<object-name>IR3Btn2O</object-name>
|
||||
<object-name>AftCargoIsoBtn1F</object-name>
|
||||
<object-name>AftCargoIsoBtn2O</object-name>
|
||||
<object-name>APUBleedBtn1F</object-name>
|
||||
<object-name>APUBleedBtn2O</object-name>
|
||||
<object-name>BlueElecPump1F</object-name>
|
||||
<object-name>BlueElecPump2O</object-name>
|
||||
<object-name>CargoHotAirBtn1F</object-name>
|
||||
<object-name>CargoHotAirBtn2O</object-name>
|
||||
<object-name>CrewOxyBtn2O</object-name>
|
||||
<object-name>GalleyPwrBtn1F</object-name>
|
||||
<object-name>GalleyPwrBtn2O</object-name>
|
||||
<object-name>Gen1LineBtn1S</object-name>
|
||||
<object-name>Gen1LineBtn2O</object-name>
|
||||
<object-name>FuelXfeedBtn1O</object-name>
|
||||
<object-name>FuelXfeedBtn2O</object-name>
|
||||
<object-name>LFuelTank1Btn1F</object-name>
|
||||
<object-name>LFuelTank1Btn2O</object-name>
|
||||
<object-name>PassOxyInd1S</object-name>
|
||||
<object-name>RamAirBtn2O</object-name>
|
||||
<object-name>RFuelTank1Btn1F</object-name>
|
||||
<object-name>RFuelTank1Btn2O</object-name>
|
||||
<object-name>WingAntiIceBtn1F</object-name>
|
||||
<object-name>WingAntiIceBtn2O</object-name>
|
||||
<object-name>VentBlowBtn1F</object-name>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>5</value>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 35LP AC ESS SHED 801XP 5VAC transformer
|
||||
BACKUP 901XP STAT INV
|
||||
-->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ACPack1Btn1F</object-name>
|
||||
<object-name>ACPack1Btn2O</object-name>
|
||||
<object-name>APUFireAgtBtn1S</object-name>
|
||||
<object-name>APUFireAgtBtn2D</object-name>
|
||||
<object-name>APUGenBtn1F</object-name>
|
||||
<object-name>APUGenBtn2O</object-name>
|
||||
<object-name>APUMasterBtn1F</object-name>
|
||||
<object-name>APUMasterBtn2O</object-name>
|
||||
<object-name>APUStartBtn1A</object-name>
|
||||
<object-name>APUStartBtn2O</object-name>
|
||||
<object-name>APUFireAgtBtn1S</object-name>
|
||||
<object-name>APUFireAgtBtn2D</object-name>
|
||||
<object-name>BatteryBtn11F</object-name>
|
||||
<object-name>BatteryBtn21F</object-name>
|
||||
<object-name>BatteryBtn12O</object-name>
|
||||
<object-name>BatteryBtn22O</object-name>
|
||||
<object-name>BusTieBtn2O</object-name>
|
||||
<object-name>CabinPressModeBtn1F</object-name>
|
||||
<object-name>CabinPressModeBtn2M</object-name>
|
||||
<object-name>DitchBtn2O</object-name>
|
||||
<object-name>ELAC1Btn1F</object-name>
|
||||
<object-name>ELAC1Btn2O</object-name>
|
||||
<object-name>EmerCallBtn1C</object-name>
|
||||
<object-name>EmerCallBtn2O</object-name>
|
||||
<object-name>EmerExtLtBtn2O</object-name>
|
||||
<object-name>Eng1FireAgt1Btn1S</object-name>
|
||||
<object-name>Eng1FireAgt1Btn2D</object-name>
|
||||
<object-name>Eng2FireAgt1Btn1S</object-name>
|
||||
|
@ -67,71 +79,138 @@
|
|||
<object-name>Eng1FireAgt2Btn2D</object-name>
|
||||
<object-name>Eng2FireAgt2Btn1S</object-name>
|
||||
<object-name>Eng2FireAgt2Btn2D</object-name>
|
||||
<object-name>ELAC1Btn1F</object-name>
|
||||
<object-name>ELAC1Btn2O</object-name>
|
||||
<object-name>FAC1Btn1F</object-name>
|
||||
<object-name>FAC1Btn2O</object-name>
|
||||
<object-name>Gen1Btn1F</object-name>
|
||||
<object-name>Gen1Btn2O</object-name>
|
||||
<object-name>Gen2Btn1F</object-name>
|
||||
<object-name>Gen2Btn2O</object-name>
|
||||
<object-name>SEC1Btn1F</object-name>
|
||||
<object-name>SEC1Btn2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<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>
|
||||
<object-name>AftCargoSmkBtn2D</object-name>
|
||||
<object-name>BlueElecPump1F</object-name>
|
||||
<object-name>BlueElecPump2O</object-name>
|
||||
<object-name>CabinPressModeBtn1F</object-name>
|
||||
<object-name>CabinPressModeBtn2M</object-name>
|
||||
<object-name>CabinFansBtn2O</object-name>
|
||||
<object-name>CargoHotAirBtn1F</object-name>
|
||||
<object-name>CargoHotAirBtn2O</object-name>
|
||||
<object-name>CFuelTank1Btn1F</object-name>
|
||||
<object-name>CFuelTank1Btn2O</object-name>
|
||||
<object-name>CFuelTank2Btn1F</object-name>
|
||||
<object-name>CFuelTank2Btn2O</object-name>
|
||||
<object-name>CrewOxyBtn2O</object-name>
|
||||
<object-name>ELAC2Btn1F</object-name>
|
||||
<object-name>ELAC2Btn2O</object-name>
|
||||
<object-name>EmerCallBtn1C</object-name>
|
||||
<object-name>EmerCallBtn2O</object-name>
|
||||
<object-name>EmerGenInd1F</object-name>
|
||||
<object-name>Eng1ManStartBtn2O</object-name>
|
||||
<object-name>Eng2ManStartBtn2O</object-name>
|
||||
<object-name>EvacCommandBtn1E</object-name>
|
||||
<object-name>EvacCommandBtn2O</object-name>
|
||||
<object-name>FAC1Btn1F</object-name>
|
||||
<object-name>FAC1Btn2O</object-name>
|
||||
<object-name>Gen1Btn2O</object-name>
|
||||
<object-name>Gen2Btn2O</object-name>
|
||||
<object-name>IDG1Btn1F</object-name>
|
||||
<object-name>IDG2Btn1F</object-name>
|
||||
<object-name>SEC1Btn1F</object-name>
|
||||
<object-name>SEC1Btn2O</object-name>
|
||||
<object-name>VentBlowBtn1F</object-name>
|
||||
<object-name>VentBlowBtn2O</object-name>
|
||||
<object-name>VentExtractBtn1F</object-name>
|
||||
<object-name>VentExtractBtn2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- Special for EXT pwr AVAIL light -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ExtPwrBtn1A</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</and>
|
||||
<and>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/sources/ext/output-volt</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
<not>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</not>
|
||||
</and>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 36LP AC 2 202XP 5VAC transformer -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ACESSFeedBtn1F</object-name>
|
||||
<object-name>ACESSFeedBtn2A</object-name>
|
||||
<object-name>ACPack2Btn1F</object-name>
|
||||
<object-name>ACPack2Btn2O</object-name>
|
||||
<object-name>CFuelTank1Btn1F</object-name>
|
||||
<object-name>CFuelTank1Btn2O</object-name>
|
||||
<object-name>ELAC2Btn1F</object-name>
|
||||
<object-name>ELAC2Btn2O</object-name>
|
||||
<object-name>Eng2AntiIceBtn1F</object-name>
|
||||
<object-name>Eng2AntiIceBtn2O</object-name>
|
||||
<object-name>Eng2BleedBtn1F</object-name>
|
||||
<object-name>Eng2BleedBtn2O</object-name>
|
||||
<object-name>FAC2Btn1F</object-name>
|
||||
<object-name>FAC2Btn2O</object-name>
|
||||
<object-name>LFuelTank2Btn1F</object-name>
|
||||
<object-name>LFuelTank2Btn2O</object-name>
|
||||
<object-name>PrbWinHeatBtn2O</object-name>
|
||||
<object-name>PTU1F</object-name>
|
||||
<object-name>PTU2O</object-name>
|
||||
<object-name>RFuelTank2Btn1F</object-name>
|
||||
<object-name>RFuelTank2Btn2O</object-name>
|
||||
<object-name>SEC2Btn1F</object-name>
|
||||
<object-name>SEC2Btn2O</object-name>
|
||||
<object-name>SEC3Btn1F</object-name>
|
||||
<object-name>SEC3Btn2O</object-name>
|
||||
<object-name>YellowElecPump1F</object-name>
|
||||
<object-name>YellowElecPump2O</object-name>
|
||||
<object-name>YellowEngPump1F</object-name>
|
||||
<object-name>YellowEngPump2O</object-name>
|
||||
<condition>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-2</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<!-- 37LP AC 1 103XP 5VAC transformer -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>ADR1Btn1F</object-name>
|
||||
<object-name>ADR1Btn2O</object-name>
|
||||
<object-name>ADR2Btn1F</object-name>
|
||||
<object-name>ADR2Btn2O</object-name>
|
||||
<object-name>ADR3Btn1F</object-name>
|
||||
<object-name>ADR3Btn2O</object-name>
|
||||
<object-name>AftCargoSmkBtn1S</object-name>
|
||||
<object-name>AftCargoSmkBtn2D</object-name>
|
||||
<object-name>CabinFansBtn2O</object-name>
|
||||
<object-name>CFuelTank2Btn1F</object-name>
|
||||
<object-name>CFuelTank2Btn2O</object-name>
|
||||
<object-name>EmerGenInd1F</object-name>
|
||||
<object-name>Eng1AntiIceBtn1F</object-name>
|
||||
<object-name>Eng1AntiIceBtn2O</object-name>
|
||||
<object-name>Eng1BleedBtn1F</object-name>
|
||||
<object-name>Eng1BleedBtn2O</object-name>
|
||||
<object-name>ExtPwrBtn2O</object-name>
|
||||
<object-name>FuelModeBtn1F</object-name>
|
||||
<object-name>FuelModeBtn2O</object-name>
|
||||
<object-name>FuelXfeedBtn1O</object-name>
|
||||
<object-name>FuelXfeedBtn2O</object-name>
|
||||
<object-name>FwdCargoSmkBtn1S</object-name>
|
||||
<object-name>FwdCargoSmkBtn2D</object-name>
|
||||
<object-name>GalleyPwrBtn1F</object-name>
|
||||
<object-name>GalleyPwrBtn2O</object-name>
|
||||
<object-name>Gen1LineBtn1S</object-name>
|
||||
<object-name>Gen1LineBtn2O</object-name>
|
||||
<object-name>GPWSBtn1F</object-name>
|
||||
<object-name>GPWSBtn2O</object-name>
|
||||
<object-name>GPWSFlpBtn2O</object-name>
|
||||
|
@ -143,60 +222,18 @@
|
|||
<object-name>GreenEngPump2O</object-name>
|
||||
<object-name>HotAirBtn1F</object-name>
|
||||
<object-name>HotAirBtn2O</object-name>
|
||||
<object-name>IDG1Btn1F</object-name>
|
||||
<object-name>IDG2Btn1F</object-name>
|
||||
<object-name>LFuelTank1Btn1F</object-name>
|
||||
<object-name>LFuelTank1Btn2O</object-name>
|
||||
<object-name>LFuelTank2Btn1F</object-name>
|
||||
<object-name>LFuelTank2Btn2O</object-name>
|
||||
<object-name>PassOxyInd1S</object-name>
|
||||
<object-name>PrbWinHeatBtn2O</object-name>
|
||||
<object-name>PTU1F</object-name>
|
||||
<object-name>PTU2O</object-name>
|
||||
<object-name>RamAirBtn2O</object-name>
|
||||
<object-name>IR1Btn1F</object-name>
|
||||
<object-name>IR1Btn2O</object-name>
|
||||
<object-name>IR2Btn1F</object-name>
|
||||
<object-name>IR2Btn2O</object-name>
|
||||
<object-name>IR3Btn1F</object-name>
|
||||
<object-name>IR3Btn2O</object-name>
|
||||
<object-name>RcdrGndCtlBtn2O</object-name>
|
||||
<object-name>RFuelTank1Btn1F</object-name>
|
||||
<object-name>RFuelTank1Btn2O</object-name>
|
||||
<object-name>RFuelTank2Btn1F</object-name>
|
||||
<object-name>RFuelTank2Btn2O</object-name>
|
||||
<object-name>SEC2Btn1F</object-name>
|
||||
<object-name>SEC2Btn2O</object-name>
|
||||
<object-name>SEC3Btn1F</object-name>
|
||||
<object-name>SEC3Btn2O</object-name>
|
||||
<object-name>VentBlowBtn2O</object-name>
|
||||
<object-name>VentExtractBtn1F</object-name>
|
||||
<object-name>VentExtractBtn2O</object-name>
|
||||
<object-name>YellowElecPump1F</object-name>
|
||||
<object-name>YellowElecPump2O</object-name>
|
||||
<object-name>YellowEngPump1F</object-name>
|
||||
<object-name>YellowEngPump2O</object-name>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>Eng1BleedBtn1F</object-name>
|
||||
<object-name>Eng1BleedBtn2O</object-name>
|
||||
<object-name>Eng2BleedBtn1F</object-name>
|
||||
<object-name>Eng2BleedBtn2O</object-name>
|
||||
<object-name>APUBleedBtn1F</object-name>
|
||||
<object-name>APUBleedBtn2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-2</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess-shed</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-1</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -224,22 +261,6 @@
|
|||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>material</type>
|
||||
<object-name>Battery-volt</object-name>
|
||||
<object-name>Battery-volt-test</object-name>
|
||||
<emission>
|
||||
<red>1</red>
|
||||
<green>1</green>
|
||||
<blue>1</blue>
|
||||
</emission>
|
||||
<diffuse>
|
||||
<red>1</red>
|
||||
<green>1</green>
|
||||
<blue>1</blue>
|
||||
</diffuse>
|
||||
</animation>
|
||||
|
||||
<!-- Ventilation -->
|
||||
<animation>
|
||||
<type>select</type>
|
||||
|
@ -1988,12 +2009,6 @@
|
|||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/hydraulic/switches/green-edp</property>
|
||||
</binding>
|
||||
|
@ -2009,20 +2024,8 @@
|
|||
<object-name>GreenEngPump1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>systems/hydraulic/lights/green-edp-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/green-edp</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>systems/hydraulic/lights/green-edp-fault</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2032,14 +2035,10 @@
|
|||
<object-name>GreenEngPump2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<not>
|
||||
<property>controls/hydraulic/switches/green-edp</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</not>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2156,12 +2155,6 @@
|
|||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/hydraulic/switches/blue-elec</property>
|
||||
</binding>
|
||||
|
@ -2177,20 +2170,8 @@
|
|||
<object-name>BlueElecPump1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>systems/hydraulic/lights/blue-elec-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/blue-elec</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>systems/hydraulic/lights/blue-elec-fault</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2200,14 +2181,10 @@
|
|||
<object-name>BlueElecPump2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<not>
|
||||
<property>controls/hydraulic/switches/blue-elec</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</not>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2223,12 +2200,6 @@
|
|||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/hydraulic/switches/ptu</property>
|
||||
</binding>
|
||||
|
@ -2244,20 +2215,8 @@
|
|||
<object-name>PTU1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>systems/hydraulic/lights/ptu-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/ptu</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>systems/hydraulic/lights/ptu-fault</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2267,14 +2226,10 @@
|
|||
<object-name>PTU2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<not>
|
||||
<property>controls/hydraulic/switches/ptu</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</not>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2290,12 +2245,6 @@
|
|||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/hydraulic/switches/yellow-edp</property>
|
||||
</binding>
|
||||
|
@ -2311,20 +2260,8 @@
|
|||
<object-name>YellowEngPump1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>systems/hydraulic/lights/yellow-edp-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/yellow-edp</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>systems/hydraulic/lights/yellow-edp-fault</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2334,14 +2271,10 @@
|
|||
<object-name>YellowEngPump2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<not>
|
||||
<property>controls/hydraulic/switches/yellow-edp</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</not>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2357,12 +2290,6 @@
|
|||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/hydraulic/switches/yellow-elec</property>
|
||||
</binding>
|
||||
|
@ -2378,20 +2305,8 @@
|
|||
<object-name>YellowElecPump1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>systems/hydraulic/lights/yellow-elec-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/yellow-elec</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>systems/hydraulic/lights/yellow-elec-fault</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -2401,14 +2316,8 @@
|
|||
<object-name>YellowElecPump2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/hydraulic/switches/yellow-elec</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<property>controls/hydraulic/switches/yellow-elec</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -3043,22 +2952,16 @@
|
|||
<type>select</type>
|
||||
<object-name>BatteryBtn12O</object-name>
|
||||
<condition>
|
||||
<and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/electrical/switches/bat-1</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than>
|
||||
</and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/electrical/switches/bat-1</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -3110,22 +3013,16 @@
|
|||
<type>select</type>
|
||||
<object-name>BatteryBtn22O</object-name>
|
||||
<condition>
|
||||
<and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/electrical/switches/bat-2</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<greater-than>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than>
|
||||
</and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/electrical/switches/bat-2</property>
|
||||
<value>0</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -3271,16 +3168,19 @@
|
|||
<type>select</type>
|
||||
<object-name>Gen1Btn1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>systems/electrical/light/gen-1-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>systems/electrical/light/gen-1-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<property>/systems/electrical/sources/idg-1/gcu-1-powered</property>
|
||||
</and>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -3515,18 +3415,10 @@
|
|||
<property>controls/electrical/ground-cart</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</and>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -3581,16 +3473,19 @@
|
|||
<type>select</type>
|
||||
<object-name>Gen2Btn1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>systems/electrical/light/gen-2-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<and>
|
||||
<or>
|
||||
<equals>
|
||||
<property>systems/electrical/light/gen-2-fault</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
<property>/systems/electrical/sources/idg-2/gcu-2-powered</property>
|
||||
</and>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -5291,6 +5186,7 @@
|
|||
<object-name>LandingLtLSwtch</object-name>
|
||||
<action>
|
||||
<button>0</button>
|
||||
<button>3</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
|
@ -5306,6 +5202,7 @@
|
|||
</action>
|
||||
<action>
|
||||
<button>1</button>
|
||||
<button>4</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
|
@ -5327,6 +5224,7 @@
|
|||
<object-name>LandingLtRSwtch</object-name>
|
||||
<action>
|
||||
<button>0</button>
|
||||
<button>3</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
|
@ -5342,6 +5240,7 @@
|
|||
</action>
|
||||
<action>
|
||||
<button>1</button>
|
||||
<button>4</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
|
@ -6657,10 +6556,28 @@
|
|||
<type>material</type>
|
||||
<object-name>Eng1FireBtn</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<property>systems/fire/engine1/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<and>
|
||||
<or>
|
||||
<property>systems/fire/engine1/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<or>
|
||||
<!-- 35LP -->
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<!-- 37LP -->
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-1</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<emission>
|
||||
<red>1.0</red>
|
||||
|
@ -7004,10 +6921,28 @@
|
|||
<type>material</type>
|
||||
<object-name>APUFireBtn</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<property>systems/fire/apu/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<and>
|
||||
<or>
|
||||
<property>systems/fire/apu/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<or>
|
||||
<!-- 35LP -->
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<!-- 37LP -->
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-1</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<emission>
|
||||
<red>1.0</red>
|
||||
|
@ -7157,10 +7092,28 @@
|
|||
<type>material</type>
|
||||
<object-name>Eng2FireBtn</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<property>systems/fire/engine2/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<and>
|
||||
<or>
|
||||
<property>systems/fire/engine2/warning-active</property>
|
||||
<property>controls/switches/annun-test</property>
|
||||
</or>
|
||||
<or>
|
||||
<!-- 35LP -->
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess-shed</property>
|
||||
<value>110</value>
|
||||
</greater-than-equals>
|
||||
<!-- 37LP -->
|
||||
<greater-than>
|
||||
<property>/systems/electrical/bus/ac-1</property>
|
||||
<value>110</value>
|
||||
</greater-than>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<emission>
|
||||
<red>1.0</red>
|
||||
|
|
|
@ -779,9 +779,10 @@ var canvas_pfd = {
|
|||
"FMA_athr_box","FMA_Middle1","FMA_Middle2","ALPHA_MAX","ALPHA_PROT","ALPHA_SW","ALPHA_bars","VLS_min","ASI_max","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_trend_up","ASI_trend_down","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP",
|
||||
"ASI_decimal_DN","ASI_index","ASI_error","ASI_group","ASI_frame","AI_center","AI_bank","AI_bank_lim","AI_bank_lim_X","AI_pitch_lim","AI_pitch_lim_X","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading",
|
||||
"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_digit_UP_metric","ALT_error","ALT_neg","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","FPV","spdLimError","vsFMArate","tailstrikeInd","Metric_box","Metric_letter","Metric_cur_alt"];
|
||||
"ALT_digit_DN","ALT_digit_UP_metric","ALT_error","ALT_neg","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","FPV","spdLimError","vsFMArate","tailstrikeInd",
|
||||
"Metric_box","Metric_letter","Metric_cur_alt","ASI_buss","ASI_buss_ref","ASI_buss_ref_blue"];
|
||||
},
|
||||
getKeysTest: func() {
|
||||
return ["Test_white","Test_text"];
|
||||
|
@ -791,6 +792,7 @@ var canvas_pfd = {
|
|||
},
|
||||
aoa: 0,
|
||||
showMetricAlt: 0,
|
||||
ASItrendIsShown: 0,
|
||||
update: func(notification) {
|
||||
me.updatePower(notification);
|
||||
|
||||
|
@ -872,6 +874,9 @@ var canvas_pfd = {
|
|||
if (dmc.DMController.DMCs[me.number].outputs[0] != nil) {
|
||||
me.ind_spd = dmc.DMController.DMCs[me.number].outputs[0].getValue();
|
||||
me["ASI_error"].hide();
|
||||
me["ASI_buss"].hide();
|
||||
me["ASI_buss_ref"].hide();
|
||||
me["ASI_buss_ref_blue"].hide();
|
||||
me["ASI_frame"].setColor(1,1,1);
|
||||
me["ASI_group"].show();
|
||||
me["VLS_min"].hide();
|
||||
|
@ -1214,17 +1219,23 @@ var canvas_pfd = {
|
|||
me["ASI_trend_up"].setTranslation(0, math.clamp(me.ASItrend, 0, 50) * -6.6);
|
||||
me["ASI_trend_down"].setTranslation(0, math.clamp(me.ASItrend, -50, 0) * -6.6);
|
||||
|
||||
if (me.ASItrend >= 2) {
|
||||
me["ASI_trend_up"].show();
|
||||
me["ASI_trend_down"].hide();
|
||||
} else if (me.ASItrend <= -2) {
|
||||
me["ASI_trend_down"].show();
|
||||
me["ASI_trend_up"].hide();
|
||||
if (notification.fac1 or notification.fac2) {
|
||||
if (me.ASItrend >= 2 or (me.ASItrendIsShown and me.ASItrend >= 1)) {
|
||||
me["ASI_trend_up"].show();
|
||||
me["ASI_trend_down"].hide();
|
||||
me.ASItrendIsShown = 1;
|
||||
} else if (me.ASItrend <= -2 or (me.ASItrendIsShown and me.ASItrend <= -1)) {
|
||||
me["ASI_trend_up"].hide();
|
||||
me["ASI_trend_down"].show();
|
||||
me.ASItrendIsShown = 1;
|
||||
} else {
|
||||
me["ASI_trend_up"].hide();
|
||||
me["ASI_trend_down"].hide();
|
||||
}
|
||||
} else {
|
||||
me["ASI_trend_up"].hide();
|
||||
me["ASI_trend_down"].hide();
|
||||
}
|
||||
|
||||
|
||||
if (-notification.agl >= -565 and -notification.agl <= 565) {
|
||||
me["ground_ref"].show();
|
||||
|
@ -1233,7 +1244,19 @@ var canvas_pfd = {
|
|||
}
|
||||
} else {
|
||||
me["ASI_group"].hide();
|
||||
me["ASI_error"].show();
|
||||
if (!systems.ADIRS.Operating.adr[0].getValue() and !systems.ADIRS.Operating.adr[1].getValue() and !systems.ADIRS.Operating.adr[2].getValue()) {
|
||||
me["ASI_buss"].show();
|
||||
me["ASI_buss_ref"].show();
|
||||
me["ASI_buss_ref_blue"].show();
|
||||
me["ASI_buss"].setTranslation(0, notification.bussTranslate);
|
||||
me["ASI_buss_ref_blue"].setTranslation(0, notification.bussTranslate);
|
||||
me["ASI_error"].hide();
|
||||
} else {
|
||||
me["ASI_buss"].hide();
|
||||
me["ASI_buss_ref"].hide();
|
||||
me["ASI_buss_ref_blue"].hide();
|
||||
me["ASI_error"].show();
|
||||
}
|
||||
me["ASI_frame"].setColor(1,0,0);
|
||||
me["clean_speed"].hide();
|
||||
me["S_target"].hide();
|
||||
|
@ -2032,6 +2055,8 @@ var input = {
|
|||
decel: "/FMGC/internal/decel",
|
||||
radio: "/FMGC/internal/radio",
|
||||
baro: "/FMGC/internal/baro",
|
||||
|
||||
bussTranslate: "/instrumentation/pfd/buss/translate",
|
||||
};
|
||||
|
||||
foreach (var name; keys(input)) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 348 KiB |
|
@ -574,6 +574,61 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(apuFireMaster);
|
||||
}
|
||||
|
||||
if (ADR123Fault.clearFlag == 0 and warningNodes.Logic.adr123Fault.getValue() and phaseVar3 != 4 and phaseVar3 != 8) {
|
||||
ADR123Fault.active = 1;
|
||||
|
||||
if (ADR123FaultAP.clearFlag == 0 and (fmgc.Output.ap1.getBoolValue() or fmgc.Output.ap2.getBoolValue() or fmgc.Output.fd1.getBoolValue() or fmgc.Output.fd2.getBoolValue())) {
|
||||
ADR123FaultAP.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultAP);
|
||||
}
|
||||
|
||||
if (ADR123FaultATHR.clearFlag == 0 and fmgc.Output.athr.getBoolValue()) {
|
||||
ADR123FaultATHR.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultATHR);
|
||||
}
|
||||
|
||||
if (ADR123FaultPRBW.clearFlag == 0) {
|
||||
ADR123FaultPRBW.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultPRBW);
|
||||
}
|
||||
|
||||
if (ADR123FaultADRPB.clearFlag == 0 and (systems.ADIRS.Switches.adrSw[0].getBoolValue() or systems.ADIRS.Switches.adrSw[1].getBoolValue() or systems.ADIRS.Switches.adrSw[2].getBoolValue())) {
|
||||
ADR123FaultADRPB.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultADRPB);
|
||||
}
|
||||
|
||||
if (ADR123FaultSPD.clearFlag == 0) {
|
||||
ADR123FaultSPD.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultSPD);
|
||||
}
|
||||
|
||||
if (ADR123FaultSTBY.clearFlag == 0) {
|
||||
ADR123FaultSTBY.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultSTBY);
|
||||
}
|
||||
|
||||
if (ADR123FaultPROC.clearFlag == 0) {
|
||||
ADR123FaultPROC.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123FaultPROC);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(ADR123Fault);
|
||||
ECAM_controller.warningReset(ADR123FaultAP);
|
||||
ECAM_controller.warningReset(ADR123FaultATHR);
|
||||
ECAM_controller.warningReset(ADR123FaultPRBW);
|
||||
ECAM_controller.warningReset(ADR123FaultADRPB);
|
||||
ECAM_controller.warningReset(ADR123FaultSPD);
|
||||
ECAM_controller.warningReset(ADR123FaultSTBY);
|
||||
ECAM_controller.warningReset(ADR123FaultPROC);
|
||||
}
|
||||
|
||||
if ((ecamConfigTest.getValue() and (phaseVar3 == 1 or phaseVar3 == 2 or phaseVar3 == 9)) or phaseVar3 == 3 or phaseVar3 == 4) {
|
||||
takeoffConfig = 1;
|
||||
} else {
|
||||
|
@ -626,7 +681,194 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(park_brk_config);
|
||||
}
|
||||
|
||||
if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue()) {
|
||||
if (excessCabAlt.clearFlag == 0 and warningNodes.Logic.excessCabAlt.getValue() == 1 and phaseVar3 == 6) {
|
||||
excessCabAlt.active = 1;
|
||||
|
||||
if (excessCabAltMask.clearFlag == 0 and warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue()) {
|
||||
excessCabAltMask.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMask);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltSigns.clearFlag == 0 and (!pts.Controls.Lighting.noSmokingSign.getValue() or !pts.Controls.Lighting.seatbeltSign.getValue())) {
|
||||
excessCabAltSigns.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
}
|
||||
|
||||
if (excessCabAltEmerD.clearFlag == 0) {
|
||||
excessCabAltEmerD.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
}
|
||||
|
||||
if (excessCabAltDES.clearFlag == 0 and warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue()) {
|
||||
excessCabAltDES.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltDES);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltTHRLVR.clearFlag == 0 and !fmgc.Output.athr.getBoolValue() and warningNodes.Logic.JE1TLAI.getValue() == 0 and warningNodes.Logic.JE2TLAI.getValue() == 0) {
|
||||
excessCabAltTHRLVR.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
}
|
||||
|
||||
if (excessCabAltSPDBRK.clearFlag == 0 and pts.Controls.Flight.speedbrake.getValue() != 1) {
|
||||
excessCabAltSPDBRK.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
}
|
||||
|
||||
if (excessCabAltSPD.clearFlag == 0) {
|
||||
excessCabAltSPD.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
}
|
||||
|
||||
if (excessCabAltENG.clearFlag == 0 and pts.Controls.Engines.startSw.getValue() != 1) {
|
||||
excessCabAltENG.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltENG);
|
||||
}
|
||||
|
||||
if (excessCabAltATC.clearFlag == 0) {
|
||||
excessCabAltATC.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltATC);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
ECAM_controller.warningReset(excessCabAltENG);
|
||||
ECAM_controller.warningReset(excessCabAltATC);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue() and !warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltCAB.clearFlag == 0) {
|
||||
excessCabAltCAB.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltPA.clearFlag == 0) {
|
||||
excessCabAltPA.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
}
|
||||
|
||||
if (excessCabAltXPDR.clearFlag == 0) {
|
||||
excessCabAltXPDR.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
}
|
||||
|
||||
if (excessCabAltMEA.clearFlag == 0) {
|
||||
excessCabAltMEA.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMEA);
|
||||
}
|
||||
|
||||
if (excessCabAltCabAlt.clearFlag == 0) {
|
||||
excessCabAltCabAlt.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCabAlt);
|
||||
}
|
||||
|
||||
if (excessCabAltMasks.clearFlag == 0) {
|
||||
excessCabAltMasks.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMasks);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAlt);
|
||||
ECAM_controller.warningReset(excessCabAltMask);
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
ECAM_controller.warningReset(excessCabAltDES);
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
ECAM_controller.warningReset(excessCabAltENG);
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
ECAM_controller.warningReset(excessCabAltATC);
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
ECAM_controller.warningReset(excessCabAltMEA);
|
||||
ECAM_controller.warningReset(excessCabAltCabAlt);
|
||||
ECAM_controller.warningReset(excessCabAltMasks);
|
||||
}
|
||||
|
||||
if (eng1OilLoPr.clearFlag == 0 and warningNodes.Logic.eng1OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
|
||||
eng1OilLoPr.active = 1;
|
||||
|
||||
if (eng1OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
|
||||
eng1OilLoPrIf.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1OilLoPrIf);
|
||||
}
|
||||
|
||||
if (eng1OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE1TLAI.getValue()) {
|
||||
eng1OilLoPrThrot.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1OilLoPrThrot);
|
||||
}
|
||||
|
||||
if (eng1OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
|
||||
eng1OilLoPrMaster.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1OilLoPrMaster);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1OilLoPr);
|
||||
ECAM_controller.warningReset(eng1OilLoPrIf);
|
||||
ECAM_controller.warningReset(eng1OilLoPrThrot);
|
||||
ECAM_controller.warningReset(eng1OilLoPrMaster);
|
||||
}
|
||||
|
||||
if (eng2OilLoPr.clearFlag == 0 and warningNodes.Logic.eng2OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
|
||||
eng2OilLoPr.active = 1;
|
||||
|
||||
if (eng2OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
|
||||
eng2OilLoPrIf.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2OilLoPrIf);
|
||||
}
|
||||
|
||||
if (eng2OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE2TLAI.getValue()) {
|
||||
eng2OilLoPrThrot.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2OilLoPrThrot);
|
||||
}
|
||||
|
||||
if (eng2OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
|
||||
eng2OilLoPrMaster.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2OilLoPrMaster);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2OilLoPr);
|
||||
ECAM_controller.warningReset(eng2OilLoPrIf);
|
||||
ECAM_controller.warningReset(eng2OilLoPrThrot);
|
||||
ECAM_controller.warningReset(eng2OilLoPrMaster);
|
||||
}
|
||||
|
||||
if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue() == 1) {
|
||||
lrElevFault.active = 1;
|
||||
if (lrElevFaultSpeed.clearFlag == 0) {
|
||||
lrElevFaultSpeed.active = 1;
|
||||
|
@ -829,6 +1071,32 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(lavatorySmokeComm);
|
||||
}
|
||||
|
||||
# CAB PRESS EXESS RESIDUAL PRESS
|
||||
if (excessResidPress.clearFlag == 0 and warningNodes.Logic.excessPress.getValue() == 1 and phaseVar == 10) {
|
||||
if (excessResidPressPack1.clearFlag == 0) {
|
||||
excessResidPressPack1.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessResidPressPack1);
|
||||
}
|
||||
|
||||
if (excessResidPressPack2.clearFlag == 0) {
|
||||
excessResidPressPack2.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessResidPressPack2);
|
||||
}
|
||||
|
||||
if (excessResidPressCabCr.clearFlag == 0) {
|
||||
excessResidPressCabCr.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessResidPressCabCr);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessResidPress);
|
||||
ECAM_controller.warningReset(excessResidPressPack1);
|
||||
ECAM_controller.warningReset(excessResidPressPack2);
|
||||
ECAM_controller.warningReset(excessResidPressCabCr);
|
||||
}
|
||||
|
||||
# ESS on BAT
|
||||
# NEW EMER ELEC CONFIG
|
||||
if (essBusOnBat.clearFlag == 0 and warningNodes.Timers.staticInverter.getValue() == 1 and phaseVar3 >= 5 and phaseVar3 <= 7) {
|
||||
|
@ -977,13 +1245,13 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(hydBYloPrRat);
|
||||
}
|
||||
|
||||
if (hydBYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and systems.HYD.Qty.yellow.getValue() >= 3.5) {
|
||||
if (hydBYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and !systems.HYD.Pump.yellowElecFail.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and !systems.HYD.Fail.yellowReservoirAirPressLow.getBoolValue() and !systems.HYD.Warnings.yellowReservoirOvht.getBoolValue() and !systems.HYD.Warnings.yellowLoLvl.getBoolValue()) {
|
||||
hydBYloPrYElec.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(hydBYloPrYElec);
|
||||
}
|
||||
|
||||
if (hydBYloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 2.4) {
|
||||
if (hydBYloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 1.8 and !systems.HYD.Fail.blueReservoirAirPressLow.getBoolValue() and !systems.HYD.Warnings.blueReservoirOvht.getBoolValue() and !systems.HYD.Warnings.blueLoLvl.getBoolValue()) {
|
||||
hydBYloPrRatOn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(hydBYloPrRatOn);
|
||||
|
@ -1052,7 +1320,7 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(hydGBloPrRat);
|
||||
}
|
||||
|
||||
if (hydGBloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 2.4) {
|
||||
if (hydGBloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 1.8 and !systems.HYD.Fail.blueReservoirAirPressLow.getBoolValue() and !systems.HYD.Warnings.blueReservoirOvht.getBoolValue() and !systems.HYD.Warnings.blueLoLvl.getBoolValue()) {
|
||||
hydGBloPrRatOn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(hydGBloPrRatOn);
|
||||
|
@ -1105,7 +1373,7 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(hydGBloPrFmsPredict);
|
||||
}
|
||||
|
||||
if (hydGYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.greenYellow.getValue()) {
|
||||
if (hydGYloPr.clearFlag == 0 and warningNodes.Logic.greenYellow.getValue()) {
|
||||
hydGYloPr.active = 1;
|
||||
if (hydGYloPrPtu.clearFlag == 0 and systems.HYD.Switch.ptu.getValue() != 0) {
|
||||
hydGYloPrPtu.active = 1;
|
||||
|
@ -1125,7 +1393,7 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(hydGYloPrYEng);
|
||||
}
|
||||
|
||||
if (hydGYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and systems.HYD.Qty.yellow.getValue() >= 3.5) {
|
||||
if (hydGYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and !systems.HYD.Pump.yellowElecFail.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and !systems.HYD.Fail.yellowReservoirAirPressLow.getBoolValue() and !systems.HYD.Warnings.yellowReservoirOvht.getBoolValue() and !systems.HYD.Warnings.yellowLoLvl.getBoolValue()) {
|
||||
hydGYloPrYElec.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(hydGYloPrYElec);
|
||||
|
@ -1294,7 +1562,7 @@ var messages_priority_2 = func {
|
|||
ECAM_controller.warningReset(eng1FailRelight);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.eng1Shutdown.getValue() and eng1ShutDown.clearFlag == 0) {
|
||||
if (warningNodes.Logic.eng1Shutdown.getValue() and !warningNodes.Logic.eng1Fail.getValue() and eng1ShutDown.clearFlag == 0) {
|
||||
eng1ShutDown.active = 1;
|
||||
|
||||
if (phaseVar2 != 4 and phaseVar2 != 5 and systems.fireButtons[0].getValue() == 0 and (systems.PNEU.Valves.wingLeft.getValue() or systems.PNEU.Valves.wingRight.getValue())) {
|
||||
|
@ -1501,7 +1769,7 @@ var messages_priority_2 = func {
|
|||
ECAM_controller.warningReset(eng2FailRelight);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.eng2Shutdown.getValue() and eng2ShutDown.clearFlag == 0) {
|
||||
if (warningNodes.Logic.eng2Shutdown.getValue() and !warningNodes.Logic.eng2Fail.getValue() and eng2ShutDown.clearFlag == 0) {
|
||||
eng2ShutDown.active = 1;
|
||||
|
||||
if (phaseVar2 != 4 and phaseVar2 != 5 and systems.fireButtons[1].getValue() == 0 and (systems.PNEU.Valves.wingLeft.getValue() or systems.PNEU.Valves.wingRight.getValue())) {
|
||||
|
@ -2058,7 +2326,7 @@ var messages_priority_2 = func {
|
|||
}
|
||||
|
||||
gearPosition = pts.Gear.position[1].getValue();
|
||||
if (directLaw.clearFlag == 0 and warningNodes.Timers.directLaw.getValue() and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||
if (directLaw.clearFlag == 0 and warningNodes.Timers.directLaw.getValue() == 1 and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||
directLaw.active = 1;
|
||||
directLawProt.active = 1;
|
||||
if (directLawMaxSpeed.clearFlag == 0 and !fbw.tripleADRFail and gearPosition != 1) {
|
||||
|
@ -2096,7 +2364,7 @@ var messages_priority_2 = func {
|
|||
ECAM_controller.warningReset(directLawSpdBrk2);
|
||||
}
|
||||
|
||||
if (altnLaw.clearFlag == 0 and warningNodes.Timers.altnLaw.getValue() and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||
if (altnLaw.clearFlag == 0 and warningNodes.Timers.altnLaw.getValue() == 1 and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||
altnLaw.active = 1;
|
||||
altnLawProt.active = 1;
|
||||
if (altnLawMaxSpeed.clearFlag == 0 and altnLawMaxSpeed2.clearFlag == 0 and !fbw.tripleADRFail) {
|
||||
|
@ -2950,18 +3218,19 @@ var messages_priority_2 = func {
|
|||
if (wingIceSysFault.clearFlag == 0 and warningNodes.Logic.waiSysfault.getBoolValue() and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6)) {
|
||||
wingIceSysFault.active = 1;
|
||||
|
||||
if ((warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue()) and warningNodes.Logic.procWaiShutdown.getValue() == 1) {
|
||||
if (wingIceSysFaultXbld.clearFlag == 0 and (warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue()) and warningNodes.Logic.procWaiShutdown.getValue() == 1) {
|
||||
wingIceSysFaultXbld.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceSysFaultXbld);
|
||||
}
|
||||
if ((warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue()) and wing_pb.getValue()) {
|
||||
|
||||
if (wingIceSysFaultOff.clearFlag == 0 and (warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue()) and wing_pb.getValue()) {
|
||||
wingIceSysFaultOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceSysFaultOff);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue()) {
|
||||
if (wingIceSysFaultIcing.clearFlag == 0 and (warningNodes.Logic.waiLclosed.getValue() or warningNodes.Logic.waiRclosed.getValue())) {
|
||||
wingIceSysFaultIcing.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceSysFaultIcing);
|
||||
|
@ -2973,10 +3242,158 @@ var messages_priority_2 = func {
|
|||
ECAM_controller.warningReset(wingIceSysFaultIcing);
|
||||
}
|
||||
|
||||
if (wingIceLOpen.clearFlag == 0 and warningNodes.Logic.waiLopen.getBoolValue() and (phaseVar2 <= 3 or phaseVar2 >= 9 or phaseVar2 == 6)) {
|
||||
wingIceLOpen.active = 1;
|
||||
|
||||
if (wingIceLOpenOff.clearFlag == 0 and wing_pb.getValue() and (phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 9)) {
|
||||
wingIceLOpenOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenOff);
|
||||
}
|
||||
|
||||
if (FWC.Timer.gnd.getValue() == 1) {
|
||||
if (wingIceLOpenEngOff.clearFlag == 0 and systems.PNEU.Switch.bleed1.getBoolValue()) {
|
||||
wingIceLOpenEngOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOff);
|
||||
}
|
||||
|
||||
if (wingIceLOpenXbld.clearFlag == 0 and systems.PNEU.Valves.crossbleed.getValue() != 0) {
|
||||
wingIceLOpenXbld.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenXbld);
|
||||
}
|
||||
|
||||
if (wingIceLOpenApuOff.clearFlag == 0 and systems.PNEU.Valves.apu.getValue() != 0) {
|
||||
wingIceLOpenApuOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenApuOff);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOff);
|
||||
ECAM_controller.warningReset(wingIceLOpenXbld);
|
||||
ECAM_controller.warningReset(wingIceLOpenApuOff);
|
||||
}
|
||||
|
||||
if (wingIceLOpenFlt.clearFlag == 0 and phaseVar2 != 9 and phaseVar2 != 10 and (wing_pb.getValue() == 0 or FWC.Timer.gnd.getValue() == 1)) {
|
||||
wingIceLOpenFlt.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenFlt);
|
||||
}
|
||||
|
||||
if (FWC.Timer.gnd.getValue() != 1) {
|
||||
if (wingIceLOpenEngOn.clearFlag == 0 and !systems.PNEU.Switch.bleed1.getBoolValue()) {
|
||||
wingIceLOpenEngOn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOn);
|
||||
}
|
||||
|
||||
if (wingIceLOpenIceReq.clearFlag == 0 and !wing_pb.getValue()) {
|
||||
wingIceLOpenIceReq.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenIceReq);
|
||||
}
|
||||
|
||||
if (wingIceLOpenThrust.clearFlag == 0 and systems.PNEU.Switch.bleed1.getBoolValue() and !wing_pb.getValue()) {
|
||||
wingIceLOpenThrust.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenThrust);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOn);
|
||||
ECAM_controller.warningReset(wingIceLOpenIceReq);
|
||||
ECAM_controller.warningReset(wingIceLOpenThrust);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceLOpen);
|
||||
ECAM_controller.warningReset(wingIceLOpenOff);
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOff);
|
||||
ECAM_controller.warningReset(wingIceLOpenXbld);
|
||||
ECAM_controller.warningReset(wingIceLOpenApuOff);
|
||||
ECAM_controller.warningReset(wingIceLOpenFlt);
|
||||
ECAM_controller.warningReset(wingIceLOpenEngOn);
|
||||
ECAM_controller.warningReset(wingIceLOpenIceReq);
|
||||
ECAM_controller.warningReset(wingIceLOpenThrust);
|
||||
}
|
||||
|
||||
if (wingIceROpen.clearFlag == 0 and warningNodes.Logic.waiRopen.getBoolValue() and (phaseVar2 <= 3 or phaseVar2 >= 9 or phaseVar2 == 6)) {
|
||||
wingIceROpen.active = 1;
|
||||
|
||||
if (wingIceROpenOff.clearFlag == 0 and wing_pb.getValue() and (phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 9)) {
|
||||
wingIceROpenOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenOff);
|
||||
}
|
||||
|
||||
if (FWC.Timer.gnd.getValue() == 1) {
|
||||
if (wingIceROpenEngOff.clearFlag == 0 and systems.PNEU.Switch.bleed2.getBoolValue()) {
|
||||
wingIceROpenEngOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenEngOff);
|
||||
}
|
||||
|
||||
if (wingIceROpenXbld.clearFlag == 0 and systems.PNEU.Valves.crossbleed.getValue() != 0) {
|
||||
wingIceROpenXbld.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenXbld);
|
||||
}
|
||||
|
||||
if (wingIceROpenApuOff.clearFlag == 0 and systems.PNEU.Valves.apu.getValue() != 0) {
|
||||
wingIceROpenApuOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenApuOff);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenEngOff);
|
||||
ECAM_controller.warningReset(wingIceROpenXbld);
|
||||
ECAM_controller.warningReset(wingIceROpenApuOff);
|
||||
}
|
||||
|
||||
if (wingIceROpenFlt.clearFlag == 0 and phaseVar2 != 9 and phaseVar2 != 10 and (wing_pb.getValue() == 0 or FWC.Timer.gnd.getValue() == 1)) {
|
||||
wingIceROpenFlt.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenFlt);
|
||||
}
|
||||
|
||||
if (FWC.Timer.gnd.getValue() != 1) {
|
||||
if (wingIceROpenEngOn.clearFlag == 0 and !systems.PNEU.Switch.bleed2.getBoolValue()) {
|
||||
wingIceROpenEngOn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenEngOn);
|
||||
}
|
||||
|
||||
if (wingIceROpenIceReq.clearFlag == 0 and !wing_pb.getValue()) {
|
||||
wingIceROpenIceReq.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenIceReq);
|
||||
}
|
||||
|
||||
if (wingIceROpenThrust.clearFlag == 0 and systems.PNEU.Switch.bleed2.getBoolValue() and !wing_pb.getValue()) {
|
||||
wingIceROpenThrust.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenThrust);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpenEngOn);
|
||||
ECAM_controller.warningReset(wingIceROpenIceReq);
|
||||
ECAM_controller.warningReset(wingIceROpenThrust);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceROpen);
|
||||
ECAM_controller.warningReset(wingIceROpenOff);
|
||||
ECAM_controller.warningReset(wingIceROpenEngOff);
|
||||
ECAM_controller.warningReset(wingIceROpenXbld);
|
||||
ECAM_controller.warningReset(wingIceROpenApuOff);
|
||||
ECAM_controller.warningReset(wingIceROpenFlt);
|
||||
ECAM_controller.warningReset(wingIceROpenEngOn);
|
||||
ECAM_controller.warningReset(wingIceROpenIceReq);
|
||||
ECAM_controller.warningReset(wingIceROpenThrust);
|
||||
}
|
||||
|
||||
if (wingIceOpenGnd.clearFlag == 0 and warningNodes.Logic.waiGndFlight.getValue() and (phaseVar2 <= 2 or phaseVar2 >= 9)) {
|
||||
wingIceOpenGnd.active = 1;
|
||||
|
||||
if (pts.Gear.wow[1].getValue() and wing_pb.getValue()) {
|
||||
if (FWC.Timer.gnd.getValue() == 1 and wing_pb.getValue()) {
|
||||
wingIceOpenGndShut.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(wingIceOpenGndShut);
|
||||
|
@ -3165,7 +3582,7 @@ var messages_config_memo = func {
|
|||
toMemoLine1.colour = "c";
|
||||
}
|
||||
|
||||
if (libraries.seatbeltSwitch.getValue() and libraries.noSmokingSwitch.getValue() ) {
|
||||
if (pts.Controls.Lighting.seatbeltSign.getValue() and pts.Controls.Lighting.noSmokingSign.getValue()) {
|
||||
toMemoLine2.msg = " SIGNS ON";
|
||||
toMemoLine2.colour = "g";
|
||||
} else {
|
||||
|
@ -3231,7 +3648,7 @@ var messages_config_memo = func {
|
|||
ldgMemoLine1.colour = "c";
|
||||
}
|
||||
|
||||
if (libraries.seatbeltSwitch.getValue() and libraries.noSmokingSwitch.getValue()) {
|
||||
if (pts.Controls.Lighting.seatbeltSign.getValue() and pts.Controls.Lighting.noSmokingSign.getValue()) {
|
||||
ldgMemoLine2.msg = " SIGNS ON";
|
||||
ldgMemoLine2.colour = "g";
|
||||
} else {
|
||||
|
@ -3356,19 +3773,19 @@ var messages_memo = func {
|
|||
gnd_splrs.active = 0;
|
||||
}
|
||||
|
||||
if (libraries.seatbeltLight.getValue() == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) {
|
||||
if (pts.Controls.Lighting.seatbeltSign.getValue() and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) {
|
||||
seatbelts.active = 1;
|
||||
} else {
|
||||
seatbelts.active = 0;
|
||||
}
|
||||
|
||||
if (libraries.noSmokingLight.getValue() == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed!
|
||||
if (pts.Controls.Lighting.noSmokingSign.getValue() and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed!
|
||||
nosmoke.active = 1;
|
||||
} else {
|
||||
nosmoke.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/lighting/strobe") == 0 and !pts.Gear.wow[1].getValue() and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # todo: use gear branch properties
|
||||
if (!pts.Controls.Lighting.strobe.getValue() and !pts.Gear.wow[1].getValue() and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # todo: use gear branch properties
|
||||
strobe_lt_off.active = 1;
|
||||
} else {
|
||||
strobe_lt_off.active = 0;
|
||||
|
@ -3393,7 +3810,7 @@ var messages_memo = func {
|
|||
fob_66L.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) {
|
||||
if (pts.Instrumentation.MKVII.Inputs.Discretes.flapAllOverride.getValue() and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) {
|
||||
gpws_flap_mode_off.active = 1;
|
||||
} else {
|
||||
gpws_flap_mode_off.active = 0;
|
||||
|
@ -3564,13 +3981,13 @@ var messages_right_memo = func {
|
|||
wing_aice.active = 0;
|
||||
}
|
||||
|
||||
if (systems.PNEU.Switch.apu.getValue() == 1 and pts.APU.rpm.getValue() >= 95) {
|
||||
if (systems.PNEU.Switch.apu.getValue() == 1 and systems.PNEU.Valves.apu.getValue() != 0 and systems.APUController.APU != nil and systems.APUController.APU.signals.available.getBoolValue()) {
|
||||
apu_bleed.active = 1;
|
||||
} else {
|
||||
apu_bleed.active = 0;
|
||||
}
|
||||
|
||||
if (apu_bleed.active == 0 and pts.APU.rpm.getValue() >= 95) {
|
||||
if (apu_bleed.active == 0 and systems.APUController.APU != nil and systems.APUController.APU.signals.available.getBoolValue()) {
|
||||
apu_avail.active = 1;
|
||||
} else {
|
||||
apu_avail.active = 0;
|
||||
|
@ -3588,7 +4005,7 @@ var messages_right_memo = func {
|
|||
brk_fan.active = 0;
|
||||
}
|
||||
|
||||
if (pts.Instrumentation.MKVII.Inputs.Discretes.flap3Override.getValue() == 1) { # todo: emer elec
|
||||
if (pts.Instrumentation.MKVII.Inputs.Discretes.flap3Override.getValue()) { # todo: emer elec
|
||||
gpws_flap3.active = 1;
|
||||
} else {
|
||||
gpws_flap3.active = 0;
|
||||
|
|
|
@ -18,7 +18,7 @@ var warnings = std.Vector.new([
|
|||
var overspeedGear = warning.new(msg: "-VLE...........280 /.67", colour: "r"),
|
||||
var overspeedFlap = warning.new(msg: "-VFE................XXX", colour: "r"),
|
||||
|
||||
var allEngFail = warning.new(msg: "ENG ALL ENGINES FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var allEngFail = warning.new(msg: "ENG ALL ENGINES FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "enginePage"),
|
||||
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"),
|
||||
|
@ -40,7 +40,7 @@ var warnings = std.Vector.new([
|
|||
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),
|
||||
var eng1Fire = warning.new(msg: "ENG 1 FIRE", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "enginePage"),
|
||||
var eng1FireFllever = warning.new(msg: " -THR LEVER 1.......IDLE", colour: "c"),
|
||||
var eng1FireFlmaster = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
|
||||
var eng1FireFlPB = warning.new(msg: " -ENG 1 FIRE P/B....PUSH", colour: "c"),
|
||||
|
@ -63,7 +63,7 @@ var warnings = std.Vector.new([
|
|||
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),
|
||||
var eng2Fire = warning.new(msg: "ENG 2 FIRE", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "enginePage"),
|
||||
var eng2FireFllever = warning.new(msg: " -THR LEVER 2.......IDLE", colour: "c"),
|
||||
var eng2FireFlmaster = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
|
||||
var eng2FireFlPB = warning.new(msg: " -ENG 2 FIRE P/B....PUSH", colour: "c"),
|
||||
|
@ -85,8 +85,15 @@ var warnings = std.Vector.new([
|
|||
var eng2FireGnAgent2 = warning.new(msg: " -AGENT 2..........DISCH", 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: "apuPage"),
|
||||
var apuFirePB = warning.new(msg: " -APU FIRE P/B......PUSH", colour: "c"),
|
||||
var apuFireAgentTimer = warning.new(msg: " -AGENT AFT 10 S...DISCH", colour: "c"),
|
||||
var apuFireAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var apuFireMaster = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
|
||||
|
||||
# ADR 1 + 2 + 3 FAULT
|
||||
var ADR123Fault = warning.new(msg: "NAV ADR1+2+3 FAULT ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var ADR123Fault = warning.new(msg: "NAV ADR 1+2+3 FAULT ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var ADR123FaultAP = warning.new(msg: " -AP+FD..............OFF", colour: "c"),
|
||||
var ADR123FaultATHR = warning.new(msg: " -ATHR...............OFF", colour: "c"),
|
||||
var ADR123FaultPRBW = warning.new(msg: " -PROBE/WINDOW HEAT...ON", colour: "c"),
|
||||
|
@ -99,28 +106,28 @@ var warnings = std.Vector.new([
|
|||
var ADR123FaultSTBY = warning.new(msg: " -STBY INST.MAY BE UNREL", colour: "c"),
|
||||
var ADR123FaultPROC = warning.new(msg: " -ALL ADR OFF PROC.APPLY", colour: "c"),
|
||||
|
||||
# APU FIRE
|
||||
var apuFire = warning.new(msg: "APU FIRE ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "apuPage"),
|
||||
var apuFirePB = warning.new(msg: " -APU FIRE P/B......PUSH", colour: "c"),
|
||||
var apuFireAgentTimer = warning.new(msg: " -AGENT AFT 10 S...DISCH", colour: "c"),
|
||||
var apuFireAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var apuFireMaster = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
|
||||
|
||||
# Config
|
||||
var slats_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var slats_config_1 = warning.new(msg: "SLATS NOT IN T.O. CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var flaps_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var flaps_config_1 = warning.new(msg: "FLAPS NOT IN T.O. CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var spd_brk_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var spd_brk_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0, sdPage: "fctlPage"),
|
||||
var spd_brk_config_1 = warning.new(msg: "SPD BRK NOT RETRACTED", colour: "r", aural: 0, light: 0),
|
||||
var pitch_trim_config = warning.new(msg: "CONFIG PITCH TRIM", colour: "r", aural: 0, light: 0),
|
||||
var pitch_trim_config = warning.new(msg: "CONFIG PITCH TRIM", colour: "r", aural: 0, light: 0, sdPage: "fctlPage"),
|
||||
var pitch_trim_config_1 = warning.new(msg: " NOT IN T.O. RANGE", colour: "r", aural: 0, light: 0),
|
||||
var rud_trim_config = warning.new(msg: "CONFIG RUD TRIM", colour: "r", aural: 0, light: 0),
|
||||
var rud_trim_config = warning.new(msg: "CONFIG RUD TRIM", colour: "r", aural: 0, light: 0, sdPage: "fctlPage"),
|
||||
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),
|
||||
var l_sidestick_fault = warning.new(msg: "CONFIG L SIDESTICK FAULT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var l_sidestick_fault_to = warning.new(msg: " (BY TAKE OVER)", colour: "r"),
|
||||
var l_sidestick_fault_pb = warning.new(msg: " -L TAKE OVER....DEPRESS", colour: "c"),
|
||||
var r_sidestick_fault = warning.new(msg: "CONFIG R SIDESTICK FAULT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var r_sidestick_fault_to = warning.new(msg: " (BY TAKE OVER)", colour: "r"),
|
||||
var r_sidestick_fault_pb = warning.new(msg: " -R TAKE OVER....DEPRESS", colour: "c"),
|
||||
|
||||
|
||||
# EXCESS CAB ALT
|
||||
var excessCabAlt = warning.new(msg: "CAB PR EXCESS CAB ALT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var excessCabAlt = warning.new(msg: "CAB PR EXCESS CAB ALT", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "cabPressPage"),
|
||||
var excessCabAltMask = warning.new(msg: " -CREW OXY MASKS.....USE", colour: "c"),
|
||||
var excessCabAltSigns = warning.new(msg: " -SIGNS...............ON", colour: "c"),
|
||||
var excessCabAltEmerD = warning.new(msg: " .EMER DESCENT:", colour: "w"),
|
||||
|
@ -129,6 +136,7 @@ var warnings = std.Vector.new([
|
|||
var excessCabAltSPDBRK = warning.new(msg: " -SPD BRK...........FULL", colour: "c"),
|
||||
var excessCabAltSPD = warning.new(msg: " SPD.....MAX/APPROPRIATE", colour: "c"),
|
||||
var excessCabAltENG = warning.new(msg: " -ENG MODE...........IGN", colour: "c"),
|
||||
var excessCabAltATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var excessCabAltCAB = warning.new(msg: " -CABIN CREW......ADVISE", colour: "c"),
|
||||
var excessCabAltPA = warning.new(msg: " -EMER DES (PA).ANNOUNCE", colour: "c"),
|
||||
var excessCabAltXPDR = warning.new(msg: " -XPDR 7700.....CONSIDER", colour: "c"),
|
||||
|
@ -137,21 +145,21 @@ var warnings = std.Vector.new([
|
|||
var excessCabAltMasks = warning.new(msg: " -PAX OXY MASKS...MAN ON", colour: "c"),
|
||||
|
||||
# ENG 1 OIL LO PR
|
||||
var eng1OilLoPr = warning.new(msg: "ENG 1 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var eng1OilLoPr = warning.new(msg: "ENG 1 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "enginePage"),
|
||||
var eng1OilLoPrIf = warning.new(msg: " .IF OIL PR < 13 PSI :", colour: "w"),
|
||||
var eng1OilLoPrIf2 = warning.new(msg: " .IF OIL PR < 60 PSI :", colour: "w"),
|
||||
var eng1OilLoPrThrot = warning.new(msg: " -THR LEVER 1.......IDLE", colour: "c"),
|
||||
var eng1OilLoPrMaster = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
|
||||
|
||||
# ENG 2 OIL LO PR
|
||||
var eng2OilLoPr = warning.new(msg: "ENG 2 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var eng2OilLoPr = warning.new(msg: "ENG 2 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "enginePage"),
|
||||
var eng2OilLoPrIf = warning.new(msg: " .IF OIL PR < 13 PSI :", colour: "w"),
|
||||
var eng2OilLoPrIf2 = warning.new(msg: " .IF OIL PR < 60 PSI :", colour: "w"),
|
||||
var eng2OilLoPrThrot = warning.new(msg: " -THR LEVER 2.......IDLE", colour: "c"),
|
||||
var eng2OilLoPrMaster = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
|
||||
|
||||
# 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 lrElevFault = warning.new(msg: "F/CTL L+R ELEV FAULT", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "fctlPage"),
|
||||
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"),
|
||||
|
@ -159,7 +167,7 @@ var warnings = std.Vector.new([
|
|||
# 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 gearNotDownLocked = warning.new(msg: "L/G GEAR NOT DOWNLOCKED", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "wheelPage"),
|
||||
var gearNotDownLockedRec = warning.new(msg: " -L/G LEVER......RECYCLE", colour: "c"),
|
||||
var gearNotDownLockedWork = warning.new(msg: " .IF UNSUCCESSFUL:", colour: "w"),
|
||||
var gearNotDownLocked120 = warning.new(msg: " AFTER 120S:", colour: "w"),
|
||||
|
@ -169,14 +177,14 @@ var warnings = std.Vector.new([
|
|||
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 cargoSmokeFwd = warning.new(msg: "SMOKE FWD CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "condPage"),
|
||||
var cargoSmokeFwdFans = warning.new(msg: " -CAB FANS...........OFF", colour: "c"),
|
||||
var cargoSmokeFwdGrdClsd = warning.new(msg: " .IF FWD CRG CLSD:", colour: "w"),
|
||||
var cargoSmokeFwdAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var cargoSmokeFwdGrd = warning.new(msg: " .WHEN ON GROUND", colour: "w"),
|
||||
var cargoSmokeFwdDoors = warning.new(msg: " BEFORE OPEN CRG DOORS:", colour: "w"),
|
||||
var cargoSmokeFwdDisemb = warning.new(msg: "-PAX..........DISEMBARK", colour: "c"),
|
||||
var cargoSmokeAft = warning.new(msg: "SMOKE AFT CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var cargoSmokeAft = warning.new(msg: "SMOKE AFT CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "condPage"),
|
||||
var cargoSmokeAftFans = warning.new(msg: " -CAB FANS...........OFF", colour: "c"),
|
||||
var cargoSmokeAftGrdClsd = warning.new(msg: " .IF AFT CRG CLSD:", colour: "w"),
|
||||
var cargoSmokeAftAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
|
@ -189,18 +197,18 @@ var warnings = std.Vector.new([
|
|||
var lavatorySmokeComm = warning.new(msg: "-CKPT/CAB COM.ESTABLISH ", colour: "c"),
|
||||
|
||||
# EXCES RESID PR
|
||||
var excessResidPress = warning.new(msg: "CAB PR EXCES RESIDUAL PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var excessResidPress = warning.new(msg: "CAB PR EXCES RESIDUAL PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "cabPressPage"),
|
||||
var excessResidPressPack1 = warning.new(msg: "-PACK 1.............OFF", colour: "c"),
|
||||
var excessResidPressPack2 = warning.new(msg: "-PACK 2.............OFF", colour: "c"),
|
||||
var excessResidPressCabCr = warning.new(msg: "-CABIN CREW.......ALERT", colour: "c"),
|
||||
|
||||
# ESS Bus on Bat
|
||||
# NEW EMER CONFIG
|
||||
var essBusOnBat = warning.new(msg: "ELEC ESS BUSES ON BAT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var essBusOnBat = warning.new(msg: "ELEC ESS BUSES ON BAT", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "elecPage"),
|
||||
var essBusOnBatMinSpeed = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
|
||||
|
||||
# Emer Config
|
||||
var emerconfig = warning.new(msg: "ELEC EMER CONFIG", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var emerconfig = warning.new(msg: "ELEC EMER CONFIG", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "elecPage"),
|
||||
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"),
|
||||
|
@ -219,7 +227,7 @@ var warnings = std.Vector.new([
|
|||
var emerconfigFMSPRD = warning.new(msg: " FMS PRED UNRELIABLE", 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 hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "hydraulicPage"),
|
||||
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"),
|
||||
|
@ -232,7 +240,7 @@ var warnings = std.Vector.new([
|
|||
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 hydGBloPr = warning.new(msg: "HYD G+B SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "hydraulicPage"),
|
||||
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"),
|
||||
|
@ -243,7 +251,7 @@ var warnings = std.Vector.new([
|
|||
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 hydGYloPr = warning.new(msg: "HYD G+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "hydraulicPage"),
|
||||
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"),
|
||||
|
@ -253,7 +261,7 @@ var warnings = std.Vector.new([
|
|||
var hydGYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
|
||||
|
||||
# AIR BLEED LEAK
|
||||
var airBleedLeak = warning.new(msg: "AIR BLEED LEAK ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var airBleedLeak = warning.new(msg: "AIR BLEED LEAK ", colour: "r", aural: 0, light: 0, isMainMsg: 1, sdPage: "bleedPage"),
|
||||
var airBleedLeakShut = warning.new(msg: " -X BLEED..........SHUT", colour: "c"),
|
||||
|
||||
# LEVEL 2 WARN
|
||||
|
@ -543,20 +551,9 @@ var warnings = std.Vector.new([
|
|||
var fac2FaultSuccess = warning.new(msg: " .IF UNSUCCESSFUL :", colour: "w"),
|
||||
var fac2FaultFacOff = warning.new(msg: " -FAC 2..............OFF", colour: "c"),
|
||||
|
||||
var yawDamper1Fault = warning.new(msg: "AUTO FLT YAW DAMPER 1", colour: "a", isMainMsg: 1),
|
||||
var yawDamper2Fault = warning.new(msg: "AUTO FLT YAW DAMPER 2", colour: "a", isMainMsg: 1),
|
||||
# var rudTrim1Fault = warning.new(msg: "AUTO FLT RUD TRIM1 FAULT", colour: "a", isMainMsg: 1), not implemented
|
||||
# var rudTrim2Fault = warning.new(msg: "AUTO FLT RUD TRIM2 FAULT", colour: "a", isMainMsg: 1), not implemented
|
||||
var rudTravLimSys1Fault = warning.new(msg: "AUTO FLT RUD TRV LIM 1", colour: "a", isMainMsg: 1),
|
||||
var rudTravLimSys2Fault = warning.new(msg: "AUTO FLT RUD TRV LIM 2", colour: "a", isMainMsg: 1),
|
||||
|
||||
# FCU fault
|
||||
var fcuFault = warning.new(msg: "AUTO FLT FCU 1+2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var fcuFaultBaro = warning.new(msg: " -PFD BARO REF: STD ONLY", colour: "c"),
|
||||
var fcuFault1 = warning.new(msg: "AUTO FLT FCU 1 FAULT", colour: "a", isMainMsg: 1),
|
||||
var fcuFault1Baro = warning.new(msg: " -BARO REF.......X CHECK", colour: "c"),
|
||||
var fcuFault2 = warning.new(msg: "AUTO FLT FCU 2 FAULT", colour: "a", isMainMsg: 1),
|
||||
var fcuFault2Baro = warning.new(msg: " -BARO REF.......X CHECK", colour: "c"),
|
||||
|
||||
# FUEL
|
||||
var wingLoLvl = warning.new(msg: "FUEL L+R WING TK LO LVL", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
|
@ -691,7 +688,6 @@ var warnings = std.Vector.new([
|
|||
var wingIceLOpenEngOff = warning.new(msg: " -ENG1 BLEED.........OFF", colour: "c"),
|
||||
var wingIceLOpenXbld = warning.new(msg: " -X BLEED...........SHUT", colour: "c"),
|
||||
var wingIceLOpenApuOff = warning.new(msg: " -APU BLEED..........OFF", colour: "c"),
|
||||
var wingIceLOpenSpacer = warning.new(msg: " ", colour: "c"),
|
||||
var wingIceLOpenFlt = warning.new(msg: " WAI AVAIL IN FLT", colour: "c"),
|
||||
var wingIceLOpenEngOn = warning.new(msg: " -ENG1 BLEED.........OFF", colour: "c"),
|
||||
var wingIceLOpenIceReq = warning.new(msg: " -WING ANTI ICE..AS RQRD", colour: "c"),
|
||||
|
@ -701,13 +697,24 @@ var warnings = std.Vector.new([
|
|||
var wingIceROpenEngOff = warning.new(msg: " -ENG2 BLEED.........OFF", colour: "c"),
|
||||
var wingIceROpenXbld = warning.new(msg: " -X BLEED...........SHUT", colour: "c"),
|
||||
var wingIceROpenApuOff = warning.new(msg: " -APU BLEED..........OFF", colour: "c"),
|
||||
var wingIceROpenSpacer = warning.new(msg: " ", colour: "c"),
|
||||
var wingIceROpenFlt = warning.new(msg: " WAI AVAIL IN FLT", colour: "c"),
|
||||
var wingIceROpenEngOn = warning.new(msg: " -ENG2 BLEED.........OFF", colour: "c"),
|
||||
var wingIceROpenIceReq = warning.new(msg: " -WING ANTI ICE..AS RQRD", colour: "c"),
|
||||
var wingIceROpenThrust = warning.new(msg: " THRUST LIM PENALTY", colour: "c"),
|
||||
var wingIceOpenGnd = warning.new(msg: "WING A.ICE OPEN ON GND", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var wingIceOpenGndShut = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||
|
||||
var yawDamper1Fault = warning.new(msg: "AUTO FLT YAW DAMPER 1", colour: "a", isMainMsg: 1),
|
||||
var yawDamper2Fault = warning.new(msg: "AUTO FLT YAW DAMPER 2", colour: "a", isMainMsg: 1),
|
||||
# var rudTrim1Fault = warning.new(msg: "AUTO FLT RUD TRIM1 FAULT", colour: "a", isMainMsg: 1), not implemented
|
||||
# var rudTrim2Fault = warning.new(msg: "AUTO FLT RUD TRIM2 FAULT", colour: "a", isMainMsg: 1), not implemented
|
||||
var rudTravLimSys1Fault = warning.new(msg: "AUTO FLT RUD TRV LIM 1", colour: "a", isMainMsg: 1),
|
||||
var rudTravLimSys2Fault = warning.new(msg: "AUTO FLT RUD TRV LIM 2", colour: "a", isMainMsg: 1),
|
||||
var fcuFault1 = warning.new(msg: "AUTO FLT FCU 1 FAULT", colour: "a", isMainMsg: 1),
|
||||
var fcuFault1Baro = warning.new(msg: " -BARO REF.......X CHECK", colour: "c"),
|
||||
var fcuFault2 = warning.new(msg: "AUTO FLT FCU 2 FAULT", colour: "a", isMainMsg: 1),
|
||||
var fcuFault2Baro = warning.new(msg: " -BARO REF.......X CHECK", colour: "c"),
|
||||
|
||||
var wingIceLHiPr = warning.new(msg: "WING A.ICE L HI PR", colour: "a", isMainMsg: 1),
|
||||
var wingIceLHiPrThrust = warning.new(msg: " THRUST LIM PENTALTY", colour: "c"),
|
||||
var wingIceRHiPr = warning.new(msg: "WING A.ICE R HI PR", colour: "a", isMainMsg: 1),
|
||||
|
|
|
@ -74,6 +74,11 @@ var FWC = {
|
|||
|
||||
var warningNodes = {
|
||||
Logic: {
|
||||
JE1TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
|
||||
JE2TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
|
||||
adr123Fault: props.globals.initNode("/ECAM/warnings/navigation/ADR123-fault"),
|
||||
eng1OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-oil-lo-pr"),
|
||||
eng2OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-oil-lo-pr"),
|
||||
altitudeAlert: props.globals.initNode("/ECAM/warnings/altitude-alert/c-chord"),
|
||||
altitudeAlertSteady: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-steady"),
|
||||
altitudeAlertFlash: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-flash"),
|
||||
|
@ -90,6 +95,8 @@ var warningNodes = {
|
|||
bleed2LoTempPack: props.globals.initNode("/ECAM/warnings/logic/bleed-2-lo-temp-pack"),
|
||||
bleed2WaiAvail: props.globals.initNode("/ECAM/warnings/logic/bleed-2-wai-avail"),
|
||||
waiSysfault: props.globals.initNode("/ECAM/warnings/logic/wing-anti-ice-sys-fault"),
|
||||
waiLopen: props.globals.initNode("/ECAM/warnings/flipflop/wing-anti-ice-left-open"),
|
||||
waiRopen: props.globals.initNode("/ECAM/warnings/flipflop/wing-anti-ice-right-open"),
|
||||
waiLclosed: props.globals.initNode("/ECAM/warnings/flipflop/wing-anti-ice-left-closed"),
|
||||
waiRclosed: props.globals.initNode("/ECAM/warnings/flipflop/wing-anti-ice-right-closed"),
|
||||
procWaiShutdown: props.globals.initNode("/ECAM/warnings/logic/proc-wai-shutdown-output"),
|
||||
|
@ -149,6 +156,8 @@ var warningNodes = {
|
|||
gen1Off: props.globals.initNode("/ECAM/warnings/logic/elec/gen-1-off"),
|
||||
gen2Off: props.globals.initNode("/ECAM/warnings/logic/elec/gen-2-off"),
|
||||
spdBrkOut: props.globals.initNode("/ECAM/warnings/fctl/spd-brk-still-out"),
|
||||
excessPress: props.globals.initNode("/ECAM/warnings/press/exess-residual-pressure"),
|
||||
excessCabAlt: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt"),
|
||||
},
|
||||
Timers: {
|
||||
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
||||
|
@ -212,5 +221,7 @@ var warningNodes = {
|
|||
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"),
|
||||
cabPressExcessFlipflopTop: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top"),
|
||||
cabPressExcessFlipflop: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt-flipflop"),
|
||||
},
|
||||
};
|
|
@ -96,6 +96,6 @@ var setPhase = func(newPhase) {
|
|||
}
|
||||
}
|
||||
|
||||
setlistener("/ECAM/buttons/recall-btn", func() {
|
||||
FWC.Flipflop.recallSet.setValue(FWC.Btn.recall.getBoolValue());
|
||||
setlistener("/ECAM/buttons/recall-btn", func(val) {
|
||||
FWC.Flipflop.recallSet.setValue(val.getBoolValue());
|
||||
}, 0, 0);
|
||||
|
|
|
@ -173,7 +173,7 @@ var Custom = {
|
|||
spdManaged: props.globals.getNode("/it-autoflight/input/spd-managed", 1),
|
||||
},
|
||||
Output: {
|
||||
fmaPower: props.globals.initNode("/it-autoflight/output/fma-pwr", 0, "BOOL"),
|
||||
fmaPower: 0,
|
||||
vsFCU: props.globals.initNode("/it-autoflight/output/vs-fcu-display", "", "STRING"),
|
||||
},
|
||||
Sound: {
|
||||
|
@ -229,7 +229,7 @@ var ITAF = {
|
|||
Text.lat.setValue(" ");
|
||||
Text.vert.setValue(" ");
|
||||
Custom.showHdg.setBoolValue(1);
|
||||
Custom.Output.fmaPower.setBoolValue(1);
|
||||
Custom.Output.fmaPower = 1;
|
||||
ManagedSPD.stop();
|
||||
loopTimer.start();
|
||||
slowLoopTimer.start();
|
||||
|
@ -448,8 +448,8 @@ var ITAF = {
|
|||
ap1Master: func(s) {
|
||||
if (s == 1) {
|
||||
if (Output.vert.getValue() != 6 and !Gear.wow1.getBoolValue() and !Gear.wow2.getBoolValue() and systems.ELEC.Bus.acEss.getValue() >= 110 and fbw.FBW.apOff == 0 and Position.gearAglFt.getValue() >= 100) {
|
||||
me.revertBasicMode();
|
||||
Output.ap1.setBoolValue(1);
|
||||
me.updateFma();
|
||||
Output.latTemp = Output.lat.getValue();
|
||||
if (Output.ap2.getBoolValue() and !Output.apprArm.getBoolValue() and Output.latTemp != 2 and Output.latTemp != 4) {
|
||||
me.ap2Master(0);
|
||||
|
@ -465,12 +465,13 @@ var ITAF = {
|
|||
if (Input.ap1.getBoolValue() != Output.ap1Temp) {
|
||||
Input.ap1.setBoolValue(Output.ap1Temp);
|
||||
}
|
||||
fmaAp();
|
||||
},
|
||||
ap2Master: func(s) {
|
||||
if (s == 1) {
|
||||
if (Output.vert.getValue() != 6 and !Gear.wow1.getBoolValue() and !Gear.wow2.getBoolValue() and systems.ELEC.Bus.acEss.getValue() >= 110 and fbw.FBW.apOff == 0 and Position.gearAglFt.getValue() >= 100) {
|
||||
me.revertBasicMode();
|
||||
Output.ap2.setBoolValue(1);
|
||||
me.updateFma();
|
||||
Output.latTemp = Output.lat.getValue();
|
||||
if (Output.ap1.getBoolValue() and !Output.apprArm.getBoolValue() and Output.latTemp != 2 and Output.latTemp != 4) {
|
||||
me.ap1Master(0);
|
||||
|
@ -486,6 +487,7 @@ var ITAF = {
|
|||
if (Input.ap2.getBoolValue() != Output.ap2Temp) {
|
||||
Input.ap2.setBoolValue(Output.ap2Temp);
|
||||
}
|
||||
fmaAp();
|
||||
},
|
||||
apOffFunction: func() {
|
||||
if (!Output.ap1.getBoolValue() and !Output.ap2.getBoolValue()) { # Only do if both APs are off
|
||||
|
@ -515,6 +517,7 @@ var ITAF = {
|
|||
if (Input.athr.getBoolValue() != Output.athrTemp) {
|
||||
Input.athr.setBoolValue(Output.athrTemp);
|
||||
}
|
||||
fmaAthr();
|
||||
},
|
||||
fd1Master: func(s) {
|
||||
if (s == 1) {
|
||||
|
@ -530,6 +533,7 @@ var ITAF = {
|
|||
if (Input.fd1.getBoolValue() != Output.fd1Temp) {
|
||||
Input.fd1.setBoolValue(Output.fd1Temp);
|
||||
}
|
||||
fmaFd();
|
||||
},
|
||||
fd2Master: func(s) {
|
||||
if (s == 1) {
|
||||
|
@ -545,6 +549,7 @@ var ITAF = {
|
|||
if (Input.fd2.getBoolValue() != Output.fd2Temp) {
|
||||
Input.fd2.setBoolValue(Output.fd2Temp);
|
||||
}
|
||||
fmaFd();
|
||||
},
|
||||
setLatMode: func(n) {
|
||||
Output.vertTemp = Output.vert.getValue();
|
||||
|
@ -596,7 +601,9 @@ var ITAF = {
|
|||
Text.lat.setValue("T/O");
|
||||
me.armTextCheck();
|
||||
} else if (n == 9) { # NONE
|
||||
Output.lnavArm.setBoolValue(0);
|
||||
Output.locArm.setBoolValue(0);
|
||||
Output.apprArm.setBoolValue(0);
|
||||
Output.lat.setValue(9);
|
||||
Custom.showHdg.setBoolValue(1);
|
||||
Text.lat.setValue(" ");
|
||||
|
@ -882,9 +889,10 @@ var ITAF = {
|
|||
me.setLatMode(9);
|
||||
me.setVertMode(9);
|
||||
me.setLatArm(0);
|
||||
Custom.Output.fmaPower.setBoolValue(0);
|
||||
Custom.Output.fmaPower = 0;
|
||||
} else {
|
||||
Custom.Output.fmaPower.setBoolValue(1);
|
||||
if (!Custom.Output.fmaPower) showAllBoxes();
|
||||
Custom.Output.fmaPower = 1;
|
||||
me.revertBasicMode();
|
||||
}
|
||||
},
|
||||
|
|
|
@ -513,7 +513,7 @@ setlistener("/it-autoflight/output/appr-armed", func {
|
|||
});
|
||||
|
||||
# AP
|
||||
var ap = func {
|
||||
var fmaAp = func {
|
||||
ap1 = Output.ap1.getValue();
|
||||
ap2 = Output.ap2.getValue();
|
||||
newap = Modes.PFD.FMA.apMode.getValue();
|
||||
|
@ -529,7 +529,7 @@ var ap = func {
|
|||
}
|
||||
|
||||
# FD
|
||||
var fd = func {
|
||||
var fmaFd = func {
|
||||
fd1 = Output.fd1.getValue();
|
||||
fd2 = Output.fd2.getValue();
|
||||
newfd = Modes.PFD.FMA.fdMode.getValue();
|
||||
|
@ -544,8 +544,8 @@ var fd = func {
|
|||
}
|
||||
}
|
||||
|
||||
# AT
|
||||
var atMode = func {
|
||||
# A/THR
|
||||
var fmaAthr = func {
|
||||
at = Output.athr.getValue();
|
||||
if (at and Modes.PFD.FMA.athrMode.getValue() != "A/THR") {
|
||||
Modes.PFD.FMA.athrMode.setValue("A/THR");
|
||||
|
@ -554,14 +554,7 @@ var atMode = func {
|
|||
}
|
||||
}
|
||||
|
||||
var boxchk = func {
|
||||
if ((Output.ap1.getValue() or Output.ap2.getValue() or Output.fd1.getValue() or Output.fd2.getValue()) and !Custom.Output.fmaPower.getValue()) {
|
||||
Input.lat.setValue(3);
|
||||
boxchk_b();
|
||||
}
|
||||
}
|
||||
|
||||
var boxchk_b = func {
|
||||
var showAllBoxes = func {
|
||||
if (Modes.PFD.FMA.rollMode.getValue() != " ") {
|
||||
Modes.PFD.FMA.rollModeTime.setValue(pts.Sim.Time.elapsedSec.getValue());
|
||||
}
|
||||
|
@ -579,27 +572,6 @@ var boxchk_b = func {
|
|||
}
|
||||
}
|
||||
|
||||
# Update AP FD ATHR
|
||||
setlistener("/it-autoflight/output/ap1", func {
|
||||
ap();
|
||||
boxchk();
|
||||
});
|
||||
setlistener("/it-autoflight/output/ap2", func {
|
||||
ap();
|
||||
boxchk();
|
||||
});
|
||||
setlistener("/it-autoflight/output/fd1", func {
|
||||
fd();
|
||||
boxchk();
|
||||
});
|
||||
setlistener("/it-autoflight/output/fd2", func {
|
||||
fd();
|
||||
boxchk();
|
||||
});
|
||||
setlistener("/it-autoflight/output/athr", func {
|
||||
atMode();
|
||||
});
|
||||
|
||||
# Boxes
|
||||
setlistener("/modes/pfd/fma/ap-mode", func {
|
||||
if (Modes.PFD.FMA.apMode.getValue() != " ") {
|
||||
|
|
|
@ -4,11 +4,6 @@
|
|||
##################
|
||||
# Init Functions #
|
||||
##################
|
||||
|
||||
var database1 = 0;
|
||||
var database2 = 0;
|
||||
var code1 = 0;
|
||||
var code2 = 0;
|
||||
var gear0 = 0;
|
||||
var state1 = 0;
|
||||
var state2 = 0;
|
||||
|
@ -19,8 +14,6 @@ var n1_right = 0;
|
|||
var modelat = "";
|
||||
var mode = 0;
|
||||
var gs = 0;
|
||||
var cruiseft = 0;
|
||||
var cruiseft_b = 0;
|
||||
var state1 = 0;
|
||||
var state2 = 0;
|
||||
var accel_agl_ft = 0;
|
||||
|
@ -32,8 +25,6 @@ var alt = 0;
|
|||
var altitude = 0;
|
||||
var flap = 0;
|
||||
var flaps = 0;
|
||||
var ias = 0;
|
||||
var mach = 0;
|
||||
var ktsmach = 0;
|
||||
var kts_sel = 0;
|
||||
var mach_sel = 0;
|
||||
|
@ -51,7 +42,6 @@ var tempOverspeed = nil;
|
|||
setprop("/position/gear-agl-ft", 0);
|
||||
setprop("/it-autoflight/settings/accel-agl-ft", 1500); #eventually set to 1500 above runway
|
||||
setprop("/it-autoflight/internal/vert-speed-fpm", 0);
|
||||
setprop("/it-autoflight/output/fma-pwr", 0);
|
||||
setprop("/instrumentation/nav[0]/nav-id", "XXX");
|
||||
setprop("/instrumentation/nav[1]/nav-id", "XXX");
|
||||
|
||||
|
@ -71,14 +61,13 @@ var FMGCinit = func {
|
|||
FMGCInternal.mngSpdCmd = 157;
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
FMGCInternal.machSwitchover = 0;
|
||||
setprop("/FMGC/internal/loc-source", "NAV0");
|
||||
setprop("/FMGC/internal/optalt", 0);
|
||||
setprop("/FMGC/internal/landing-time", -99);
|
||||
FMGCInternal.landingTime = -99;
|
||||
FMGCInternal.blockFuelTime = -99;
|
||||
FMGCInternal.fuelPredTime = -99;
|
||||
FMGCAlignTime[0].setValue(-99);
|
||||
FMGCAlignTime[1].setValue(-99);
|
||||
FMGCAlignTime[2].setValue(-99);
|
||||
setprop("/FMGC/internal/block-fuel-time", -99);
|
||||
setprop("/FMGC/internal/fuel-pred-time", -99);
|
||||
masterFMGC.start();
|
||||
radios.start();
|
||||
}
|
||||
|
@ -88,6 +77,12 @@ var FMGCInternal = {
|
|||
phase: 0,
|
||||
minspeed: 0,
|
||||
maxspeed: 0,
|
||||
clbSpdLim: 250,
|
||||
desSpdLim: 250,
|
||||
clbSpdLimAlt: 10000,
|
||||
desSpdLimAlt: 10000,
|
||||
clbSpdLimSet: 0,
|
||||
desSpdLimSet: 0,
|
||||
takeoffState: 0,
|
||||
|
||||
# speeds
|
||||
|
@ -222,6 +217,11 @@ var FMGCInternal = {
|
|||
mngSpd: 0,
|
||||
mngSpdCmd: 0,
|
||||
|
||||
# This can't be init to -98, because we don't want it to run until WOW has gone to false and back to true
|
||||
landingTime: -98,
|
||||
blockFuelTime: -99,
|
||||
fuelPredTime: -99,
|
||||
|
||||
# RADNAV
|
||||
ADF1: {
|
||||
freqSet: 0,
|
||||
|
@ -258,9 +258,12 @@ var postInit = func() {
|
|||
|
||||
var FMGCNodes = {
|
||||
costIndex: props.globals.initNode("/FMGC/internal/cost-index", 0, "DOUBLE"),
|
||||
decel: props.globals.initNode("/FMGC/internal/decel", 0, "BOOL"),
|
||||
flexSet: props.globals.initNode("/FMGC/internal/flex-set", 0, "BOOL"),
|
||||
flexTemp: props.globals.initNode("/FMGC/internal/flex", 0, "INT"),
|
||||
mngSpdAlt: props.globals.getNode("/FMGC/internal/mng-alt-spd"),
|
||||
ktsToMachFactor: props.globals.getNode("/FMGC/internal/kts-to-mach-factor"),
|
||||
machToKtsFactor: props.globals.getNode("/FMGC/internal/mach-to-kts-factor"),
|
||||
mngMachAlt: props.globals.getNode("/FMGC/internal/mng-alt-mach"),
|
||||
toFromSet: props.globals.initNode("/FMGC/internal/tofrom-set", 0, "BOOL"),
|
||||
toState: props.globals.initNode("/FMGC/internal/to-state", 0, "BOOL"),
|
||||
|
@ -339,11 +342,8 @@ var updateFuel = func {
|
|||
final_fuel = 1000 * FMGCInternal.finalFuel;
|
||||
zfw = 1000 * FMGCInternal.zfw;
|
||||
final_time = final_fuel / (2.0 * ((zfw*zfw*-2e-10) + (zfw*0.0003) + 2.8903)); # x2 for 2 engines
|
||||
if (final_time < 0) {
|
||||
final_time = 0;
|
||||
} elsif (final_time > 480) {
|
||||
final_time = 480;
|
||||
}
|
||||
final_time = math.clamp(final_time, 0, 480);
|
||||
|
||||
if (num(final_time) >= 60) {
|
||||
final_min = int(math.mod(final_time, 60));
|
||||
final_hour = int((final_time - final_min) / 60);
|
||||
|
@ -361,11 +361,8 @@ var updateFuel = func {
|
|||
}
|
||||
zfw = 1000 * FMGCInternal.zfw;
|
||||
final_fuel = final_time * 2.0 * ((zfw*zfw*-2e-10) + (zfw*0.0003) + 2.8903); # x2 for 2 engines
|
||||
if (final_fuel < 0) {
|
||||
final_fuel = 0;
|
||||
} elsif (final_fuel > 80000) {
|
||||
final_fuel = 80000;
|
||||
}
|
||||
final_fuel = math.clamp(final_fuel, 0, 80000);
|
||||
|
||||
FMGCInternal.finalFuel = final_fuel / 1000;
|
||||
}
|
||||
|
||||
|
@ -377,11 +374,8 @@ var updateFuel = func {
|
|||
alt_fuel = 1000 * num(FMGCInternal.altFuel);
|
||||
zfw = 1000 * FMGCInternal.zfw;
|
||||
alt_time = alt_fuel / (2.0 * ((zfw*zfw*-2e-10) + (zfw*0.0003) + 2.8903)); # x2 for 2 engines
|
||||
if (alt_time < 0) {
|
||||
alt_time = 0;
|
||||
} elsif (alt_time > 480) {
|
||||
alt_time = 480;
|
||||
}
|
||||
alt_time = math.clamp(alt_time, 0, 480);
|
||||
|
||||
if (num(alt_time) >= 60) {
|
||||
alt_min = int(math.mod(alt_time, 60));
|
||||
alt_hour = int((alt_time - alt_min) / 60);
|
||||
|
@ -418,21 +412,14 @@ var updateFuel = func {
|
|||
|
||||
#trip_fuel = 4.003e+02 + (dist * -5.399e+01) + (dist * dist * -7.322e-02) + (dist * dist * dist * 1.091e-05) + (dist * dist * dist * dist * 2.962e-10) + (dist * dist * dist * dist * dist * -1.178e-13) + (dist * dist * dist * dist * dist * dist * 6.322e-18) + (crz * 5.387e+01) + (dist * crz * 1.583e+00) + (dist * dist * crz * 7.695e-04) + (dist * dist * dist * crz * -1.057e-07) + (dist * dist * dist * dist * crz * 1.138e-12) + (dist * dist * dist * dist * dist * crz * 1.736e-16) + (crz * crz * -1.171e+00) + (dist * crz * crz * -1.219e-02) + (dist * dist * crz * crz * -2.879e-06) + (dist * dist * dist * crz * crz * 3.115e-10) + (dist * dist * dist * dist * crz * crz * -4.093e-15) + (crz * crz * crz * 9.160e-03) + (dist * crz * crz * crz * 4.311e-05) + (dist * dist * crz * crz * crz * 4.532e-09) + (dist * dist * dist * crz * crz * crz * -2.879e-13) + (crz * crz * crz * crz * -3.338e-05) + (dist * crz * crz * crz * crz * -7.340e-08) + (dist * dist * crz * crz * crz * crz * -2.494e-12) + (crz * crz * crz * crz * crz * 5.849e-08) + (dist * crz * crz * crz * crz * crz * 4.898e-11) + (crz * crz * crz * crz * crz * crz * -3.999e-11);
|
||||
trip_fuel = 4.018e+02 + (dist*3.575e+01) + (dist*dist*-4.260e-02) + (dist*dist*dist*-1.446e-05) + (dist*dist*dist*dist*4.101e-09) + (dist*dist*dist*dist*dist*-6.753e-13) + (dist*dist*dist*dist*dist*dist*5.074e-17) + (crz*-2.573e+01) + (dist*crz*-1.583e-01) + (dist*dist*crz*8.147e-04) + (dist*dist*dist*crz*4.485e-08) + (dist*dist*dist*dist*crz*-7.656e-12) + (dist*dist*dist*dist*dist*crz*4.503e-16) + (crz*crz*4.427e-01) + (dist*crz*crz*-1.137e-03) + (dist*dist*crz*crz*-4.409e-06) + (dist*dist*dist*crz*crz*-3.345e-11) + (dist*dist*dist*dist*crz*crz*4.985e-15) + (crz*crz*crz*-2.471e-03) + (dist*crz*crz*crz*1.223e-05) + (dist*dist*crz*crz*crz*9.660e-09) + (dist*dist*dist*crz*crz*crz*-2.127e-14) + (crz*crz*crz*crz*5.714e-06) + (dist*crz*crz*crz*crz*-3.546e-08) + (dist*dist*crz*crz*crz*crz*-7.536e-12) + (crz*crz*crz*crz*crz*-4.061e-09) + (dist*crz*crz*crz*crz*crz*3.355e-11) + (crz*crz*crz*crz*crz*crz*-1.451e-12);
|
||||
if (trip_fuel < 400) {
|
||||
trip_fuel = 400;
|
||||
} elsif (trip_fuel > 80000) {
|
||||
trip_fuel = 80000;
|
||||
}
|
||||
trip_fuel = math.clamp(trip_fuel, 400, 80000);
|
||||
|
||||
# cruize temp correction
|
||||
trip_fuel = trip_fuel + (0.033 * (temp - 15 + (2 * crz / 10)) * flightPlanController.arrivalDist);
|
||||
|
||||
trip_time = 9.095e-02 + (dist*-3.968e-02) + (dist*dist*4.302e-04) + (dist*dist*dist*2.005e-07) + (dist*dist*dist*dist*-6.876e-11) + (dist*dist*dist*dist*dist*1.432e-14) + (dist*dist*dist*dist*dist*dist*-1.177e-18) + (crz*7.348e-01) + (dist*crz*3.310e-03) + (dist*dist*crz*-8.700e-06) + (dist*dist*dist*crz*-4.214e-10) + (dist*dist*dist*dist*crz*5.652e-14) + (dist*dist*dist*dist*dist*crz*-6.379e-18) + (crz*crz*-1.449e-02) + (dist*crz*crz*-7.508e-06) + (dist*dist*crz*crz*4.529e-08) + (dist*dist*dist*crz*crz*3.699e-13) + (dist*dist*dist*dist*crz*crz*8.466e-18) + (crz*crz*crz*1.108e-04) + (dist*crz*crz*crz*-4.126e-08) + (dist*dist*crz*crz*crz*-9.645e-11) + (dist*dist*dist*crz*crz*crz*-1.544e-16) + (crz*crz*crz*crz*-4.123e-07) + (dist*crz*crz*crz*crz*1.831e-10) + (dist*dist*crz*crz*crz*crz*7.438e-14) + (crz*crz*crz*crz*crz*7.546e-10) + (dist*crz*crz*crz*crz*crz*-1.921e-13) + (crz*crz*crz*crz*crz*crz*-5.453e-13);
|
||||
if (trip_time < 10) {
|
||||
trip_time = 10;
|
||||
} elsif (trip_time > 480) {
|
||||
trip_time = 480;
|
||||
}
|
||||
trip_time = math.clamp(trip_time, 10, 480);
|
||||
|
||||
# if (low air conditioning) {
|
||||
# trip_fuel = trip_fuel * 0.995;
|
||||
#}
|
||||
|
@ -445,11 +432,7 @@ var updateFuel = func {
|
|||
zfw = FMGCInternal.zfw;
|
||||
landing_weight_correction = 9.951e+00 + (dist*-2.064e+00) + (dist*dist*2.030e-03) + (dist*dist*dist*8.179e-08) + (dist*dist*dist*dist*-3.941e-11) + (dist*dist*dist*dist*dist*2.443e-15) + (crz*2.771e+00) + (dist*crz*3.067e-02) + (dist*dist*crz*-1.861e-05) + (dist*dist*dist*crz*2.516e-10) + (dist*dist*dist*dist*crz*5.452e-14) + (crz*crz*-4.483e-02) + (dist*crz*crz*-1.645e-04) + (dist*dist*crz*crz*5.212e-08) + (dist*dist*dist*crz*crz*-8.721e-13) + (crz*crz*crz*2.609e-04) + (dist*crz*crz*crz*3.898e-07) + (dist*dist*crz*crz*crz*-4.617e-11) + (crz*crz*crz*crz*-6.488e-07) + (dist*crz*crz*crz*crz*-3.390e-10) + (crz*crz*crz*crz*crz*5.835e-10);
|
||||
trip_fuel = trip_fuel + (landing_weight_correction * (FMGCInternal.lw * 1000 - 121254.24421) / 2204.622622);
|
||||
if (trip_fuel < 400) {
|
||||
trip_fuel = 400;
|
||||
} elsif (trip_fuel > 80000) {
|
||||
trip_fuel = 80000;
|
||||
}
|
||||
trip_fuel = math.clamp(trip_fuel, 400, 80000);
|
||||
|
||||
FMGCInternal.tripFuel = trip_fuel / 1000;
|
||||
if (num(trip_time) >= 60) {
|
||||
|
@ -503,11 +486,8 @@ var updateFuel = func {
|
|||
FMGCInternal.extraFuel = extra_fuel / 1000;
|
||||
lw = 1000 * FMGCInternal.lw;
|
||||
extra_time = extra_fuel / (2.0 * ((lw*lw*-2e-10) + (lw*0.0003) + 2.8903)); # x2 for 2 engines
|
||||
if (extra_time < 0) {
|
||||
extra_time = 0;
|
||||
} elsif (extra_time > 480) {
|
||||
extra_time = 480;
|
||||
}
|
||||
extra_time = math.clamp(extra_time, 0, 480);
|
||||
|
||||
if (num(extra_time) >= 60) {
|
||||
extra_min = int(math.mod(extra_time, 60));
|
||||
extra_hour = int((extra_time - extra_min) / 60);
|
||||
|
@ -589,8 +569,6 @@ var masterFMGC = maketimer(0.2, func {
|
|||
mode = Modes.PFD.FMA.pitchMode.getValue();
|
||||
gs = pts.Velocities.groundspeed.getValue();
|
||||
alt = pts.Instrumentation.Altimeter.indicatedFt.getValue();
|
||||
# cruiseft = FMGCInternal.crzFt;
|
||||
# cruiseft_b = FMGCInternal.crzFt - 200;
|
||||
state1 = pts.Systems.Thrust.state[0].getValue();
|
||||
state2 = pts.Systems.Thrust.state[1].getValue();
|
||||
accel_agl_ft = Setting.reducAglFt.getValue();
|
||||
|
@ -632,7 +610,7 @@ var masterFMGC = maketimer(0.2, func {
|
|||
}
|
||||
}
|
||||
} elsif (FMGCInternal.phase == 4) {
|
||||
if (getprop("/FMGC/internal/decel")) {
|
||||
if (FMGCNodes.decel.getValue()) {
|
||||
newphase = 5;
|
||||
}
|
||||
} elsif (FMGCInternal.phase == 5) {
|
||||
|
@ -649,9 +627,9 @@ var masterFMGC = maketimer(0.2, func {
|
|||
|
||||
if (flightPlanController.num[2].getValue() > 0 and getprop("/FMGC/flightplan[2]/active") == 1 and
|
||||
flightPlanController.arrivalDist <= 15 and (modelat == "NAV" or modelat == "LOC" or modelat == "LOC*") and pts.Position.gearAglFt.getValue() < 9500) { #todo decel pseudo waypoint
|
||||
setprop("/FMGC/internal/decel", 1);
|
||||
} elsif (getprop("/FMGC/internal/decel") == 1 and (FMGCInternal.phase == 0 or FMGCInternal.phase == 6)) {
|
||||
setprop("/FMGC/internal/decel", 0);
|
||||
FMGCNodes.decel.setValue(1);
|
||||
} elsif (FMGCNodes.decel.getValue() and (FMGCInternal.phase == 0 or FMGCInternal.phase == 6)) {
|
||||
FMGCNodes.decel.setValue(0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -730,6 +708,7 @@ var masterFMGC = maketimer(0.2, func {
|
|||
if (altitude > 20000) {
|
||||
FMGCInternal.clean += (altitude - 20000) / 1000;
|
||||
}
|
||||
|
||||
FMGCInternal.vs1g_clean = 0.0024 * weight_lbs * weight_lbs + 0.124 * weight_lbs + 88.942;
|
||||
FMGCInternal.vs1g_conf_1 = -0.0007 * weight_lbs * weight_lbs + 0.6795 * weight_lbs + 44.673;
|
||||
FMGCInternal.vs1g_conf_1f = -0.0001 * weight_lbs * weight_lbs + 0.5211 * weight_lbs + 49.027;
|
||||
|
@ -740,13 +719,11 @@ var masterFMGC = maketimer(0.2, func {
|
|||
FMGCInternal.flap2 = FMGCInternal.vs1g_conf_2 * 1.47;
|
||||
FMGCInternal.flap3 = FMGCInternal.vs1g_conf_3 * 1.36;
|
||||
if (FMGCInternal.ldgConfig3) {
|
||||
FMGCInternal.vls = FMGCInternal.vs1g_conf_3 * 1.23;
|
||||
FMGCInternal.vls = math.clamp(FMGCInternal.vs1g_conf_3 * 1.23, 113, 999);
|
||||
} else {
|
||||
FMGCInternal.vls = FMGCInternal.vs1g_conf_full * 1.23
|
||||
}
|
||||
if (FMGCInternal.vls < 113) {
|
||||
FMGCInternal.vls = 113;
|
||||
FMGCInternal.vls = math.clamp(FMGCInternal.vs1g_conf_full * 1.23, 113, 999);
|
||||
}
|
||||
|
||||
if (!fmgc.FMGCInternal.vappSpeedSet) {
|
||||
if (FMGCInternal.destWind < 5) {
|
||||
FMGCInternal.vapp = FMGCInternal.vls + 5;
|
||||
|
@ -918,18 +895,16 @@ var masterFMGC = maketimer(0.2, func {
|
|||
############################
|
||||
#handle radios, runways, v1/vr/v2
|
||||
############################
|
||||
var airportRadiosPhase = nil;
|
||||
var updateAirportRadios = func {
|
||||
|
||||
airportRadiosPhase = FMGCInternal.phase;
|
||||
|
||||
departure_rwy = fmgc.flightPlanController.flightplans[2].departure_runway;
|
||||
destination_rwy = fmgc.flightPlanController.flightplans[2].destination_runway;
|
||||
if (airportRadiosPhase >= 2 and destination_rwy != nil) {
|
||||
|
||||
if (FMGCInternal.phase >= 2 and destination_rwy != nil) {
|
||||
var airport = airportinfo(FMGCInternal.arrApt);
|
||||
setprop("/FMGC/internal/ldg-elev", airport.elevation * M2FT); # eventually should be runway elevation
|
||||
magnetic_hdg = geo.normdeg(destination_rwy.heading - getprop("/environment/magnetic-variation-deg"));
|
||||
magnetic_hdg = geo.normdeg(destination_rwy.heading - pts.Environment.magVar.getValue());
|
||||
runway_ils = destination_rwy.ils_frequency_mhz;
|
||||
|
||||
if (runway_ils != nil and !fmgc.FMGCInternal.ILS.freqSet and !fmgc.FMGCInternal.ILS.crsSet) {
|
||||
fmgc.FMGCInternal.ILS.freqCalculated = runway_ils;
|
||||
pts.Instrumentation.Nav.Frequencies.selectedMhz[0].setValue(runway_ils);
|
||||
|
@ -940,9 +915,10 @@ var updateAirportRadios = func {
|
|||
} elsif (!fmgc.FMGCInternal.ILS.crsSet) {
|
||||
pts.Instrumentation.Nav.Radials.selectedDeg[0].setValue(magnetic_hdg);
|
||||
}
|
||||
} elsif (airportRadiosPhase <= 1 and departure_rwy != nil) {
|
||||
magnetic_hdg = geo.normdeg(departure_rwy.heading - getprop("/environment/magnetic-variation-deg"));
|
||||
} elsif (FMGCInternal.phase <= 1 and departure_rwy != nil) {
|
||||
magnetic_hdg = geo.normdeg(departure_rwy.heading - pts.Environment.magVar.getValue());
|
||||
runway_ils = departure_rwy.ils_frequency_mhz;
|
||||
|
||||
if (runway_ils != nil and !fmgc.FMGCInternal.ILS.freqSet and !fmgc.FMGCInternal.ILS.crsSet) {
|
||||
fmgc.FMGCInternal.ILS.freqCalculated = runway_ils;
|
||||
pts.Instrumentation.Nav.Frequencies.selectedMhz[0].setValue(runway_ils);
|
||||
|
@ -957,8 +933,8 @@ var updateAirportRadios = func {
|
|||
|
||||
};
|
||||
|
||||
setlistener(FMGCNodes.phase, updateAirportRadios,0,0);
|
||||
setlistener(flightPlanController.changed, updateAirportRadios,0,0);
|
||||
setlistener(FMGCNodes.phase, updateAirportRadios, 0, 0);
|
||||
setlistener(flightPlanController.changed, updateAirportRadios, 0, 0);
|
||||
|
||||
var reset_FMGC = func {
|
||||
FMGCInternal.phase = 0;
|
||||
|
@ -1009,110 +985,76 @@ var reset_FMGC = func {
|
|||
#################
|
||||
# Managed Speed #
|
||||
#################
|
||||
var srsSpeedNode = props.globals.getNode("/it-autoflight/settings/togaspd", 1);
|
||||
|
||||
var ktToMach = func(val) { return val * FMGCNodes.ktsToMachFactor.getValue(); }
|
||||
var machToKt = func(val) { return val * FMGCNodes.machToKtsFactor.getValue(); }
|
||||
|
||||
var ManagedSPD = maketimer(0.25, func {
|
||||
if (FMGCInternal.crzSet and FMGCInternal.costIndexSet) {
|
||||
if (Custom.Input.spdManaged.getBoolValue()) {
|
||||
altitude = pts.Instrumentation.Altimeter.indicatedFt.getValue();
|
||||
mode = Modes.PFD.FMA.pitchMode.getValue();
|
||||
ias = pts.Instrumentation.AirspeedIndicator.indicatedSpdKt.getValue();
|
||||
mach = pts.Instrumentation.AirspeedIndicator.indicatedMach.getValue();
|
||||
decel = FMGCNodes.decel.getValue();
|
||||
ktsmach = Input.ktsMach.getValue();
|
||||
kts_sel = Input.kts.getValue();
|
||||
mach_sel = Input.mach.getValue();
|
||||
srsSPD = getprop("/it-autoflight/settings/togaspd");
|
||||
phase = FMGCInternal.phase; # 0 is Preflight 1 is Takeoff 2 is Climb 3 is Cruise 4 is Descent 5 is Decel/Approach 6 is Go Around 7 is Done
|
||||
flap = pts.Controls.Flight.flapsPos.getValue();
|
||||
decel = getprop("/FMGC/internal/decel");
|
||||
mode = Modes.PFD.FMA.pitchMode.getValue();
|
||||
srsSPD = srsSpeedNode.getValue();
|
||||
|
||||
mng_alt_spd = math.round(FMGCNodes.mngSpdAlt.getValue(), 1);
|
||||
mng_alt_mach = math.round(FMGCNodes.mngMachAlt.getValue(), 0.001);
|
||||
|
||||
if (mach > mng_alt_mach and (FMGCInternal.phase == 2 or FMGCInternal.phase == 3)) {
|
||||
# Phase: 0 is Preflight 1 is Takeoff 2 is Climb 3 is Cruise 4 is Descent 5 is Decel/Approach 6 is Go Around 7 is Done
|
||||
if (pts.Instrumentation.AirspeedIndicator.indicatedMach.getValue() > mng_alt_mach and (FMGCInternal.phase == 2 or FMGCInternal.phase == 3)) {
|
||||
FMGCInternal.machSwitchover = 1;
|
||||
} elsif (ias > mng_alt_spd and (FMGCInternal.phase == 4 or FMGCInternal.phase == 5)) {
|
||||
} elsif (pts.Instrumentation.AirspeedIndicator.indicatedSpdKt.getValue() > mng_alt_spd and (FMGCInternal.phase == 4 or FMGCInternal.phase == 5)) {
|
||||
FMGCInternal.machSwitchover = 0;
|
||||
}
|
||||
|
||||
if ((mode == " " or mode == "SRS") and (FMGCInternal.phase == 0 or FMGCInternal.phase == 1)) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
FMGCInternal.mngSpdCmd = srsSPD;
|
||||
} elsif ((FMGCInternal.phase == 2 or FMGCInternal.phase == 3) and altitude <= FMGCInternal.clbSpdLimAlt) {
|
||||
# Speed is maximum of greendot / climb speed limit
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
FMGCInternal.mngSpdCmd = decel ? FMGCInternal.minspeed : math.clamp(FMGCInternal.clbSpdLim, FMGCInternal.clean, 999);
|
||||
} elsif ((FMGCInternal.phase == 2 or FMGCInternal.phase == 3) and altitude > (FMGCInternal.clbSpdLimAlt + 20)) {
|
||||
FMGCInternal.mngKtsMach = FMGCInternal.machSwitchover ? 1 : 0;
|
||||
FMGCInternal.mngSpdCmd = FMGCInternal.machSwitchover ? mng_alt_mach : mng_alt_spd;
|
||||
} elsif ((FMGCInternal.phase >= 4 and FMGCInternal.phase <= 6) and altitude > (FMGCInternal.desSpdLimAlt + 20)) {
|
||||
if (decel) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != srsSPD) {
|
||||
FMGCInternal.mngSpdCmd = srsSPD;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase == 2 or FMGCInternal.phase == 3) and altitude <= 10050) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != 250 and !decel) {
|
||||
FMGCInternal.mngSpdCmd = 250;
|
||||
} elsif (FMGCInternal.mngSpdCmd != FMGCInternal.minspeed and decel) {
|
||||
FMGCInternal.mngSpdCmd = FMGCInternal.minspeed;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase == 2 or FMGCInternal.phase == 3) and altitude > 10070 and !FMGCInternal.machSwitchover) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != mng_alt_spd) {
|
||||
FMGCInternal.mngSpdCmd = mng_alt_spd;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase == 2 or FMGCInternal.phase == 3) and altitude > 10070 and FMGCInternal.machSwitchover) {
|
||||
if (!FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 1;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != mng_alt_mach) {
|
||||
FMGCInternal.mngSpdCmd = mng_alt_mach;
|
||||
}
|
||||
} elsif (FMGCInternal.phase == 4 and altitude > 11000 and !FMGCInternal.machSwitchover) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != mng_alt_spd) {
|
||||
FMGCInternal.mngSpdCmd = mng_alt_spd;
|
||||
}
|
||||
} elsif (FMGCInternal.phase == 4 and altitude > 11000 and FMGCInternal.machSwitchover) {
|
||||
if (!FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 1;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != mng_alt_mach) {
|
||||
FMGCInternal.mngSpdCmd = mng_alt_mach;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase == 4 or FMGCInternal.phase == 5 or FMGCInternal.phase == 6) and altitude > 11000 and !FMGCInternal.machSwitchover) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != mng_alt_spd and !decel) {
|
||||
FMGCInternal.mngSpdCmd = mng_alt_spd;
|
||||
} elsif (FMGCInternal.mngSpdCmd != FMGCInternal.minspeed and decel) {
|
||||
FMGCInternal.mngSpdCmd = FMGCInternal.minspeed;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase == 4 or FMGCInternal.phase == 5 or FMGCInternal.phase == 6) and altitude <= 10980) {
|
||||
if (FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
}
|
||||
if (FMGCInternal.mngSpdCmd != 250 and !decel) {
|
||||
FMGCInternal.mngSpdCmd = 250;
|
||||
} elsif (FMGCInternal.mngSpdCmd != FMGCInternal.minspeed and decel) {
|
||||
FMGCInternal.mngSpdCmd = FMGCInternal.minspeed;
|
||||
} else {
|
||||
FMGCInternal.mngKtsMach = FMGCInternal.machSwitchover ? 1 : 0;
|
||||
FMGCInternal.mngSpdCmd = FMGCInternal.machSwitchover ? mng_alt_mach : mng_alt_spd;
|
||||
}
|
||||
} elsif ((FMGCInternal.phase >= 4 and FMGCInternal.phase <= 6) and altitude <= FMGCInternal.desSpdLimAlt) {
|
||||
FMGCInternal.mngKtsMach = 0;
|
||||
# Speed is maximum of greendot / descent speed limit
|
||||
FMGCInternal.mngSpdCmd = decel ? FMGCInternal.minspeed : math.clamp(FMGCInternal.desSpdLim, FMGCInternal.clean, 999);
|
||||
}
|
||||
|
||||
if (FMGCInternal.mngSpdCmd > FMGCInternal.maxspeed - 5) {
|
||||
FMGCInternal.mngSpd = (FMGCInternal.maxspeed - 5);
|
||||
# Clamp to minspeed, maxspeed
|
||||
if (FMGCInternal.phase >= 2) {
|
||||
if (!FMGCInternal.mngKtsMach) {
|
||||
FMGCInternal.mngSpd = math.clamp(FMGCInternal.mngSpdCmd, FMGCInternal.minspeed, FMGCInternal.maxspeed);
|
||||
} else {
|
||||
FMGCInternal.mngSpd = math.clamp(FMGCInternal.mngSpdCmd, ktToMach(FMGCInternal.minspeed), ktToMach(FMGCInternal.maxspeed));
|
||||
}
|
||||
} else {
|
||||
FMGCInternal.mngSpd = FMGCInternal.mngSpdCmd;
|
||||
}
|
||||
|
||||
# Update value of ktsMach
|
||||
if (ktsmach and !FMGCInternal.mngKtsMach) {
|
||||
Input.ktsMach.setValue(0);
|
||||
} elsif (!ktsmach and FMGCInternal.mngKtsMach) {
|
||||
Input.ktsMach.setValue(1);
|
||||
}
|
||||
|
||||
if (kts_sel != FMGCInternal.mngSpd and !ktsmach) {
|
||||
# Set target speed
|
||||
if (Input.kts.getValue() != FMGCInternal.mngSpd and !ktsmach) {
|
||||
Input.kts.setValue(FMGCInternal.mngSpd);
|
||||
} elsif (mach_sel != FMGCInternal.mngSpd and ktsmach) {
|
||||
} elsif (Input.mach.getValue() != FMGCInternal.mngSpd and ktsmach) {
|
||||
Input.mach.setValue(FMGCInternal.mngSpd);
|
||||
}
|
||||
} else {
|
||||
|
@ -1124,27 +1066,35 @@ var ManagedSPD = maketimer(0.25, func {
|
|||
}
|
||||
});
|
||||
|
||||
# Nav Database
|
||||
var navDataBase = {
|
||||
currentCode: "AB20170101",
|
||||
currentDate: "01JAN-28JAN",
|
||||
standbyCode: "AB20170102",
|
||||
standbyDate: "29JAN-26FEB",
|
||||
};
|
||||
|
||||
var tempStoreCode = nil;
|
||||
var tempStoreDate = nil;
|
||||
var switchDatabase = func {
|
||||
database1 = getprop("/FMGC/internal/navdatabase");
|
||||
database2 = getprop("/FMGC/internal/navdatabase2");
|
||||
code1 = getprop("/FMGC/internal/navdatabasecode");
|
||||
code2 = getprop("/FMGC/internal/navdatabasecode2");
|
||||
setprop("/FMGC/internal/navdatabase", database2);
|
||||
setprop("/FMGC/internal/navdatabase2", database1);
|
||||
setprop("/FMGC/internal/navdatabasecode", code2);
|
||||
setprop("/FMGC/internal/navdatabasecode2", code1);
|
||||
tempStoreCode = navDataBase.currentCode;
|
||||
tempStoreDate = navDataBase.currentDate;
|
||||
navDataBase.currentCode = navDataBase.standbyCode;
|
||||
navDataBase.currentDate = navDataBase.standbyDate;
|
||||
navDataBase.standbyCode = tempStoreCode;
|
||||
navDataBase.standbyDate = tempStoreDate;
|
||||
}
|
||||
|
||||
# Landing to phase 7
|
||||
setlistener("/gear/gear[1]/wow", func() {
|
||||
if (getprop("/gear/gear[1]/wow") == 0 and timer30secLanding.isRunning) {
|
||||
setlistener("/gear/gear[1]/wow", func(val) {
|
||||
if (val.getValue() == 0 and timer30secLanding.isRunning) {
|
||||
timer30secLanding.stop();
|
||||
setprop("/FMGC/internal/landing-time", -99);
|
||||
FMGCInternal.landingTime = -99;
|
||||
}
|
||||
|
||||
if (pts.Gear.wow[1].getValue() and getprop("/FMGC/internal/landing-time") == -99) {
|
||||
if (val.getValue() and FMGCInternal.landingTime == -99) {
|
||||
timer30secLanding.start();
|
||||
setprop("/FMGC/internal/landing-time", pts.Sim.Time.elapsedSec.getValue());
|
||||
FMGCInternal.landingTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
|
@ -1187,42 +1137,41 @@ setlistener("/systems/navigation/adr/operating-3", func() {
|
|||
# Calculate Block Fuel
|
||||
setlistener("/FMGC/internal/block-calculating", func() {
|
||||
if (timer3blockFuel.isRunning) {
|
||||
setprop("/FMGC/internal/block-fuel-time", -99);
|
||||
timer3blockFuel.start();
|
||||
setprop("/FMGC/internal/block-fuel-time", pts.Sim.Time.elapsedSec.getValue());
|
||||
FMGCInternal.blockFuelTime = -99;
|
||||
timer3blockFuel.stop();
|
||||
}
|
||||
|
||||
if (getprop("/FMGC/internal/block-fuel-time") == -99) {
|
||||
if (FMGCInternal.blockFuelTime == -99) {
|
||||
timer3blockFuel.start();
|
||||
setprop("/FMGC/internal/block-fuel-time", pts.Sim.Time.elapsedSec.getValue());
|
||||
FMGCInternal.blockFuelTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
# Calculate Fuel Prediction
|
||||
setlistener("/FMGC/internal/fuel-calculating", func() {
|
||||
if (timer5fuelPred.isRunning) {
|
||||
setprop("/FMGC/internal/fuel-pred-time", -99);
|
||||
timer5fuelPred.start();
|
||||
setprop("/FMGC/internal/fuel-pred-time", pts.Sim.Time.elapsedSec.getValue());
|
||||
FMGCInternal.fuelPredTime = -99;
|
||||
timer5fuelPred.stop();
|
||||
}
|
||||
|
||||
if (getprop("/FMGC/internal/fuel-pred-time") == -99) {
|
||||
if (FMGCInternal.fuelPredTime == -99) {
|
||||
timer5fuelPred.start();
|
||||
setprop("/FMGC/internal/fuel-pred-time", pts.Sim.Time.elapsedSec.getValue());
|
||||
FMGCInternal.fuelPredTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
# Maketimers
|
||||
var timer30secLanding = maketimer(1, func() {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > getprop("/FMGC/internal/landing-time") + 30) {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > (FMGCInternal.landingTime + 30)) {
|
||||
FMGCInternal.phase = 7;
|
||||
FMGCNodes.phase.setValue(7);
|
||||
|
||||
if (FMGCInternal.costIndexSet) {
|
||||
setprop("/FMGC/internal/last-cost-index", FMGCInternal.costIndex);
|
||||
} else {
|
||||
setprop("/FMGC/internal/last-cost-index", 0);
|
||||
}
|
||||
setprop("/FMGC/internal/landing-time", -99);
|
||||
FMGCInternal.landingTime = -99;
|
||||
timer30secLanding.stop();
|
||||
}
|
||||
});
|
||||
|
@ -1252,21 +1201,21 @@ var timer48gpsAlign3 = maketimer(1, func() {
|
|||
});
|
||||
|
||||
var timer3blockFuel = maketimer(1, func() {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > getprop("/FMGC/internal/block-fuel-time") + 3) {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > FMGCInternal.blockFuelTime + 3) {
|
||||
#updateFuel();
|
||||
fmgc.FMGCInternal.blockCalculating = 0;
|
||||
fmgc.blockCalculating.setValue(0);
|
||||
setprop("/FMGC/internal/block-fuel-time", -99);
|
||||
FMGCInternal.blockFuelTime = -99;
|
||||
timer3blockFuel.stop();
|
||||
}
|
||||
});
|
||||
|
||||
var timer5fuelPred = maketimer(1, func() {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > getprop("/FMGC/internal/fuel-pred-time") + 5) {
|
||||
if (pts.Sim.Time.elapsedSec.getValue() > FMGCInternal.fuelPredTime + 5) {
|
||||
#updateFuel();
|
||||
fmgc.FMGCInternal.fuelCalculating = 0;
|
||||
fmgc.fuelCalculating.setValue(0);
|
||||
setprop("/FMGC/internal/fuel-pred-time", -99);
|
||||
FMGCInternal.fuelPredTime = -99;
|
||||
timer5fuelPred.stop();
|
||||
}
|
||||
});
|
|
@ -120,7 +120,6 @@ var SimbriefParser = {
|
|||
fmgc.updateArptLatLon();
|
||||
fmgc.updateARPT();
|
||||
} else {
|
||||
me.cleanupInvalid();
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ var variousReset = func() {
|
|||
setprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override", 0);
|
||||
setprop("/controls/switches/cabinCall", 0);
|
||||
setprop("/controls/switches/mechCall", 0);
|
||||
libraries.emerLtsSwitch.setValue(0.5);
|
||||
pts.Controls.Switches.emerLtsSwitch.setValue(0.5);
|
||||
# cockpit voice recorder stuff
|
||||
setprop("/controls/CVR/power", 0);
|
||||
setprop("/controls/CVR/test", 0);
|
||||
|
@ -61,9 +61,9 @@ var variousReset = func() {
|
|||
setprop("/modes/fcu/hdg-time", -45);
|
||||
setprop("/controls/navigation/switching/att-hdg", 0);
|
||||
setprop("/controls/navigation/switching/air-data", 0);
|
||||
libraries.noSmokingSwitch.setValue(0.0);
|
||||
libraries.seatbeltSwitch.setValue(0.0);
|
||||
libraries.emerLtsSwitch.setValue(0.0);
|
||||
pts.Controls.Switches.noSmokingSwitch.setValue(0);
|
||||
pts.Controls.Switches.seatbeltSwitch.setValue(0);
|
||||
pts.Controls.Switches.emerLtsSwitch.setValue(0);
|
||||
}
|
||||
|
||||
var BUTTONS = {
|
||||
|
|
|
@ -64,13 +64,17 @@ var cargofwd = aircraft.door.new("/sim/model/door-positions/cargofwd", 10);
|
|||
# Seat armrests in the flight deck (unused)
|
||||
var armrests = aircraft.door.new("/sim/model/door-positions/armrests", 2);
|
||||
|
||||
# Cockpit door - TODO animation
|
||||
var cockpitdoor = aircraft.door.new("/sim/model/door-positions/doorc", 1);
|
||||
setprop("/sim/model/door-positions/doorc/lock-status",0);
|
||||
|
||||
# door opener/closer
|
||||
var triggerDoor = func(door, doorName, doorDesc) {
|
||||
if (getprop("/sim/model/door-positions/" ~ doorName ~ "/position-norm") > 0) {
|
||||
gui.popupTip("Closing " ~ doorDesc ~ " door");
|
||||
door.toggle();
|
||||
} else {
|
||||
if (getprop("/velocities/groundspeed-kt") > 5) {
|
||||
if (pts.Velocities.groundspeed.getValue() > 5) {
|
||||
gui.popupTip("You cannot open the doors while the aircraft is moving!");
|
||||
} else {
|
||||
gui.popupTip("Opening " ~ doorDesc ~ " door");
|
||||
|
@ -79,6 +83,25 @@ var triggerDoor = func(door, doorName, doorDesc) {
|
|||
}
|
||||
};
|
||||
|
||||
setlistener("/controls/doors/doorc-switch",func(a){
|
||||
setprop("sim/sounde/switch1", 1);
|
||||
if (systems.ELEC.Bus.dc1.getValue() > 25 or systems.ELEC.Bus.dc2.getValue() > 25) {
|
||||
var pos = a.getValue();
|
||||
var current = getprop("/sim/model/door-positions/doorc/lock-status");
|
||||
if (pos == 1 and current == 0) { ## LOCK
|
||||
settimer( func {
|
||||
if (a.getValue() == pos) setprop("/sim/model/door-positions/doorc/lock-status",1);
|
||||
},0.4);
|
||||
}
|
||||
else if (pos == -1 and current == 1) { ## UNLOCK
|
||||
settimer( func {
|
||||
if (a.getValue() == pos) setprop("/sim/model/door-positions/doorc/lock-status",0);
|
||||
},0.3);
|
||||
}
|
||||
#setprop("/sim/model/door-positions/doorc/lock-status",-9); ## FAULT
|
||||
}
|
||||
},0,0);
|
||||
|
||||
###########
|
||||
# Systems #
|
||||
###########
|
||||
|
@ -133,48 +156,6 @@ setlistener("/sim/signals/fdm-initialized", func() {
|
|||
emesary.GlobalTransmitter.Register(A320Libraries);
|
||||
});
|
||||
|
||||
var collectorTankL = props.globals.getNode("/fdm/jsbsim/propulsion/tank[5]/contents-lbs");
|
||||
var collectorTankR = props.globals.getNode("/fdm/jsbsim/propulsion/tank[6]/contents-lbs");
|
||||
var groundAir = props.globals.getNode("/controls/pneumatics/switches/groundair");
|
||||
var groundCart = props.globals.getNode("/controls/electrical/ground-cart");
|
||||
var chocks = props.globals.getNode("/services/chocks/enable");
|
||||
var groundspeed = 0;
|
||||
var stateL = 0;
|
||||
var stateR = 0;
|
||||
|
||||
var seatbeltSwitch = props.globals.getNode("/controls/switches/seatbelt-sign");
|
||||
var noSmokingSwitch = props.globals.getNode("/controls/switches/no-smoking-sign");
|
||||
var emerLtsSwitch = props.globals.getNode("/controls/switches/emer-lights");
|
||||
var seatbeltLight = props.globals.getNode("/controls/lighting/seatbelt-sign");
|
||||
var noSmokingLight = props.globals.getNode("/controls/lighting/no-smoking-sign");
|
||||
|
||||
var update_items = [
|
||||
props.UpdateManager.FromHashValue("seatbelt", nil, func(val) {
|
||||
if (val) {
|
||||
if (!seatbeltLight.getBoolValue()) {
|
||||
seatbeltLight.setValue(1);
|
||||
}
|
||||
} else {
|
||||
if (seatbeltLight.getBoolValue()) {
|
||||
seatbeltLight.setValue(0);
|
||||
}
|
||||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashList(["noSmoking","gearPosNorm"], nil, func(val) {
|
||||
if (val.noSmoking == 1) {
|
||||
if (!noSmokingLight.getBoolValue()) {
|
||||
noSmokingLight.setBoolValue(1);
|
||||
}
|
||||
} elsif (val.noSmoking == 0.5 and val.gearPosNorm != 0) { # todo: should be when uplocks not engaged
|
||||
if (!noSmokingLight.getBoolValue()) {
|
||||
noSmokingLight.setBoolValue(1);
|
||||
}
|
||||
} else {
|
||||
noSmokingLight.setBoolValue(0); # sign stays on in cabin but sound still occurs
|
||||
}
|
||||
}),
|
||||
];
|
||||
|
||||
var systemsLoop = func(notification) {
|
||||
if (!systemsInitialized and getprop("/systems/acconfig/mismatch-code") != "0x000") { return; }
|
||||
systems.PNEU.loop(notification);
|
||||
|
@ -190,66 +171,55 @@ var systemsLoop = func(notification) {
|
|||
atsu.ATSU.loop();
|
||||
libraries.BUTTONS.update();
|
||||
|
||||
if ((notification.engine1State == 2 or notification.engine1State == 3) and collectorTankL.getValue() < 1) {
|
||||
if (notification.engine1State >= 2 and pts.Fdm.JSBsim.Propulsion.Tank.contentsLbs[5].getValue() < 1) {
|
||||
systems.cutoff_one();
|
||||
}
|
||||
if ((notification.engine2State == 2 or notification.engine2State == 3) and collectorTankR.getValue() < 1) {
|
||||
systems.cutoff_two();
|
||||
}
|
||||
|
||||
foreach (var update_item; update_items) {
|
||||
update_item.update(notification);
|
||||
if (notification.engine2State >= 2 and pts.Fdm.JSBsim.Propulsion.Tank.contentsLbs[6].getValue() < 1) {
|
||||
systems.cutoff_two();
|
||||
}
|
||||
}
|
||||
|
||||
# GPWS
|
||||
var GPWS = {
|
||||
inhibitNode: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/gpws-inhibit"),
|
||||
tatcfInhibit: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit"),
|
||||
volume: props.globals.getNode("/instrumentation/mk-viii/speaker/volume"),
|
||||
flapAllOverride: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override"),
|
||||
flap3Override: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override"),
|
||||
flapOverride: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/momentary-flap-override"),
|
||||
alertMode: props.globals.initNode("/instrumentation/mk-viii/outputs/alert-mode",0,"INT"),
|
||||
alertMode: props.globals.initNode("/instrumentation/mk-viii/outputs/alert-mode", 0, "INT"),
|
||||
alert: props.globals.getNode("instrumentation/mk-viii/outputs/discretes/gpws-alert"),
|
||||
warning: props.globals.getNode("instrumentation/mk-viii/outputs/discretes/gpws-warning"),
|
||||
};
|
||||
|
||||
setlistener("/instrumentation/mk-viii/inputs/discretes/gpws-inhibit", func() {
|
||||
if (GPWS.inhibitNode.getBoolValue()) {
|
||||
GPWS.volume.setValue(2);
|
||||
} else {
|
||||
GPWS.volume.setValue(0);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
var updateGPWSFlap = func() {
|
||||
if (GPWS.flapAllOverride.getBoolValue() or (GPWS.flap3Override.getBoolValue() and pts.Controls.Flight.flapsPos.getValue() >= 4)) {
|
||||
GPWS.flapOverride.setBoolValue(1);
|
||||
} else {
|
||||
GPWS.flapOverride.setBoolValue(0);
|
||||
}
|
||||
}
|
||||
|
||||
setlistener("/instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override", func() {
|
||||
updateGPWSFlap();
|
||||
}, 0, 0);
|
||||
|
||||
setlistener("/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override", func() {
|
||||
updateGPWSFlap();
|
||||
}, 0, 0);
|
||||
|
||||
# GPWS alert pooling for get mode change - a little esoteric way but it works
|
||||
var gpws_alert_watch = maketimer(0.8,func {
|
||||
var alert = 0;
|
||||
if (getprop("instrumentation/mk-viii/outputs/discretes/gpws-warning")) alert = 2; # MODE2 - warning - RED
|
||||
else if (getprop("instrumentation/mk-viii/outputs/discretes/gpws-alert")) alert = 1; # MODE1 - caution - YELLOW
|
||||
if (GPWS.alertMode.getValue()!=alert) GPWS.alertMode.setValue(alert);
|
||||
var GPWSAlertStatus = 0;
|
||||
var gpws_alert_watch = maketimer(0.8, func() {
|
||||
if (GPWS.warning.getValue()) {
|
||||
GPWSAlertStatus = 2; # MODE2 - warning - RED
|
||||
} else if (GPWS.alert.getValue()) {
|
||||
GPWSAlertStatus = 1; # MODE1 - caution - YELLOW
|
||||
} else {
|
||||
GPWSAlertStatus = 0;
|
||||
}
|
||||
|
||||
if (GPWS.alertMode.getValue() != GPWSAlertStatus) {
|
||||
GPWS.alertMode.setValue(GPWSAlertStatus);
|
||||
}
|
||||
});
|
||||
|
||||
setlistener("/instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit", func{ # detect GPWS switch status
|
||||
var failure = GPWS.tatcfInhibit.getBoolValue();
|
||||
if (!failure) gpws_alert_watch.start();
|
||||
else gpws_alert_watch.stop();
|
||||
},1,0);
|
||||
# detect GPWS switch status
|
||||
setlistener("/instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit", func (val) {
|
||||
if (!val.getBoolValue()) {
|
||||
gpws_alert_watch.start();
|
||||
} else {
|
||||
gpws_alert_watch.stop();
|
||||
}
|
||||
}, 1, 0);
|
||||
|
||||
# Steep ILS
|
||||
setlistener("/options/steep-ils", func(val) {
|
||||
if (val.getValue()) {
|
||||
pts.Instrumentation.MKVII.Inputs.Discretes.steepApproach.setValue(1);
|
||||
} else {
|
||||
pts.Instrumentation.MKVII.Inputs.Discretes.steepApproach.setValue(0);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
# Replay
|
||||
var replayState = props.globals.getNode("/sim/replay/replay-state");
|
||||
|
@ -261,15 +231,6 @@ setlistener(replayState, func(v) {
|
|||
}
|
||||
}, 0, 0);
|
||||
|
||||
# Steep ILS
|
||||
setlistener("/options/steep-ils", func() {
|
||||
if (getprop("/options/steep-ils") == 1) {
|
||||
setprop("/instrumentation/mk-viii/inputs/discretes/steep-approach", 1);
|
||||
} else {
|
||||
setprop("/instrumentation/mk-viii/inputs/discretes/steep-approach", 0);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
# hackCanvas
|
||||
canvas.Text._lastText = canvas.Text["_lastText"];
|
||||
canvas.Text.setText = func(text) {
|
||||
|
@ -392,8 +353,6 @@ var LibrariesRecipient =
|
|||
|
||||
var input = {
|
||||
# Libraries
|
||||
"seatbelt": "/controls/switches/seatbelt-sign",
|
||||
"noSmoking": "/controls/switches/no-smoking-sign",
|
||||
"gearPosNorm": "/gear/gear[0]/position-norm",
|
||||
"gearPosNorm1": "/gear/gear[1]/position-norm",
|
||||
"gearPosNorm2": "/gear/gear[2]/position-norm",
|
||||
|
@ -407,8 +366,8 @@ foreach (var name; keys(input)) {
|
|||
|
||||
# TODO split EFIS altimeters
|
||||
var newinhg = nil;
|
||||
setlistener("/instrumentation/altimeter/setting-inhg", func() {
|
||||
newinhg = getprop("/instrumentation/altimeter/setting-inhg");
|
||||
setlistener("/instrumentation/altimeter/setting-inhg", func(val) {
|
||||
newinhg = val.getValue();
|
||||
setprop("/instrumentation/altimeter[1]/setting-inhg", newinhg);
|
||||
setprop("/instrumentation/altimeter[2]/setting-inhg", newinhg);
|
||||
setprop("/instrumentation/altimeter[3]/setting-inhg", newinhg);
|
||||
|
@ -417,8 +376,8 @@ setlistener("/instrumentation/altimeter/setting-inhg", func() {
|
|||
}, 0, 0);
|
||||
|
||||
var newhpa = nil;
|
||||
setlistener("/instrumentation/altimeter/setting-hpa", func() {
|
||||
newhpa = getprop("/instrumentation/altimeter/setting-hpa");
|
||||
setlistener("/instrumentation/altimeter/setting-hpa", func(val) {
|
||||
newhpa = val.getValue();
|
||||
setprop("/instrumentation/altimeter[1]/setting-hpa", newhpa);
|
||||
setprop("/instrumentation/altimeter[2]/setting-hpa", newhpa);
|
||||
setprop("/instrumentation/altimeter[3]/setting-hpa", newhpa);
|
||||
|
|
|
@ -69,9 +69,15 @@ var Controls = {
|
|||
},
|
||||
Lighting: {
|
||||
landingLights: [props.globals.getNode("/controls/lighting/landing-lights[0]"),props.globals.getNode("/controls/lighting/landing-lights[1]"),props.globals.getNode("/controls/lighting/landing-lights[2]")],
|
||||
noSmokingSign: props.globals.getNode("/controls/lighting/no-smoking-sign"),
|
||||
seatbeltSign: props.globals.getNode("/controls/lighting/seatbelt-sign"),
|
||||
strobe: props.globals.getNode("/controls/lighting/strobe"),
|
||||
},
|
||||
Switches: {
|
||||
annunTest: props.globals.getNode("/controls/switches/annun-test"),
|
||||
emerLtsSwitch: props.globals.getNode("/controls/switches/emer-lights"),
|
||||
noSmokingSwitch: props.globals.getNode("/controls/switches/no-smoking-sign"),
|
||||
seatbeltSwitch: props.globals.getNode("/controls/switches/seatbelt-sign"),
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -136,6 +142,10 @@ var Fdm = {
|
|||
fuelUsed: [props.globals.getNode("/fdm/jsbsim/propulsion/engine[0]/fuel-used-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/engine[1]/fuel-used-lbs")],
|
||||
reverserAngle: [props.globals.getNode("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad"), props.globals.getNode("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad")],
|
||||
},
|
||||
Tank: {
|
||||
contentsLbs: [props.globals.getNode("/fdm/jsbsim/propulsion/tank[0]/contents-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/tank[1]/contents-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/tank[2]/contents-lbs"),
|
||||
props.globals.getNode("/fdm/jsbsim/propulsion/tank[3]/contents-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/tank[4]/contents-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/tank[5]/contents-lbs"), props.globals.getNode("/fdm/jsbsim/propulsion/tank[6]/contents-lbs")],
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -207,6 +217,8 @@ var Instrumentation = {
|
|||
Inputs: {
|
||||
Discretes: {
|
||||
flap3Override: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override"),
|
||||
flapAllOverride: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override"),
|
||||
steepApproach: props.globals.getNode("/instrumentation/mk-viii/inputs/discretes/steep-approach"),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
# Sounds #
|
||||
##########
|
||||
|
||||
var playSoundOnce = func(path,delay) {
|
||||
setprop(path,1);
|
||||
settimer(func {setprop(path,0);},delay);
|
||||
}
|
||||
|
||||
setlistener("/sim/sounde/btn1", func {
|
||||
if (!getprop("/sim/sounde/btn1")) {
|
||||
return;
|
||||
|
@ -122,4 +127,11 @@ var pushbuttonSound = props.globals.getNode("/sim/sounde/pushbutton");
|
|||
var pushbutton = func() {
|
||||
pushbuttonSound.setValue(1);
|
||||
settimer(func {pushbuttonSound.setValue(0);},0.20);
|
||||
}
|
||||
}
|
||||
|
||||
setlistener("/sim/model/door-positions/doorc/lock-status",func(lock) {
|
||||
if (lock.getValue() == 1)
|
||||
playSoundOnce("/sim/sounde/doorc_locking",0.5);
|
||||
else
|
||||
playSoundOnce("/sim/sounde/doorc_unlocking",0.5);
|
||||
},0,0);
|
||||
|
|
|
@ -122,11 +122,17 @@ var fplnItem = {
|
|||
return [" " ~ fmgc.flightPlanController.fromWptAlt, "mag"];
|
||||
} elsif (me.wp.alt_cstr != nil and me.wp.alt_cstr > 0) {
|
||||
var tcol = (me.wp.alt_cstr_type == "computed" or me.wp.alt_cstr_type == "computed_mach") ? "grn" : "mag"; # TODO - check if only computed
|
||||
var cstrAlt = "";
|
||||
|
||||
if (me.wp.alt_cstr > fmgc.FMGCInternal.transAlt) {
|
||||
return [" " ~ sprintf("%5s", "FL" ~ math.round(num(me.wp.alt_cstr) / 100)), tcol];
|
||||
cstrAlt = "FL" ~ math.round(num(me.wp.alt_cstr) / 100);
|
||||
} else {
|
||||
return [" " ~ sprintf("%5.0f", me.wp.alt_cstr), tcol];
|
||||
cstrAlt = me.wp.alt_cstr;
|
||||
}
|
||||
|
||||
cstrAlt = (me.wp.alt_cstr_type == "above") ? "+" ~ cstrAlt : cstrAlt;
|
||||
cstrAlt = (me.wp.alt_cstr_type == "below") ? "-" ~ cstrAlt : cstrAlt;
|
||||
return [sprintf("%6s", cstrAlt), tcol];
|
||||
} else {
|
||||
return ["------", "wht"];
|
||||
}
|
||||
|
@ -208,25 +214,25 @@ var fplnItem = {
|
|||
} elsif (find("/", scratchpadStore) != -1) {
|
||||
var scratchpadSplit = split("/", scratchpadStore);
|
||||
|
||||
if (size(scratchpadSplit[0]) == 0) {
|
||||
if (num(scratchpadSplit[1]) != nil and (size(scratchpadSplit[1]) == 4 or size(scratchpadSplit[1]) == 5) and scratchpadSplit[1] >= 0 and scratchpadSplit[1] <= 39000) {
|
||||
me.wp.setAltitude(math.round(scratchpadSplit[1], 10), "at");
|
||||
if (size(scratchpadSplit[0]) != 0) {
|
||||
if (num(scratchpadSplit[0]) != nil and size(scratchpadSplit[0]) == 3 and scratchpadSplit[0] >= 100 and scratchpadSplit[0] <= 350) {
|
||||
me.wp.setSpeed(scratchpadSplit[0], "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
}
|
||||
|
||||
if (right(scratchpadSplit[1], 1) == "+") {
|
||||
validateAltCstrFpln(left(scratchpadSplit[1], size(scratchpadSplit[1]) - 1), "above", me);
|
||||
} elsif (right(scratchpadSplit[1], 1) == "-") {
|
||||
validateAltCstrFpln(left(scratchpadSplit[1], size(scratchpadSplit[1]) - 1), "below", me);
|
||||
} elsif (left(scratchpadSplit[1], 1) == "+") {
|
||||
validateAltCstrFpln(right(scratchpadSplit[1], size(scratchpadSplit[1]) - 1), "above", me);
|
||||
} elsif (left(scratchpadSplit[1], 1) == "-") {
|
||||
validateAltCstrFpln(right(scratchpadSplit[1], size(scratchpadSplit[1]) - 1), "below", me);
|
||||
} else {
|
||||
if (num(scratchpadSplit[0]) != nil and size(scratchpadSplit[0]) == 3 and scratchpadSplit[0] >= 100 and scratchpadSplit[0] <= 350 and
|
||||
num(scratchpadSplit[1]) != nil and (size(scratchpadSplit[1]) == 4 or size(scratchpadSplit[1]) == 5) and scratchpadSplit[1] >= 0 and scratchpadSplit[1] <= 39000) {
|
||||
me.wp.setSpeed(scratchpadSplit[0], "at");
|
||||
me.wp.setAltitude(math.round(scratchpadSplit[1], 10), "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
} elsif (num(scratchpadSplit[0]) != nil and size(scratchpadSplit[0]) == 3 and scratchpadSplit[0] >= 100 and scratchpadSplit[0] <= 350 and size(scratchpadSplit[1]) == 0) {
|
||||
me.wp.setSpeed(scratchpadSplit[0], "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
validateAltCstrFpln(scratchpadSplit[1], "at", me);
|
||||
}
|
||||
} elsif (num(scratchpadStore) != nil and size(scratchpadStore) == 3 and scratchpadStore >= 100 and scratchpadStore <= 350) {
|
||||
me.wp.setSpeed(scratchpadStore, "at");
|
||||
|
@ -240,6 +246,19 @@ var fplnItem = {
|
|||
},
|
||||
};
|
||||
|
||||
var validateAltCstrFpln = func(scratchpadStore, type, self) {
|
||||
if (num(scratchpadStore) != nil and (size(scratchpadStore) >= 3 and size(scratchpadStore) <= 5)) {
|
||||
if (scratchpadStore >= 100 and scratchpadStore <= 39000) {
|
||||
self.wp.setAltitude(math.round(scratchpadStore, 10), type);
|
||||
mcdu_scratchpad.scratchpads[self.computer].empty();
|
||||
} else {
|
||||
mcdu_message(self.computer, "ENTRY OUT OF RANGE");
|
||||
}
|
||||
} else {
|
||||
mcdu_message(self.computer, "FORMAT ERROR");
|
||||
}
|
||||
}
|
||||
|
||||
var staticText = {
|
||||
new: func(computer, text) {
|
||||
var sT = {parents:[staticText]};
|
||||
|
|
|
@ -15,7 +15,7 @@ var MCDU_init = func(i) {
|
|||
var MCDU_reset = func(i) {
|
||||
setprop("/MCDU[" ~ i ~ "]/active", 0);
|
||||
setprop("/MCDU[" ~ i ~ "]/atsu-active", 0);
|
||||
setprop("it-autoflight/settings/togaspd", 157); #aka v2 clone
|
||||
setprop("/it-autoflight/settings/togaspd", 157); #aka v2 clone
|
||||
setprop("/MCDU[" ~ i ~ "]/last-fmgc-page", "STATUS");
|
||||
setprop("/MCDU[" ~ i ~ "]/last-atsu-page", "ATSUDLINK");
|
||||
setprop("/MCDU[" ~ i ~ "]/active-system","");
|
||||
|
@ -25,10 +25,6 @@ var MCDU_reset = func(i) {
|
|||
setprop("/FMGC/keyboard-right", 0);
|
||||
|
||||
#ACCONFIG
|
||||
setprop("/FMGC/internal/navdatabase", "01JAN-28JAN");
|
||||
setprop("/FMGC/internal/navdatabase2", "29JAN-26FEB");
|
||||
setprop("/FMGC/internal/navdatabasecode", "AB20170101");
|
||||
setprop("/FMGC/internal/navdatabasecode2", "AB20170102");
|
||||
setprop("/FMGC/print/mcdu/page1/L1auto", 0);
|
||||
setprop("/FMGC/print/mcdu/page1/L2auto", 0);
|
||||
setprop("/FMGC/print/mcdu/page1/L3auto", 0);
|
||||
|
@ -500,6 +496,8 @@ var lskbutton = func(btn, i) {
|
|||
mcdu_scratchpad.scratchpads[i].empty();
|
||||
}
|
||||
}
|
||||
} else if (page == "VERTREV") {
|
||||
canvas_mcdu.myVertRev[i].pushButtonLeft(2);
|
||||
} else if (page == "MCDUTEXT") {
|
||||
atsu.freeTexts[i].selection = 1;
|
||||
atsu.freeTexts[i].changed = 1;
|
||||
|
@ -1527,7 +1525,12 @@ var button = func(btn, i, event = "") {
|
|||
} else if (btn == "DOT") {
|
||||
mcdu_scratchpad.scratchpads[i].addChar(".");
|
||||
} else if (btn == "PLUSMINUS") {
|
||||
mcdu_scratchpad.scratchpads[i].addChar("-");
|
||||
if (right(mcdu_scratchpad.scratchpads[i].scratchpad, 1) == "-") {
|
||||
mcdu_scratchpad.scratchpads[i].clear();
|
||||
mcdu_scratchpad.scratchpads[i].addChar("+");
|
||||
} else {
|
||||
mcdu_scratchpad.scratchpads[i].addChar("-");
|
||||
}
|
||||
} else {
|
||||
mcdu_scratchpad.scratchpads[i].addChar(btn);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
var scratchpadStore = nil;
|
||||
var scratchpadSplit = nil;
|
||||
|
||||
var vertRev = {
|
||||
title: [nil, nil, nil],
|
||||
|
@ -55,11 +56,17 @@ var vertRev = {
|
|||
getAlt: func() {
|
||||
if (me.wp.alt_cstr != nil and me.wp.alt_cstr > 0) {
|
||||
var tcol = (me.wp.alt_cstr_type == "computed" or me.wp.alt_cstr_type == "computed_mach") ? "grn" : "mag"; # TODO - check if only computed
|
||||
var cstrAlt = "";
|
||||
|
||||
if (me.wp.alt_cstr > fmgc.FMGCInternal.transAlt) {
|
||||
return [sprintf("%5s", "FL" ~ math.round(num(me.wp.alt_cstr) / 100)) ~ " ", tcol];
|
||||
cstrAlt = "FL" ~ math.round(num(me.wp.alt_cstr) / 100);
|
||||
} else {
|
||||
return [sprintf("%5.0f", me.wp.alt_cstr) ~ " ", tcol];
|
||||
cstrAlt = me.wp.alt_cstr;
|
||||
}
|
||||
|
||||
cstrAlt = (me.wp.alt_cstr_type == "above") ? "+" ~ cstrAlt : cstrAlt;
|
||||
cstrAlt = (me.wp.alt_cstr_type == "below") ? "-" ~ cstrAlt : cstrAlt;
|
||||
return [cstrAlt ~ (size(cstrAlt) == 6 ? "" : " "), tcol];
|
||||
} else {
|
||||
return [nil,nil];
|
||||
}
|
||||
|
@ -71,7 +78,7 @@ var vertRev = {
|
|||
me.title = ["VERT REV", " AT ", "PPOS"];
|
||||
me.L1 = ["", " EFOB ---.-", "wht"];
|
||||
me.R1 = ["", "EXTRA ---.- ", "wht"];
|
||||
me.L2 = ["250/10000", " CLB SPD LIM", "mag"];
|
||||
me.L2 = [fmgc.FMGCInternal.clbSpdLim ~ "/" ~ fmgc.FMGCInternal.clbSpdLimAlt, " CLB SPD LIM", "mag"];
|
||||
me.L4 = [" CONSTANT MACH", nil, "wht"];
|
||||
me.L5 = [" WIND DATA", nil, "wht"];
|
||||
me.L6 = [" RETURN", nil, "wht"];
|
||||
|
@ -84,7 +91,7 @@ var vertRev = {
|
|||
me.fontMatrix = [[0, 0, 1, 0, 0, 0], [0, 0, 1, 0, 0, 0]];
|
||||
me.L1 = ["", " EFOB ---.-", "wht"];
|
||||
me.R1 = ["", "EXTRA ---.- ", "wht"];
|
||||
me.L2 = ["250/10000", " CLB SPD LIM", "mag"];
|
||||
me.L2 = [fmgc.FMGCInternal.clbSpdLim ~ "/" ~ fmgc.FMGCInternal.clbSpdLimAlt, " CLB SPD LIM", "mag"];
|
||||
me.speed = me.getSpd();
|
||||
if (me.speed[0] == nil) {
|
||||
me.L3 = [" [ ]", " SPD CSTR", "blu"];
|
||||
|
@ -124,7 +131,7 @@ var vertRev = {
|
|||
}
|
||||
me.L1 = ["", " EFOB ---.-", "wht"];
|
||||
me.R1 = ["", "EXTRA ---.- ", "wht"];
|
||||
me.L2 = ["250/10000", " CLB SPD LIM", "mag"];
|
||||
me.L2 = [fmgc.FMGCInternal.clbSpdLim ~ "/" ~ fmgc.FMGCInternal.clbSpdLimAlt, " CLB SPD LIM", "mag"];
|
||||
me.L4 = [" CONSTANT MACH", nil, "wht"];
|
||||
me.L5 = [" WIND DATA", nil, "wht"];
|
||||
me.L6 = [" RETURN", nil, "wht"];
|
||||
|
@ -140,7 +147,7 @@ var vertRev = {
|
|||
}
|
||||
me.L1 = ["", " EFOB ---.-", "wht"];
|
||||
me.R1 = ["", "EXTRA ---.- ", "wht"];
|
||||
me.L2 = ["250/10000", " DES SPD LIM", "mag"];
|
||||
me.L2 = [fmgc.FMGCInternal.desSpdLim ~ "/" ~ fmgc.FMGCInternal.desSpdLimAlt, " DES SPD LIM", "mag"];
|
||||
me.L4 = [" CONSTANT MACH", nil, "wht"];
|
||||
me.L5 = [" WIND DATA", nil, "wht"];
|
||||
me.L6 = [" RETURN", nil, "wht"];
|
||||
|
@ -174,7 +181,65 @@ var vertRev = {
|
|||
},
|
||||
pushButtonLeft: func(index) {
|
||||
scratchpadStore = mcdu_scratchpad.scratchpads[me.computer].scratchpad;
|
||||
if (index == 3 and me.type == 2) {
|
||||
if (index == 2) {
|
||||
if (scratchpadStore == "CLR") {
|
||||
if (me.type == 1) {
|
||||
fmgc.FMGCInternal.desSpdLim = 250;
|
||||
fmgc.FMGCInternal.desSpdLimAlt = 10000;
|
||||
fmgc.FMGCInternal.desSpdLimSet = 0;
|
||||
} else {
|
||||
fmgc.FMGCInternal.clbSpdLim = 250;
|
||||
fmgc.FMGCInternal.clbSpdLimAlt = 10000;
|
||||
fmgc.FMGCInternal.clbSpdLimSet = 0;
|
||||
}
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} elsif (find("/", scratchpadStore) != -1) {
|
||||
scratchpadSplit = split("/", scratchpadStore);
|
||||
if (size(scratchpadSplit[0]) == 3 and num(scratchpadSplit[0]) != nil and size(scratchpadSplit[1]) >= 3 and size(scratchpadSplit[1]) <= 5 and num(scratchpadSplit[1]) != nil) {
|
||||
if (scratchpadSplit[0] >= 100 and scratchpadSplit[0] <= 340 and scratchpadSplit[1] >= 100 and scratchpadSplit[1] <= 39000) {
|
||||
if (me.type == 1) {
|
||||
fmgc.FMGCInternal.desSpdLim = scratchpadSplit[0];
|
||||
fmgc.FMGCInternal.desSpdLimSet = 1;
|
||||
if (size(scratchpadSplit[1]) != 0) {
|
||||
fmgc.FMGCInternal.desSpdLimAlt = scratchpadSplit[1];
|
||||
}
|
||||
} else {
|
||||
fmgc.FMGCInternal.clbSpdLim = scratchpadSplit[0];
|
||||
fmgc.FMGCInternal.clbSpdLimSet = 1;
|
||||
if (size(scratchpadSplit[1]) != 0) {
|
||||
fmgc.FMGCInternal.clbSpdLimAlt = scratchpadSplit[1];
|
||||
}
|
||||
}
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(me.computer, "ENTRY OUT OF RANGE");
|
||||
}
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
} elsif (num(scratchpadStore) != nil and size(scratchpadStore) == 3) {
|
||||
if (scratchpadStore >= 100 and scratchpadStore <= 340) {
|
||||
if (me.type == 1) {
|
||||
fmgc.FMGCInternal.desSpdLim = scratchpadStore;
|
||||
fmgc.FMGCInternal.desSpdLimSet = 1;
|
||||
} else {
|
||||
fmgc.FMGCInternal.clbSpdLim = scratchpadStore;
|
||||
fmgc.FMGCInternal.clbSpdLimSet = 1;
|
||||
}
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(me.computer, "ENTRY OUT OF RANGE");
|
||||
}
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
}
|
||||
} elsif (index == 3 and me.type == 2) {
|
||||
if (scratchpadStore == "CLR") {
|
||||
me.wp.setSpeed("delete");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
|
@ -242,18 +307,38 @@ var vertRev = {
|
|||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} elsif (num(scratchpadStore) != nil and (size(scratchpadStore) == 4 or size(scratchpadStore) == 5) and scratchpadStore >= 0 and scratchpadStore <= 39000) {
|
||||
me.wp.setAltitude(math.round(scratchpadStore, 10), "at");
|
||||
mcdu_scratchpad.scratchpads[me.computer].empty();
|
||||
me._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[me.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(me.computer, "FORMAT ERROR");
|
||||
if (right(scratchpadStore, 1) == "+") {
|
||||
validateAltCstr(left(scratchpadStore, size(scratchpadStore) - 1), "above", me);
|
||||
} elsif (right(scratchpadStore, 1) == "-") {
|
||||
validateAltCstr(left(scratchpadStore, size(scratchpadStore) - 1), "below", me);
|
||||
} elsif (left(scratchpadStore, 1) == "+") {
|
||||
validateAltCstr(right(scratchpadStore, size(scratchpadStore) - 1), "above", me);
|
||||
} elsif (left(scratchpadStore, 1) == "-") {
|
||||
validateAltCstr(right(scratchpadStore, size(scratchpadStore) - 1), "below", me);
|
||||
} else {
|
||||
validateAltCstr(scratchpadStore, "at", me);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var validateAltCstr = func(scratchpadStore, type, self) {
|
||||
if (num(scratchpadStore) != nil and (size(scratchpadStore) >= 3 and size(scratchpadStore) <= 5)) {
|
||||
if (scratchpadStore >= 100 and scratchpadStore <= 39000) {
|
||||
self.wp.setAltitude(math.round(scratchpadStore, 10), type);
|
||||
mcdu_scratchpad.scratchpads[self.computer].empty();
|
||||
self._setupPageWithData();
|
||||
canvas_mcdu.pageSwitch[self.computer].setBoolValue(0);
|
||||
} else {
|
||||
mcdu_message(self.computer, "ENTRY OUT OF RANGE");
|
||||
}
|
||||
} else {
|
||||
mcdu_message(self.computer, "FORMAT ERROR");
|
||||
}
|
||||
}
|
||||
|
||||
var updateCrzLvlCallback = func () {
|
||||
if (canvas_mcdu.myVertRev[0] != nil) {
|
||||
canvas_mcdu.myVertRev[0].updateR5();
|
||||
|
|
|
@ -273,24 +273,6 @@ var APU = {
|
|||
me.autoStop();
|
||||
}
|
||||
|
||||
if (systems.ELEC.Bus.dcBat.getValue() < 25) {
|
||||
if (!me._powerLost) {
|
||||
me._powerLost = 1;
|
||||
settimer(func() {
|
||||
if (me._powerLost) {
|
||||
if (me.GenericControls.starter.getValue()) {
|
||||
me.GenericControls.starter.setValue(0);
|
||||
}
|
||||
if (me.state != 0) {
|
||||
me.autoStop();
|
||||
}
|
||||
}
|
||||
}, 0.2);
|
||||
}
|
||||
} else {
|
||||
me._powerLost = 0;
|
||||
}
|
||||
|
||||
if (systems.ELEC.EmerElec.getValue() == 1 and (systems.ELEC.EmerElec45.getValue() != 1 and systems.ELEC.Source.EmerGen.voltsRelay.getValue() < 110)) {
|
||||
me.inhibitEMERELEC = 1;
|
||||
} else {
|
||||
|
@ -316,6 +298,19 @@ var APUController = {
|
|||
}
|
||||
};
|
||||
|
||||
setlistener("/systems/apu/shutdown-power-loss", func(val) {
|
||||
if (APUController.APU != nil) {
|
||||
if (val.getBoolValue()) {
|
||||
if (APUController.APU.GenericControls.starter.getValue()) {
|
||||
APUController.APU.GenericControls.starter.setValue(0);
|
||||
}
|
||||
if (APUController.APU.state != 0) {
|
||||
APUController.APU.autoStop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
var _masterTime = 0;
|
||||
setlistener("/controls/apu/master", func() {
|
||||
if (APUController.APU != nil) {
|
||||
|
|
|
@ -19,8 +19,8 @@ var ground_services = {
|
|||
setprop("/services/deicing_truck/de-ice", 0);
|
||||
|
||||
# Set them all to 0 if the aircraft is not stationary
|
||||
if (getprop("velocities/groundspeed-kt") >= 2) {
|
||||
setprop("/services/chocks/enable", 0);
|
||||
if (pts.Velocities.groundspeed.getValue() >= 2) {
|
||||
pts.Controls.Gear.chocks.setValue(0);
|
||||
setprop("/services/fuel-truck/enable", 0);
|
||||
setprop("/services/deicing_truck/enable", 0);
|
||||
setprop("/services/catering/enable", 0);
|
||||
|
|
|
@ -17,13 +17,21 @@ var HYD = {
|
|||
},
|
||||
Fail: {
|
||||
blueElec: props.globals.getNode("/systems/failures/hydraulic/blue-elec"),
|
||||
blueElecOvht: props.globals.getNode("/systems/failures/hydraulic/blue-elec-ovht"),
|
||||
blueLeak: props.globals.getNode("/systems/failures/hydraulic/blue-leak"),
|
||||
blueReservoirAirPressLow: props.globals.getNode("/systems/failures/hydraulic/blue-reservoir-air-press-lo"),
|
||||
blueReservoirOvht: props.globals.getNode("/systems/failures/hydraulic/blue-reservoir-ovht"),
|
||||
greenEng: props.globals.getNode("/systems/failures/hydraulic/green-edp"),
|
||||
greenLeak: props.globals.getNode("/systems/failures/hydraulic/green-leak"),
|
||||
greenReservoirAirPressLow: props.globals.getNode("/systems/failures/hydraulic/green-reservoir-air-press-lo"),
|
||||
greenReservoirOvht: props.globals.getNode("/systems/failures/hydraulic/green-reservoir-ovht"),
|
||||
ptuFault: props.globals.getNode("/systems/failures/hydraulic/ptu"),
|
||||
yellowEng: props.globals.getNode("/systems/failures/hydraulic/yellow-edp"),
|
||||
yellowElec: props.globals.getNode("/systems/failures/hydraulic/yellow-elec"),
|
||||
yellowElecOvht: props.globals.getNode("/systems/failures/hydraulic/yellow-elec-ovht"),
|
||||
yellowLeak: props.globals.getNode("/systems/failures/hydraulic/yellow-leak"),
|
||||
yellowReservoirAirPressLow: props.globals.getNode("/systems/failures/hydraulic/yellow-reservoir-air-press-lo"),
|
||||
yellowReservoirOvht: props.globals.getNode("/systems/failures/hydraulic/yellow-reservoir-ovht"),
|
||||
},
|
||||
Psi: {
|
||||
blue: props.globals.getNode("/systems/hydraulic/blue-psi"),
|
||||
|
@ -36,6 +44,7 @@ var HYD = {
|
|||
},
|
||||
Pump: {
|
||||
yellowElec: props.globals.getNode("/systems/hydraulic/sources/yellow-elec/pump-operate"),
|
||||
yellowElecFail: props.globals.getNode("/ECAM/warnings/hyd/yellow-elec-pump-fail"),
|
||||
},
|
||||
Qty: {
|
||||
blueInput: props.globals.initNode("/systems/hydraulic/blue-qty-input", 0, "INT"),
|
||||
|
@ -66,6 +75,12 @@ var HYD = {
|
|||
blueAbnormLoPr: props.globals.getNode("/ECAM/warnings/hyd/blue-abnorm-lo-pr"),
|
||||
greenAbnormLoPr: props.globals.getNode("/ECAM/warnings/hyd/green-abnorm-lo-pr"),
|
||||
yellowAbnormLoPr: props.globals.getNode("/ECAM/warnings/hyd/yellow-abnorm-lo-pr"),
|
||||
blueLoLvl: props.globals.getNode("/systems/hydraulic/relays/blue-reservoir-low-qty-switch"),
|
||||
greenLoLvl: props.globals.getNode("/systems/hydraulic/relays/green-reservoir-low-qty-switch"),
|
||||
yellowLoLvl: props.globals.getNode("/systems/hydraulic/relays/yellow-reservoir-low-qty-switch"),
|
||||
blueReservoirOvht: props.globals.getNode("/systems/hydraulic/relays/blue-reservoir-overheat"),
|
||||
greenReservoirOvht: props.globals.getNode("/systems/hydraulic/relays/green-reservoir-overheat"),
|
||||
yellowReservoirOvht: props.globals.getNode("/systems/hydraulic/relays/yellow-reservoir-overheat"),
|
||||
},
|
||||
init: func() {
|
||||
me.resetFail();
|
||||
|
@ -83,13 +98,21 @@ var HYD = {
|
|||
},
|
||||
resetFail: func() {
|
||||
me.Fail.blueElec.setBoolValue(0);
|
||||
me.Fail.blueElecOvht.setBoolValue(0);
|
||||
me.Fail.blueLeak.setBoolValue(0);
|
||||
me.Fail.blueReservoirAirPressLow.setBoolValue(0);
|
||||
me.Fail.blueReservoirOvht.setBoolValue(0);
|
||||
me.Fail.greenEng.setBoolValue(0);
|
||||
me.Fail.greenLeak.setBoolValue(0);
|
||||
me.Fail.greenReservoirAirPressLow.setBoolValue(0);
|
||||
me.Fail.greenReservoirOvht.setBoolValue(0);
|
||||
me.Fail.ptuFault.setBoolValue(0);
|
||||
me.Fail.yellowEng.setBoolValue(0);
|
||||
me.Fail.yellowElec.setBoolValue(0);
|
||||
me.Fail.yellowElecOvht.setBoolValue(0);
|
||||
me.Fail.yellowLeak.setBoolValue(0);
|
||||
me.Fail.yellowReservoirAirPressLow.setBoolValue(0);
|
||||
me.Fail.yellowReservoirOvht.setBoolValue(0);
|
||||
},
|
||||
loop: func(notification) {
|
||||
# Decrease accumPressPsi when green and yellow hydraulics aren't pressurized
|
||||
|
|
|
@ -1800,6 +1800,28 @@
|
|||
</volume>
|
||||
</relay>
|
||||
|
||||
<relay>
|
||||
<name>CockpitDoorLocking</name>
|
||||
<mode>once</mode>
|
||||
<path>Aircraft/A320-family/Sounds/Cockpit/cockpitdoor_lock.wav</path>
|
||||
<property>/sim/sounde/doorc_locking</property>
|
||||
<volume>
|
||||
<property>/sim/current-view/internal</property>
|
||||
<factor>1</factor>
|
||||
</volume>
|
||||
</relay>
|
||||
|
||||
<relay>
|
||||
<name>CockpitDoorUnlocking</name>
|
||||
<mode>once</mode>
|
||||
<path>Aircraft/A320-family/Sounds/Cockpit/cockpitdoor_unlock.wav</path>
|
||||
<property>/sim/sounde/doorc_unlocking</property>
|
||||
<volume>
|
||||
<property>/sim/current-view/internal</property>
|
||||
<factor>0.8</factor>
|
||||
</volume>
|
||||
</relay>
|
||||
|
||||
<announcements>
|
||||
<name>fa_boarding</name>
|
||||
<mode>once</mode>
|
||||
|
|
BIN
Sounds/Cockpit/cockpitdoor_lock.wav
Normal file
BIN
Sounds/Cockpit/cockpitdoor_lock.wav
Normal file
Binary file not shown.
BIN
Sounds/Cockpit/cockpitdoor_unlock.wav
Normal file
BIN
Sounds/Cockpit/cockpitdoor_unlock.wav
Normal file
Binary file not shown.
|
@ -7,52 +7,52 @@
|
|||
<channel name="APU" execrate="8">
|
||||
<!-- bleed 1.8 kg / sec @ 42 psig -->
|
||||
<!-- fuel 148 kg/hr -->
|
||||
<!-- generator 24034 rpm, 10129 rpm fuel ctl, 32045 rpm starter, 51965 rpm cooling, 4137rpm oil pump -->
|
||||
<!-- generator 24034 rpm, 10129 rpm fuel ctl, 32045 rpm starter, 51965 rpm cooling, 4137rpm oil pump -->
|
||||
|
||||
<fcs_function name="/systems/apu/bleed-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<eq>
|
||||
<property>/controls/pneumatics/switches/apu</property>
|
||||
<value>1</value>
|
||||
</eq>
|
||||
<value>252</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
||||
<fcs_function name="/systems/apu/electrical-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<gt>
|
||||
<property>/systems/electrical/relay/apu-glc/output</property>
|
||||
<value>110</value>
|
||||
</gt>
|
||||
<value>132</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/apu-load-cmd">
|
||||
<function>
|
||||
<quotient>
|
||||
<sum>
|
||||
<property>/systems/apu/electrical-load-kw</property>
|
||||
<property>/systems/apu/bleed-load-kw</property>
|
||||
</sum>
|
||||
<value>400</value>
|
||||
</quotient>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<actuator name="/systems/apu/apu-load">
|
||||
<input>/systems/apu/apu-load-cmd</input>
|
||||
<rate_limit>0.01</rate_limit> <!-- 60 seconds cooling period for bleed which is ~ 60% -->
|
||||
</actuator>
|
||||
|
||||
<fcs_function name="/systems/apu/bleed-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<eq>
|
||||
<property>/controls/pneumatics/switches/apu</property>
|
||||
<value>1</value>
|
||||
</eq>
|
||||
<value>252</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
||||
<fcs_function name="/systems/apu/electrical-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<gt>
|
||||
<property>/systems/electrical/relay/apu-glc/output</property>
|
||||
<value>110</value>
|
||||
</gt>
|
||||
<value>132</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/apu-load-cmd">
|
||||
<function>
|
||||
<quotient>
|
||||
<sum>
|
||||
<property>/systems/apu/electrical-load-kw</property>
|
||||
<property>/systems/apu/bleed-load-kw</property>
|
||||
</sum>
|
||||
<value>400</value>
|
||||
</quotient>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<actuator name="/systems/apu/apu-load">
|
||||
<input>/systems/apu/apu-load-cmd</input>
|
||||
<rate_limit>0.01</rate_limit> <!-- 60 seconds cooling period for bleed which is ~ 60% -->
|
||||
</actuator>
|
||||
|
||||
<washout_filter name="/systems/apu/dn-dt">
|
||||
<input>/engines/engine[2]/n1</input>
|
||||
<c1>1</c1>
|
||||
|
@ -60,60 +60,60 @@
|
|||
|
||||
<fcs_function name="/systems/apu/egt-degC">
|
||||
<function>
|
||||
<sum>
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>50</value>
|
||||
</product>
|
||||
<ifthen>
|
||||
<or>
|
||||
<lt>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>0.5</value>
|
||||
</lt>
|
||||
<gt>
|
||||
<property>/systems/apu/dn-dt</property>
|
||||
<value>0</value>
|
||||
</gt>
|
||||
</or>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
5.0 20.0
|
||||
8.0 45.0
|
||||
10.0 120.0
|
||||
12.0 225.0
|
||||
18.0 430.0
|
||||
25.0 500.0
|
||||
27.0 560.0
|
||||
30.0 720.0
|
||||
35.0 785.0
|
||||
40.0 800.0
|
||||
45.0 795.0
|
||||
50.0 785.0
|
||||
60.0 755.0
|
||||
75.0 645.0
|
||||
90.0 520.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
2.0 200.0
|
||||
8.0 220.0
|
||||
12.0 225.0
|
||||
18.0 240.0
|
||||
30.0 250.0
|
||||
50.0 265.0
|
||||
60.0 295.0
|
||||
75.0 380.0
|
||||
90.0 410.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
</ifthen>
|
||||
</sum>
|
||||
<sum>
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>50</value>
|
||||
</product>
|
||||
<ifthen>
|
||||
<or>
|
||||
<lt>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>0.5</value>
|
||||
</lt>
|
||||
<gt>
|
||||
<property>/systems/apu/dn-dt</property>
|
||||
<value>0</value>
|
||||
</gt>
|
||||
</or>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
5.0 20.0
|
||||
8.0 45.0
|
||||
10.0 120.0
|
||||
12.0 225.0
|
||||
18.0 430.0
|
||||
25.0 500.0
|
||||
27.0 560.0
|
||||
30.0 720.0
|
||||
35.0 785.0
|
||||
40.0 800.0
|
||||
45.0 795.0
|
||||
50.0 785.0
|
||||
60.0 755.0
|
||||
75.0 645.0
|
||||
90.0 520.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
2.0 200.0
|
||||
8.0 220.0
|
||||
12.0 225.0
|
||||
18.0 240.0
|
||||
30.0 250.0
|
||||
50.0 265.0
|
||||
60.0 295.0
|
||||
75.0 380.0
|
||||
90.0 410.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
</ifthen>
|
||||
</sum>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
@ -137,31 +137,31 @@
|
|||
</table>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/oil/oil-temperature-degC">
|
||||
|
||||
<fcs_function name="/systems/apu/oil/oil-temperature-degC">
|
||||
<function>
|
||||
<product>
|
||||
<sum>
|
||||
<value>1.0</value> <!-- tune -->
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>0.3</value>
|
||||
</product>
|
||||
</sum>
|
||||
<table>
|
||||
<independentVar lookup="row">/systems/apu/oil/oil-pressure-psi</independentVar>
|
||||
<tableData>
|
||||
0 0
|
||||
25 135
|
||||
35 105
|
||||
55 85
|
||||
</tableData>
|
||||
</table>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
</product>
|
||||
<product>
|
||||
<sum>
|
||||
<value>1.0</value> <!-- tune -->
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>0.3</value>
|
||||
</product>
|
||||
</sum>
|
||||
<table>
|
||||
<independentVar lookup="row">/systems/apu/oil/oil-pressure-psi</independentVar>
|
||||
<tableData>
|
||||
0 0
|
||||
25 135
|
||||
35 105
|
||||
55 85
|
||||
</tableData>
|
||||
</table>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
</product>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
@ -170,10 +170,10 @@
|
|||
<sum>
|
||||
<property>/systems/apu/oil/level-l</property>
|
||||
<product>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
<property>/systems/apu/oil/allow-oil-consumption</property>
|
||||
<value>-0.00000131437</value>
|
||||
<property>simulation/channel-dt</property>
|
||||
|
@ -182,6 +182,27 @@
|
|||
</function>
|
||||
<output>/systems/apu/oil/level-l</output>
|
||||
</fcs_function>
|
||||
|
||||
<switch name="/systems/apu/shutdown-power-loss-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-bat lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/systems/apu/shutdown-power-loss-timer">
|
||||
<input>/systems/apu/shutdown-power-loss-cmd</input>
|
||||
<rate_limit sense="incr">5</rate_limit>
|
||||
<rate_limit sense="decr">100</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/systems/apu/shutdown-power-loss">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/apu/shutdown-power-loss-timer eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
||||
</channel>
|
||||
|
||||
|
|
|
@ -2153,7 +2153,7 @@
|
|||
|
||||
<channel name="Emergency Electric Logic" execrate="8">
|
||||
|
||||
<switch name="/systems/electrical/some-electric-thingie/emer-elec-config">
|
||||
<switch name="/systems/electrical/some-electric-thingie/emer-elec-config-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/ac-1 lt 110
|
||||
|
@ -2163,20 +2163,33 @@
|
|||
/systems/electrical/relay/ext-epc/contact-pos eq 0
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/gen-1 eq 0
|
||||
/systems/failures/electrical/gen-1 eq 1
|
||||
/ECAM/warnings/logic/gen-1-inop eq 1
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/gen-2 eq 0
|
||||
/systems/failures/electrical/gen-2 eq 1
|
||||
/ECAM/warnings/logic/gen-2-inop eq 1
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/apu eq 0
|
||||
/systems/failures/electrical/apu eq 1
|
||||
/engines/engine[2]/n1 lt 94.9
|
||||
/ECAM/warnings/logic/apu-gen-fault eq 1
|
||||
/systems/apu/available eq 0
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/systems/electrical/some-electric-thingie/emer-elec-config-timer">
|
||||
<input>/systems/electrical/some-electric-thingie/emer-elec-config-cmd</input>
|
||||
<rate_limit sense="incr">5</rate_limit>
|
||||
<rate_limit sense="decr">100</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/systems/electrical/some-electric-thingie/emer-elec-config">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config-timer eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/electrical/some-electric-thingie/emer-elec-config-generator-1-bustie">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
|
|
|
@ -570,7 +570,7 @@
|
|||
<switch name="/systems/fctl/fac1-healthy-signal">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/fctl/fac1-healthy ne 0
|
||||
/systems/fctl/fac1-healthy eq 1
|
||||
<test logic="OR">
|
||||
/systems/fctl/fac1-healthy-latch eq 0
|
||||
/gear/gear[0]/wow eq 1
|
||||
|
@ -641,7 +641,7 @@
|
|||
<switch name="/systems/fctl/fac2-healthy-signal">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/fctl/fac2-healthy ne 0
|
||||
/systems/fctl/fac2-healthy eq 1
|
||||
<test logic="OR">
|
||||
/systems/fctl/fac2-healthy-latch eq 0
|
||||
/gear/gear[0]/wow eq 1
|
||||
|
|
|
@ -186,7 +186,6 @@
|
|||
</switch>
|
||||
|
||||
<actuator name="/systems/fuel/pumps/center-control-low-level">
|
||||
<description>Timer for the Fuel Center pumps</description>
|
||||
<input>/systems/fuel/quantity/center-low</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.00333</rate_limit> <!-- 300 seconds -->
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
<channel name="FWC Phase Logic Timers" execrate="8">
|
||||
|
||||
<actuator name="/ECAM/timer/ground-calc">
|
||||
<description>Timer for the ECAM phase system</description>
|
||||
<input>/ECAM/logic/ground-calc-immediate</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">1</rate_limit> <!-- 1 second -->
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,8 @@
|
|||
<system name="A320: Hydraulic">
|
||||
|
||||
<property value="500">/systems/hydraulic/sys-incr-rate</property> <!-- 2 seconds per 1000 psi -->
|
||||
<channel name="SYS Leak Logic" execrate="8">
|
||||
|
||||
<channel name="Reservoir Quantity" execrate="8">
|
||||
|
||||
<!-- Blue -->
|
||||
<switch name="/systems/hydraulic/blue-qty-cmd">
|
||||
|
@ -84,7 +85,7 @@
|
|||
|
||||
</channel>
|
||||
|
||||
<channel name="Main Hydraulic" execrate="8">
|
||||
<channel name="Sources" execrate="8">
|
||||
|
||||
<!-- Common -->
|
||||
<switch name="/systems/hydraulic/sys-decr-rate">
|
||||
|
@ -132,6 +133,16 @@
|
|||
<default value="/systems/hydraulic/sources/rat/source-psi"/>
|
||||
</switch>
|
||||
|
||||
|
||||
<!-- TODO PSI according to flow rate
|
||||
0 L / M = 2987 psi
|
||||
23 L / M = 2854 psi
|
||||
32 L / M = 2175 psi
|
||||
|
||||
Power Draw 45A at speed of 7600 RPM to 8000 RPM max load
|
||||
Startup Draw 138A
|
||||
-->
|
||||
|
||||
<!-- Elec Blue -->
|
||||
<switch name="/systems/hydraulic/sources/blue-elec/pump-operate">
|
||||
<default value="0"/>
|
||||
|
@ -172,7 +183,6 @@
|
|||
</switch>
|
||||
|
||||
<actuator name="/systems/hydraulic/sources/blue-elec/pump-operate-apu-timer">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/systems/hydraulic/sources/blue-elec/pump-operate-apu</input>
|
||||
<rate_limit sense="incr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="decr">0.0083333</rate_limit> <!-- 120 seconds -->
|
||||
|
@ -204,6 +214,11 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- TODO PSI according to flow rate
|
||||
0 L / M = 3000 psi
|
||||
140 L / M = 2854 psi
|
||||
-->
|
||||
|
||||
<!-- EDP Green -->
|
||||
<fcs_function name="/systems/hydraulic/sources/green-edp/source-psi">
|
||||
<function>
|
||||
|
@ -233,7 +248,6 @@
|
|||
<default value="0"/>
|
||||
<test value="/systems/hydraulic/sources/green-edp/source-psi">
|
||||
/controls/hydraulic/switches/green-edp eq 1
|
||||
/systems/hydraulic/sources/green-edp/fire-valve lt 0.10
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -250,6 +264,15 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- TODO PSI according to flow rate
|
||||
0 L / M = 2987 psi
|
||||
23 L / M = 2842 psi
|
||||
32 L / M = 2175 psi
|
||||
|
||||
Power Draw 45A at full speed of 7700 RPM
|
||||
Startup 138A
|
||||
-->
|
||||
|
||||
<fcs_function name="/systems/hydraulic/sources/yellow-elec/source-psi">
|
||||
<function>
|
||||
<table>
|
||||
|
@ -269,6 +292,12 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
|
||||
<!-- TODO PSI according to flow rate
|
||||
0 L / M = 3000 psi
|
||||
140 L / M = 2854 psi
|
||||
-->
|
||||
|
||||
<!-- EDP Yellow -->
|
||||
<fcs_function name="/systems/hydraulic/sources/yellow-edp/source-psi">
|
||||
<function>
|
||||
|
@ -298,10 +327,13 @@
|
|||
<default value="0"/>
|
||||
<test value="/systems/hydraulic/sources/yellow-edp/source-psi">
|
||||
/controls/hydraulic/switches/yellow-edp eq 1
|
||||
/systems/hydraulic/sources/yellow-edp/fire-valve lt 0.10
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Pressure Totals" execrate="8">
|
||||
|
||||
<!-- Blue PSI -->
|
||||
<fcs_function name="/systems/hydraulic/blue-psi-cmd">
|
||||
<function>
|
||||
|
@ -341,17 +373,23 @@
|
|||
|
||||
<fcs_function name="/systems/hydraulic/green-psi-cmd">
|
||||
<function>
|
||||
<ifthen>
|
||||
<ge>
|
||||
<property>/systems/hydraulic/green-qty</property>
|
||||
<value>1.0</value>
|
||||
</ge>
|
||||
<max>
|
||||
<property>/systems/hydraulic/green-psi-cmd-pump</property>
|
||||
<property>/systems/hydraulic/sources/ptu/yellow-green</property>
|
||||
</max>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
<product>
|
||||
<ifthen>
|
||||
<ge>
|
||||
<property>/systems/hydraulic/green-qty</property>
|
||||
<value>1.0</value>
|
||||
</ge>
|
||||
<max>
|
||||
<property>/systems/hydraulic/green-psi-cmd-pump</property>
|
||||
<property>/systems/hydraulic/sources/ptu/yellow-green</property>
|
||||
</max>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
<difference>
|
||||
<value>1</value>
|
||||
<property>/systems/hydraulic/sources/green-edp/fire-valve</property>
|
||||
</difference>
|
||||
</product>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
@ -385,17 +423,23 @@
|
|||
|
||||
<fcs_function name="/systems/hydraulic/yellow-psi-cmd">
|
||||
<function>
|
||||
<ifthen>
|
||||
<ge>
|
||||
<property>/systems/hydraulic/yellow-qty</property>
|
||||
<value>1.0</value>
|
||||
</ge>
|
||||
<max>
|
||||
<property>/systems/hydraulic/yellow-psi-cmd-pump</property>
|
||||
<property>/systems/hydraulic/sources/ptu/green-yellow</property>
|
||||
</max>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
<product>
|
||||
<ifthen>
|
||||
<ge>
|
||||
<property>/systems/hydraulic/yellow-qty</property>
|
||||
<value>1.0</value>
|
||||
</ge>
|
||||
<max>
|
||||
<property>/systems/hydraulic/yellow-psi-cmd-pump</property>
|
||||
<property>/systems/hydraulic/sources/ptu/green-yellow</property>
|
||||
</max>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
<difference>
|
||||
<value>1</value>
|
||||
<property>/systems/hydraulic/sources/yellow-edp/fire-valve</property>
|
||||
</difference>
|
||||
</product>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
@ -438,7 +482,6 @@
|
|||
<rate_limit sense="decr">/systems/hydraulic/sys-decr-rate</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<!-- PTU -->
|
||||
<fcs_function name="/systems/hydraulic/yellow-psi-diff">
|
||||
<function>
|
||||
<difference>
|
||||
|
@ -448,9 +491,15 @@
|
|||
</function>
|
||||
</fcs_function>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Power Transfer Unit" execrate="8">
|
||||
<!-- PTU -->
|
||||
<!-- todo - add yellow pump running to close cargo doors inhibits PTU -->
|
||||
<switch name="/systems/hydraulic/sources/ptu/ptu-inhibited">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
/gear/gear[0]/compression-norm ne 0
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
|
@ -494,18 +543,38 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- Direction -->
|
||||
<switch name="/systems/hydraulic/sources/ptu/green-yellow">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="/systems/hydraulic/green-psi-ptu">
|
||||
<test logic="OR">
|
||||
/position/altitude-ft ge 1500
|
||||
/gear/gear[0]/compression-norm ne 0
|
||||
</test>
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
/controls/hydraulic/switches/ptu eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
/systems/failures/hydraulic/ptu ne 1
|
||||
/systems/hydraulic/sources/yellow-edp/fire-valve lt 0.10
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/sources/ptu/yellow-green">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="/systems/hydraulic/yellow-psi-ptu">
|
||||
<test logic="OR">
|
||||
/position/gear-agl-ft ge 1500
|
||||
/gear/gear[0]/compression-norm ne 0
|
||||
</test>
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
/controls/hydraulic/switches/ptu eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
|
||||
/systems/failures/hydraulic/ptu ne 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- fade in loop sound over 1 second -->
|
||||
<switch name="/systems/hydraulic/sources/ptu/ptu-loop-sound-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
|
@ -520,18 +589,6 @@
|
|||
<rate_limit sense="decr">120</rate_limit> <!-- instant -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/systems/hydraulic/sources/ptu/yellow-green">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="/systems/hydraulic/yellow-psi-ptu">
|
||||
/controls/hydraulic/switches/ptu eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
|
||||
/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
/systems/failures/hydraulic/ptu ne 1
|
||||
/systems/hydraulic/sources/green-edp/fire-valve lt 0.10
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Brakes" execrate="8">
|
||||
|
@ -554,11 +611,18 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<lag_filter name="/systems/hydraulic/yellow-accumulator-psi-output">
|
||||
<lag_filter name="/systems/hydraulic/yellow-accumulator-psi-output-filter">
|
||||
<input>/systems/hydraulic/yellow-accumulator-psi</input>
|
||||
<c1>9</c1>
|
||||
</lag_filter>
|
||||
|
||||
<switch name="/systems/hydraulic/yellow-accumulator-psi-output">
|
||||
<default value="/systems/hydraulic/yellow-accumulator-psi-output-filter"/>
|
||||
<test value="0">
|
||||
/systems/electrical/bus/dc-ess lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/brakes/pressure-left-psi-input">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="/systems/hydraulic/brakes/pressure-left-psi">
|
||||
|
@ -573,85 +637,105 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<lag_filter name="/systems/hydraulic/brakes/pressure-left-psi-output">
|
||||
<lag_filter name="/systems/hydraulic/brakes/pressure-left-psi-output-filter">
|
||||
<input>/systems/hydraulic/brakes/pressure-left-psi-input</input>
|
||||
<c1>9</c1>
|
||||
</lag_filter>
|
||||
|
||||
<lag_filter name="/systems/hydraulic/brakes/pressure-right-psi-output">
|
||||
<switch name="/systems/hydraulic/brakes/pressure-left-psi-output">
|
||||
<default value="/systems/hydraulic/brakes/pressure-left-psi-output-filter"/>
|
||||
<test value="0">
|
||||
/systems/electrical/bus/dc-ess lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<lag_filter name="/systems/hydraulic/brakes/pressure-right-psi-output-filter">
|
||||
<input>/systems/hydraulic/brakes/pressure-right-psi-input</input>
|
||||
<c1>9</c1>
|
||||
</lag_filter>
|
||||
|
||||
<switch name="/systems/hydraulic/brakes/pressure-right-psi-output">
|
||||
<default value="/systems/hydraulic/brakes/pressure-right-psi-output-filter"/>
|
||||
<test value="0">
|
||||
/systems/electrical/bus/dc-ess lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Lights" execrate="8">
|
||||
<channel name="Relays for Warnings" execrate="8">
|
||||
|
||||
<switch name="/systems/hydraulic/lights/blue-elec-fault">
|
||||
<switch name="/systems/hydraulic/relays/blue-reservoir-low-qty-switch">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/blue-elec/output-psi le 1450
|
||||
<test logic="OR">
|
||||
/engines/engine[0]/state eq 3
|
||||
/engines/engine[1]/state eq 3
|
||||
</test>
|
||||
</test>
|
||||
/systems/hydraulic/blue-qty lt 2.4
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
/systems/hydraulic/blue-qty lt 2.2
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/green-edp-fault">
|
||||
<switch name="/systems/hydraulic/relays/green-reservoir-low-qty-switch">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/green-edp/output-psi le 1750
|
||||
/engines/engine[0]/state eq 3
|
||||
</test>
|
||||
<test>
|
||||
/systems/hydraulic/green-qty lt 3.5
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
/systems/hydraulic/green-qty lt 3.0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/relays/yellow-reservoir-low-qty-switch">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
/systems/hydraulic/yellow-qty lt 3.0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/relays/green-reservoir-low-qty-air-press-fault">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/green-reservoir-low-qty-switch eq 1
|
||||
/systems/failures/hydraulic/green-reservoir-air-press-lo eq 1
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/yellow-edp-fault">
|
||||
<switch name="/systems/hydraulic/relays/yellow-reservoir-low-qty-air-press-fault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/yellow-edp/output-psi le 1750
|
||||
/engines/engine[1]/state eq 3
|
||||
</test>
|
||||
<test>
|
||||
/systems/hydraulic/yellow-qty lt 3.5
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/yellow-reservoir-low-qty-switch eq 1
|
||||
/systems/failures/hydraulic/yellow-reservoir-air-press-lo eq 1
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/yellow-elec-fault">
|
||||
<switch name="/systems/hydraulic/relays/blue-reservoir-overheat">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/yellow-elec/output-psi le 1450
|
||||
/systems/hydraulic/sources/yellow-edp/output-psi le 1750
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/ptu/green-yellow le 1750
|
||||
/systems/hydraulic/sources/ptu/yellow-green le 1750
|
||||
</test>
|
||||
</test>
|
||||
<test>
|
||||
/systems/hydraulic/yellow-qty lt 3.5
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-ess ge 25
|
||||
/systems/failures/hydraulic/blue-reservoir-ovht eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/ptu-fault">
|
||||
<switch name="/systems/hydraulic/relays/green-reservoir-overheat">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/hydraulic/yellow-qty lt 3.5
|
||||
/systems/hydraulic/green-qty lt 3.5
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
/systems/failures/hydraulic/green-reservoir-ovht eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/relays/yellow-reservoir-overheat">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
/systems/failures/hydraulic/yellow-reservoir-ovht eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- These are a physical switch, so there is no need for transducer power -->
|
||||
<switch name="/systems/hydraulic/warnings/blue-lo-pr">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
|
@ -687,4 +771,104 @@
|
|||
|
||||
</channel>
|
||||
|
||||
<channel name="Lights" execrate="8">
|
||||
|
||||
<switch name="/systems/hydraulic/lights/ptu-fault">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/yellow-reservoir-overheat eq 1
|
||||
/systems/hydraulic/relays/green-reservoir-overheat eq 1
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/green-reservoir-low-qty-air-press-fault eq 1
|
||||
/systems/hydraulic/relays/yellow-reservoir-low-qty-air-press-fault eq 1
|
||||
</test>
|
||||
/controls/hydraulic/switches/ptu eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/green-edp-fault">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/green-reservoir-overheat eq 1
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/green-edp/output-psi le 1750
|
||||
/engines/engine[0]/state eq 3 <!-- TODO - oil pressure 73-25 SCH 09 -->
|
||||
</test>
|
||||
/systems/hydraulic/relays/green-reservoir-low-qty-air-press-fault eq 1
|
||||
</test>
|
||||
/controls/hydraulic/switches/green-edp eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/yellow-edp-fault">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/yellow-reservoir-overheat eq 1
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/yellow-edp/output-psi le 1750
|
||||
/engines/engine[1]/state eq 3 <!-- TODO - oil pressure 73-25 SCH 09 -->
|
||||
</test>
|
||||
/systems/hydraulic/relays/yellow-reservoir-low-qty-air-press-fault eq 1
|
||||
</test>
|
||||
/controls/hydraulic/switches/yellow-edp eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/hydraulic/lights/blue-elec-fault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/hydraulic/relays/blue-reservoir-overheat eq 1
|
||||
/systems/failures/hydraulic/blue-elec-ovht eq 1
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/blue-reservoir-low-qty-switch eq 1
|
||||
/systems/failures/hydraulic/blue-reservoir-air-press-lo eq 1
|
||||
<test logic="AND">
|
||||
/systems/hydraulic/sources/blue-elec/output-psi le 1450
|
||||
<test logic="OR">
|
||||
/engines/engine[0]/state eq 3 <!-- TODO - oil pressure 73-25 SCH 09 -->
|
||||
/engines/engine[1]/state eq 3
|
||||
/controls/hydraulic/switches/blue-elec-ovrd eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
/controls/hydraulic/switches/blue-elec eq 1
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
<switch name="/systems/hydraulic/lights/yellow-elec-fault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/hydraulic/relays/yellow-reservoir-overheat eq 1
|
||||
/systems/failures/hydraulic/yellow-elec-ovht eq 1
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
/systems/hydraulic/relays/yellow-reservoir-low-qty-switch eq 1
|
||||
/systems/failures/hydraulic/yellow-reservoir-air-press-lo eq 1
|
||||
/systems/hydraulic/sources/yellow-elec/output-psi le 1450
|
||||
</test>
|
||||
/controls/hydraulic/switches/yellow-elec eq 1
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
</system>
|
||||
|
|
|
@ -74,12 +74,4 @@
|
|||
</input>
|
||||
<output>/controls/lighting/overhead-panel-norm-digital</output>
|
||||
</filter>
|
||||
|
||||
<filter>
|
||||
<type>gain</type>
|
||||
<gain>1.0</gain>
|
||||
<input>/controls/lighting/annunciator-lights-tied</input>
|
||||
<output>/controls/lighting/annunciator-lights</output>
|
||||
</filter>
|
||||
|
||||
</PropertyList>
|
||||
|
|
|
@ -28,37 +28,29 @@
|
|||
<switch name="/controls/lighting/fcu-panel-norm-tied">
|
||||
<default value="0" />
|
||||
<test value="/controls/lighting/fcu-panel-knb">
|
||||
/systems/electrical/bus/ac-1 gt 25
|
||||
/systems/electrical/bus/ac-1 gt 110
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/lighting/fcu-digit-norm-tied">
|
||||
<default value="0" />
|
||||
<test value="/controls/lighting/fcu-digit-knb">
|
||||
/systems/electrical/bus/ac-1 gt 25
|
||||
<test logic="OR" value="/controls/lighting/fcu-digit-knb">
|
||||
/systems/electrical/bus/ac-si-bus ge 110
|
||||
/systems/electrical/bus/ac-ess-shed ge 110
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/lighting/main-panel-norm-tied">
|
||||
<default value="0" />
|
||||
<test value="/controls/lighting/main-panel-knb">
|
||||
/systems/electrical/bus/ac-1 gt 25
|
||||
/systems/electrical/bus/ac-1 gt 110
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/lighting/overhead-panel-norm-tied">
|
||||
<default value="0" />
|
||||
<test value="/controls/lighting/overhead-panel-knb">
|
||||
/systems/electrical/bus/ac-1 gt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/lighting/annunciator-lights-tied">
|
||||
<default value="0" />
|
||||
<test logic="OR" value="1"> <!-- TODO: add static inverter as a source, also dc-2 switching -->
|
||||
/systems/electrical/bus/ac-1 gt 110
|
||||
/systems/electrical/bus/ac-2 gt 110
|
||||
/systems/electrical/bus/dc-2 gt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -97,7 +89,7 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="controls/lighting/leftturnoff">
|
||||
<switch name="/controls/lighting/leftturnoff">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/lighting/turnoff-light-switch eq 1
|
||||
|
@ -231,5 +223,45 @@
|
|||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Signs">
|
||||
|
||||
<switch name="/controls/lighting/no-smoking-sign">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess ge 25
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/systems/pressurization/cabinalt-norm ge 11300
|
||||
/controls/switches/no-smoking-sign eq 1
|
||||
</test>
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/controls/switches/no-smoking-sign eq 0.5
|
||||
/gear/gear[0]/position-norm ge 0.8
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess ge 25
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/lighting/seatbelt-sign">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess ge 25
|
||||
/systems/electrical/bus/dc-service-bus ge 25
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/systems/pressurization/cabinalt-norm ge 11300
|
||||
/controls/switches/seatbelt-sign eq 1
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
</system>
|
||||
|
|
|
@ -385,6 +385,28 @@
|
|||
|
||||
</channel>
|
||||
|
||||
<channel name="GPWS" execrate="8">
|
||||
|
||||
<switch name="/instrumentation/mk-viii/inputs/discretes/momentary-flap-override">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override eq 1
|
||||
<test logic="AND">
|
||||
/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override eq 1
|
||||
/controls/flight/flaps-pos ge 4
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/instrumentation/mk-viii/speaker/volume">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="2">
|
||||
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit eq 0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="System Display" execrate="8">
|
||||
|
||||
<switch name="/ECAM/Lower/g-force-display-cmd">
|
||||
|
@ -444,4 +466,62 @@
|
|||
|
||||
</channel>
|
||||
|
||||
<channel name="PFD BUSS" execrate="8">
|
||||
|
||||
|
||||
<fcs_function name="/instrumentation/pfd/buss/translate">
|
||||
<function>
|
||||
<ifthen>
|
||||
<lt>
|
||||
<property>/fdm/jsbsim/fcs/slat-pos-deg</property>
|
||||
<value>15</value>
|
||||
</lt>
|
||||
<table>
|
||||
<independentVar lookup="row">aero/alpha-deg-corrected</independentVar>
|
||||
<tableData>
|
||||
-1.5 136.409
|
||||
0.0 53.447
|
||||
3.0 0
|
||||
6.5 -53.447
|
||||
8.0 -136.409
|
||||
</tableData>
|
||||
</table>
|
||||
<table>
|
||||
<independentVar lookup="row">aero/alpha-deg-corrected</independentVar>
|
||||
<tableData>
|
||||
-1.5 136.409
|
||||
0.0 53.447
|
||||
3.0 0
|
||||
12.5 -53.447
|
||||
14.0 -136.409
|
||||
</tableData>
|
||||
</table>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="FMGC">
|
||||
|
||||
<fcs_function name="/FMGC/internal/kts-to-mach-factor">
|
||||
<function>
|
||||
<quotient>
|
||||
<property>/instrumentation/airspeed-indicator/indicated-mach</property>
|
||||
<property>/instrumentation/airspeed-indicator/indicated-speed-kt</property>
|
||||
</quotient>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/FMGC/internal/mach-to-kts-factor">
|
||||
<function>
|
||||
<quotient>
|
||||
<property>/instrumentation/airspeed-indicator/indicated-mach</property>
|
||||
<property>/instrumentation/airspeed-indicator/indicated-speed-kt</property>
|
||||
</quotient>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
</channel>
|
||||
|
||||
</system>
|
||||
|
|
|
@ -316,11 +316,11 @@
|
|||
<default value="/systems/oxygen/passenger-oxygen/sys-on-light"/>
|
||||
<test logic="OR" value="0">
|
||||
/controls/oxygen/passenger-mask-reset eq 1
|
||||
/systems/electrical/bus/dc-ess lt 25
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/systems/oxygen/passenger-oxygen/masks-deploy-cmd eq 1
|
||||
/systems/electrical/bus/dc-ess ge 25
|
||||
/systems/electrical/bus/dc-ess-shed ge 25
|
||||
</test>
|
||||
<output>/systems/oxygen/passenger-oxygen/sys-on-light</output>
|
||||
</switch>
|
||||
|
|
|
@ -459,13 +459,13 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/wing-ice-1-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="AND" value="10">
|
||||
/systems/startup-power-valves eq 1
|
||||
</test>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/wing-left-valve eq 1
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="AND" value="0.333">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-1-psi le 1
|
||||
|
@ -473,7 +473,7 @@
|
|||
/systems/pneumatics/valves/wing-ice-1-cmd eq 0
|
||||
/systems/pneumatics/valves/wing-ice-1 ne 0
|
||||
</test>
|
||||
<test logic="AND" value="2">
|
||||
<test logic="AND" value="0.333">
|
||||
/systems/electrical/bus/dc-ess-shed ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -501,13 +501,13 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/wing-ice-2-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="AND" value="10">
|
||||
/systems/startup-power-valves eq 1
|
||||
</test>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/wing-right-valve eq 1
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="AND" value="0.333">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-2-psi le 1
|
||||
|
@ -515,7 +515,7 @@
|
|||
/systems/pneumatics/valves/wing-ice-2-cmd eq 0
|
||||
/systems/pneumatics/valves/wing-ice-2 ne 0
|
||||
</test>
|
||||
<test logic="AND" value="2">
|
||||
<test logic="AND" value="0.333">
|
||||
/systems/electrical/bus/dc-ess-shed ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -540,13 +540,13 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-1-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="AND" value="10">
|
||||
/systems/startup-power-valves eq 1
|
||||
</test>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/engine-left-valve eq 1
|
||||
</test>
|
||||
<test logic="AND" value="0.50">
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-1 lt 25
|
||||
/systems/pneumatics/source/engine-1-hp-psi lt 7
|
||||
|
@ -554,7 +554,7 @@
|
|||
/systems/pneumatics/valves/engine-ice-1-cmd eq 1
|
||||
/systems/pneumatics/valves/engine-ice-1 ne 1
|
||||
</test>
|
||||
<test logic="AND" value="1.0">
|
||||
<test logic="AND" value="0.5">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -579,13 +579,13 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-2-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="AND" value="10">
|
||||
/systems/startup-power-valves eq 1
|
||||
</test>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/engine-right-valve eq 1
|
||||
</test>
|
||||
<test logic="AND" value="0.50">
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-2 lt 25
|
||||
/systems/pneumatics/source/engine-2-hp-psi lt 7
|
||||
|
@ -593,7 +593,7 @@
|
|||
/systems/pneumatics/valves/engine-ice-2-cmd eq 1
|
||||
/systems/pneumatics/valves/engine-ice-2 ne 1
|
||||
</test>
|
||||
<test logic="AND" value="1.0">
|
||||
<test logic="AND" value="0.5">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -1297,8 +1297,11 @@
|
|||
<switch name="/controls/ice-protection/wingfault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/valves/wing-ice-1 ne /controls/ice-protection/wing
|
||||
/systems/pneumatics/valves/wing-ice-2 ne /controls/ice-protection/wing
|
||||
/ECAM/warnings/logic/wing-anti-ice-sys-fault eq 1
|
||||
/ECAM/warnings/flipflop/wing-anti-ice-left-open eq 1
|
||||
/ECAM/warnings/flipflop/wing-anti-ice-right-open eq 1
|
||||
/systems/pneumatics/valves/wing-ice-1 ne /systems/pneumatics/valves/wing-ice-1-cmd
|
||||
/systems/pneumatics/valves/wing-ice-2 ne /systems/pneumatics/valves/wing-ice-2-cmd
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
|
|
@ -586,6 +586,17 @@
|
|||
<output>/ECAM/warnings/timer/phase-1-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/phase-2-pulse-input</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/phase-2-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
|
@ -597,6 +608,39 @@
|
|||
<output>/ECAM/warnings/logic/wai-phase-9-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/phase-6-pulse-input</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/phase-6-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/phase-9-pulse-input</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/phase-9-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/phase-3-10-pulse-input</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/phase-3-10-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
|
@ -608,6 +652,17 @@
|
|||
<output>/ECAM/warnings/logic/phase-10-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/press/excess-cabin-alt</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
|
@ -708,6 +763,34 @@
|
|||
<output>/ECAM/warnings/logic/wing-anti-ice-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<equals>
|
||||
<property>/ECAM/warnings/logic/wing-anti-ice-left-open-set</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/wing-anti-ice-left-open-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/flipflop/wing-anti-ice-left-open</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<equals>
|
||||
<property>/ECAM/warnings/logic/wing-anti-ice-right-open-set</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/wing-anti-ice-right-open-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/flipflop/wing-anti-ice-right-open</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
|
@ -1161,4 +1244,37 @@
|
|||
</S>
|
||||
<output>/ECAM/warnings/logic/eng/phase-5-output-2</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/hyd/yellow-elec-pump-fail-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/hyd/yellow-elec-pump-fail-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/hyd/yellow-elec-pump-fail</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top</output>
|
||||
</flipflop>
|
||||
</PropertyList>
|
||||
|
|
Loading…
Reference in a new issue