A3XX: Add ELACs, SECs, and FACs. Improve Failures, Code cleanup
This commit is contained in:
parent
8fd2fd54ac
commit
abd34611ea
8 changed files with 562 additions and 534 deletions
|
@ -515,36 +515,6 @@
|
||||||
</gear>
|
</gear>
|
||||||
|
|
||||||
<systems>
|
<systems>
|
||||||
<failures n="0">
|
|
||||||
<aileron-left type="bool">0</aileron-left>
|
|
||||||
<aileron-right type="bool">0</aileron-right>
|
|
||||||
<elevator-left type="bool">0</elevator-left>
|
|
||||||
<elevator-right type="bool">0</elevator-right>
|
|
||||||
<rudder type="bool">0</rudder>
|
|
||||||
<spoiler-left type="bool">0</spoiler-left>
|
|
||||||
<spoiler-right type="bool">0</spoiler-right>
|
|
||||||
<elec-ac-ess type="bool">0</elec-ac-ess>
|
|
||||||
<elec-batt1 type="bool">0</elec-batt1>
|
|
||||||
<elec-batt2 type="bool">0</elec-batt2>
|
|
||||||
<elec-galley type="bool">0</elec-galley>
|
|
||||||
<elec-genapu type="bool">0</elec-genapu>
|
|
||||||
<elec-gen1 type="bool">0</elec-gen1>
|
|
||||||
<elec-gen2 type="bool">0</elec-gen2>
|
|
||||||
<bleed-apu type="bool">0</bleed-apu>
|
|
||||||
<bleed-ext type="bool">0</bleed-ext>
|
|
||||||
<bleed-eng1 type="bool">0</bleed-eng1>
|
|
||||||
<bleed-eng2 type="bool">0</bleed-eng2>
|
|
||||||
<pack1 type="bool">0</pack1>
|
|
||||||
<pack2 type="bool">0</pack2>
|
|
||||||
<hyd-blue type="bool">0</hyd-blue>
|
|
||||||
<hyd-green type="bool">0</hyd-green>
|
|
||||||
<hyd-yellow type="bool">0</hyd-yellow>
|
|
||||||
<ptu type="bool">0</ptu>
|
|
||||||
<pump-blue type="bool">0</pump-blue>
|
|
||||||
<pump-green type="bool">0</pump-green>
|
|
||||||
<pump-yellow-eng type="bool">0</pump-yellow-eng>
|
|
||||||
<pump-yellow-elec type="bool">0</pump-yellow-elec>
|
|
||||||
</failures>
|
|
||||||
<fuel n="0">
|
<fuel n="0">
|
||||||
<only-use-ctr-tank type="bool">0</only-use-ctr-tank>
|
<only-use-ctr-tank type="bool">0</only-use-ctr-tank>
|
||||||
<tank n="2">
|
<tank n="2">
|
||||||
|
|
|
@ -18,59 +18,19 @@ var spinning = maketimer(0.05, func {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setprop("/systems/acconfig/autoconfig-running", 0);
|
|
||||||
setprop("/systems/acconfig/spinning", 0);
|
|
||||||
setprop("/systems/acconfig/spin", "-");
|
|
||||||
var main_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/main/dialog", "Aircraft/A320Family/AircraftConfig/main.xml");
|
|
||||||
var welcome_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/welcome/dialog", "Aircraft/A320Family/AircraftConfig/welcome.xml");
|
|
||||||
var ps_load_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/psload/dialog", "Aircraft/A320Family/AircraftConfig/psload.xml");
|
|
||||||
var ps_loaded_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/psloaded/dialog", "Aircraft/A320Family/AircraftConfig/psloaded.xml");
|
|
||||||
var init_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/init/dialog", "Aircraft/A320Family/AircraftConfig/ac_init.xml");
|
|
||||||
var help_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/help/dialog", "Aircraft/A320Family/AircraftConfig/help.xml");
|
|
||||||
var fbw_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/fbw/dialog", "Aircraft/A320Family/AircraftConfig/fbw.xml");
|
|
||||||
var fail_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/fail/dialog", "Aircraft/A320Family/AircraftConfig/fail.xml");
|
|
||||||
var fail_b_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/failb/dialog", "Aircraft/A320Family/AircraftConfig/fail-b.xml");
|
|
||||||
spinning.start();
|
|
||||||
init_dlg.open();
|
|
||||||
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
|
||||||
init_dlg.close();
|
|
||||||
welcome_dlg.open();
|
|
||||||
spinning.stop();
|
|
||||||
});
|
|
||||||
|
|
||||||
var saveSettings = func {
|
|
||||||
aircraft.data.add("/options/pfd/sidestick-pos", "/controls/adirs/skip");
|
|
||||||
aircraft.data.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
saveSettings();
|
|
||||||
|
|
||||||
var systemsReset = func {
|
|
||||||
systems.elec_init();
|
|
||||||
systems.ADIRSreset();
|
|
||||||
systems.pneu_init();
|
|
||||||
systems.hyd_init();
|
|
||||||
systems.press_init();
|
|
||||||
systems.fuel_init();
|
|
||||||
fmgc.FMGCinit();
|
|
||||||
mcdu1.MCDU_reset();
|
|
||||||
mcdu2.MCDU_reset();
|
|
||||||
fmgc.APinit();
|
|
||||||
setprop("/it-autoflight/input/fd1", 1);
|
|
||||||
setprop("/it-autoflight/input/fd2", 1);
|
|
||||||
libraries.ECAMinit();
|
|
||||||
libraries.variousReset();
|
|
||||||
}
|
|
||||||
|
|
||||||
var failReset = func {
|
var failReset = func {
|
||||||
|
setprop("/systems/failures/elac1", 0);
|
||||||
|
setprop("/systems/failures/elac2", 0);
|
||||||
|
setprop("/systems/failures/sec1", 0);
|
||||||
|
setprop("/systems/failures/sec2", 0);
|
||||||
|
setprop("/systems/failures/sec3", 0);
|
||||||
|
setprop("/systems/failures/fac1", 0);
|
||||||
|
setprop("/systems/failures/fac2", 0);
|
||||||
setprop("/systems/failures/aileron-left", 0);
|
setprop("/systems/failures/aileron-left", 0);
|
||||||
setprop("/systems/failures/aileron-right", 0);
|
setprop("/systems/failures/aileron-right", 0);
|
||||||
setprop("/systems/failures/elevator-left", 0);
|
setprop("/systems/failures/elevator-left", 0);
|
||||||
setprop("/systems/failures/elevator-right", 0);
|
setprop("/systems/failures/elevator-right", 0);
|
||||||
setprop("/systems/failures/rudder", 0);
|
setprop("/systems/failures/rudder", 0);
|
||||||
setprop("/systems/failures/spoiler-left", 0);
|
|
||||||
setprop("/systems/failures/spoiler-right", 0);
|
|
||||||
setprop("/systems/failures/elec-ac-ess", 0);
|
setprop("/systems/failures/elec-ac-ess", 0);
|
||||||
setprop("/systems/failures/elec-batt1", 0);
|
setprop("/systems/failures/elec-batt1", 0);
|
||||||
setprop("/systems/failures/elec-batt2", 0);
|
setprop("/systems/failures/elec-batt2", 0);
|
||||||
|
@ -94,19 +54,52 @@ var failReset = func {
|
||||||
setprop("/systems/failures/pump-yellow-elec", 0);
|
setprop("/systems/failures/pump-yellow-elec", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
var failPage = func(page) {
|
setprop("/systems/failures/spoiler-left", 0);
|
||||||
if (page == 0) {
|
setprop("/systems/failures/spoiler-right", 0);
|
||||||
gui.popupTip("This is the first page!");
|
failReset();
|
||||||
} else if (page == 1) {
|
setprop("/systems/acconfig/autoconfig-running", 0);
|
||||||
fail_dlg.open();
|
setprop("/systems/acconfig/spinning", 0);
|
||||||
fail_b_dlg.close();
|
setprop("/systems/acconfig/spin", "-");
|
||||||
} else if (page == 2) {
|
var main_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/main/dialog", "Aircraft/A320Family/AircraftConfig/main.xml");
|
||||||
fail_dlg.close();
|
var welcome_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/welcome/dialog", "Aircraft/A320Family/AircraftConfig/welcome.xml");
|
||||||
fail_b_dlg.open();
|
var ps_load_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/psload/dialog", "Aircraft/A320Family/AircraftConfig/psload.xml");
|
||||||
# fail_c_dlg.open(); # Fail C Doesn't exist yet!!! :)
|
var ps_loaded_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/psloaded/dialog", "Aircraft/A320Family/AircraftConfig/psloaded.xml");
|
||||||
} else if (page == 3) {
|
var init_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/init/dialog", "Aircraft/A320Family/AircraftConfig/ac_init.xml");
|
||||||
gui.popupTip("No Moar!");
|
var help_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/help/dialog", "Aircraft/A320Family/AircraftConfig/help.xml");
|
||||||
|
var fbw_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/fbw/dialog", "Aircraft/A320Family/AircraftConfig/fbw.xml");
|
||||||
|
var fail_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/fail/dialog", "Aircraft/A320Family/AircraftConfig/fail.xml");
|
||||||
|
spinning.start();
|
||||||
|
init_dlg.open();
|
||||||
|
|
||||||
|
setlistener("/sim/signals/fdm-initialized", func {
|
||||||
|
init_dlg.close();
|
||||||
|
welcome_dlg.open();
|
||||||
|
spinning.stop();
|
||||||
|
});
|
||||||
|
|
||||||
|
var saveSettings = func {
|
||||||
|
aircraft.data.add("/options/pfd/sidestick-pos", "/controls/adirs/skip");
|
||||||
|
aircraft.data.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
saveSettings();
|
||||||
|
|
||||||
|
var systemsReset = func {
|
||||||
|
fbw.fctlInit();
|
||||||
|
systems.elec_init();
|
||||||
|
systems.ADIRSreset();
|
||||||
|
systems.pneu_init();
|
||||||
|
systems.hyd_init();
|
||||||
|
systems.press_init();
|
||||||
|
systems.fuel_init();
|
||||||
|
fmgc.FMGCinit();
|
||||||
|
mcdu1.MCDU_reset();
|
||||||
|
mcdu2.MCDU_reset();
|
||||||
|
fmgc.APinit();
|
||||||
|
setprop("/it-autoflight/input/fd1", 1);
|
||||||
|
setprop("/it-autoflight/input/fd2", 1);
|
||||||
|
libraries.ECAMinit();
|
||||||
|
libraries.variousReset();
|
||||||
}
|
}
|
||||||
|
|
||||||
################
|
################
|
||||||
|
|
|
@ -1,158 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
|
|
||||||
<!-- A3XX Aircraft Config Dialog -->
|
|
||||||
|
|
||||||
|
|
||||||
<PropertyList>
|
|
||||||
|
|
||||||
<name>aircraft-config-failb</name>
|
|
||||||
<layout>vbox</layout>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>hbox</layout>
|
|
||||||
<text>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>System Failures (2)</label>
|
|
||||||
</text>
|
|
||||||
<button>
|
|
||||||
<halign>right</halign>
|
|
||||||
<pref-width>20</pref-width>
|
|
||||||
<pref-height>20</pref-height>
|
|
||||||
<legend>X</legend>
|
|
||||||
<key>Esc</key>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-close</command>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<hrule/>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>vbox</layout>
|
|
||||||
|
|
||||||
<text>
|
|
||||||
<halign>left</halign>
|
|
||||||
<label>Failed when Checked</label>
|
|
||||||
</text>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>hbox</layout>
|
|
||||||
|
|
||||||
<hrule>
|
|
||||||
<stretch type="bool">true</stretch>
|
|
||||||
</hrule>
|
|
||||||
<text>
|
|
||||||
<label>PNEU SYS Fail</label>
|
|
||||||
</text>
|
|
||||||
<hrule>
|
|
||||||
<stretch type="bool">true</stretch>
|
|
||||||
</hrule>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Bleed APU</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/bleed-apu</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Bleed EXT</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/bleed-ext</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Bleed ENG 1</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/bleed-eng1</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Bleed ENG 2</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/bleed-eng2</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Pack 1</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/pack1</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<checkbox>
|
|
||||||
<label>Pack 2</label>
|
|
||||||
<halign>left</halign>
|
|
||||||
<property>/systems/failures/pack2</property>
|
|
||||||
<binding>
|
|
||||||
<command>dialog-apply</command>
|
|
||||||
</binding>
|
|
||||||
<live>true</live>
|
|
||||||
</checkbox>
|
|
||||||
|
|
||||||
<hrule/>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>hbox</layout>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<legend><</legend>
|
|
||||||
<halign>center</halign>
|
|
||||||
<pref-width>30</pref-width>
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>
|
|
||||||
acconfig.failPage(1);
|
|
||||||
</script>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<legend>Reset All</legend>
|
|
||||||
<halign>center</halign>
|
|
||||||
<padding>5</padding>
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>
|
|
||||||
acconfig.failReset();
|
|
||||||
</script>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button>
|
|
||||||
<legend>></legend>
|
|
||||||
<halign>center</halign>
|
|
||||||
<pref-width>30</pref-width>
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>
|
|
||||||
acconfig.failPage(3);
|
|
||||||
</script>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
|
|
||||||
</PropertyList>
|
|
|
@ -28,14 +28,17 @@
|
||||||
|
|
||||||
<hrule/>
|
<hrule/>
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>vbox</layout>
|
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<label>Failed when Checked</label>
|
<label>Failed when Checked</label>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>vbox</layout>
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
@ -101,9 +104,9 @@
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<label>Spoiler Left</label>
|
<label>ELAC1</label>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<property>/systems/failures/spoiler-left</property>
|
<property>/systems/failures/elac1</property>
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
</binding>
|
</binding>
|
||||||
|
@ -111,9 +114,59 @@
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
<checkbox>
|
<checkbox>
|
||||||
<label>Spoiler Right</label>
|
<label>ELAC2</label>
|
||||||
<halign>left</halign>
|
<halign>left</halign>
|
||||||
<property>/systems/failures/spoiler-right</property>
|
<property>/systems/failures/elac2</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>SEC1</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/sec1</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>SEC2</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/sec2</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>SEC3</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/sec3</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>FAC2</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/fac2</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>FAC1</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/fac1</property>
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
</binding>
|
</binding>
|
||||||
|
@ -204,6 +257,13 @@
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<vrule/>
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<layout>vbox</layout>
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
|
|
||||||
|
@ -288,27 +348,87 @@
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
</checkbox>
|
</checkbox>
|
||||||
|
|
||||||
<hrule/>
|
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
|
|
||||||
<button>
|
<hrule>
|
||||||
<legend><</legend>
|
<stretch type="bool">true</stretch>
|
||||||
<halign>center</halign>
|
</hrule>
|
||||||
<pref-width>30</pref-width>
|
<text>
|
||||||
|
<label>PNEU SYS Fail</label>
|
||||||
|
</text>
|
||||||
|
<hrule>
|
||||||
|
<stretch type="bool">true</stretch>
|
||||||
|
</hrule>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Bleed APU</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/bleed-apu</property>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>dialog-apply</command>
|
||||||
<script>
|
|
||||||
acconfig.failPage(0);
|
|
||||||
</script>
|
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Bleed EXT</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/bleed-ext</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Bleed ENG 1</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/bleed-eng1</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Bleed ENG 2</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/bleed-eng2</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Pack 1</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/pack1</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<checkbox>
|
||||||
|
<label>Pack 2</label>
|
||||||
|
<halign>left</halign>
|
||||||
|
<property>/systems/failures/pack2</property>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-apply</command>
|
||||||
|
</binding>
|
||||||
|
<live>true</live>
|
||||||
|
</checkbox>
|
||||||
|
|
||||||
|
<hrule/>
|
||||||
|
|
||||||
<button>
|
<button>
|
||||||
<legend>Reset All</legend>
|
<legend>Reset All</legend>
|
||||||
<halign>center</halign>
|
<halign>center</halign>
|
||||||
<padding>5</padding>
|
<padding>5</padding>
|
||||||
|
<pref-width>120</pref-width>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>
|
<script>
|
||||||
|
@ -317,18 +437,6 @@
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button>
|
|
||||||
<legend>></legend>
|
|
||||||
<halign>center</halign>
|
|
||||||
<pref-width>30</pref-width>
|
|
||||||
<binding>
|
|
||||||
<command>nasal</command>
|
|
||||||
<script>
|
|
||||||
acconfig.failPage(2);
|
|
||||||
</script>
|
|
||||||
</binding>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
|
@ -1,12 +1,99 @@
|
||||||
# Airbus A3XX FBW/Flight Control Computer System
|
# Airbus A3XX FBW/Flight Control Computer System
|
||||||
# Joshua Davidson (it0uchpods)
|
# Joshua Davidson (it0uchpods)
|
||||||
|
|
||||||
|
# 2 ELevator and Aileron Computers (ELAC)
|
||||||
|
# Aileron Control
|
||||||
|
# Normal Elevator / Stab Trim Control
|
||||||
|
# 3 Spoiler Elevator Computers (SEC)
|
||||||
|
# Spoiler Control
|
||||||
|
# Standby Elevator / Stab Trim Control
|
||||||
|
# 2 Flight Agumentation Computers (FAC)
|
||||||
|
# Electric Rudder Control
|
||||||
|
# 2 Flight Control Data Concentrators (FCDC)
|
||||||
|
# Aquire data from ELAC and SEC and send it to the EIS and Centralized Fault Display System
|
||||||
|
|
||||||
|
# If All ELACs Fail, Alternate Law
|
||||||
|
|
||||||
|
var fctlInit = func {
|
||||||
|
setprop("/controls/fctl/elac1", 1);
|
||||||
|
setprop("/controls/fctl/elac2", 1);
|
||||||
|
setprop("/controls/fctl/sec1", 1);
|
||||||
|
setprop("/controls/fctl/sec2", 1);
|
||||||
|
setprop("/controls/fctl/sec3", 1);
|
||||||
|
setprop("/controls/fctl/fac1", 1);
|
||||||
|
setprop("/controls/fctl/fac2", 1);
|
||||||
|
setprop("/systems/fctl/elac1", 0);
|
||||||
|
setprop("/systems/fctl/elac2", 0);
|
||||||
|
setprop("/systems/fctl/sec1", 0);
|
||||||
|
setprop("/systems/fctl/sec2", 0);
|
||||||
|
setprop("/systems/fctl/fac1", 0);
|
||||||
|
setprop("/systems/fctl/fac2", 0);
|
||||||
|
}
|
||||||
|
|
||||||
###################
|
###################
|
||||||
# Update Function #
|
# Update Function #
|
||||||
###################
|
###################
|
||||||
|
|
||||||
var update_loop = func {
|
var update_loop = func {
|
||||||
|
|
||||||
|
var elac1_sw = getprop("/controls/fctl/elac1");
|
||||||
|
var elac2_sw = getprop("/controls/fctl/elac2");
|
||||||
|
var sec1_sw = getprop("/controls/fctl/sec1");
|
||||||
|
var sec2_sw = getprop("/controls/fctl/sec2");
|
||||||
|
var sec3_sw = getprop("/controls/fctl/sec3");
|
||||||
|
var fac1_sw = getprop("/controls/fctl/fac1");
|
||||||
|
var fac2_sw = getprop("/controls/fctl/fac2");
|
||||||
|
|
||||||
|
var elac1_fail = getprop("/systems/failures/elac1");
|
||||||
|
var elac2_fail = getprop("/systems/failures/elac2");
|
||||||
|
var sec1_fail = getprop("/systems/failures/sec1");
|
||||||
|
var sec2_fail = getprop("/systems/failures/sec2");
|
||||||
|
var sec3_fail = getprop("/systems/failures/sec3");
|
||||||
|
var fac1_fail = getprop("/systems/failures/fac1");
|
||||||
|
var fac2_fail = getprop("/systems/failures/fac2");
|
||||||
|
|
||||||
|
if (elac1_sw and !elac1_fail) {
|
||||||
|
setprop("/systems/fctl/elac1", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/elac1", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elac2_sw and !elac2_fail) {
|
||||||
|
setprop("/systems/fctl/elac2", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/elac2", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sec1_sw and !sec1_fail) {
|
||||||
|
setprop("/systems/fctl/sec1", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/sec1", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sec2_sw and !sec2_fail) {
|
||||||
|
setprop("/systems/fctl/sec2", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/sec2", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sec3_sw and !sec3_fail) {
|
||||||
|
setprop("/systems/fctl/sec3", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/sec3", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fac1_sw and !fac1_fail) {
|
||||||
|
setprop("/systems/fctl/fac1", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/fac1", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fac2_sw and !fac2_fail) {
|
||||||
|
setprop("/systems/fctl/fac2", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/fctl/fac2", 0);
|
||||||
|
}
|
||||||
|
|
||||||
var ail = getprop("/controls/flight/aileron");
|
var ail = getprop("/controls/flight/aileron");
|
||||||
|
|
||||||
if (getprop("/it-fbw/law") == 0) {
|
if (getprop("/it-fbw/law") == 0) {
|
||||||
|
@ -86,4 +173,4 @@ setlistener("/sim/signals/fdm-initialized", func {
|
||||||
##########
|
##########
|
||||||
# Timers #
|
# Timers #
|
||||||
##########
|
##########
|
||||||
var updatet = maketimer(0.01, update_loop);
|
var updatet = maketimer(0.05, update_loop);
|
||||||
|
|
|
@ -157,6 +157,7 @@ var triggerDoor = func(door, doorName, doorDesc) {
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
setlistener("/sim/signals/fdm-initialized", func {
|
||||||
|
fbw.fctlInit();
|
||||||
systems.elec_init();
|
systems.elec_init();
|
||||||
systems.adirs_init();
|
systems.adirs_init();
|
||||||
systems.pneu_init();
|
systems.pneu_init();
|
||||||
|
|
BIN
Resources/fctlfail.png
Normal file
BIN
Resources/fctlfail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
27
Resources/fctlfail.txt
Normal file
27
Resources/fctlfail.txt
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
PITCH ALT, ROLL DCT, YAW ALT
|
||||||
|
TRIPLE ADR FAILURE
|
||||||
|
DOUBLE HYD FAILURE
|
||||||
|
SLATS LOCKED IN CLEAN (CONF 0 or 1)
|
||||||
|
PITCH ALT (RED PROT), ROLL DCT, YAW ALT
|
||||||
|
DOUBLE ELAC FAILURE
|
||||||
|
SIDESTICK FAULT
|
||||||
|
DOUBLE ADR FAILURE
|
||||||
|
ALL SPOILERS LOST
|
||||||
|
THS JAMMED
|
||||||
|
3 SEC FAILED
|
||||||
|
ELAC 2 AND BLUE HYD FAILED
|
||||||
|
ELAC 1 AND GREEN HYD FAILED
|
||||||
|
ELAC 1 AND YELLOW HYD FAILED
|
||||||
|
ONE ELEV JAMMED
|
||||||
|
RAT OUT
|
||||||
|
PITCH ALT (RED PROT), ROLL DCT, YAW MECH
|
||||||
|
2 FAC FAILED
|
||||||
|
YAW DAMPER FAILED
|
||||||
|
Y+G HYD FAILED
|
||||||
|
PITCH DIRETCT, ROLL DIRECT, YAW ALT
|
||||||
|
RADIO ALT FAILED WHEN
|
||||||
|
LDG DOWN
|
||||||
|
or
|
||||||
|
CONF 2, with BOTH LGCIUs failed
|
||||||
|
|
||||||
|
|
Reference in a new issue