diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 0eae042d..7d9304b3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -23,9 +23,9 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. -** System (please complete the following information):** - - OS: - - FlightGear version: +**System (please complete the following information):** + - OS: + - FlightGear version: **Additional context** diff --git a/A320-100-CFM-set.xml b/A320-100-CFM-set.xml index b301fe83..e5a8d328 100644 --- a/A320-100-CFM-set.xml +++ b/A320-100-CFM-set.xml @@ -14,6 +14,7 @@ Airbus + Aircraft/A320-family/Models/Liveries/A320/CFM-100 @@ -170,11 +171,5 @@ A320-111 CFM56-5A1 - - - - Aircraft/A320-family/Nasal/Libraries/a320livery-cfm-100.nas - - diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml index b5b1d939..7784988c 100644 --- a/A320-100-CFM.xml +++ b/A320-100-CFM.xml @@ -202,17 +202,20 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + + + + - diff --git a/A320-200-CFM-set.xml b/A320-200-CFM-set.xml index 74815846..317fcf1a 100644 --- a/A320-200-CFM-set.xml +++ b/A320-200-CFM-set.xml @@ -14,6 +14,7 @@ Airbus + Aircraft/A320-family/Models/Liveries/A320/CFM @@ -169,11 +170,5 @@ A320-214 CFM56-5B4 - - - - Aircraft/A320-family/Nasal/Libraries/a320livery-cfm.nas - - diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml index e04aeec5..17855ff5 100644 --- a/A320-200-CFM.xml +++ b/A320-200-CFM.xml @@ -201,17 +201,20 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + + + + - diff --git a/A320-200-IAE-set.xml b/A320-200-IAE-set.xml index 724995e8..effc3419 100644 --- a/A320-200-IAE-set.xml +++ b/A320-200-IAE-set.xml @@ -14,6 +14,7 @@ Airbus + Aircraft/A320-family/Models/Liveries/A320/IAE @@ -169,11 +170,5 @@ A320-232 V2527-A5 - - - - Aircraft/A320-family/Nasal/Libraries/a320livery-iae.nas - - diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml index 305dfd6e..24f5355d 100644 --- a/A320-200-IAE.xml +++ b/A320-200-IAE.xml @@ -201,14 +201,18 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + + + + diff --git a/A320-main.xml b/A320-main.xml index f9c2f42d..b13e84d1 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -5,7 +5,11 @@ - + + + 0 + + Josh Davidson/Octal450 (Flight Dynamics, Systems, Displays), Jonathan Redpath/legoboyvdlp, merspieler, Matthew Maring/mattmaring (Systems, Displays), Thorsten Herrmann/TH-555, Semir Gebran/CaptB (3D, Textures) @@ -24,60 +28,74 @@ 0.7 - Wing + WingLeft 0.0 - /controls/deice/wing + /systems/pneumatics/valves/wing-ice-1 0.8 - /fdm/jsbsim/ice/wing + /fdm/jsbsim/ice/wingL + + + WingRight + 0.0 + /systems/pneumatics/valves/wing-ice-2 + 0.8 + /fdm/jsbsim/ice/wingR LeftEngine 0.0 - /controls/deice/lengine + /systems/pneumatics/valves/engine-ice-1 0.5 /fdm/jsbsim/ice/lengine RightEngine 0.0 - /controls/deice/rengine + /systems/pneumatics/valves/engine-ice-2 0.5 /fdm/jsbsim/ice/rengine Windshield 0.0 - /controls/deice/windowprobeheat + /controls/ice-protection/windowprobeheat-output 0.5 /environment/aircraft-effects/frost-inch Fuselage 0.0 - 0.3 + services/deicing_truck/deicing/position-norm /fdm/jsbsim/ice/fuselage Pitot tube 0.0 - 1 - /controls/deice/windowprobeheat - /systems/pitot/icing + 0.99 + /controls/ice-protection/windowprobeheat-output + /systems/pitot[0]/icing + + + Pitot tube + 0.0 + 0.99 + /controls/ice-protection/windowprobeheat-output + /systems/pitot[1]/icing + + + Pitot tube + 0.0 + 0.98 + /controls/ice-protection/windowprobeheat-output + /systems/pitot[2]/icing - - 1.0 - 0.95 - 1.0 - 0.741 - 0.32 - 0.741 - 0.10 - 0.02 - 0.09 - + + 0 + 0 + @@ -177,11 +195,6 @@ Aircraft/A320-family/Systems/ecam-proprules.xml - - - Generic Wing Flexer - Aircraft/Generic/wingflexer.xml - Aircraft/A320-family/Systems/pitot-static.xml @@ -199,6 +212,12 @@ 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 @@ -254,6 +273,15 @@ + + + + nasal + + + @@ -439,6 +467,15 @@ 1 + + + + nasal + + + @@ -528,6 +565,11 @@ + + + 25 + + 0 @@ -601,6 +643,8 @@ 0 0 0 + 0 + 0 33 0 0 @@ -618,10 +662,9 @@ 0 0 + 0 - - 1 - + @@ -680,6 +723,9 @@ 1 + 0.0 + 0.0 + TOGA true true @@ -692,6 +738,11 @@ 0.94 0 0 + 0 + 0 + 0 + 0 + B true @@ -705,6 +756,11 @@ 0.94 0 0 + 0 + 0 + 0 + 0 + B true @@ -714,15 +770,6 @@ - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 0 @@ -771,6 +818,7 @@ + 0 0 0 0 @@ -787,6 +835,16 @@ 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 @@ -822,6 +880,9 @@ 1 0 0 + 0 + 0 + 0 @@ -865,26 +926,38 @@ 0 0 0 - 0 - 0 + 0 + 0 0 0 0 - + - 0.5 - 0.5 - 0.5 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 1.0 + 0 + 0.5 + 0.5 + 0.5 + 1 - + 0.5 0.0 - 0 - 0.5 + 0 100000 0.0 0 @@ -906,6 +979,7 @@ + 0 0 1 @@ -931,7 +1005,7 @@ 0 0 0 - 1 + 1 @@ -943,12 +1017,18 @@ 0 + 0 + 15 + 15 0 0 0 0 + 0 + 15 + 15 0 0 0 @@ -958,9 +1038,7 @@ - 0 - 0 - 0 + 0 0 @@ -978,6 +1056,38 @@ 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + + + 297 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + + 2000 0 @@ -1015,6 +1125,7 @@ + 0 0 @@ -1028,6 +1139,12 @@ + + + 0 + 0 + + 0 0 @@ -1062,7 +1179,20 @@ 0 0 0 + 0 + 0 + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + + 0 0 0 @@ -1074,23 +1204,49 @@ 0 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 + + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 0 0 0 0 + 0 0 @@ -1099,7 +1255,9 @@ 0 0 0 + 0 + 0 @@ -1141,9 +1299,13 @@ 0 + 0 + 0 0 0 + 0 + @@ -1156,22 +1318,120 @@ 0 + + 0.36 + 0.36 + + 0 + 0 + + 0 + 0 + 0 + 0 + + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + + + + + 14.7 + 14.7 + + + + 0 + 1 + + - 1 + 0 + 1 - 1 + 0 + 1 - 1 + 1 - 1 + 1 + + 0 + 1500 + 0 + 0 + 0 + IDLE + IDLE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + 0 0 @@ -1192,6 +1452,14 @@ 0 0 0 + + G-EZTB + EZY + U2 + 0 + 0 + 0 + @@ -4001,10 +4269,16 @@ Aircraft/A320-family/Nasal/Libraries/buttons.nas Aircraft/A320-family/Nasal/Libraries/shake.nas Aircraft/A320-family/Nasal/Libraries/zoom-views.nas + Aircraft/A320-family/Nasal/Libraries/custom-views.nas Aircraft/A320-family/AircraftConfig/acconfig.nas + + Aircraft/A320-family/Nasal/Effects/light-manager.nas + Aircraft/A320-family/Nasal/Effects/thunder-effects.nas + Aircraft/A320-family/Nasal/Effects/icing.nas + Aircraft/A320-family/Nasal/Systems/APU.nas Aircraft/A320-family/Nasal/Systems/electrical.nas @@ -4013,15 +4287,13 @@ Aircraft/A320-family/Nasal/Systems/fuel.nas Aircraft/A320-family/Nasal/Systems/FADEC/engines-common.nas Aircraft/A320-family/Nasal/Systems/ADIRS/ADR.nas - Aircraft/A320-family/Nasal/Systems/ADIRS/SwitchingPanel.nas + Aircraft/A320-family/Nasal/Panels/SwitchingPanel.nas Aircraft/A320-family/Nasal/Systems/Comm/HF.nas - Aircraft/A320-family/Nasal/Systems/brakes.nas Aircraft/A320-family/Nasal/Systems/brakesystem.nas - Aircraft/A320-family/Nasal/Instruments/clock.nas Aircraft/A320-family/Nasal/Systems/fire.nas Aircraft/A320-family/Nasal/Systems/ground_services.nas - Aircraft/A320-family/Nasal/Systems/icing.nas Aircraft/A320-family/Nasal/Systems/payload.nas + Aircraft/A320-family/Nasal/Panels/clock.nas Aircraft/A320-family/Nasal/Systems/tyresmoke.nas @@ -4031,11 +4303,6 @@ Aircraft/A320-family/Nasal/ECAM/ECAM-messages.nas Aircraft/A320-family/Nasal/ECAM/ECAM-phases.nas - - Aircraft/A320-family/Nasal/Effects/light-manager.nas - Aircraft/A320-family/Nasal/Effects/effects.nas - Aircraft/A320-family/Nasal/Effects/thunder-effects.nas - Aircraft/A320-family/Nasal/Systems/FADEC/fadec-common.nas @@ -4052,6 +4319,7 @@ Aircraft/A320-family/Nasal/FMGC/FMGC.nas Aircraft/A320-family/Nasal/FMGC/FMGC-b.nas Aircraft/A320-family/Nasal/FMGC/FMGC-c.nas + Aircraft/A320-family/Nasal/FMGC/winds.nas Aircraft/A320-family/Nasal/MCDU/DUPLICATE.nas @@ -4062,9 +4330,14 @@ Aircraft/A320-family/Nasal/MCDU/ARRIVAL.nas Aircraft/A320-family/Nasal/MCDU/AIRWAYS.nas Aircraft/A320-family/Nasal/MCDU/CLOSESTAIRPORT.nas + Aircraft/A320-family/Nasal/MCDU/RECEIVEDMESSAGES.nas Aircraft/A320-family/Nasal/MCDU/PILOTWAYPOINT.nas Aircraft/A320-family/Nasal/MCDU/HOLD.nas Aircraft/A320-family/Nasal/MCDU/F-PLN.nas + Aircraft/A320-family/Nasal/MCDU/WINDCLB.nas + Aircraft/A320-family/Nasal/MCDU/WINDCRZ.nas + Aircraft/A320-family/Nasal/MCDU/WINDDES.nas + Aircraft/A320-family/Nasal/MCDU/WINDHIST.nas Aircraft/A320-family/Nasal/MCDU/MCDU.nas Aircraft/A320-family/Nasal/MCDU/INITA.nas Aircraft/A320-family/Nasal/MCDU/IRSINIT.nas @@ -4083,6 +4356,7 @@ Aircraft/A320-family/Nasal/MCDU/PERFTO.nas Aircraft/A320-family/Nasal/MCDU/RADNAV.nas Aircraft/A320-family/Nasal/MCDU/DATA.nas + Aircraft/A320-family/Nasal/MCDU/DATA2.nas Aircraft/A320-family/Nasal/MCDU/STATUS.nas @@ -4102,6 +4376,9 @@ Aircraft/A320-family/Models/Instruments/MCDU/MCDU.nas + + Aircraft/A320-family/Nasal/QRH/QRH.nas + Aircraft/A320-family/Nasal/FMGC/mcdu-messages.nas @@ -4128,6 +4405,9 @@ Aircraft/A320-family/Nasal/Panels/atc.nas + + Aircraft/A320-family/Nasal/Systems/Comm/Notification.nas + Aircraft/A320-family/Nasal/Displays/DMC.nas @@ -4139,6 +4419,9 @@ Aircraft/A320-family/Nasal/Systems/save.nas + + Aircraft/A320-family/Nasal/FMGC/SimbriefParser.nas + diff --git a/A320neo-CFM-set.xml b/A320neo-CFM-set.xml index 1260524e..0940da58 100644 --- a/A320neo-CFM-set.xml +++ b/A320neo-CFM-set.xml @@ -14,6 +14,7 @@ Airbus + Aircraft/A320-family/Models/Liveries/A320/CFM-NEO @@ -169,11 +170,5 @@ A320-251N LEAP-1A26 - - - - Aircraft/A320-family/Nasal/Libraries/a320livery-neocfm.nas - - diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml index 6a8f9795..7570cb46 100644 --- a/A320neo-CFM.xml +++ b/A320neo-CFM.xml @@ -201,17 +201,20 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + + + + - diff --git a/A320neo-PW-set.xml b/A320neo-PW-set.xml index 3cd1c288..837d9761 100644 --- a/A320neo-PW-set.xml +++ b/A320neo-PW-set.xml @@ -14,6 +14,7 @@ Airbus + Aircraft/A320-family/Models/Liveries/A320/PW-NEO @@ -169,11 +170,5 @@ A320-271N PW1133-JM - - - - Aircraft/A320-family/Nasal/Libraries/a320livery-neopw.nas - - diff --git a/A320neo-PW.xml b/A320neo-PW.xml index a7ae318a..fa07ac97 100644 --- a/A320neo-PW.xml +++ b/A320neo-PW.xml @@ -201,17 +201,20 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + + + + - diff --git a/AircraftConfig/acconfig.nas b/AircraftConfig/acconfig.nas index 331298f7..361b17fa 100644 --- a/AircraftConfig/acconfig.nas +++ b/AircraftConfig/acconfig.nas @@ -21,60 +21,41 @@ var spinning = maketimer(0.05, func { }); var failReset = func { - # Put IntegratedSystems Fail Reset Functions here + systems.ELEC.resetFail(); + systems.PNEU.resetFail(); } var failResetOld = 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/fctl/elac1", 0); + setprop("/systems/failures/fctl/elac2", 0); + setprop("/systems/failures/fctl/sec1", 0); + setprop("/systems/failures/fctl/sec2", 0); + setprop("/systems/failures/fctl/sec3", 0); + setprop("/systems/failures/fctl/fac1", 0); + setprop("/systems/failures/fctl/fac2", 0); + setprop("/systems/failures/fctl/rtlu-1", 0); + setprop("/systems/failures/fctl/rtlu-2", 0); setprop("/systems/failures/aileron-left", 0); setprop("/systems/failures/aileron-right", 0); setprop("/systems/failures/elevator-left", 0); setprop("/systems/failures/elevator-right", 0); - setprop("/systems/failures/rudder", 0); - setprop("/systems/failures/spoiler-l1", 0); - setprop("/systems/failures/spoiler-l2", 0); - setprop("/systems/failures/spoiler-l3", 0); - setprop("/systems/failures/spoiler-l4", 0); - setprop("/systems/failures/spoiler-l5", 0); - setprop("/systems/failures/spoiler-r1", 0); - setprop("/systems/failures/spoiler-r2", 0); - setprop("/systems/failures/spoiler-r3", 0); - setprop("/systems/failures/spoiler-r4", 0); - setprop("/systems/failures/spoiler-r5", 0); - setprop("/systems/failures/elec-ac-ess", 0); - setprop("/systems/failures/elec-batt1", 0); - setprop("/systems/failures/elec-batt2", 0); - setprop("/systems/failures/elec-galley", 0); - setprop("/systems/failures/elec-genapu", 0); - setprop("/systems/failures/elec-gen1", 0); - setprop("/systems/failures/elec-gen2", 0); - setprop("/systems/failures/bleed-apu", 0); - setprop("/systems/failures/bleed-ext", 0); - setprop("/systems/failures/bleed-eng1", 0); - setprop("/systems/failures/bleed-eng2", 0); - setprop("/systems/failures/pack1", 0); - setprop("/systems/failures/pack2", 0); + setprop("/systems/failures/spoilers/spoiler-l1", 0); + setprop("/systems/failures/spoilers/spoiler-l2", 0); + setprop("/systems/failures/spoilers/spoiler-l3", 0); + setprop("/systems/failures/spoilers/spoiler-l4", 0); + setprop("/systems/failures/spoilers/spoiler-l5", 0); + setprop("/systems/failures/spoilers/spoiler-r1", 0); + setprop("/systems/failures/spoilers/spoiler-r2", 0); + setprop("/systems/failures/spoilers/spoiler-r3", 0); + setprop("/systems/failures/spoilers/spoiler-r4", 0); + setprop("/systems/failures/spoilers/spoiler-r5", 0); setprop("/systems/failures/hyd-blue", 0); setprop("/systems/failures/hyd-green", 0); setprop("/systems/failures/hyd-yellow", 0); - setprop("/systems/failures/ptu", 0); setprop("/systems/failures/pump-blue", 0); setprop("/systems/failures/pump-green", 0); setprop("/systems/failures/pump-yellow-eng", 0); setprop("/systems/failures/pump-yellow-elec", 0); - setprop("/systems/failures/tank0pump1", 0); - setprop("/systems/failures/tank0pump2", 0); - setprop("/systems/failures/tank1pump1", 0); - setprop("/systems/failures/tank1pump2", 0); - setprop("/systems/failures/tank2pump1", 0); - setprop("/systems/failures/tank2pump2", 0); - setprop("/systems/failures/fuelmode", 0); setprop("/systems/failures/cargo-aft-fire", 0); setprop("/systems/failures/cargo-fwd-fire", 0); setprop("/systems/failures/engine-left-fire", 0); @@ -121,6 +102,7 @@ var error_mismatch = gui.Dialog.new("/sim/gui/dialogs/acconfig/error/mismatch/di var fuel_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/fuel/dialog", "Aircraft/A320-family/AircraftConfig/fuel.xml"); var groundservices_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/groundsrvc/dialog", "Aircraft/A320-family/AircraftConfig/groundservices.xml"); var loadflightplan_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/loadfpln/dialog","Aircraft/A320-family/AircraftConfig/load-flightplan.xml"); +var simbrief_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/simbrief/dialog","Aircraft/A320-family/AircraftConfig/simbrief.xml"); var du_quality = gui.Dialog.new("/sim/gui/dialogs/acconfig/du-quality/dialog", "Aircraft/A320-family/AircraftConfig/du-quality.xml"); var rendering_dlg = gui.Dialog.new("/sim/gui/dialogs/rendering/dialog", "Aircraft/A320-family/AircraftConfig/rendering.xml"); spinning.start(); @@ -131,6 +113,7 @@ var current_revision = io.readfile(revisionFile); print("A320-family Revision: " ~ current_revision); setprop("/systems/acconfig/revision", current_revision); setprop("/systems/acconfig/options/fo-view", 0); +setprop("/systems/acconfig/options/simbrief-username", ""); setlistener("/systems/acconfig/new-revision", func { if (getprop("/systems/acconfig/new-revision") > current_revision) { @@ -247,6 +230,7 @@ var readSettings = func { setprop("/sim/model/autopush/route/show", getprop("/systems/acconfig/options/autopush/show-route")); setprop("/sim/model/autopush/route/show-wingtip", getprop("/systems/acconfig/options/autopush/show-wingtip")); setprop("/options/system/fo-view", getprop("/systems/acconfig/options/fo-view")); + setprop("/FMGC/simbrief-username", getprop("/systems/acconfig/options/simbrief-username")); } var writeSettings = func { @@ -258,6 +242,7 @@ var writeSettings = func { setprop("/systems/acconfig/options/autopush/show-route", getprop("/sim/model/autopush/route/show")); setprop("/systems/acconfig/options/autopush/show-wingtip", getprop("/sim/model/autopush/route/show-wingtip")); setprop("/systems/acconfig/options/fo-view", getprop("/options/system/fo-view")); + setprop("/systems/acconfig/options/simbrief-username", getprop("/FMGC/simbrief-username")); io.write_properties(getprop("/sim/fg-home") ~ "/Export/A320-family-config.xml", "/systems/acconfig/options"); } @@ -375,11 +360,11 @@ var beforestart_b = func { setprop("/controls/electrical/switches/galley", 1); setprop("/controls/electrical/switches/gen-1", 1); setprop("/controls/electrical/switches/gen-2", 1); - setprop("/controls/pneumatic/switches/bleedapu", 1); - setprop("/controls/pneumatic/switches/bleed1", 1); - setprop("/controls/pneumatic/switches/bleed2", 1); - setprop("/controls/pneumatic/switches/pack1", 1); - setprop("/controls/pneumatic/switches/pack2", 1); + setprop("/controls/pneumatics/switches/apu", 1); + setprop("/controls/pneumatics/switches/bleed-1", 1); + setprop("/controls/pneumatics/switches/bleed-2", 1); + setprop("/controls/pneumatics/switches/pack-1", 1); + setprop("/controls/pneumatics/switches/pack-2", 1); setprop("/controls/adirs/ir[0]/knob","1"); setprop("/controls/adirs/ir[1]/knob","1"); setprop("/controls/adirs/ir[2]/knob","1"); @@ -462,11 +447,11 @@ var taxi_b = func { setprop("/controls/electrical/switches/galley", 1); setprop("/controls/electrical/switches/gen-1", 1); setprop("/controls/electrical/switches/gen-2", 1); - setprop("/controls/pneumatic/switches/bleedapu", 1); - setprop("/controls/pneumatic/switches/bleed1", 1); - setprop("/controls/pneumatic/switches/bleed2", 1); - setprop("/controls/pneumatic/switches/pack1", 1); - setprop("/controls/pneumatic/switches/pack2", 1); + setprop("/controls/pneumatics/switches/apu", 1); + setprop("/controls/pneumatics/switches/bleed-1", 1); + setprop("/controls/pneumatics/switches/bleed-2", 1); + setprop("/controls/pneumatics/switches/pack-1", 1); + setprop("/controls/pneumatics/switches/pack-2", 1); setprop("/controls/adirs/ir[0]/knob","1"); setprop("/controls/adirs/ir[1]/knob","1"); setprop("/controls/adirs/ir[2]/knob","1"); @@ -497,7 +482,7 @@ var taxi_b = func { if (pts.Instrumentation.Altimeter.std.getBoolValue()) { libraries.toggleSTD(); } - setprop("/instrumentation/altimeter[0]/setting-inhg", getprop("/environment/pressure-sea-level-inhg")); + setprop("/instrumentation/altimeter[0]/setting-inhg", getprop("/environment/metar[0]/pressure-inhg") or 29.92); settimer(taxi_c, 2); } var taxi_c = func { @@ -512,7 +497,7 @@ var taxi_d = func { # After Start items. setprop("/controls/engines/engine-start-switch", 1); setprop("/controls/apu/master", 0); - setprop("/controls/pneumatic/switches/bleedapu", 0); + setprop("/controls/pneumatics/switches/apu", 0); setprop("/controls/gear/brake-left", 0); setprop("/controls/gear/brake-right", 0); setprop("/systems/acconfig/autoconfig-running", 0); @@ -527,7 +512,7 @@ var takeoff = func { # The same as taxi, except we set some things afterwards. taxi(); var eng_one_chk_c = setlistener("/engines/engine[0]/state", func { - if (getprop("/engines/engine[0]/state") == 3) { + if (pts.Engines.Engine.state[0].getValue() == 3) { removelistener(eng_one_chk_c); setprop("/controls/switches/strobe", 1.0); setprop("/controls/lighting/taxi-light-switch", 1); @@ -538,7 +523,7 @@ var takeoff = func { setprop("/controls/atc/mode-knob", 4); atc.transponderPanel.modeSwitch(5); setprop("/controls/flight/elevator-trim", -0.07); - systems.arm_autobrake(3); + systems.Autobrake.arm_autobrake(3); setprop("/ECAM/to-config-test", 1); settimer(func { setprop("/ECAM/to-config-test", 0); diff --git a/AircraftConfig/autopush-config.xml b/AircraftConfig/autopush-config.xml index 0e9926c0..fbe49dbf 100644 --- a/AircraftConfig/autopush-config.xml +++ b/AircraftConfig/autopush-config.xml @@ -5,7 +5,7 @@ 0.0 15 5.0 - + 1 false diff --git a/AircraftConfig/fail.xml b/AircraftConfig/fail.xml index 3f01518d..7ce0a7f3 100644 --- a/AircraftConfig/fail.xml +++ b/AircraftConfig/fail.xml @@ -124,6 +124,46 @@ true + + + left + /systems/failures/fctl/rtlu-1 + + dialog-apply + + true + + + + + left + /systems/failures/fctl/rtlu-2 + + dialog-apply + + true + + + + + left + /systems/failures/fctl/yaw-damper-1 + + dialog-apply + + true + + + + + left + /systems/failures/fctl/yaw-damper-2 + + dialog-apply + + true + + hbox @@ -138,30 +178,10 @@ - - - left - /systems/failures/bleed-apu - - dialog-apply - - true - - - - - left - /systems/failures/bleed-ext - - dialog-apply - - true - - left - /systems/failures/bleed-eng1 + /systems/failures/pneumatics/bleed-1-valve dialog-apply @@ -171,7 +191,47 @@ left - /systems/failures/bleed-eng2 + /systems/failures/pneumatics/bleed-2-valve + + dialog-apply + + true + + + + + left + /systems/failures/pneumatics/hp-1-valve + + dialog-apply + + true + + + + + left + /systems/failures/pneumatics/hp-2-valve + + dialog-apply + + true + + + + + left + /systems/failures/pneumatics/hot-air-valve + + dialog-apply + + true + + + + + left + /systems/failures/pneumatics/ram-air-valve dialog-apply @@ -181,7 +241,7 @@ left - /systems/failures/pack1 + /systems/failures/pneumatics/pack-1-valve dialog-apply @@ -191,13 +251,22 @@ left - /systems/failures/pack2 + /systems/failures/pneumatics/pack-2-valve dialog-apply true + + + left + /systems/failures/pneumatics/x-bleed-valve + + dialog-apply + + true + @@ -222,7 +291,7 @@ left - /systems/failures/hyd-blue + /systems/failures/hydraulic/blue-leak dialog-apply @@ -232,7 +301,7 @@ left - /systems/failures/pump-blue + /systems/failures/hydraulic/blue-elec dialog-apply @@ -242,7 +311,7 @@ left - /systems/failures/hyd-green + /systems/failures/hydraulic/green-leak dialog-apply @@ -252,7 +321,7 @@ left - /systems/failures/pump-green + /systems/failures/hydraulic/green-edp dialog-apply @@ -262,7 +331,7 @@ left - /systems/failures/hyd-yellow + /systems/failures/hydraulic/yellow-leak dialog-apply @@ -272,7 +341,7 @@ left - /systems/failures/pump-yellow-eng + /systems/failures/hydraulic/yellow-edp dialog-apply @@ -282,7 +351,17 @@ left - /systems/failures/pump-yellow-elec + /systems/failures/hydraulic/yellow-elec + + dialog-apply + + true + + + + + left + /systems/failures/hydraulic/ptu dialog-apply @@ -306,7 +385,7 @@ left - /systems/failures/elec-ac-ess + /systems/failures/electrical/ac-ess-bus dialog-apply @@ -316,7 +395,7 @@ left - /systems/failures/elec-genapu + /systems/failures/electrical/apu dialog-apply @@ -326,7 +405,7 @@ left - /systems/failures/elec-batt1 + /systems/failures/electrical/bat-1 dialog-apply @@ -336,7 +415,27 @@ left - /systems/failures/elec-batt2 + /systems/failures/electrical/bat-2 + + dialog-apply + + true + + + + + left + /systems/failures/electrical/dc-ess-bus + + dialog-apply + + true + + + + + left + /systems/failures/electrical/emer-gen dialog-apply @@ -346,7 +445,7 @@ left - /systems/failures/elec-gen1 + /systems/failures/electrical/gen-1 dialog-apply @@ -356,17 +455,7 @@ left - /systems/failures/elec-gen2 - - dialog-apply - - true - - - - - left - /systems/failures/elec-galley + /systems/failures/electrical/gen-2 dialog-apply @@ -397,7 +486,7 @@ left - /systems/failures/tank0pump1 + /systems/failures/fuel/left-tank-pump-1 dialog-apply @@ -407,7 +496,7 @@ left - /systems/failures/tank0pump2 + /systems/failures/fuel/left-tank-pump-2 dialog-apply @@ -417,7 +506,7 @@ left - /systems/failures/tank1pump1 + /systems/failures/fuel/center-tank-pump-1 dialog-apply @@ -427,7 +516,7 @@ left - /systems/failures/tank1pump2 + /systems/failures/fuel/center-tank-pump-2 dialog-apply @@ -437,7 +526,7 @@ left - /systems/failures/tank2pump1 + /systems/failures/fuel/right-tank-pump-1 dialog-apply @@ -447,7 +536,7 @@ left - /systems/failures/tank2pump2 + /systems/failures/fuel/right-tank-pump-2 dialog-apply diff --git a/AircraftConfig/fbw.xml b/AircraftConfig/fbw.xml index 7779f8fc..baf83a35 100644 --- a/AircraftConfig/fbw.xml +++ b/AircraftConfig/fbw.xml @@ -51,8 +51,11 @@ nasal @@ -67,8 +70,11 @@ nasal @@ -83,8 +89,11 @@ nasal @@ -99,8 +108,11 @@ nasal diff --git a/AircraftConfig/groundservices.xml b/AircraftConfig/groundservices.xml index 48a25f1e..0bce5733 100644 --- a/AircraftConfig/groundservices.xml +++ b/AircraftConfig/groundservices.xml @@ -8,7 +8,7 @@ ground-services vbox - + hbox @@ -26,12 +26,345 @@ - + - + vbox + + hbox + + true + + + + + + true + + + + + vbox + + + left + + + /gear/gear[0]/wow + /gear/gear[1]/wow + /gear/gear[2]/wow + + + /services/chocks/enable + + dialog-apply + + true + + + + + + vbox + + + hbox + + true + + + + + + true + + + + + + + + + hbox + + + /systems/apu/oil/allow-oil-consumption + + 10 + 50 + 200 + /systems/apu/oil/level-l + 3.9 + 5.4 + true + + dialog-apply + + + + + 10 + 200 + + %.1f litres + /systems/apu/oil/level-l + true + + + + + + left + /controls/electrical/ground-cart + + property-assign + /controls/electrical/switches/ext-pwr + 0 + + + + + /controls/gear/brake-parking + /services/chocks/enable + + + /velocities/groundspeed-kt + 2 + + + + + dialog-apply + + true + + + + + left + /controls/pneumatics/switches/groundair + + property-toggle + /controls/pneumatics/switches/groundair + + + + + /controls/gear/brake-parking + /services/chocks/enable + + + /velocities/groundspeed-kt + 2 + + + + + dialog-apply + + true + + + + + left + /controls/hydraulic/hand-pump-yellow + + property-toggle + /controls/hydraulic/hand-pump-yellow + + + + + /controls/gear/brake-parking + /services/chocks/enable + + + /velocities/groundspeed-kt + 2 + + + /systems/electrical/bus/ac-2 + 115 + + + /controls/electrical/switches/ext-pwr + 0 + + + + + dialog-apply + + true + + + + + vbox + + + hbox + + true + + + + + + true + + + + + + left + /services/stairs/l1 + + dialog-apply + + true + + + + + left + /services/stairs/l4 + + dialog-apply + + true + + + + + left + /services/stairs/cover + + dialog-apply + + true + + + + hbox + + true + + + + + + true + + + + + + left + /services/baggage/enable + + dialog-apply + + true + + + + hbox + + true + + + + + + true + + + + + + left + /services/catering/enable + + dialog-apply + + true + + + + + + hbox + + true + + + + + + true + + + + + + + hbox + + true + + + + + + true + + + left @@ -55,159 +388,6 @@ 1 - - - - - - - - - - left - /services/catering/enable - - dialog-apply - - true - - - - - - - left - /services/baggage/enable - - dialog-apply - - true - - - - hbox - - - true - - - - - - true - - - - - - left - /services/stairs/l1 - - dialog-apply - - true - - - - - left - /services/stairs/l4 - - dialog-apply - - true - - - - - left - /services/stairs/cover - - dialog-apply - - true - - - - hbox - - - true - - - - - - true - - - - - hbox - - - /systems/apu/oil/allow-oil-consumption - - 10 - 50 - 200 - /systems/apu/oil/level-l - 3.9 - 5.4 - true - - dialog-apply - - - - - 10 - 200 - - %.1f litres - /systems/apu/oil/level-l - true - - - + diff --git a/AircraftConfig/load-flightplan.xml b/AircraftConfig/load-flightplan.xml index 29103f04..99049b7e 100644 --- a/AircraftConfig/load-flightplan.xml +++ b/AircraftConfig/load-flightplan.xml @@ -74,6 +74,10 @@ left + + left + + hbox @@ -85,7 +89,29 @@ Load flightplan true - FMGC/internal/tofrom-set + + FMGC/internal/tofrom-set + + + + /sim/version/flightgear + 2019.2.0 + + + /sim/version/flightgear + 2020.1.0 + + + /sim/version/flightgear + 2020.1.1 + + + /sim/version/flightgear + 2020.1.2 + + + + nasal diff --git a/AircraftConfig/main.xml b/AircraftConfig/main.xml index eeb97261..c97e3d27 100644 --- a/AircraftConfig/main.xml +++ b/AircraftConfig/main.xml @@ -219,151 +219,7 @@ - - - - left - - - /gear/gear[0]/wow - /gear/gear[1]/wow - /gear/gear[2]/wow - - - /services/chocks/nose - - dialog-apply - - true - - - - - left - - - /gear/gear[0]/wow - /gear/gear[1]/wow - /gear/gear[2]/wow - - - /services/chocks/left - - dialog-apply - - true - - - - - left - - - /gear/gear[0]/wow - /gear/gear[1]/wow - /gear/gear[2]/wow - - - /services/chocks/right - - dialog-apply - - true - - - - - left - /controls/electrical/ground-cart - - property-assign - /controls/electrical/switches/ext-pwr - 0 - - - - - /controls/gear/brake-parking - /services/chocks/nose - /services/chocks/left - /services/chocks/right - - - /velocities/groundspeed-kt - 2 - - - - - dialog-apply - - true - - - - - left - /controls/pneumatic/switches/groundair - - property-toggle - /controls/pneumatic/switches/groundair - - - - - /controls/gear/brake-parking - /services/chocks/nose - /services/chocks/left - /services/chocks/right - - - /velocities/groundspeed-kt - 2 - - - - - dialog-apply - - true - - - - - left - /controls/hydraulic/hand-pump-yellow - - property-toggle - /controls/hydraulic/hand-pump-yellow - - - - - /controls/gear/brake-parking - /services/chocks/nose - /services/chocks/left - /services/chocks/right - - - /velocities/groundspeed-kt - 2 - - - /systems/electrical/bus/ac-2 - 115 - - - /controls/electrical/switches/ext-pwr - 0 - - - - - dialog-apply - - true - - + @@ -387,7 +243,7 @@ - + diff --git a/AircraftConfig/simbrief.xml b/AircraftConfig/simbrief.xml new file mode 100644 index 00000000..322311a8 --- /dev/null +++ b/AircraftConfig/simbrief.xml @@ -0,0 +1,84 @@ + + + + + + + + + simbrief + vbox + + + + acconfig.writeSettings(); + + + + + hbox + + left + + + + + + + + + vbox + + left + + + + left + + + + left + + + + left + + + + left + + + + hbox + + 200 + 25 + + /FMGC/simbrief-username + + dialog-apply + + true + + + + + + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4ed99ee7..8b9ad470 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,9 +3,9 @@ These examples will show the Guidelines for contributing. Please follow this at all times, or your contribution will not be merged. ## Basic Guidelines: -- Use Tabs to indent code, DO NOT USE SPACE. -- Use lowerCamelCase or underscores for naming Nasal variables/functions (someFunction, some_function). -- Comments optional for XML, mandatory for Nasal. +- Use Tabs to indent code +- Use lowerCamelCase for naming Nasal variables/functions (someFunction) +- Please document your code! - Do not add a comment to every line, only to functions/groups of code. - Remove .bak or .blend files, unless absolutely needed. - Leave one extra line at the bottom of each file. diff --git a/Models/A320-groundservices.xml b/Models/A320-groundservices.xml index 321dd5e9..b964707f 100644 --- a/Models/A320-groundservices.xml +++ b/Models/A320-groundservices.xml @@ -132,7 +132,7 @@ Aircraft/A320-family/Models/Services/Chocks/chock_nose.ac - services/chocks/nose + services/chocks/enable 1 @@ -147,7 +147,7 @@ Aircraft/A320-family/Models/Services/Chocks/chock_left.ac - services/chocks/left + services/chocks/enable 1 @@ -163,7 +163,7 @@ Aircraft/A320-family/Models/Services/Chocks/chock_right.ac - services/chocks/right + services/chocks/enable 1 diff --git a/Models/Engines/NEO/LeapXLeft.xml b/Models/Engines/NEO/LeapXLeft.xml index 30ebb72f..2b21519a 100644 --- a/Models/Engines/NEO/LeapXLeft.xml +++ b/Models/Engines/NEO/LeapXLeft.xml @@ -69,29 +69,29 @@ Aircraft/A320-family/Models/Effects/Moisture-neo.xml moisture - - - - position/altitude-agl-ft - 1 - - - environment/relative-humidity - 45 - - - position/altitude-agl-ft - 75 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[0]/n1 - 60 - - + + + + position/altitude-agl-ft + 1 + + + environment/relative-humidity + 45 + + + position/altitude-agl-ft + 75 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[0]/n1 + 60 + + 0 @@ -105,33 +105,33 @@ Aircraft/A320-family/Models/Effects/engine-spray.xml engine-spray - - - - position/altitude-agl-ft - 1 - - - environment/surface/wetness - 0.3 - - - position/altitude-agl-ft - 15 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[0]/n1-actual - 65 + + + + position/altitude-agl-ft + 1 + + + environment/surface/wetness + 0.3 + + + position/altitude-agl-ft + 15 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[0]/n1-actual + 65 engines/engine[0]/reverser-pos-norm - 0 - - + 0 + + 4.875 @@ -144,29 +144,29 @@ Aircraft/A320-family/Models/Effects/engine-spray-reverse.xml engine-spray-reverse - - - - position/altitude-agl-ft - 1 - - - environment/surface/wetness - 0.3 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[0]/n1-actual - 65 + + + + position/altitude-agl-ft + 1 + + + environment/surface/wetness + 0.3 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[0]/n1-actual + 65 engines/engine[0]/reverser-pos-norm - 0.75 - - + 0.75 + + -1.0 diff --git a/Models/Engines/XMLs/a320.engine.cfm.right.xml b/Models/Engines/XMLs/a320.engine.cfm.right.xml index 948bab80..9236f4f3 100644 --- a/Models/Engines/XMLs/a320.engine.cfm.right.xml +++ b/Models/Engines/XMLs/a320.engine.cfm.right.xml @@ -58,29 +58,29 @@ moisture Aircraft/A320-family/Models/Effects/Moisture.xml - - - - position/altitude-agl-ft - 1 - - - environment/relative-humidity - 45 - - - position/altitude-agl-ft - 75 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[1]/n1 - 60 - - + + + + position/altitude-agl-ft + 1 + + + environment/relative-humidity + 45 + + + position/altitude-agl-ft + 75 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[1]/n1 + 60 + + 0 @@ -94,33 +94,33 @@ Aircraft/A320-family/Models/Effects/engine-spray.xml engine-spray - - - - position/altitude-agl-ft - 1 - - - environment/surface/wetness - 0.3 - - - position/altitude-agl-ft - 15 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[1]/n1-actual - 65 + + + + position/altitude-agl-ft + 1 + + + environment/surface/wetness + 0.3 + + + position/altitude-agl-ft + 15 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[1]/n1-actual + 65 engines/engine[1]/reverser-pos-norm - 0 - - + 0 + + 4.875 @@ -133,29 +133,29 @@ Aircraft/A320-family/Models/Effects/engine-spray-reverse.xml engine-spray-reverse - - - - position/altitude-agl-ft - 1 - - - environment/surface/wetness - 0.3 - - - sim/time/sun-angle-rad - 1.63 - - - engines/engine[1]/n1-actual - 65 + + + + position/altitude-agl-ft + 1 + + + environment/surface/wetness + 0.3 + + + sim/time/sun-angle-rad + 1.63 + + + engines/engine[1]/n1-actual + 65 engines/engine[1]/reverser-pos-norm - 0.75 - - + 0.75 + + 0 diff --git a/Models/FlightDeck/QRH/1.jpeg b/Models/FlightDeck/QRH/1.jpeg new file mode 100644 index 00000000..4672b2f1 Binary files /dev/null and b/Models/FlightDeck/QRH/1.jpeg differ diff --git a/Models/FlightDeck/QRH/2.jpeg b/Models/FlightDeck/QRH/2.jpeg new file mode 100644 index 00000000..9db337cd Binary files /dev/null and b/Models/FlightDeck/QRH/2.jpeg differ diff --git a/Models/FlightDeck/QRH/3.jpeg b/Models/FlightDeck/QRH/3.jpeg new file mode 100644 index 00000000..ac0aa4ec Binary files /dev/null and b/Models/FlightDeck/QRH/3.jpeg differ diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml index db494f12..098a32a4 100644 --- a/Models/FlightDeck/a320.flightdeck.xml +++ b/Models/FlightDeck/a320.flightdeck.xml @@ -1157,16 +1157,22 @@ true - - - systems/electrical/bus/dc-ess - 25 - - - systems/electrical/bus/dc-2 - 25 - - + + + /it-autoflight/output/ap1 + /it-autoflight/output/ap2 + + + + systems/electrical/bus/dc-ess + 25 + + + systems/electrical/bus/dc-2 + 25 + + + nasal @@ -1645,10 +1657,10 @@ nasal @@ -1672,10 +1684,10 @@ nasal @@ -4323,7 +4335,7 @@ xy-plane number-value %3.0f - it-autoflight/input/spd-kts + it-autoflight/input/kts false led.txf true @@ -4349,7 +4361,7 @@ xy-plane number-value %0.3f - it-autoflight/input/spd-mach + it-autoflight/input/mach false led.txf true @@ -6162,9 +6174,8 @@ true - property-adjust - controls/flight/elevator-trim - 0.01 + nasal + @@ -6172,9 +6183,8 @@ true - property-adjust - controls/flight/elevator-trim - -0.01 + nasal + @@ -6231,7 +6241,7 @@ rotate LRudderPedalL LRudderPedalR - controls/gear/brake-left + /fdm/jsbsim/fcs/brake-left 15 0 @@ -6249,7 +6259,7 @@ rotate RRudderPedalL RRudderPedalR - controls/gear/brake-right + /fdm/jsbsim/fcs/brake-right 15 0 diff --git a/Models/FlightDeck/res/ECAM_glare.png b/Models/FlightDeck/res/ecam_glare_tex.png similarity index 100% rename from Models/FlightDeck/res/ECAM_glare.png rename to Models/FlightDeck/res/ecam_glare_tex.png diff --git a/Models/FlightDeck/res/fd_complete.ac b/Models/FlightDeck/res/fd_complete.ac index 1876e386..4311168d 100644 --- a/Models/FlightDeck/res/fd_complete.ac +++ b/Models/FlightDeck/res/fd_complete.ac @@ -72761,7 +72761,7 @@ name "ecam_glare_down" data 15 CU1_curve_.1252 crease 40.0 -texture "ECAM_glare.png" +texture "ecam_glare_tex.png" texrep 1 1 numvert 8 -0.40392 -0.06108 -0.10745 @@ -72793,7 +72793,7 @@ name "ecam_glare_up" data 15 CU1_curve_.1253 crease 40.0 -texture "ECAM_glare.png" +texture "ecam_glare_tex.png" texrep 1 1 numvert 4 -0.40892 -0.06801 0.10755 diff --git a/Models/Instruments/IESI/IESI.nas b/Models/Instruments/IESI/IESI.nas index eb3d4729..f7bff132 100644 --- a/Models/Instruments/IESI/IESI.nas +++ b/Models/Instruments/IESI/IESI.nas @@ -18,9 +18,6 @@ var iesi_rate = props.globals.getNode("/systems/acconfig/options/iesi-rate", 1); var et = props.globals.getNode("/sim/time/elapsed-sec", 1); var aconfig = props.globals.getNode("/systems/acconfig/autoconfig-running", 1); -var dcess = 0; -var dchot1 = 0; - var airspeed = props.globals.getNode("/instrumentation/airspeed-indicator/indicated-speed-kt", 1); var mach = props.globals.getNode("/instrumentation/airspeed-indicator/indicated-mach", 1); var pitch = props.globals.getNode("/orientation/pitch-deg", 1); @@ -29,7 +26,7 @@ var skid = props.globals.getNode("/instrumentation/slip-skid-ball/indicated-slip var altitude = props.globals.getNode("/instrumentation/altimeter/indicated-altitude-ft", 1); var altitude_ind = props.globals.getNode("/instrumentation/altimeter/indicated-altitude-ft-pfd", 1); -var altimeter_mode = props.globals.getNode("/modes/altimeter/std", 1); +var altimeter_mode = props.globals.getNode("/instrumentation/altimeter[0]/std", 1); var qnh_hpa = props.globals.getNode("/instrumentation/altimeter/setting-hpa", 1); var qnh_inhg = props.globals.getNode("/instrumentation/altimeter/setting-inhg", 1); @@ -77,11 +74,8 @@ var canvas_IESI_base = { return []; }, update: func() { - dcess = systems.ELEC.Bus.dcEss.getValue(); - dchot1 = systems.ELEC.Bus.dcHot1.getValue(); - cur_time = et.getValue(); - if (dcess >= 25 or (dchot1 >= 25 and airspeed.getValue() >= 50 and cur_time >= 5)) { + if (systems.ELEC.Bus.dcEss.getValue() >= 25 or (systems.ELEC.Bus.dcHot1.getValue() >= 25 and airspeed.getValue() >= 50 and cur_time >= 5)) { IESI.page.show(); IESI.update(); @@ -103,7 +97,8 @@ var canvas_IESI = { new: func(canvas_group, file) { var m = {parents: [canvas_IESI, canvas_IESI_base]}; m.init(canvas_group, file); - + m._cachedInhg = -99; + return m; }, getKeys: func() { @@ -113,6 +108,7 @@ var canvas_IESI = { if (iesi_time.getValue() + 90 >= et.getValue()) { me["IESI"].hide(); me["IESI_Init"].show(); + return; } else { me["IESI_Init"].hide(); me["IESI"].show(); @@ -175,8 +171,13 @@ var canvas_IESI = { altTens = num(right(sprintf("%02d", altitude.getValue()), 2)); me["ALT_tens"].setTranslation(0, altTens * 3.16); - # QNH - if (altimeter_mode.getValue() == 1) { + if (qnh_inhg.getValue() != me._cachedInhg) { + me._cachedInhg = qnh_inhg.getValue(); + me.updateQNH(); + } + }, + updateQNH: func() { + if (altimeter_mode.getBoolValue()) { me["QNH_setting"].hide(); me["QNH_std"].show(); } else { @@ -184,7 +185,7 @@ var canvas_IESI = { me["QNH_setting"].show(); me["QNH_std"].hide(); } - }, + } }; setlistener("sim/signals/fdm-initialized", func { @@ -199,12 +200,16 @@ setlistener("sim/signals/fdm-initialized", func { IESI = canvas_IESI.new(group_IESI, "Aircraft/A320-family/Models/Instruments/IESI/res/iesi.svg"); + IESI.updateQNH(); + IESI_update.start(); if (iesi_rate.getValue() > 1) { rateApply(); } }); +setlistener("/instrumentation/altimeter[0]/std", func() { if (IESI != nil) { IESI.updateQNH(); } }, 0, 0); + var rateApply = func { IESI_update.restart(0.05 * iesi_rate.getValue()); } diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 58b63651..9a3c40ae 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -18,7 +18,6 @@ var lowerECAM_wheel = nil; var lowerECAM_test = nil; var lowerECAM_display = nil; var page = "fctl"; -var oat = getprop("/environment/temperature-degc"); var blue_psi = 0; var green_psi = 0; var yellow_psi = 0; @@ -43,11 +42,8 @@ LBS2KGS = 0.4535924; # Fetch Nodes var acconfig_weight_kgs = props.globals.getNode("/systems/acconfig/options/weight-kgs", 1); -var elapsed_sec = props.globals.getNode("/sim/time/elapsed-sec", 1); -var ac2 = props.globals.getNode("/systems/electrical/bus/ac-2", 1); +var rate = props.globals.getNode("/systems/acconfig/options/lecam-rate", 1); var autoconfig_running = props.globals.getNode("/systems/acconfig/autoconfig-running", 1); -var ac1_src = props.globals.getNode("/systems/electrical/ac1-src", 1); -var ac2_src = props.globals.getNode("/systems/electrical/ac2-src", 1); var lighting_du4 = props.globals.getNode("/controls/lighting/DU/du4", 1); var ecam_page = props.globals.getNode("/ECAM/Lower/page", 1); var hour = props.globals.getNode("/sim/time/utc/hour", 1); @@ -65,9 +61,7 @@ var oil_qt1 = props.globals.getNode("/ECAM/Lower/Oil-QT[0]", 1); var oil_qt2 = props.globals.getNode("/ECAM/Lower/Oil-QT[1]", 1); var oil_psi1 = props.globals.getNode("/ECAM/Lower/Oil-PSI[0]", 1); var oil_psi2 = props.globals.getNode("/ECAM/Lower/Oil-PSI[1]", 1); -var bleedapu = props.globals.getNode("/systems/pneumatic/bleedapu", 1); -var oil_psi_actual1 = props.globals.getNode("/engines/engine[0]/oil-psi-actual", 1); -var oil_psi_actual2 = props.globals.getNode("/engines/engine[1]/oil-psi-actual", 1); +var bleedapu = props.globals.getNode("/systems/pneumatics/source/apu-psi", 1); var aileron_ind_left = props.globals.getNode("/ECAM/Lower/aileron-ind-left", 1); var aileron_ind_right = props.globals.getNode("/ECAM/Lower/aileron-ind-right", 1); var elevator_ind_left = props.globals.getNode("/ECAM/Lower/elevator-ind-left", 1); @@ -75,44 +69,33 @@ var elevator_ind_right = props.globals.getNode("/ECAM/Lower/elevator-ind-right", var elevator_trim_deg = props.globals.getNode("/ECAM/Lower/elevator-trim-deg", 1); var final_deg = props.globals.getNode("/fdm/jsbsim/hydraulics/rudder/final-deg", 1); var temperature_degc = props.globals.getNode("/environment/temperature-degc", 1); -var gw = props.globals.getNode("/FMGC/internal/gw", 1); +var gw = props.globals.getNode("/fdm/jsbsim/inertia/weight-lbs", 1); var tank3_content_lbs = props.globals.getNode("/fdm/jsbsim/propulsion/tank[2]/contents-lbs", 1); -var apu_master = props.globals.getNode("/controls/apu/master", 1); var ir2_knob = props.globals.getNode("/controls/adirs/ir[1]/knob", 1); -var switch_bleedapu = props.globals.getNode("/controls/pneumatic/switches/bleedapu", 1); -var pneumatic_xbleed_state = props.globals.getNode("/systems/pneumatic/xbleed-state", 1); -var xbleed = props.globals.getNode("/systems/pneumatic/xbleed", 1); -var hp_valve1_state = props.globals.getNode("/systems/pneumatic/hp-valve-1-state", 1); -var hp_valve2_state = props.globals.getNode("/systems/pneumatic/hp-valve-2-state", 1); -var hp_valve1 = props.globals.getNode("/systems/pneumatic/hp-valve-1", 1); -var hp_valve2 = props.globals.getNode("/systems/pneumatic/hp-valve-2", 1); -var eng_valve1_state = props.globals.getNode("/systems/pneumatic/eng-valve-1-state", 1); -var eng_valve2_state = props.globals.getNode("/systems/pneumatic/eng-valve-2-state", 1); -var eng_valve1 = props.globals.getNode("/systems/pneumatic/eng-valve-1", 1); -var eng_valve2 = props.globals.getNode("/systems/pneumatic/eng-valve-2", 1); -var precooler1_psi = props.globals.getNode("/systems/pneumatic/precooler-1-psi", 1); -var precooler2_psi = props.globals.getNode("/systems/pneumatic/precooler-2-psi", 1); -var precooler1_temp = props.globals.getNode("/systems/pneumatic/precooler-1-temp", 1); -var precooler2_temp = props.globals.getNode("/systems/pneumatic/precooler-2-temp", 1); -var precooler1_ovht = props.globals.getNode("/systems/pneumatic/precooler-1-ovht", 1); -var precooler2_ovht = props.globals.getNode("/systems/pneumatic/precooler-2-ovht", 1); +var apuBleedNotOn = props.globals.getNode("/systems/pneumatics/warnings/apu-bleed-not-on", 1); +var apu_valve = props.globals.getNode("/systems/pneumatics/valves/apu-bleed-valve-cmd", 1); +var apu_valve_state = props.globals.getNode("/systems/pneumatics/valves/apu-bleed-valve", 1); +var xbleedcmd = props.globals.getNode("/systems/pneumatics/valves/crossbleed-valve-cmd", 1); +var xbleed = props.globals.getNode("/systems/pneumatics/valves/crossbleed-valve", 1); +var xbleedstate = nil; +var hp_valve1_state = props.globals.getNode("/systems/pneumatics/valves/engine-1-hp-valve", 1); +var hp_valve2_state = props.globals.getNode("/systems/pneumatics/valves/engine-2-hp-valve", 1); +var hp_valve1 = props.globals.getNode("/systems/pneumatics/valves/engine-1-hp-valve-cmd", 1); +var hp_valve2 = props.globals.getNode("/systems/pneumatics/valves/engine-2-hp-valve-cmd", 1); +var eng_valve1 = props.globals.getNode("/systems/pneumatics/valves/engine-1-prv-valve", 1); +var eng_valve2 = props.globals.getNode("/systems/pneumatics/valves/engine-2-prv-valve", 1); +var precooler1_psi = props.globals.getNode("/systems/pneumatics/psi/engine-1-psi", 1); +var precooler2_psi = props.globals.getNode("/systems/pneumatics/psi/engine-2-psi", 1); +var precooler1_temp = props.globals.getNode("/systems/pneumatics/precooler/temp-1", 1); +var precooler2_temp = props.globals.getNode("/systems/pneumatics/precooler/temp-2", 1); +var precooler1_ovht = props.globals.getNode("/systems/pneumatics/precooler/ovht-1", 1); +var precooler2_ovht = props.globals.getNode("/systems/pneumatics/precooler/ovht-2", 1); +var bmc1working = props.globals.getNode("/systems/pneumatics/indicating/bmc1-working", 1); +var bmc2working = props.globals.getNode("/systems/pneumatics/indicating/bmc2-working", 1); var gs_kt = props.globals.getNode("/velocities/groundspeed-kt", 1); -var switch_wing_aice = props.globals.getNode("/controls/switches/wing", 1); -var deice_wing = props.globals.getNode("/controls/deice/wing", 1); -var eng1_n2_actual = props.globals.getNode("/engines/engine[0]/n2-actual", 1); -var eng2_n2_actual = props.globals.getNode("/engines/engine[1]/n2-actual", 1); -var pack1_out_temp = props.globals.getNode("/systems/pressurization/pack-1-out-temp", 1); -var pack2_out_temp = props.globals.getNode("/systems/pressurization/pack-2-out-temp", 1); -var pack1_comp_out_temp = props.globals.getNode("/systems/pressurization/pack-1-comp-out-temp", 1); -var pack2_comp_out_temp = props.globals.getNode("/systems/pressurization/pack-2-comp-out-temp", 1); -var pack1_bypass = props.globals.getNode("/systems/pressurization/pack-1-bypass", 1); -var pack2_bypass = props.globals.getNode("/systems/pressurization/pack-2-bypass", 1); -var pack1_flow = props.globals.getNode("/systems/pressurization/pack-1-flow", 1); -var pack2_flow = props.globals.getNode("/systems/pressurization/pack-2-flow", 1); -var pack1_valve = props.globals.getNode("/systems/pressurization/pack-1-valve", 1); -var pack2_valve = props.globals.getNode("/systems/pressurization/pack-2-valve", 1); -var switch_pack1 = props.globals.getNode("/controls/pneumatic/switches/pack1", 1); -var switch_pack2 = props.globals.getNode("/controls/pneumatic/switches/pack2", 1); +var switch_wing_aice = props.globals.getNode("/controls/ice-protection/wing", 1); +var pack1_bypass = props.globals.getNode("/systems/pneumatics/pack-1-bypass", 1); +var pack2_bypass = props.globals.getNode("/systems/pneumatics/pack-2-bypass", 1); var oil_qt1_actual = props.globals.getNode("/engines/engine[0]/oil-qt-actual", 1); var oil_qt2_actual = props.globals.getNode("/engines/engine[1]/oil-qt-actual", 1); var fuel_used_lbs1 = props.globals.getNode("/systems/fuel/fuel-used-1", 1); @@ -125,50 +108,6 @@ var cargobulk_pos = props.globals.getNode("/sim/model/door-positions/cargobulk/p var cargofwd_pos = props.globals.getNode("/sim/model/door-positions/cargofwd/position-norm", 1); var cargoaft_pos = props.globals.getNode("/sim/model/door-positions/cargoaft/position-norm", 1); -# Electrical nodes -var apu_volts = props.globals.getNode("/systems/electrical/sources/apu/output-volt", 1); -var apu_hz = props.globals.getNode("/systems/electrical/sources/apu/output-hertz", 1); -var gen_apu = props.globals.getNode("/systems/electrical/relay/apu-glc/contact-pos", 1); -var switch_bat1 = props.globals.getNode("/controls/electrical/switches/bat-1", 1); -var switch_bat2 = props.globals.getNode("/controls/electrical/switches/bat-2", 1); -var bat1_amps = props.globals.getNode("/systems/electrical/sources/bat-1/amps", 1); -var bat2_amps = props.globals.getNode("/systems/electrical/sources/bat-2/amps", 1); -var bat1_volts = props.globals.getNode("/systems/electrical/sources/bat-1/volt", 1); -var bat2_volts = props.globals.getNode("/systems/electrical/sources/bat-2/volt", 1); -var bat1_fault = props.globals.getNode("/systems/electrical/light/bat-1-fault", 1); -var bat2_fault = props.globals.getNode("/systems/electrical/light/bat-2-fault", 1); -var bat1_direction = props.globals.getNode("/systems/electrical/sources/bat-1/direction", 1); -var bat2_direction = props.globals.getNode("/systems/electrical/sources/bat-2/direction", 1); -var emerGenVolts = props.globals.getNode("/systems/electrical/relay/emer-glc/output", 1); -var emerGenHz = props.globals.getNode("/systems/electrical/sources/emer-gen/output-hertz", 1); -var tr1_volts = props.globals.getNode("/systems/electrical/relay/tr-contactor-1/output", 1); -var tr2_volts = props.globals.getNode("/systems/electrical/relay/tr-contactor-2/output", 1); -var tr1_amps = props.globals.getNode("/systems/electrical/relay/tr-contactor-1/output-amp", 1); -var tr2_amps = props.globals.getNode("/systems/electrical/relay/tr-contactor-2/output-amp", 1); -var dc1 = props.globals.getNode("/systems/electrical/bus/dc-1", 1); -var dc2 = props.globals.getNode("/systems/electrical/bus/dc-2", 1); -var dc_ess = props.globals.getNode("/systems/electrical/bus/dc-ess", 1); -var switch_emer_gen = props.globals.getNode("/systems/electrical/sources/emer-gen/output-volt", 1); -var switch_gen1 = props.globals.getNode("/controls/electrical/switches/gen-1", 1); -var switch_gen2 = props.globals.getNode("/controls/electrical/switches/gen-2", 1); -var gen1_volts = props.globals.getNode("/systems/electrical/sources/idg-1/output-volt", 1); -var gen2_volts = props.globals.getNode("/systems/electrical/sources/idg-2/output-volt", 1); -var gen1_hz = props.globals.getNode("/systems/electrical/sources/idg-1/output-hertz", 1); -var gen2_hz = props.globals.getNode("/systems/electrical/sources/idg-2/output-hertz", 1); -var ext_volts = props.globals.getNode("/systems/electrical/sources/ext/output-volt", 1); -var ext_hz = props.globals.getNode("/systems/electrical/sources/ext/output-hertz", 1); -var galleyshed = props.globals.getNode("/systems/electrical/extra/galleyshed", 1); -var switch_galley = props.globals.getNode("/controls/electrical/switches/galley", 1); -var dcbat = props.globals.getNode("/systems/electrical/bus/dc-bat", 1); -var ac_ess = props.globals.getNode("/systems/electrical/bus/ac-ess", 1); -var ac1 = props.globals.getNode("/systems/electrical/bus/ac-1", 1); -var ac2 = props.globals.getNode("/systems/electrical/bus/ac-2", 1); -var switch_ac_ess_feed = props.globals.getNode("/controls/electrical/switches/ac-ess-feed", 1); -var tr1_fault = props.globals.getNode("/systems/failures/electrical/tr-1", 1); -var tr2_fault = props.globals.getNode("/systems/failures/electrical/tr-2", 1); -var essTrVolt = props.globals.getNode("/systems/electrical/relay/dc-ess-feed-tr/output", 1); -var essTrAmp = props.globals.getNode("/systems/electrical/relay/dc-ess-feed-tr/output-amp", 1); - # Hydraulic var blue_psi = 0; var green_psi = 0; @@ -193,7 +132,6 @@ var R4BrakeTempc = props.globals.getNode("/gear/gear[2]/R4brake-temp-degc", 1); var eng1_running = props.globals.getNode("/engines/engine[0]/running", 1); var eng2_running = props.globals.getNode("/engines/engine[1]/running", 1); var switch_cart = props.globals.getNode("/controls/electrical/ground-cart", 1); -var total_psi = props.globals.getNode("/systems/pneumatic/total-psi", 1); var spoiler_L1 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-l1/final-deg", 1); var spoiler_L2 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-l2/final-deg", 1); var spoiler_L3 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-l3/final-deg", 1); @@ -204,31 +142,7 @@ var spoiler_R2 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-r2/final- var spoiler_R3 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-r3/final-deg", 1); var spoiler_R4 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-r4/final-deg", 1); var spoiler_R5 = props.globals.getNode("/fdm/jsbsim/hydraulics/spoiler-r5/final-deg", 1); -var spoiler_L1_fail = props.globals.getNode("/systems/failures/spoiler-l1", 1); -var spoiler_L2_fail = props.globals.getNode("/systems/failures/spoiler-l2", 1); -var spoiler_L3_fail = props.globals.getNode("/systems/failures/spoiler-l3", 1); -var spoiler_L4_fail = props.globals.getNode("/systems/failures/spoiler-l4", 1); -var spoiler_L5_fail = props.globals.getNode("/systems/failures/spoiler-l5", 1); -var spoiler_R1_fail = props.globals.getNode("/systems/failures/spoiler-r1", 1); -var spoiler_R2_fail = props.globals.getNode("/systems/failures/spoiler-r2", 1); -var spoiler_R3_fail = props.globals.getNode("/systems/failures/spoiler-r3", 1); -var spoiler_R4_fail = props.globals.getNode("/systems/failures/spoiler-r4", 1); -var spoiler_R5_fail = props.globals.getNode("/systems/failures/spoiler-r5", 1); -var elac1 = props.globals.getNode("/systems/fctl/elac1", 1); -var elac2 = props.globals.getNode("/systems/fctl/elac2", 1); -var sec1 = props.globals.getNode("/systems/fctl/sec1", 1); -var sec2 = props.globals.getNode("/systems/fctl/sec2", 1); -var sec3 = props.globals.getNode("/systems/fctl/sec3", 1); -var elac1_fail = props.globals.getNode("/systems/failures/elac1", 1); -var elac2_fail = props.globals.getNode("/systems/failures/elac2", 1); -var sec1_fail = props.globals.getNode("/systems/failures/sec1", 1); -var sec2_fail = props.globals.getNode("/systems/failures/sec2", 1); -var sec3_fail = props.globals.getNode("/systems/failures/sec3", 1); -var eng1_n1 = props.globals.getNode("/engines/engine[0]/n1-actual", 1); -var eng2_n1 = props.globals.getNode("/engines/engine[1]/n1-actual", 1); var total_fuel_lbs = props.globals.getNode("/consumables/fuel/total-fuel-lbs", 1); -var fadec1 = props.globals.getNode("/systems/fadec/powered1", 1); -var fadec2 = props.globals.getNode("/systems/fadec/powered2", 1); var fuel_flow1 = props.globals.getNode("/engines/engine[0]/fuel-flow_actual", 1); var fuel_flow2 = props.globals.getNode("/engines/engine[1]/fuel-flow_actual", 1); var fuel_left_outer_temp = props.globals.getNode("/consumables/fuel/tank[0]/temperature_degC", 1); @@ -237,13 +151,6 @@ var fuel_right_outer_temp = props.globals.getNode("/consumables/fuel/tank[4]/tem var fuel_right_inner_temp = props.globals.getNode("/consumables/fuel/tank[3]/temperature_degC", 1); var cutoff_switch1 = props.globals.getNode("/controls/engines/engine[0]/cutoff-switch", 1); var cutoff_switch2 = props.globals.getNode("/controls/engines/engine[1]/cutoff-switch", 1); -var fuel_xfeed = props.globals.getNode("/controls/fuel/x-feed", 1); -var tank0pump1 = props.globals.getNode("/controls/fuel/tank0pump1", 1); -var tank0pump2 = props.globals.getNode("/controls/fuel/tank0pump2", 1); -var tank1pump1 = props.globals.getNode("/controls/fuel/tank1pump1", 1); -var tank1pump2 = props.globals.getNode("/controls/fuel/tank1pump2", 1); -var tank2pump1 = props.globals.getNode("/controls/fuel/tank2pump1", 1); -var tank2pump2 = props.globals.getNode("/controls/fuel/tank2pump2", 1); var autobreak_mode = props.globals.getNode("/controls/autobrake/mode", 1); var gear1_pos = props.globals.getNode("/gear/gear[0]/position-norm", 1); var gear2_pos = props.globals.getNode("/gear/gear[1]/position-norm", 1); @@ -286,16 +193,16 @@ var canvas_lowerECAM_base = { return []; }, updateDu4: func() { - var elapsedtime = elapsed_sec.getValue(); + var elapsedtime = pts.Sim.Time.elapsedSec.getValue(); - if (ac2.getValue() >= 110) { + if (systems.ELEC.Bus.ac2.getValue() >= 110) { if (du4_offtime.getValue() + 3 < elapsedtime) { - if (gear0_wow.getValue() == 1) { + if (gear0_wow.getValue()) { if (autoconfig_running.getValue() != 1 and du4_test.getValue() != 1) { du4_test.setValue(1); du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1)); du4_test_time.setValue(elapsedtime); - } else if (autoconfig_running.getValue() == 1 and du4_test.getValue() != 1) { + } else if (autoconfig_running.getValue() and du4_test.getValue() != 1) { du4_test.setValue(1); du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1)); du4_test_time.setValue(elapsedtime - 30); @@ -312,9 +219,9 @@ var canvas_lowerECAM_base = { } }, update: func() { - var elapsedtime = elapsed_sec.getValue(); + var elapsedtime = pts.Sim.Time.elapsedSec.getValue(); - if (ac2.getValue() >= 110 and lighting_du4.getValue() > 0.01) { + if (systems.ELEC.Bus.ac2.getValue() >= 110 and lighting_du4.getValue() > 0.01) { if (du4_test_time.getValue() + du4_test_amount.getValue() >= elapsedtime) { lowerECAM_apu.page.hide(); lowerECAM_bleed.page.hide(); @@ -580,11 +487,11 @@ var canvas_lowerECAM_base = { me["UTCh"].setText(sprintf("%02d", hour.getValue())); me["UTCm"].setText(sprintf("%02d", minute.getValue())); - if (acconfig_weight_kgs.getValue() == 1) { - me["GW"].setText(sprintf("%s", math.round(gw.getValue() * LBS2KGS))); + if (acconfig_weight_kgs.getValue()) { + me["GW"].setText(sprintf("%s", math.round(math.round(gw.getValue() * LBS2KGS, 100)))); me["GW-weight-unit"].setText("KG"); } else { - me["GW"].setText(sprintf("%s", math.round(gw.getValue()))); + me["GW"].setText(sprintf("%s", math.round(gw.getValue(), 100))); me["GW-weight-unit"].setText("LBS"); } }, @@ -602,10 +509,8 @@ var canvas_lowerECAM_apu = { "text3724","text3728","text3732"]; }, update: func() { - oat = temperature_degc.getValue(); - # Avail and Flap Open - if (apu_flap.getValue() == 1) { + if (apu_flap.getValue()) { me["APUFlapOpen"].show(); } else { me["APUFlapOpen"].hide(); @@ -624,19 +529,19 @@ var canvas_lowerECAM_apu = { } # APU Gen - if (apu_volts.getValue() >= 110) { + if (systems.ELEC.Source.APU.volts.getValue() >= 110) { me["APUGenVolt"].setColor(0.0509,0.7529,0.2941); } else { me["APUGenVolt"].setColor(0.7333,0.3803,0); } - if (apu_hz.getValue() > 380) { + if (systems.ELEC.Source.APU.hertz.getValue() > 380) { me["APUGenHz"].setColor(0.0509,0.7529,0.2941); } else { me["APUGenHz"].setColor(0.7333,0.3803,0); } - if (apu_master.getValue() == 1 or apu_rpm.getValue() >= 94.9) { + if (systems.APUNodes.Controls.master.getValue() or apu_rpm.getValue() >= 94.9) { me["APUGenbox"].show(); me["APUGenHz"].show(); me["APUGenVolt"].show(); @@ -654,24 +559,24 @@ var canvas_lowerECAM_apu = { me["text3732"].hide(); } - if ((apu_rpm.getValue() > 94.9) and (gen_apu.getValue() == 1)) { + if ((apu_rpm.getValue() > 94.9) and (systems.ELEC.Source.APU.contact.getValue())) { me["APUGenOnline"].show(); } else { me["APUGenOnline"].hide(); } - if ((apu_master.getValue() == 0) or ((apu_master.getValue() == 1) and (gen_apu.getValue() == 1) and (apu_rpm.getValue() > 94.9))) { + if ((systems.APUNodes.Controls.master.getValue() == 0) or ((systems.APUNodes.Controls.master.getValue()) and (systems.ELEC.Source.APU.contact.getValue()) and (apu_rpm.getValue() > 94.9))) { me["APUGentext"].setColor(0.8078,0.8039,0.8078); - } else if ((apu_master.getValue() == 1) and (gen_apu.getValue() == 0) and (apu_rpm.getValue() < 94.9)) { + } else if ((systems.APUNodes.Controls.master.getValue()) and (systems.ELEC.Source.APU.contact.getValue() == 0) and (apu_rpm.getValue() < 94.9)) { me["APUGentext"].setColor(0.7333,0.3803,0); } me["APUGenLoad"].setText(sprintf("%s", math.round(apu_load.getValue()))); - me["APUGenVolt"].setText(sprintf("%s", math.round(apu_volts.getValue()))); - me["APUGenHz"].setText(sprintf("%s", math.round(apu_hz.getValue()))); + me["APUGenVolt"].setText(sprintf("%s", math.round(systems.ELEC.Source.APU.volts.getValue()))); + me["APUGenHz"].setText(sprintf("%s", math.round(systems.ELEC.Source.APU.hertz.getValue()))); # APU Bleed - if (systems.ADIRS.Operating.adr[0].getValue() and (apu_master.getValue() == 1 or bleedapu.getValue() > 0)) { + if (systems.ADIRS.Operating.adr[0].getValue() and (systems.APUNodes.Controls.bleed.getValue() or bleedapu.getValue() > 0)) { me["APUBleedPSI"].setColor(0.0509,0.7529,0.2941); me["APUBleedPSI"].setText(sprintf("%s", math.round(bleedapu.getValue()))); } else { @@ -679,16 +584,24 @@ var canvas_lowerECAM_apu = { me["APUBleedPSI"].setText(sprintf("%s", "XX")); } - if (switch_bleedapu.getValue() == 1) { + var apu_valve_state2 = apu_valve_state.getValue(); + if (apu_valve_state2 == 1) { me["APUBleedValve"].setRotation(90 * D2R); - me["APUBleedOnline"].show(); } else { me["APUBleedValve"].setRotation(0); + } + + if (apu_valve_state2 == apu_valve_state.getValue()) { + me["APUBleedValve"].setColor(0.0509,0.7529,0.2941); + me["APUBleedOnline"].show(); + } else { + me["APUBleedValve"].setColor(0.7333,0.3803,0); me["APUBleedOnline"].hide(); } + # APU N and EGT - if (apu_master.getValue() == 1) { + if (systems.APUNodes.Controls.master.getValue()) { me["APUN"].setColor(0.0509,0.7529,0.2941); me["APUN"].setText(sprintf("%s", math.round(apu_rpm.getValue() or 0))); me["APUEGT"].setColor(0.0509,0.7529,0.2941); @@ -725,36 +638,40 @@ var canvas_lowerECAM_bleed = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit", "BLEED-XFEED", "BLEED-Ram-Air", "BLEED-APU", "BLEED-HP-Valve-1", - "BLEED-ENG-1", "BLEED-HP-Valve-2", "BLEED-ENG-2", "BLEED-Precooler-1-Inlet-Press", "BLEED-Precooler-1-Outlet-Temp", + return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit", "BLEED-XFEED", "BLEED-Ram-Air", "BLEED-APU-CIRCLE", "BLEED-HP-Valve-1", + "BLEED-APU-LINES","BLEED-ENG-1", "BLEED-HP-Valve-2", "BLEED-ENG-2", "BLEED-Precooler-1-Inlet-Press", "BLEED-Precooler-1-Outlet-Temp", "BLEED-Precooler-2-Inlet-Press", "BLEED-Precooler-2-Outlet-Temp", "BLEED-ENG-1-label", "BLEED-ENG-2-label", - "BLEED-GND", "BLEED-Pack-1-Flow-Valve", "BLEED-Pack-2-Flow-Valve", "BLEED-Pack-1-Out-Temp", - "BLEED-Pack-1-Comp-Out-Temp", "BLEED-Pack-1-Packflow-needel", "BLEED-Pack-1-Bypass-needel", "BLEED-Pack-2-Out-Temp", - "BLEED-Pack-2-Bypass-needel", "BLEED-Pack-2-Comp-Out-Temp", "BLEED-Pack-2-Packflow-needel", "BLEED-Anti-Ice-Left", - "BLEED-Anti-Ice-Right", "BLEED-HP-2-connection", "BLEED-HP-1-connection", "BLEED-ANTI-ICE-ARROW-LEFT", "BLEED-ANTI-ICE-ARROW-RIGHT"]; + "BLEED-GND", "BLEED-Pack-1-Flow-Valve", "BLEED-Pack-2-Flow-Valve", "BLEED-Pack-1-Out-Temp","BLEED-APU-connectionTop", + "BLEED-Pack-1-Comp-Out-Temp", "BLEED-Pack-1-Packflow-needle", "BLEED-Pack-1-Bypass-needle", "BLEED-Pack-2-Out-Temp", + "BLEED-Pack-2-Bypass-needle", "BLEED-Pack-2-Comp-Out-Temp", "BLEED-Pack-2-Packflow-needle", "BLEED-Anti-Ice-Left", + "BLEED-Anti-Ice-Right", "BLEED-HP-2-connection", "BLEED-HP-1-connection", "BLEED-ANTI-ICE-ARROW-LEFT", "BLEED-ANTI-ICE-ARROW-RIGHT", + "BLEED-xbleedLeft","BLEED-xbleedCenter","BLEED-xbleedRight","BLEED-cond-1","BLEED-cond-2","BLEED-cond-3","BLEED-Ram-Air-connection"]; }, update: func() { # X BLEED - if (pneumatic_xbleed_state.getValue() == "transit") { + xbleedstate = xbleed.getValue(); + if (xbleedcmd.getBoolValue() != xbleedstate) { me["BLEED-XFEED"].setColor(0.7333,0.3803,0); - me["BLEED-XFEED"].setRotation(45 * D2R); } else { - if (pneumatic_xbleed_state.getValue() == "open") { - var xbleed_state = 1; - } else { - var xbleed_state = 0; - } - - if (xbleed_state == 1) { + me["BLEED-XFEED"].setColor(0.0509,0.7529,0.2941); + } + + if (xbleedcmd.getBoolValue() == xbleedstate) { + if (xbleedcmd.getBoolValue()) { me["BLEED-XFEED"].setRotation(0); } else { me["BLEED-XFEED"].setRotation(90 * D2R); } - if (xbleed_state == xbleed.getValue()) { - me["BLEED-XFEED"].setColor(0.0509,0.7529,0.2941); - } else { - me["BLEED-XFEED"].setColor(0.7333,0.3803,0); - } + } else { + me["BLEED-XFEED"].setRotation(45 * D2R); + } + + if (xbleedstate == 1) { + me["BLEED-xbleedCenter"].show(); + me["BLEED-xbleedRight"].show(); + } else { + me["BLEED-xbleedCenter"].hide(); + me["BLEED-xbleedRight"].hide(); } # HP valve 1 @@ -762,9 +679,12 @@ var canvas_lowerECAM_bleed = { if (hp_valve_state == 1) { me["BLEED-HP-Valve-1"].setRotation(90 * D2R); + me["BLEED-HP-1-connection"].show(); } else { me["BLEED-HP-Valve-1"].setRotation(0); + me["BLEED-HP-1-connection"].hide(); } + if (hp_valve_state == hp_valve1.getValue()) { me["BLEED-HP-Valve-1"].setColor(0.0509,0.7529,0.2941); } else { @@ -776,9 +696,12 @@ var canvas_lowerECAM_bleed = { if (hp_valve_state == 1) { me["BLEED-HP-Valve-2"].setRotation(90 * D2R); + me["BLEED-HP-2-connection"].show(); } else { me["BLEED-HP-Valve-2"].setRotation(0); + me["BLEED-HP-2-connection"].hide(); } + if (hp_valve_state == hp_valve2.getValue()) { me["BLEED-HP-Valve-2"].setColor(0.0509,0.7529,0.2941); } else { @@ -786,206 +709,277 @@ var canvas_lowerECAM_bleed = { } # ENG BLEED valve 1 - var eng_valve_state = eng_valve1_state.getValue(); + var eng_valve_state = systems.PNEU.Switch.bleed1.getValue(); - if (eng_valve_state == 1) { - me["BLEED-ENG-1"].setRotation(90 * D2R); - } else { + if (eng_valve1.getValue() == 0) { me["BLEED-ENG-1"].setRotation(0); + } else { + me["BLEED-ENG-1"].setRotation(90 * D2R); } + if (eng_valve_state == eng_valve1.getValue()) { me["BLEED-ENG-1"].setColor(0.0509,0.7529,0.2941); } else { me["BLEED-ENG-1"].setColor(0.7333,0.3803,0); } - - # ENG BLEED valve 2 - var eng_valve_state = eng_valve2_state.getValue(); - - if (eng_valve_state == 1) { - me["BLEED-ENG-2"].setRotation(90 * D2R); + + # APU BLEED valve + var apu_valve_state2 = apu_valve_state.getValue(); + + if (systems.APUNodes.Controls.master.getValue()) { + me["BLEED-APU-LINES"].show(); + if (apu_valve_state2 == 1) { + me["BLEED-APU-CIRCLE"].setRotation(0); + me["BLEED-APU-connectionTop"].show(); + me["BLEED-xbleedLeft"].show(); + } else { + me["BLEED-APU-CIRCLE"].setRotation(90 * D2R); + me["BLEED-APU-connectionTop"].hide(); + if (xbleed.getValue() != 1) { + me["BLEED-xbleedLeft"].hide(); + } else { + me["BLEED-xbleedLeft"].show(); + } + } + if (apuBleedNotOn.getValue() != 1) { + me["BLEED-APU-CIRCLE"].setColor(0.0509,0.7529,0.2941); + } else { + me["BLEED-APU-CIRCLE"].setColor(0.7333,0.3803,0); + } } else { - me["BLEED-ENG-2"].setRotation(0); + if (xbleed.getValue() != 1) { + me["BLEED-xbleedLeft"].hide(); + } else { + me["BLEED-xbleedLeft"].show(); + } + me["BLEED-APU-LINES"].hide(); + me["BLEED-APU-connectionTop"].hide(); } - if (eng_valve_state == eng_valve2.getValue()) { + + # ENG BLEED valve 2 + eng_valve_state = systems.PNEU.Switch.bleed2.getValue(); + + if (eng_valve2.getValue() == 0) { + me["BLEED-ENG-2"].setRotation(0); + } else { + me["BLEED-ENG-2"].setRotation(90 * D2R); + } + + if (eng_valve_state == eng_valve1.getValue()) { me["BLEED-ENG-2"].setColor(0.0509,0.7529,0.2941); } else { me["BLEED-ENG-2"].setColor(0.7333,0.3803,0); } # Precooler inlet 1 - var precooler_psi = precooler1_psi.getValue(); - me["BLEED-Precooler-1-Inlet-Press"].setText(sprintf("%s", math.round(precooler_psi))); - if (precooler_psi < 4 or precooler_psi > 57) { - me["BLEED-Precooler-1-Inlet-Press"].setColor(0.7333,0.3803,0); + if (bmc1working.getValue()) { + var precooler_psi = precooler1_psi.getValue(); + me["BLEED-Precooler-1-Inlet-Press"].setText(sprintf("%s", math.round(precooler_psi))); + if (precooler_psi < 4 or precooler_psi > 57) { + me["BLEED-Precooler-1-Inlet-Press"].setColor(0.7333,0.3803,0); + } else { + me["BLEED-Precooler-1-Inlet-Press"].setColor(0.0509,0.7529,0.2941); + } } else { - me["BLEED-Precooler-1-Inlet-Press"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Precooler-1-Inlet-Press"].setText(sprintf("%s", "XX")); + me["BLEED-Precooler-1-Inlet-Press"].setColor(0.7333,0.3803,0); } # Precooler inlet 2 - var precooler_psi = precooler2_psi.getValue(); - me["BLEED-Precooler-2-Inlet-Press"].setText(sprintf("%s", math.round(precooler_psi))); - if (precooler_psi < 4 or precooler_psi > 57) { - me["BLEED-Precooler-2-Inlet-Press"].setColor(0.7333,0.3803,0); + if (bmc2working.getValue()) { + var precooler_psi = precooler2_psi.getValue(); + me["BLEED-Precooler-2-Inlet-Press"].setText(sprintf("%s", math.round(precooler_psi))); + if (precooler_psi < 4 or precooler_psi > 57) { + me["BLEED-Precooler-2-Inlet-Press"].setColor(0.7333,0.3803,0); + } else { + me["BLEED-Precooler-2-Inlet-Press"].setColor(0.0509,0.7529,0.2941); + } } else { - me["BLEED-Precooler-2-Inlet-Press"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Precooler-2-Inlet-Press"].setText(sprintf("%s", "XX")); + me["BLEED-Precooler-2-Inlet-Press"].setColor(0.7333,0.3803,0); } # Precooler outlet 1 - var precooler_temp = precooler1_temp.getValue(); - me["BLEED-Precooler-1-Outlet-Temp"].setText(sprintf("%s", math.round(precooler_temp))); - if (precooler_temp < 150 or precooler1_ovht.getValue()) { - me["BLEED-Precooler-1-Outlet-Temp"].setColor(0.7333,0.3803,0); + if (bmc1working.getValue()) { + var precooler_temp = precooler1_temp.getValue(); + me["BLEED-Precooler-1-Outlet-Temp"].setText(sprintf("%s", math.round(precooler_temp, 5))); + if (systems.PNEU.Switch.bleed1.getValue() and (precooler_temp < 150 or precooler1_ovht.getValue())) { + me["BLEED-Precooler-1-Outlet-Temp"].setColor(0.7333,0.3803,0); + } else { + me["BLEED-Precooler-1-Outlet-Temp"].setColor(0.0509,0.7529,0.2941); + } } else { - me["BLEED-Precooler-1-Outlet-Temp"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Precooler-1-Outlet-Temp"].setText(sprintf("%s", "XX")); + me["BLEED-Precooler-1-Outlet-Temp"].setColor(0.7333,0.3803,0); } # Precooler outlet 2 - var precooler_temp = precooler2_temp.getValue(); - me["BLEED-Precooler-2-Outlet-Temp"].setText(sprintf("%s", math.round(precooler_temp))); - if (precooler_temp < 150 or precooler2_ovht.getValue() == 1) { - me["BLEED-Precooler-2-Outlet-Temp"].setColor(0.7333,0.3803,0); + if (bmc2working.getValue()) { + var precooler_temp = precooler2_temp.getValue(); + me["BLEED-Precooler-2-Outlet-Temp"].setText(sprintf("%s", math.round(precooler_temp, 5))); + if (systems.PNEU.Switch.bleed2.getValue() and (precooler_temp < 150 or precooler2_ovht.getValue())) { + me["BLEED-Precooler-2-Outlet-Temp"].setColor(0.7333,0.3803,0); + } else { + me["BLEED-Precooler-2-Outlet-Temp"].setColor(0.0509,0.7529,0.2941); + } } else { - me["BLEED-Precooler-2-Outlet-Temp"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Precooler-2-Outlet-Temp"].setText(sprintf("%s", "XX")); + me["BLEED-Precooler-2-Outlet-Temp"].setColor(0.7333,0.3803,0); } # GND air - if (gs_kt.getValue() < 1) { + if (pts.Gear.wow[1].getValue()) { me["BLEED-GND"].show(); } else { me["BLEED-GND"].hide(); } # WING ANTI ICE - if (switch_wing_aice.getValue() == 1) { + if (switch_wing_aice.getValue()) { me["BLEED-Anti-Ice-Left"].show(); me["BLEED-Anti-Ice-Right"].show(); - # TODO when seperated valves for left and right wing are implemented, do the following `if` and `else` clause for each wing. - if (deice_wing.getValue()) { - me["BLEED-ANTI-ICE-ARROW-LEFT"].show(); - me["BLEED-ANTI-ICE-ARROW-RIGHT"].show(); - if (total_psi.getValue() < 4 or total_psi.getValue() > 57) { - me["BLEED-ANTI-ICE-ARROW-LEFT"].setColor(0.7333,0.3803,0); - me["BLEED-ANTI-ICE-ARROW-RIGHT"].setColor(0.7333,0.3803,0); - } else { - me["BLEED-ANTI-ICE-ARROW-LEFT"].setColor(0.0509,0.7529,0.2941); - me["BLEED-ANTI-ICE-ARROW-RIGHT"].setColor(0.0509,0.7529,0.2941); - } - } else { - me["BLEED-ANTI-ICE-ARROW-LEFT"].hide(); - me["BLEED-ANTI-ICE-ARROW-RIGHT"].hide(); - } } else { me["BLEED-Anti-Ice-Left"].hide(); me["BLEED-Anti-Ice-Right"].hide(); } # ENG 1 label - if (eng1_n2_actual.getValue() >= 59) { + if (pts.Engines.Engine.n2Actual[0].getValue() >= 59) { me["BLEED-ENG-1-label"].setColor(0.8078,0.8039,0.8078); } else { me["BLEED-ENG-1-label"].setColor(0.7333,0.3803,0); } # ENG 2 label - if (eng2_n2_actual.getValue() >= 59) { + if (pts.Engines.Engine.n2Actual[1].getValue() >= 59) { me["BLEED-ENG-2-label"].setColor(0.8078,0.8039,0.8078); } else { me["BLEED-ENG-2-label"].setColor(0.7333,0.3803,0); } # PACK 1 ----------------------------------------- - me["BLEED-Pack-1-Out-Temp"].setText(sprintf("%s", pack1_out_temp.getValue())); - me["BLEED-Pack-1-Comp-Out-Temp"].setText(sprintf("%s", pack1_comp_out_temp.getValue())); + me["BLEED-Pack-1-Out-Temp"].setText(sprintf("%s", math.round(systems.PNEU.Packs.pack1OutTemp.getValue(), 5))); + me["BLEED-Pack-1-Comp-Out-Temp"].setText(sprintf("%s", math.round(systems.PNEU.Packs.pack1OutletTemp.getValue(), 5))); - if (pack1_out_temp.getValue() > 90) { + if (systems.PNEU.Packs.pack1OutTemp.getValue() > 90) { me["BLEED-Pack-1-Out-Temp"].setColor(0.7333,0.3803,0); } else { me["BLEED-Pack-1-Out-Temp"].setColor(0.0509,0.7529,0.2941); } - var bypass_pos = pack1_bypass.getValue() - 50; # `-50` cause the middel position from where we move the needel is at 50 + var bypass_pos = pack1_bypass.getValue() - 50; # `-50` cause the middel position from where we move the needle is at 50 bypass_pos = bypass_pos * D2R; - me["BLEED-Pack-1-Bypass-needel"].setRotation(bypass_pos); + me["BLEED-Pack-1-Bypass-needle"].setRotation(bypass_pos); - if (pack1_comp_out_temp.getValue() > 230) { + if (systems.PNEU.Packs.pack1OutletTemp.getValue() > 230) { me["BLEED-Pack-1-Comp-Out-Temp"].setColor(0.7333,0.3803,0); } else { me["BLEED-Pack-1-Comp-Out-Temp"].setColor(0.0509,0.7529,0.2941); } - var flow_pos = pack1_flow.getValue() - 50; # `-50` cause the middel position from where we move the needel is at 50 - flow_pos = flow_pos * D2R; - me["BLEED-Pack-1-Packflow-needel"].setRotation(flow_pos); + var flow_pos = systems.PNEU.Packs.packFlow1.getValue() * D2R; + me["BLEED-Pack-1-Packflow-needle"].setRotation(flow_pos); - if (pack1_valve.getValue() == 0) { - me["BLEED-Pack-1-Packflow-needel"].setColor(0.7333,0.3803,0); + if (systems.PNEU.Valves.pack1.getValue() == 0) { + me["BLEED-Pack-1-Packflow-needle"].setColorFill(0.7333,0.3803,0); } else { - me["BLEED-Pack-1-Packflow-needel"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Pack-1-Packflow-needle"].setColorFill(0.0509,0.7529,0.2941); } - - if (pack1_valve.getValue() == 1) { + + var pack_state = systems.PNEU.Valves.pack1.getValue(); + if (pack_state == 1) { me["BLEED-Pack-1-Flow-Valve"].setRotation(0); } else { me["BLEED-Pack-1-Flow-Valve"].setRotation(90 * D2R); } - var pack_state = pack1_valve.getValue(); - if (pack_state == 1) { - me["BLEED-Pack-1-Flow-Valve"].setRotation(0); - } else { - me["BLEED-Pack-2-Flow-Valve"].setRotation(90 * D2R); - } - - if (pack_state == switch_pack1.getValue()) { + if (pack_state == systems.PNEU.Switch.pack1.getValue()) { me["BLEED-Pack-1-Flow-Valve"].setColor(0.0509,0.7529,0.2941); } else { me["BLEED-Pack-1-Flow-Valve"].setColor(0.7333,0.3803,0); } # PACK 2 ----------------------------------------- - me["BLEED-Pack-2-Out-Temp"].setText(sprintf("%s", pack2_out_temp.getValue())); - me["BLEED-Pack-2-Comp-Out-Temp"].setText(sprintf("%s", pack2_comp_out_temp.getValue())); + me["BLEED-Pack-2-Out-Temp"].setText(sprintf("%s", math.round(systems.PNEU.Packs.pack2OutTemp.getValue(), 5))); + me["BLEED-Pack-2-Comp-Out-Temp"].setText(sprintf("%s", math.round(systems.PNEU.Packs.pack2OutletTemp.getValue(), 5))); - if (pack2_out_temp.getValue() > 90) { + if (systems.PNEU.Packs.pack2OutTemp.getValue() > 90) { me["BLEED-Pack-2-Out-Temp"].setColor(0.7333,0.3803,0); } else { me["BLEED-Pack-2-Out-Temp"].setColor(0.0509,0.7529,0.2941); } - var bypass_pos = pack2_bypass.getValue() - 50; # `-50` cause the middel position from where we move the needel is at 50 + var bypass_pos = pack2_bypass.getValue() - 50; # `-50` cause the middel position from where we move the needle is at 50 bypass_pos = bypass_pos * D2R; - me["BLEED-Pack-2-Bypass-needel"].setRotation(bypass_pos); + me["BLEED-Pack-2-Bypass-needle"].setRotation(bypass_pos); - if (pack2_comp_out_temp.getValue() > 230) { + if (systems.PNEU.Packs.pack2OutletTemp.getValue() > 230) { me["BLEED-Pack-2-Comp-Out-Temp"].setColor(0.7333,0.3803,0); } else { me["BLEED-Pack-2-Comp-Out-Temp"].setColor(0.0509,0.7529,0.2941); } - var flow_pos = pack2_flow.getValue() - 50; # `-50` cause the middel position from where we move the needel is at 50 - flow_pos = flow_pos * D2R; - me["BLEED-Pack-2-Packflow-needel"].setRotation(flow_pos); + flow_pos = systems.PNEU.Packs.packFlow2.getValue() * D2R; + me["BLEED-Pack-2-Packflow-needle"].setRotation(flow_pos); - if (pack2_valve.getValue() == 0) { - me["BLEED-Pack-2-Packflow-needel"].setColor(0.7333,0.3803,0); + if (systems.PNEU.Valves.pack2.getValue() == 0) { + me["BLEED-Pack-2-Packflow-needle"].setColorFill(0.7333,0.3803,0); } else { - me["BLEED-Pack-2-Packflow-needel"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Pack-2-Packflow-needle"].setColorFill(0.0509,0.7529,0.2941); } - var pack_state = pack2_valve.getValue(); + var pack_state = systems.PNEU.Valves.pack2.getValue(); if (pack_state == 1) { me["BLEED-Pack-2-Flow-Valve"].setRotation(0); } else { me["BLEED-Pack-2-Flow-Valve"].setRotation(90 * D2R); } - if (pack_state == switch_pack2.getValue()) { + if (pack_state == systems.PNEU.Switch.pack2.getValue()) { me["BLEED-Pack-2-Flow-Valve"].setColor(0.0509,0.7529,0.2941); } else { me["BLEED-Pack-2-Flow-Valve"].setColor(0.7333,0.3803,0); } + # Ram Air + if (systems.PNEU.Valves.ramAir.getValue() == 0) { + me["BLEED-Ram-Air"].setRotation(90 * D2R); + me["BLEED-Ram-Air"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Ram-Air"].setColorFill(0.0509,0.7529,0.2941); + me["BLEED-Ram-Air-connection"].hide(); + } elsif (systems.PNEU.Valves.ramAir.getValue()) { + me["BLEED-Ram-Air"].setRotation(0); + if (pts.Gear.wow[1].getValue()) { + me["BLEED-Ram-Air"].setColor(0.7333,0.3803,0); + me["BLEED-Ram-Air"].setColorFill(0.7333,0.3803,0); + } else { + me["BLEED-Ram-Air"].setColor(0.0509,0.7529,0.2941); + me["BLEED-Ram-Air"].setColorFill(0.0509,0.7529,0.2941); + } + me["BLEED-Ram-Air-connection"].show(); + } else { + me["BLEED-Ram-Air"].setRotation(45 * D2R); + me["BLEED-Ram-Air"].setColor(0.7333,0.3803,0); + me["BLEED-Ram-Air"].setColorFill(0.7333,0.3803,0); + me["BLEED-Ram-Air-connection"].show(); + } + + # Triangles + if (systems.PNEU.Valves.pack1.getValue() == 0 and systems.PNEU.Valves.pack2.getValue() == 0) { + if (pts.Gear.wow[1].getValue() or systems.PNEU.Valves.ramAir.getValue() != 1) { + me["BLEED-cond-1"].setColor(0.7333,0.3803,0); + me["BLEED-cond-2"].setColor(0.7333,0.3803,0); + me["BLEED-cond-3"].setColor(0.7333,0.3803,0); + } else { + me["BLEED-cond-1"].setColor(0.0509,0.7529,0.2941); + me["BLEED-cond-2"].setColor(0.0509,0.7529,0.2941); + me["BLEED-cond-3"].setColor(0.0509,0.7529,0.2941); + } + } else { + me["BLEED-cond-1"].setColor(0.0509,0.7529,0.2941); + me["BLEED-cond-2"].setColor(0.0509,0.7529,0.2941); + me["BLEED-cond-3"].setColor(0.0509,0.7529,0.2941); + } me.updateBottomStatus(); }, }; @@ -998,10 +992,44 @@ var canvas_lowerECAM_cond = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit"]; + return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit","CargoCond","CONDHotAirValve","CONDFanFwdFault","CONDFanAftFault", + "CONDTrimValveCKPT","CONDTrimValveAFT","CONDTrimValveFWD","CONDDuctTempCKPT","CONDDuctTempAFT","CONDDuctTempFWD","CONDTempCKPT","CONDTempAFT","CONDTempFWD"]; }, update: func() { - + if (systems.PNEU.Valves.hotAir.getValue() == 0) { + me["CONDHotAirValve"].setRotation(90 * D2R); + if (systems.PNEU.Switch.hotAir.getBoolValue()) { + me["CONDHotAirValve"].setColor(0.7333,0.3803,0); + } else { + me["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941); + } + } else { + me["CONDHotAirValve"].setRotation(0); # doesn't show rotation in transit + if (systems.PNEU.Switch.hotAir.getBoolValue()) { + me["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941); + } else { + me["CONDHotAirValve"].setColor(0.7333,0.3803,0); + } + } + + me["CONDTrimValveCKPT"].setRotation(systems.PNEU.Packs.trimCockpit.getValue() * D2R); + me["CONDTrimValveAFT"].setRotation(systems.PNEU.Packs.trimAft.getValue() * D2R); + me["CONDTrimValveFWD"].setRotation(systems.PNEU.Packs.trimFwd.getValue() * D2R); + + me["CONDDuctTempCKPT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cockpitDuctTemp.getValue()))); + me["CONDDuctTempAFT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinAftDuctTemp.getValue()))); + me["CONDDuctTempFWD"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinFwdDuctTemp.getValue()))); + + me["CONDTempCKPT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cockpitTemp.getValue()))); + me["CONDTempAFT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinAftTemp.getValue()))); + me["CONDTempFWD"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinFwdTemp.getValue()))); + + # fans faults not implemented + me["CONDFanFwdFault"].hide(); + me["CONDFanAftFault"].hide(); + + # aft cargo ventilation disabled + me["CargoCond"].hide(); me.updateBottomStatus(); }, }; @@ -1021,7 +1049,7 @@ var canvas_lowerECAM_crz = { me["Oil1"].setText(sprintf("%2.1f", oil_qt1_actual.getValue())); me["Oil2"].setText(sprintf("%2.1f", oil_qt2_actual.getValue())); - if (acconfig_weight_kgs.getValue() == 1) { + if (acconfig_weight_kgs.getValue()) { me["Fused-weight-unit"].setText("KG"); me["FUsed1"].setText(sprintf("%s", math.round(fuel_used_lbs1.getValue() * LBS2KGS, 10))); me["FUsed2"].setText(sprintf("%s", math.round(fuel_used_lbs2.getValue() * LBS2KGS, 10))); @@ -1201,7 +1229,7 @@ var canvas_lowerECAM_elec = { update: func() { # BAT1 - if (switch_bat1.getValue() == 0) { + if (systems.ELEC.Switch.bat1.getValue() == 0) { me["BAT1-OFF"].show(); me["BAT1-content"].hide(); me["BAT1-discharge"].hide(); @@ -1209,26 +1237,26 @@ var canvas_lowerECAM_elec = { } else { me["BAT1-OFF"].hide(); me["BAT1-content"].show(); - me["Bat1Ampere"].setText(sprintf("%s", math.round(bat1_amps.getValue()))); - me["Bat1Volt"].setText(sprintf("%s", math.round(bat1_volts.getValue()))); + me["Bat1Ampere"].setText(sprintf("%s", math.round(systems.ELEC.Source.Bat1.amps.getValue()))); + me["Bat1Volt"].setText(sprintf("%s", math.round(systems.ELEC.Source.Bat1.volt.getValue()))); - if (bat1_volts.getValue() >= 24.95 and bat1_volts.getValue() <= 31.05) { + if (systems.ELEC.Source.Bat1.volt.getValue() >= 24.95 and systems.ELEC.Source.Bat1.volt.getValue() <= 31.05) { me["Bat1Volt"].setColor(0.0509,0.7529,0.2941); } else { me["Bat1Volt"].setColor(0.7333,0.3803,0); } - if (bat1_amps.getValue() > 5) { + if (systems.ELEC.Source.Bat1.amps.getValue() > 5) { me["Bat1Ampere"].setColor(0.7333,0.3803,0); } else { me["Bat1Ampere"].setColor(0.0509,0.7529,0.2941); } - if (bat1_direction.getValue() == 0) { + if (systems.ELEC.Source.Bat1.direction.getValue() == 0) { me["BAT1-discharge"].hide(); me["BAT1-charge"].hide(); } else { - if (bat1_direction.getValue() == -1) { + if (systems.ELEC.Source.Bat1.direction.getValue() == -1) { me["BAT1-charge"].show(); me["BAT1-discharge"].hide(); } else { @@ -1238,14 +1266,14 @@ var canvas_lowerECAM_elec = { } } - if (bat1_fault.getValue() == 1 or bat1_volts.getValue() < 25 or bat1_volts.getValue() > 31 or bat1_amps.getValue() > 5) { + if (systems.ELEC.Light.bat1Fault.getValue() or systems.ELEC.Source.Bat1.volt.getValue() < 25 or systems.ELEC.Source.Bat1.volt.getValue() > 31 or systems.ELEC.Source.Bat1.amps.getValue() > 5) { me["BAT1-label"].setColor(0.7333,0.3803,0); } else { me["BAT1-label"].setColor(0.8078,0.8039,0.8078); } # BAT2 - if (switch_bat2.getValue() == 0) { + if (systems.ELEC.Switch.bat2.getValue() == 0) { me["BAT2-OFF"].show(); me["BAT2-content"].hide(); me["BAT2-discharge"].hide(); @@ -1253,26 +1281,26 @@ var canvas_lowerECAM_elec = { } else { me["BAT2-OFF"].hide(); me["BAT2-content"].show(); - me["Bat2Ampere"].setText(sprintf("%s", math.round(bat2_amps.getValue()))); - me["Bat2Volt"].setText(sprintf("%s", math.round(bat2_volts.getValue()))); + me["Bat2Ampere"].setText(sprintf("%s", math.round(systems.ELEC.Source.Bat2.amps.getValue()))); + me["Bat2Volt"].setText(sprintf("%s", math.round(systems.ELEC.Source.Bat2.volt.getValue()))); - if (bat2_volts.getValue() >= 24.95 and bat2_volts.getValue() <= 31.05) { + if (systems.ELEC.Source.Bat2.volt.getValue() >= 24.95 and systems.ELEC.Source.Bat2.volt.getValue() <= 31.05) { me["Bat2Volt"].setColor(0.0509,0.7529,0.2941); } else { me["Bat2Volt"].setColor(0.7333,0.3803,0); } - if (bat2_amps.getValue() > 5) { + if (systems.ELEC.Source.Bat2.amps.getValue() > 5) { me["Bat2Ampere"].setColor(0.7333,0.3803,0); } else { me["Bat2Ampere"].setColor(0.0509,0.7529,0.2941); } - if (bat2_direction.getValue() == 0) { + if (systems.ELEC.Source.Bat2.direction.getValue() == 0) { me["BAT2-discharge"].hide(); me["BAT2-charge"].hide(); } else { - if (bat2_direction.getValue() == -1) { + if (systems.ELEC.Source.Bat2.direction.getValue() == -1) { me["BAT2-charge"].show(); me["BAT2-discharge"].hide(); } else { @@ -1282,7 +1310,7 @@ var canvas_lowerECAM_elec = { } } - if (bat2_fault.getValue() == 1 or bat2_volts.getValue() < 25 or bat2_volts.getValue() > 31 or bat2_amps.getValue() > 5) { + if (systems.ELEC.Light.bat2Fault.getValue() or systems.ELEC.Source.Bat2.volt.getValue() < 25 or systems.ELEC.Source.Bat2.volt.getValue() > 31 or systems.ELEC.Source.Bat2.amps.getValue() > 5) { me["BAT2-label"].setColor(0.7333,0.3803,0); } else { me["BAT2-label"].setColor(0.8078,0.8039,0.8078); @@ -1290,8 +1318,8 @@ var canvas_lowerECAM_elec = { # TR1 # is only powered when ac1 has power - tr1_v = tr1_volts.getValue(); - tr1_a = tr1_amps.getValue(); + tr1_v = systems.ELEC.Source.tr1.outputVolt.getValue(); + tr1_a = systems.ELEC.Source.tr1.outputAmp.getValue(); me["TR1Volt"].setText(sprintf("%s", math.round(tr1_v))); me["TR1Ampere"].setText(sprintf("%s", math.round(tr1_a))); @@ -1316,8 +1344,8 @@ var canvas_lowerECAM_elec = { # TR2 # is only powered when ac2 has power - tr2_v = tr2_volts.getValue(); - tr2_a = tr2_amps.getValue(); + tr2_v = systems.ELEC.Source.tr2.outputVolt.getValue(); + tr2_a = systems.ELEC.Source.tr2.outputAmp.getValue(); me["TR2Volt"].setText(sprintf("%s", math.round(tr2_v))); me["TR2Ampere"].setText(sprintf("%s", math.round(tr2_a))); @@ -1341,8 +1369,8 @@ var canvas_lowerECAM_elec = { } # ESS TR - essTrvolts = essTrVolt.getValue(); - essTramps = essTrAmp.getValue(); + essTrvolts = systems.ELEC.Source.trEss.outputVoltRelay.getValue(); + essTramps = systems.ELEC.Source.trEss.outputAmpRelay.getValue(); if (systems.ELEC.Relay.essTrContactor.getValue()) { me["ESSTR-group"].show(); me["ESSTR-Volt"].setText(sprintf("%s", math.round(essTrvolts))); @@ -1370,7 +1398,7 @@ var canvas_lowerECAM_elec = { } # EMER GEN - if (switch_emer_gen.getValue() == 0) { + if (systems.ELEC.Source.EmerGen.volts.getValue() == 0) { me["EMERGEN-group"].hide(); me["ELEC-Line-Emergen-ESSTR"].hide(); me["ELEC-Line-Emergen-ESSTR-off"].show(); @@ -1381,22 +1409,22 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-Emergen-ESSTR-off"].hide(); me["EMERGEN-Label-off"].hide(); - me["EmergenVolt"].setText(sprintf("%s", math.round(emerGenVolts.getValue()))); - me["EmergenHz"].setText(sprintf("%s", math.round(emerGenHz.getValue()))); + me["EmergenVolt"].setText(sprintf("%s", math.round(systems.ELEC.Source.EmerGen.voltsRelay.getValue()))); + me["EmergenHz"].setText(sprintf("%s", math.round(systems.ELEC.Source.EmerGen.hertz.getValue()))); - if (emerGenVolts.getValue() > 120 or emerGenVolts.getValue() < 110 or emerGenHz.getValue() > 410 or emerGenHz.getValue() < 390) { + if (systems.ELEC.Source.EmerGen.voltsRelay.getValue() > 120 or systems.ELEC.Source.EmerGen.voltsRelay.getValue() < 110 or systems.ELEC.Source.EmerGen.hertz.getValue() > 410 or systems.ELEC.Source.EmerGen.hertz.getValue() < 390) { me["Emergen-Label"].setColor(0.7333,0.3803,0); } else { me["Emergen-Label"].setColor(0.8078,0.8039,0.8078); } - if (emerGenVolts.getValue() > 120 or emerGenVolts.getValue() < 110) { + if (systems.ELEC.Source.EmerGen.voltsRelay.getValue() > 120 or systems.ELEC.Source.EmerGen.voltsRelay.getValue() < 110) { me["EmergenVolt"].setColor(0.7333,0.3803,0); } else { me["EmergenVolt"].setColor(0.0509,0.7529,0.2941); } - if (emerGenHz.getValue() > 410 or emerGenHz.getValue() < 390) { + if (systems.ELEC.Source.EmerGen.hertz.getValue() > 410 or systems.ELEC.Source.EmerGen.hertz.getValue() < 390) { me["EmergenHz"].setColor(0.7333,0.3803,0); } else { me["EmergenHz"].setColor(0.0509,0.7529,0.2941); @@ -1434,7 +1462,7 @@ var canvas_lowerECAM_elec = { } # GEN1 - if (switch_gen1.getValue() == 0) { + if (systems.ELEC.Switch.gen1.getValue() == 0) { me["GEN1-content"].hide(); me["GEN1-off"].show(); if (systems.ELEC.Source.IDG1.gcrRelay.getValue()) { @@ -1452,12 +1480,12 @@ var canvas_lowerECAM_elec = { me["GEN1-content"].show(); me["GEN1-off"].hide(); # me["Gen1Load"].setText(sprintf("%s", math.round(gen1_load.getValue()))); - me["Gen1Volt"].setText(sprintf("%s", math.round(gen1_volts.getValue()))); + me["Gen1Volt"].setText(sprintf("%s", math.round(systems.ELEC.Source.IDG1.volts.getValue()))); - if (gen1_hz.getValue() == 0) { + if (systems.ELEC.Source.IDG1.hertz.getValue() == 0) { me["Gen1Hz"].setText(sprintf("XX")); } else { - me["Gen1Hz"].setText(sprintf("%s", math.round(gen1_hz.getValue()))); + me["Gen1Hz"].setText(sprintf("%s", math.round(systems.ELEC.Source.IDG1.hertz.getValue()))); } if (eng1_running.getValue() == 0) { @@ -1466,7 +1494,7 @@ var canvas_lowerECAM_elec = { me["GEN1-num-label"].setColor(0.8078,0.8039,0.8078); } - if (gen1_volts.getValue() > 120 or gen1_volts.getValue() < 110 or gen1_hz.getValue() > 410 or gen1_hz.getValue() < 390 or gen1_load.getValue() >= 110) { + if (systems.ELEC.Source.IDG1.volts.getValue() > 120 or systems.ELEC.Source.IDG1.volts.getValue() < 110 or systems.ELEC.Source.IDG1.hertz.getValue() > 410 or systems.ELEC.Source.IDG1.hertz.getValue() < 390 or gen1_load.getValue() >= 110) { me["GEN1-label"].setColor(0.7333,0.3803,0); } else { me["GEN1-label"].setColor(0.8078,0.8039,0.8078); @@ -1478,13 +1506,13 @@ var canvas_lowerECAM_elec = { me["Gen1Load"].setColor(0.0509,0.7529,0.2941); } - if (gen1_volts.getValue() > 120 or gen1_volts.getValue() < 110) { + if (systems.ELEC.Source.IDG1.volts.getValue() > 120 or systems.ELEC.Source.IDG1.volts.getValue() < 110) { me["Gen1Volt"].setColor(0.7333,0.3803,0); } else { me["Gen1Volt"].setColor(0.0509,0.7529,0.2941); } - if (gen1_hz.getValue() > 410 or gen1_hz.getValue() < 390) { + if (systems.ELEC.Source.IDG1.hertz.getValue() > 410 or systems.ELEC.Source.IDG1.hertz.getValue() < 390) { me["Gen1Hz"].setColor(0.7333,0.3803,0); } else { me["Gen1Hz"].setColor(0.0509,0.7529,0.2941); @@ -1492,7 +1520,7 @@ var canvas_lowerECAM_elec = { } # GEN2 - if (switch_gen2.getValue() == 0) { + if (systems.ELEC.Switch.gen2.getValue() == 0) { me["GEN2-content"].hide(); me["GEN2-off"].show(); if (systems.ELEC.Source.IDG2.gcrRelay.getValue()) { @@ -1510,11 +1538,11 @@ var canvas_lowerECAM_elec = { me["GEN2-content"].show(); me["GEN2-off"].hide(); # me["Gen2Load"].setText(sprintf("%s", math.round(gen2_load.getValue()))); - me["Gen2Volt"].setText(sprintf("%s", math.round(gen2_volts.getValue()))); - if (gen2_hz.getValue() == 0) { + me["Gen2Volt"].setText(sprintf("%s", math.round(systems.ELEC.Source.IDG2.volts.getValue()))); + if (systems.ELEC.Source.IDG2.hertz.getValue() == 0) { me["Gen2Hz"].setText(sprintf("XX")); } else { - me["Gen2Hz"].setText(sprintf("%s", math.round(gen2_hz.getValue()))); + me["Gen2Hz"].setText(sprintf("%s", math.round(systems.ELEC.Source.IDG2.hertz.getValue()))); } if (eng2_running.getValue() == 0) { @@ -1523,7 +1551,7 @@ var canvas_lowerECAM_elec = { me["GEN2-num-label"].setColor(0.8078,0.8039,0.8078); } - if (gen2_volts.getValue() > 120 or gen2_volts.getValue() < 110 or gen2_hz.getValue() > 410 or gen2_hz.getValue() < 390 or gen2_load.getValue() >= 110) { + if (systems.ELEC.Source.IDG2.volts.getValue() > 120 or systems.ELEC.Source.IDG2.volts.getValue() < 110 or systems.ELEC.Source.IDG2.hertz.getValue() > 410 or systems.ELEC.Source.IDG2.hertz.getValue() < 390 or gen2_load.getValue() >= 110) { me["GEN2-label"].setColor(0.7333,0.3803,0); } else { me["GEN2-label"].setColor(0.8078,0.8039,0.8078); @@ -1536,13 +1564,13 @@ var canvas_lowerECAM_elec = { } - if (gen2_volts.getValue() > 120 or gen2_volts.getValue() < 110) { + if (systems.ELEC.Source.IDG2.volts.getValue() > 120 or systems.ELEC.Source.IDG2.volts.getValue() < 110) { me["Gen2Volt"].setColor(0.7333,0.3803,0); } else { me["Gen2Volt"].setColor(0.0509,0.7529,0.2941); } - if (gen2_hz.getValue() > 410 or gen2_hz.getValue() < 390) { + if (systems.ELEC.Source.IDG2.hertz.getValue() > 410 or systems.ELEC.Source.IDG2.hertz.getValue() < 390) { me["Gen2Hz"].setColor(0.7333,0.3803,0); } else { me["Gen2Hz"].setColor(0.0509,0.7529,0.2941); @@ -1550,14 +1578,14 @@ var canvas_lowerECAM_elec = { } # APU - if (apu_master.getValue() == 0) { + if (systems.APUNodes.Controls.master.getValue() == 0) { me["APU-content"].hide(); me["APUGEN-off"].hide(); me["APU-border"].hide(); me["APUGentext"].setColor(0.8078,0.8039,0.8078); } else { me["APU-border"].show(); - if (gen_apu.getValue() == 0) { + if (systems.ELEC.Source.APU.contact.getValue() == 0) { me["APU-content"].hide(); me["APUGEN-off"].show(); me["APUGentext"].setColor(0.7333,0.3803,0); @@ -1565,15 +1593,15 @@ var canvas_lowerECAM_elec = { me["APU-content"].show(); me["APUGEN-off"].hide(); # me["APUGenLoad"].setText(sprintf("%s", math.round(apu_load.getValue()))); - me["APUGenVolt"].setText(sprintf("%s", math.round(apu_volts.getValue()))); + me["APUGenVolt"].setText(sprintf("%s", math.round(systems.ELEC.Source.APU.volts.getValue()))); - if (apu_hz.getValue() == 0) { + if (systems.ELEC.Source.APU.hertz.getValue() == 0) { me["APUGenHz"].setText(sprintf("XX")); } else { - me["APUGenHz"].setText(sprintf("%s", math.round(apu_hz.getValue()))); + me["APUGenHz"].setText(sprintf("%s", math.round(systems.ELEC.Source.APU.hertz.getValue()))); } - if (apu_volts.getValue() > 120 or apu_volts.getValue() < 110 or apu_hz.getValue() > 410 or apu_hz.getValue() < 390 or apu_load.getValue() >= 110) { + if (systems.ELEC.Source.APU.volts.getValue() > 120 or systems.ELEC.Source.APU.volts.getValue() < 110 or systems.ELEC.Source.APU.hertz.getValue() > 410 or systems.ELEC.Source.APU.hertz.getValue() < 390 or apu_load.getValue() >= 110) { me["APUGentext"].setColor(0.7333,0.3803,0); } else { me["APUGentext"].setColor(0.8078,0.8039,0.8078); @@ -1585,13 +1613,13 @@ var canvas_lowerECAM_elec = { me["APUGenLoad"].setColor(0.0509,0.7529,0.2941); } - if (apu_volts.getValue() > 120 or apu_volts.getValue() < 110) { + if (systems.ELEC.Source.APU.volts.getValue() > 120 or systems.ELEC.Source.APU.volts.getValue() < 110) { me["APUGenVolt"].setColor(0.7333,0.3803,0); } else { me["APUGenVolt"].setColor(0.0509,0.7529,0.2941); } - if (apu_hz.getValue() > 410 or apu_hz.getValue() < 390) { + if (systems.ELEC.Source.APU.hertz.getValue() > 410 or systems.ELEC.Source.APU.hertz.getValue() < 390) { me["APUGenHz"].setColor(0.7333,0.3803,0); } else { me["APUGenHz"].setColor(0.0509,0.7529,0.2941); @@ -1605,60 +1633,66 @@ var canvas_lowerECAM_elec = { me["EXTPWR-group"].hide(); } else { me["EXTPWR-group"].show(); - me["ExtVolt"].setText(sprintf("%s", math.round(ext_volts.getValue()))); - me["ExtHz"].setText(sprintf("%s", math.round(ext_hz.getValue()))); + me["ExtVolt"].setText(sprintf("%s", math.round(systems.ELEC.Source.Ext.volts.getValue()))); + me["ExtHz"].setText(sprintf("%s", math.round(systems.ELEC.Source.Ext.hertz.getValue()))); - if (ext_hz.getValue() > 410 or ext_hz.getValue() < 390 or ext_volts.getValue() > 120 or ext_volts.getValue() < 110) { + if (systems.ELEC.Source.Ext.hertz.getValue() > 410 or systems.ELEC.Source.Ext.hertz.getValue() < 390 or systems.ELEC.Source.Ext.volts.getValue() > 120 or systems.ELEC.Source.Ext.volts.getValue() < 110) { me["EXTPWR-label"].setColor(0.7333,0.3803,0); } else { me["EXTPWR-label"].setColor(0.0509,0.7529,0.2941); } - if (ext_hz.getValue() > 410 or ext_hz.getValue() < 390) { + if (systems.ELEC.Source.Ext.hertz.getValue() > 410 or systems.ELEC.Source.Ext.hertz.getValue() < 390) { me["ExtHz"].setColor(0.7333,0.3803,0); } else { me["ExtHz"].setColor(0.0509,0.7529,0.2941); } - if (ext_volts.getValue() > 120 or ext_volts.getValue() < 110) { + if (systems.ELEC.Source.Ext.volts.getValue() > 120 or systems.ELEC.Source.Ext.volts.getValue() < 110) { me["ExtVolt"].setColor(0.7333,0.3803,0); } else { me["ExtVolt"].setColor(0.0509,0.7529,0.2941); } } - if (galleyshed.getValue() == 1 or (switch_galley.getValue() == 0)) { + if (systems.ELEC.SomeThing.galley.getValue()) { me["GalleyShed"].show(); } else { me["GalleyShed"].hide(); } # Bus indicators - if (dcbat.getValue() > 25) { - me["ELEC-DCBAT-label"].setColor(0.0509,0.7529,0.2941); + if (systems.ELEC.Switch.bat1.getValue() or systems.ELEC.Switch.bat2.getValue()) { + me["ELEC-DCBAT-label"].setText("DC BAT"); + if (systems.ELEC.Bus.dcBat.getValue() > 25) { + me["ELEC-DCBAT-label"].setColor(0.0509,0.7529,0.2941); + } else { + me["ELEC-DCBAT-label"].setColor(0.7333,0.3803,0); + } } else { + me["ELEC-DCBAT-label"].setText("XX"); # BCL not powered hence no voltage info supplied from BCL me["ELEC-DCBAT-label"].setColor(0.7333,0.3803,0); } - if (dc1.getValue() > 25) { + if (systems.ELEC.Bus.dc1.getValue() > 25) { me["ELEC-DC1-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-DC1-label"].setColor(0.7333,0.3803,0); } - if (dc2.getValue() > 25) { + if (systems.ELEC.Bus.dc2.getValue() > 25) { me["ELEC-DC2-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-DC2-label"].setColor(0.7333,0.3803,0); } - if (dc_ess.getValue() > 25) { + if (systems.ELEC.Bus.dcEss.getValue() > 25) { me["ELEC-DCESS-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-DCESS-label"].setColor(0.7333,0.3803,0); } - if (ac_ess.getValue() >= 110) { + if (systems.ELEC.Bus.acEss.getValue() >= 110) { me["ELEC-ACESS-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-ACESS-label"].setColor(0.7333,0.3803,0); @@ -1670,13 +1704,13 @@ var canvas_lowerECAM_elec = { me["ACESS-SHED"].show(); } - if (ac1.getValue() >= 110) { + if (systems.ELEC.Bus.ac1.getValue() >= 110) { me["ELEC-AC1-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-AC1-label"].setColor(0.7333,0.3803,0); } - if (ac2.getValue() >= 110) { + if (systems.ELEC.Bus.ac2.getValue() >= 110) { me["ELEC-AC2-label"].setColor(0.0509,0.7529,0.2941); } else { me["ELEC-AC2-label"].setColor(0.7333,0.3803,0); @@ -1684,76 +1718,76 @@ var canvas_lowerECAM_elec = { # Managment of the connecting lines between the components - if (getprop("/systems/electrical/relay/apu-glc/contact-pos") and (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-1/contact-pos") or getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-2/contact-pos"))) { + if (systems.ELEC.Relay.apuGlc.getValue() and (systems.ELEC.Relay.acTie1.getValue() or systems.ELEC.Relay.acTie2.getValue())) { me["APU-out"].show(); } else { me["APU-out"].hide(); } - if (getprop("/systems/electrical/relay/ext-epc/contact-pos") and (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-1/contact-pos") or getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-2/contact-pos"))) { + if (systems.ELEC.Relay.extEpc.getValue() and (systems.ELEC.Relay.acTie1.getValue() or systems.ELEC.Relay.acTie2.getValue())) { me["EXT-out"].show(); } else { me["EXT-out"].hide(); } - if (gen1_volts.getValue() >= 110 and getprop("/systems/electrical/relay/gen-1-glc/contact-pos")) { + if (systems.ELEC.Source.IDG1.volts.getValue() >= 110 and systems.ELEC.Relay.glc1.getValue()) { me["ELEC-Line-GEN1-AC1"].show(); } else { me["ELEC-Line-GEN1-AC1"].hide(); } - if (gen2_volts.getValue() >= 110 and getprop("/systems/electrical/relay/gen-2-glc/contact-pos")) { + if (systems.ELEC.Source.IDG2.volts.getValue() >= 110 and systems.ELEC.Relay.glc2.getValue()) { me["ELEC-Line-GEN2-AC2"].show(); } else { me["ELEC-Line-GEN2-AC2"].hide(); } - if (ac1.getValue() >= 110) { + if (systems.ELEC.Bus.ac1.getValue() >= 110) { me["AC1-in"].show(); } else { me["AC1-in"].hide(); } - if (ac2.getValue() >= 110) { + if (systems.ELEC.Bus.ac2.getValue() >= 110) { me["AC2-in"].show(); } else { me["AC2-in"].hide(); } - if (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-1/contact-pos") and getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-2/contact-pos")) { + if (systems.ELEC.Relay.acTie1.getValue() and systems.ELEC.Relay.acTie2.getValue()) { me["ELEC-Line-APU-AC1"].show(); me["ELEC-Line-APU-EXT"].show(); me["ELEC-Line-EXT-AC2"].show(); } else { - if (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-1/contact-pos")) { + if (systems.ELEC.Relay.acTie1.getValue()) { me["ELEC-Line-APU-AC1"].show(); } else { me["ELEC-Line-APU-AC1"].hide(); } - if ((getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-2/contact-pos") and getprop("/systems/electrical/relay/apu-glc/contact-pos") and !getprop("/systems/electrical/relay/gen-2-glc/contact-pos")) or (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-1/contact-pos") and getprop("/systems/electrical/relay/ext-epc/contact-pos") and !getprop("/systems/electrical/relay/gen-1-glc/contact-pos"))) { + if ((systems.ELEC.Relay.acTie2.getValue() and systems.ELEC.Relay.apuGlc.getValue() and !systems.ELEC.Relay.glc2.getValue()) or (systems.ELEC.Relay.acTie1.getValue() and systems.ELEC.Relay.extEpc.getValue() and !systems.ELEC.Relay.glc1.getValue())) { me["ELEC-Line-APU-EXT"].show(); } else { me["ELEC-Line-APU-EXT"].hide(); } - if (getprop("/systems/electrical/relay/ac-bus-ac-bus-tie-2/contact-pos")) { + if (systems.ELEC.Relay.acTie2.getValue()) { me["ELEC-Line-EXT-AC2"].show(); } else { me["ELEC-Line-EXT-AC2"].hide(); } } - if (getprop("/systems/electrical/relay/ac-ess-feed-1/contact-pos") == 1) { - if (ac1.getValue() >= 110) { + if (systems.ELEC.Relay.acEssFeed1.getValue()) { + if (systems.ELEC.Bus.ac1.getValue() >= 110) { me["ELEC-Line-AC1-ACESS"].show(); } else { me["ELEC-Line-AC1-ACESS"].hide(); } me["ELEC-Line-AC2-ACESS"].hide(); - } elsif (getprop("/systems/electrical/relay/ac-ess-feed-2/contact-pos") == 1) { + } elsif (systems.ELEC.Relay.acEssFeed2.getValue()) { me["ELEC-Line-AC1-ACESS"].hide(); - if (ac2.getValue() >= 110) { + if (systems.ELEC.Bus.ac2.getValue() >= 110) { me["ELEC-Line-AC2-ACESS"].show(); } else { me["ELEC-Line-AC2-ACESS"].hide(); @@ -1763,8 +1797,8 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-AC2-ACESS"].hide(); } - if (getprop("/systems/electrical/relay/tr-contactor-1/contact-pos") == 1) { - if (ac1.getValue() < 110) { + if (systems.ELEC.Relay.tr1Contactor.getValue()) { + if (systems.ELEC.Bus.ac1.getValue() < 110) { me["ELEC-Line-AC1-TR1"].setColorFill(0.7333,0.3803,0); } else { me["ELEC-Line-AC1-TR1"].setColorFill(0.0509,0.7529,0.2941); @@ -1776,8 +1810,8 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-TR1-DC1"].hide(); } - if (getprop("/systems/electrical/relay/tr-contactor-2/contact-pos") == 1) { - if (ac2.getValue() < 110) { + if (systems.ELEC.Relay.tr2Contactor.getValue()) { + if (systems.ELEC.Bus.ac2.getValue() < 110) { me["ELEC-Line-AC2-TR2"].setColorFill(0.7333,0.3803,0); } else { me["ELEC-Line-AC2-TR2"].setColorFill(0.0509,0.7529,0.2941); @@ -1789,25 +1823,25 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-TR2-DC2"].hide(); } - if (getprop("/systems/electrical/relay/dc-bus-tie-dc-1/contact-pos")) { + if (systems.ELEC.Relay.dcTie1.getValue()) { me["ELEC-Line-DC1-DCESS_DCBAT"].show(); } else { me["ELEC-Line-DC1-DCESS_DCBAT"].hide(); } - if (getprop("/systems/electrical/relay/dc-ess-feed-bat/contact-pos")) { + if (systems.ELEC.Relay.dcEssFeedBat.getValue()) { me["ELEC-Line-DC1-DCESS"].show(); } else { me["ELEC-Line-DC1-DCESS"].hide(); } - if (getprop("/systems/electrical/relay/dc-ess-feed-bat/contact-pos") or getprop("/systems/electrical/relay/dc-bus-tie-dc-1/contact-pos")) { + if (systems.ELEC.Relay.dcEssFeedBat.getValue() or systems.ELEC.Relay.dcTie1.getValue()) { me["ELEC-Line-DC1-DCBAT"].show(); } else { me["ELEC-Line-DC1-DCBAT"].hide(); } - if (getprop("/systems/electrical/relay/dc-bus-tie-dc-2/contact-pos")) { + if (systems.ELEC.Relay.dcTie2.getValue()) { me["ELEC-Line-DC2-DCBAT"].show(); me["ELEC-Line-DC2-DCESS_DCBAT"].show(); } else { @@ -1815,7 +1849,7 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-DC2-DCESS_DCBAT"].hide(); } - if (getprop("/systems/electrical/relay/ac-ess-feed-emer-gen/contact-pos")) { + if (systems.ELEC.Relay.acEssEmerGenFeed.getValue()) { me["EMERGEN-out"].show(); me["ELEC-Line-Emergen-ESSTR"].show(); } else { @@ -1823,13 +1857,13 @@ var canvas_lowerECAM_elec = { me["ELEC-Line-Emergen-ESSTR"].hide(); } - if (systems.ELEC.Bus.acEss.getValue() >= 110 and !getprop("/systems/electrical/relay/ac-ess-feed-emer-gen/contact-pos") and (!getprop("/systems/electrical/relay/tr-contactor-1/contact-pos") or !getprop("/systems/electrical/relay/tr-contactor-2/contact-pos"))) { + if (systems.ELEC.Bus.acEss.getValue() >= 110 and !systems.ELEC.Relay.acEssEmerGenFeed.getValue() and (!systems.ELEC.Relay.tr1Contactor.getValue() or !systems.ELEC.Relay.tr2Contactor.getValue())) { me["ELEC-Line-ACESS-TRESS"].show(); } else { me["ELEC-Line-ACESS-TRESS"].hide(); } - if (getprop("/systems/electrical/relay/dc-ess-feed-tr/contact-pos")) { + if (systems.ELEC.Relay.essTrContactor.getValue()) { me["ELEC-Line-ESSTR-DCESS"].show(); } else { me["ELEC-Line-ESSTR-DCESS"].hide(); @@ -1869,7 +1903,7 @@ var canvas_lowerECAM_eng = { me["OilQT2-needle"].setRotation((oil_qt2.getValue() + 90) * D2R); # Oil Pressure - if (oil_psi_actual1.getValue() >= 20) { + if (pts.Engines.Engine.oilPsi[0].getValue() >= 20) { me["OilPSI1"].setColor(0.0509,0.7529,0.2941); me["OilPSI1-needle"].setColor(0.0509,0.7529,0.2941); } else { @@ -1877,7 +1911,7 @@ var canvas_lowerECAM_eng = { me["OilPSI1-needle"].setColor(1,0,0); } - if (oil_psi_actual2.getValue() >= 20) { + if (pts.Engines.Engine.oilPsi[1].getValue() >= 20) { me["OilPSI2"].setColor(0.0509,0.7529,0.2941); me["OilPSI2-needle"].setColor(0.0509,0.7529,0.2941); } else { @@ -1885,14 +1919,14 @@ var canvas_lowerECAM_eng = { me["OilPSI2-needle"].setColor(1,0,0); } - me["OilPSI1"].setText(sprintf("%s", math.round(oil_psi_actual1.getValue()))); - me["OilPSI2"].setText(sprintf("%s", math.round(oil_psi_actual2.getValue()))); + me["OilPSI1"].setText(sprintf("%s", math.round(pts.Engines.Engine.oilPsi[0].getValue()))); + me["OilPSI2"].setText(sprintf("%s", math.round(pts.Engines.Engine.oilPsi[1].getValue()))); me["OilPSI1-needle"].setRotation((oil_psi1.getValue() + 90) * D2R); me["OilPSI2-needle"].setRotation((oil_psi2.getValue() + 90) * D2R); # Fuel Used - if (acconfig_weight_kgs.getValue() == 1) { + if (acconfig_weight_kgs.getValue()) { me["FUEL-used-1"].setText(sprintf("%s", math.round(fuel_used_lbs1.getValue() * LBS2KGS, 10))); me["FUEL-used-2"].setText(sprintf("%s", math.round(fuel_used_lbs2.getValue() * LBS2KGS, 10))); me["Fused-weight-unit"].setText("KG"); @@ -2062,7 +2096,7 @@ var canvas_lowerECAM_fctl = { } # Spoiler Fail - if (spoiler_L1_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerl1.getValue() or green_psi < 1500) { me["spoiler1Lex"].setColor(0.7333,0.3803,0); me["spoiler1Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L1.getValue() < 1.5) { @@ -2076,7 +2110,7 @@ var canvas_lowerECAM_fctl = { me["spoiler1Lf"].hide(); } - if (spoiler_L2_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerl2.getValue() or yellow_psi < 1500) { me["spoiler2Lex"].setColor(0.7333,0.3803,0); me["spoiler2Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L2.getValue() < 1.5) { @@ -2090,7 +2124,7 @@ var canvas_lowerECAM_fctl = { me["spoiler2Lf"].hide(); } - if (spoiler_L3_fail.getValue() or blue_psi < 1500) { + if (fbw.FBW.Failures.spoilerl3.getValue() or blue_psi < 1500) { me["spoiler3Lex"].setColor(0.7333,0.3803,0); me["spoiler3Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L3.getValue() < 1.5) { @@ -2104,7 +2138,7 @@ var canvas_lowerECAM_fctl = { me["spoiler3Lf"].hide(); } - if (spoiler_L4_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerl4.getValue() or yellow_psi < 1500) { me["spoiler4Lex"].setColor(0.7333,0.3803,0); me["spoiler4Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L4.getValue() < 1.5) { @@ -2118,7 +2152,7 @@ var canvas_lowerECAM_fctl = { me["spoiler4Lf"].hide(); } - if (spoiler_L5_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerl5.getValue() or green_psi < 1500) { me["spoiler5Lex"].setColor(0.7333,0.3803,0); me["spoiler5Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L5.getValue() < 1.5) { @@ -2132,7 +2166,7 @@ var canvas_lowerECAM_fctl = { me["spoiler5Lf"].hide(); } - if (spoiler_R1_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerr1.getValue() or green_psi < 1500) { me["spoiler1Rex"].setColor(0.7333,0.3803,0); me["spoiler1Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R1.getValue() < 1.5) { @@ -2146,7 +2180,7 @@ var canvas_lowerECAM_fctl = { me["spoiler1Rf"].hide(); } - if (spoiler_R2_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerr2.getValue() or yellow_psi < 1500) { me["spoiler2Rex"].setColor(0.7333,0.3803,0); me["spoiler2Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R2.getValue() < 1.5) { @@ -2160,7 +2194,7 @@ var canvas_lowerECAM_fctl = { me["spoiler2Rf"].hide(); } - if (spoiler_R3_fail.getValue() or blue_psi < 1500) { + if (fbw.FBW.Failures.spoilerr3.getValue() or blue_psi < 1500) { me["spoiler3Rex"].setColor(0.7333,0.3803,0); me["spoiler3Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R3.getValue() < 1.5) { @@ -2174,7 +2208,7 @@ var canvas_lowerECAM_fctl = { me["spoiler3Rf"].hide(); } - if (spoiler_R4_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerr4.getValue() or yellow_psi < 1500) { me["spoiler4Rex"].setColor(0.7333,0.3803,0); me["spoiler4Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R4.getValue() < 1.5) { @@ -2188,7 +2222,7 @@ var canvas_lowerECAM_fctl = { me["spoiler4Rf"].hide(); } - if (spoiler_R5_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerr5.getValue() or green_psi < 1500) { me["spoiler5Rex"].setColor(0.7333,0.3803,0); me["spoiler5Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R5.getValue() < 1.5) { @@ -2203,42 +2237,42 @@ var canvas_lowerECAM_fctl = { } # Flight Computers - if (elac1.getValue()) { + if (fbw.FBW.Computers.elac1.getValue()) { me["elac1"].setColor(0.0509,0.7529,0.2941); me["path4249"].setColor(0.0509,0.7529,0.2941); - } else if ((elac1.getValue() == 0) or (elac1_fail.getValue() == 1)) { + } else if (!fbw.FBW.Computers.elac1.getValue() or fbw.FBW.Failures.elac1.getValue()) { me["elac1"].setColor(0.7333,0.3803,0); me["path4249"].setColor(0.7333,0.3803,0); } - if (elac2.getValue()) { + if (fbw.FBW.Computers.elac2.getValue()) { me["elac2"].setColor(0.0509,0.7529,0.2941); me["path4249-3"].setColor(0.0509,0.7529,0.2941); - } else if ((elac2.getValue() == 0) or (elac2_fail.getValue() == 1)) { + } else if (!fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Failures.elac2.getValue()) { me["elac2"].setColor(0.7333,0.3803,0); me["path4249-3"].setColor(0.7333,0.3803,0); } - if (sec1.getValue()) { + if (fbw.FBW.Computers.sec1.getValue()) { me["sec1"].setColor(0.0509,0.7529,0.2941); me["path4249-3-6-7"].setColor(0.0509,0.7529,0.2941); - } else if ((sec1.getValue() == 0) or (sec1_fail.getValue() == 1)) { + } else if (!fbw.FBW.Computers.sec1.getValue() or fbw.FBW.Failures.sec1.getValue()) { me["sec1"].setColor(0.7333,0.3803,0); me["path4249-3-6-7"].setColor(0.7333,0.3803,0); } - if (sec2.getValue()) { + if (fbw.FBW.Computers.sec2.getValue()) { me["sec2"].setColor(0.0509,0.7529,0.2941); me["path4249-3-6-7-5"].setColor(0.0509,0.7529,0.2941); - } else if ((sec2.getValue() == 0) or (sec2_fail.getValue() == 1)) { + } else if (!fbw.FBW.Computers.sec2.getValue() or fbw.FBW.Failures.sec2.getValue()) { me["sec2"].setColor(0.7333,0.3803,0); me["path4249-3-6-7-5"].setColor(0.7333,0.3803,0); } - if (sec3.getValue()) { + if (fbw.FBW.Computers.sec3.getValue()) { me["sec3"].setColor(0.0509,0.7529,0.2941); me["path4249-3-6"].setColor(0.0509,0.7529,0.2941); - } else if ((sec3.getValue() == 0) or (sec3_fail.getValue() == 1)) { + } else if (!fbw.FBW.Computers.sec3.getValue() or fbw.FBW.Failures.sec3.getValue()) { me["sec3"].setColor(0.7333,0.3803,0); me["path4249-3-6"].setColor(0.7333,0.3803,0); } @@ -2310,8 +2344,7 @@ var canvas_lowerECAM_fuel = { update: func() { _weight_kgs = acconfig_weight_kgs.getValue(); - # if (getprop("/engines/engine[0]/n1-actual") < getprop("/controls/engines/idle-limit")) { - if (eng1_n1.getValue() <= 18.8) { + if (pts.Engines.Engine.n1Actual[0].getValue() <= 18.8) { me["ENG1idFFlow"].setColor(0.7333,0.3803,0); me["FUEL-ENG-1-label"].setColor(0.7333,0.3803,0); } else { @@ -2319,8 +2352,7 @@ var canvas_lowerECAM_fuel = { me["FUEL-ENG-1-label"].setColor(0.8078,0.8039,0.8078); } - # if (getprop("/engines/engine[1]/n1-actual") < getprop("/controls/engines/idle-limit")) { - if (eng2_n1.getValue() <= 18.5) { + if (pts.Engines.Engine.n1Actual[1].getValue() <= 18.5) { me["ENG2idFFlow"].setColor(0.7333,0.3803,0); me["FUEL-ENG-2-label"].setColor(0.7333,0.3803,0); } else { @@ -2344,7 +2376,7 @@ var canvas_lowerECAM_fuel = { me["FFlow-weight-unit"].setText("LBS/MIN"); } - if (fadec1.getValue() == 1 and fadec2.getValue() == 1) { + if (fadec.FADEC.Power.powered1.getValue() and fadec.FADEC.Power.powered2.getValue() or fadec.FADEC.Power.powerup.getValue()) { me["FUEL-Flow-per-min"].setColor(0.0509,0.7529,0.2941); if (_weight_kgs == 1) { me["FUEL-Flow-per-min"].setText(sprintf("%s", math.round(((fuel_flow1.getValue() + fuel_flow2.getValue()) * LBS2KGS) / 60, 10))); @@ -2358,7 +2390,7 @@ var canvas_lowerECAM_fuel = { # TODO use the valve prop and add amber if difference between eng master and valve # TODO add transition state - if (systems.FUEL.Valves.lpValve1.getValue() == 1) { + if (systems.FUEL.Valves.lpValve1.getValue()) { me["FUEL-ENG-Master-1"].setRotation(0); me["FUEL-ENG-Master-1"].setColor(0.0509,0.7529,0.2941); me["FUEL-ENG-Master-1"].setColorFill(0.0509,0.7529,0.2941); @@ -2372,7 +2404,7 @@ var canvas_lowerECAM_fuel = { # TODO use the valve prop and add amber if difference between eng master and valve # TODO add transition state - if (systems.FUEL.Valves.lpValve2.getValue() == 1) { + if (systems.FUEL.Valves.lpValve2.getValue()) { me["FUEL-ENG-Master-2"].setRotation(0); me["FUEL-ENG-Master-2"].setColor(0.0509,0.7529,0.2941); me["FUEL-ENG-Master-2"].setColorFill(0.0509,0.7529,0.2941); @@ -2388,7 +2420,7 @@ var canvas_lowerECAM_fuel = { # TODO use the valve prop # TODO add amber when disagree between switch and btn # TODO add transition state - if (systems.FUEL.Valves.crossfeed.getValue() == 1) { + if (systems.FUEL.Valves.crossfeed.getBoolValue()) { me["FUEL-XFEED"].setRotation(0); me["FUEL-XFEED-pipes"].show(); } else { @@ -2397,7 +2429,7 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - if (systems.FUEL.Switches.pumpLeft1.getValue() == 1) { + if (systems.FUEL.Switches.pumpLeft1.getBoolValue()) { me["FUEL-Pump-Left-1-Open"].show(); me["FUEL-Pump-Left-1-Closed"].hide(); me["FUEL-Pump-Left-1"].setColor(0.0509,0.7529,0.2941); @@ -2410,7 +2442,7 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - if (systems.FUEL.Switches.pumpLeft2.getValue() == 1) { + if (systems.FUEL.Switches.pumpLeft2.getBoolValue()) { me["FUEL-Pump-Left-2-Open"].show(); me["FUEL-Pump-Left-2-Closed"].hide(); me["FUEL-Pump-Left-2"].setColor(0.0509,0.7529,0.2941); @@ -2423,7 +2455,7 @@ var canvas_lowerECAM_fuel = { } # TODO add functionality to match FCOM 1.28.20 "Amber: Transfer valve is open, whereas commanded closed in automatic or manual mode" - if (systems.FUEL.Switches.pumpCenter1.getValue() == 1) { + if (systems.FUEL.Switches.pumpCenter1.getBoolValue()) { me["FUEL-Pump-Center-1-Open"].show(); me["FUEL-Pump-Center-1-Closed"].hide(); me["FUEL-Pump-Center-1"].setColor(0.0509,0.7529,0.2941); @@ -2436,7 +2468,7 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - if (systems.FUEL.Switches.pumpCenter2.getValue() == 1) { + if (systems.FUEL.Switches.pumpCenter2.getBoolValue()) { me["FUEL-Pump-Center-2-Open"].show(); me["FUEL-Pump-Center-2-Closed"].hide(); me["FUEL-Pump-Center-2"].setColor(0.0509,0.7529,0.2941); @@ -2449,7 +2481,7 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - if (systems.FUEL.Switches.pumpRight1.getValue() == 1) { + if (systems.FUEL.Switches.pumpRight1.getBoolValue()) { me["FUEL-Pump-Right-1-Open"].show(); me["FUEL-Pump-Right-1-Closed"].hide(); me["FUEL-Pump-Right-1"].setColor(0.0509,0.7529,0.2941); @@ -2462,7 +2494,7 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - if (systems.FUEL.Switches.pumpRight2.getValue() == 1) { + if (systems.FUEL.Switches.pumpRight2.getBoolValue()) { me["FUEL-Pump-Right-2-Open"].show(); me["FUEL-Pump-Right-2-Closed"].hide(); me["FUEL-Pump-Right-2"].setColor(0.0509,0.7529,0.2941); @@ -2512,7 +2544,7 @@ var canvas_lowerECAM_fuel = { if (systems.FUEL.Valves.transfer1.getValue() == 0) { me["FUEL-Left-Transfer"].hide(); } else { - if (systems.FUEL.Valves.transfer1.getValue() == 1) { + if (systems.FUEL.Valves.transfer1.getValue()) { me["FUEL-Left-Transfer"].setColor(0.0509,0.7529,0.2941); } else { me["FUEL-Left-Transfer"].setColor(0.7333,0.3803,0); @@ -2523,7 +2555,7 @@ var canvas_lowerECAM_fuel = { if (systems.FUEL.Valves.transfer2.getValue() == 0) { me["FUEL-Right-Transfer"].hide(); } else { - if (systems.FUEL.Valves.transfer2.getValue() == 1) { + if (systems.FUEL.Valves.transfer2.getValue()) { me["FUEL-Right-Transfer"].setColor(0.0509,0.7529,0.2941); } else { me["FUEL-Right-Transfer"].setColor(0.7333,0.3803,0); @@ -2538,13 +2570,13 @@ var canvas_lowerECAM_fuel = { } # APU - if (systems.FUEL.Valves.apu.getValue() == 1 and systems.APUNodes.Controls.master.getValue() and !systems.APUNodes.Controls.fire.getValue()) { + if (systems.FUEL.Valves.apu.getValue() and systems.APUNodes.Controls.master.getValue() and !systems.APUNodes.Controls.fire.getValue()) { me["FUEL-APU-label"].setColor(0.8078, 0.8039, 0.8078); me["FUEL-APU-line"].setColor(0.0509,0.7529,0.2941); me["FUEL-APU-arrow"].setColor(0.0509,0.7529,0.2941); me["FUEL-APU-line"].show(); me["FUEL-APU-arrow"].show(); - } elsif (systems.FUEL.Valves.apu.getValue() == 1 and (!systems.APUNodes.Controls.master.getValue() or systems.APUNodes.Controls.fire.getValue())) { + } elsif (systems.FUEL.Valves.apu.getValue() and (!systems.APUNodes.Controls.master.getValue() or systems.APUNodes.Controls.fire.getValue())) { me["FUEL-APU-label"].setColor(0.7333,0.3803,0); me["FUEL-APU-line"].setColor(0.7333,0.3803,0); me["FUEL-APU-arrow"].setColor(0.7333,0.3803,0); @@ -2704,13 +2736,13 @@ var canvas_lowerECAM_hyd = { me["PTU-Auto-or-off"].show(); } - if (eng1_n2.getValue() >= 59) { + if (pts.Engines.Engine.n2Actual[0].getValue() >= 59) { me["Pump-Green-label"].setColor(0.8078,0.8039,0.8078); } else { me["Pump-Green-label"].setColor(0.7333,0.3803,0); } - if (eng2_n2.getValue() >= 59) { + if (pts.Engines.Engine.n2Actual[1].getValue() >= 59) { me["Pump-Yellow-label"].setColor(0.8078,0.8039,0.8078); } else { me["Pump-Yellow-label"].setColor(0.7333,0.3803,0); @@ -2790,37 +2822,37 @@ var canvas_lowerECAM_hyd = { } } - if (y_resv_lo_air_press.getValue() == 1) { + if (y_resv_lo_air_press.getValue()) { me["LO-AIR-PRESS-Yellow"].show(); } else { me["LO-AIR-PRESS-Yellow"].hide(); } - if (b_resv_lo_air_press.getValue() == 1) { + if (b_resv_lo_air_press.getValue()) { me["LO-AIR-PRESS-Blue"].show(); } else { me["LO-AIR-PRESS-Blue"].hide(); } - if (g_resv_lo_air_press.getValue() == 1) { + if (g_resv_lo_air_press.getValue()) { me["LO-AIR-PRESS-Green"].show(); } else { me["LO-AIR-PRESS-Green"].hide(); } - if (elec_pump_y_ovht.getValue() == 1) { + if (elec_pump_y_ovht.getValue()) { me["ELEC-OVHT-Yellow"].show(); } else { me["ELEC-OVHT-Yellow"].hide(); } - if (elec_pump_b_ovht.getValue() == 1) { + if (elec_pump_b_ovht.getValue()) { me["ELEC-OVHT-Blue"].show(); } else { me["ELEC-OVHT-Blue"].hide(); } - if (systems.HYD.Rat.position.getValue() == 1) { + if (systems.HYD.Rat.position.getValue()) { me["RAT-stowed"].hide(); me["RAT-not-stowed"].show(); } else { @@ -2828,19 +2860,19 @@ var canvas_lowerECAM_hyd = { me["RAT-not-stowed"].hide(); } - if (y_resv_ovht.getValue() == 1) { + if (y_resv_ovht.getValue()) { me["OVHT-Yellow"].show(); } else { me["OVHT-Yellow"].hide(); } - if (b_resv_ovht.getValue() == 1) { + if (b_resv_ovht.getValue()) { me["OVHT-Green"].show(); } else { me["OVHT-Green"].hide(); } - if (g_resv_ovht.getValue() == 1) { + if (g_resv_ovht.getValue()) { me["OVHT-Blue"].show(); } else { me["OVHT-Blue"].hide(); @@ -3179,7 +3211,7 @@ var canvas_lowerECAM_wheel = { } # Spoiler Fail - if (spoiler_L1_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerl1.getValue() or green_psi < 1500) { me["spoiler1Lex"].setColor(0.7333,0.3803,0); me["spoiler1Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L1.getValue() < 1.5) { @@ -3193,7 +3225,7 @@ var canvas_lowerECAM_wheel = { me["spoiler1Lf"].hide(); } - if (spoiler_L2_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerl2.getValue() or yellow_psi < 1500) { me["spoiler2Lex"].setColor(0.7333,0.3803,0); me["spoiler2Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L2.getValue() < 1.5) { @@ -3207,7 +3239,7 @@ var canvas_lowerECAM_wheel = { me["spoiler2Lf"].hide(); } - if (spoiler_L3_fail.getValue() or blue_psi < 1500) { + if (fbw.FBW.Failures.spoilerl3.getValue() or blue_psi < 1500) { me["spoiler3Lex"].setColor(0.7333,0.3803,0); me["spoiler3Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L3.getValue() < 1.5) { @@ -3221,7 +3253,7 @@ var canvas_lowerECAM_wheel = { me["spoiler3Lf"].hide(); } - if (spoiler_L4_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerl4.getValue() or yellow_psi < 1500) { me["spoiler4Lex"].setColor(0.7333,0.3803,0); me["spoiler4Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L4.getValue() < 1.5) { @@ -3235,7 +3267,7 @@ var canvas_lowerECAM_wheel = { me["spoiler4Lf"].hide(); } - if (spoiler_L5_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerl5.getValue() or green_psi < 1500) { me["spoiler5Lex"].setColor(0.7333,0.3803,0); me["spoiler5Lrt"].setColor(0.7333,0.3803,0); if (spoiler_L5.getValue() < 1.5) { @@ -3249,7 +3281,7 @@ var canvas_lowerECAM_wheel = { me["spoiler5Lf"].hide(); } - if (spoiler_R1_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerr1.getValue() or green_psi < 1500) { me["spoiler1Rex"].setColor(0.7333,0.3803,0); me["spoiler1Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R1.getValue() < 1.5) { @@ -3263,7 +3295,7 @@ var canvas_lowerECAM_wheel = { me["spoiler1Rf"].hide(); } - if (spoiler_R2_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerr2.getValue() or yellow_psi < 1500) { me["spoiler2Rex"].setColor(0.7333,0.3803,0); me["spoiler2Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R2.getValue() < 1.5) { @@ -3277,7 +3309,7 @@ var canvas_lowerECAM_wheel = { me["spoiler2Rf"].hide(); } - if (spoiler_R3_fail.getValue() or blue_psi < 1500) { + if (fbw.FBW.Failures.spoilerr3.getValue() or blue_psi < 1500) { me["spoiler3Rex"].setColor(0.7333,0.3803,0); me["spoiler3Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R3.getValue() < 1.5) { @@ -3291,7 +3323,7 @@ var canvas_lowerECAM_wheel = { me["spoiler3Rf"].hide(); } - if (spoiler_R4_fail.getValue() or yellow_psi < 1500) { + if (fbw.FBW.Failures.spoilerr4.getValue() or yellow_psi < 1500) { me["spoiler4Rex"].setColor(0.7333,0.3803,0); me["spoiler4Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R4.getValue() < 1.5) { @@ -3305,7 +3337,7 @@ var canvas_lowerECAM_wheel = { me["spoiler4Rf"].hide(); } - if (spoiler_R5_fail.getValue() or green_psi < 1500) { + if (fbw.FBW.Failures.spoilerr5.getValue() or green_psi < 1500) { me["spoiler5Rex"].setColor(0.7333,0.3803,0); me["spoiler5Rrt"].setColor(0.7333,0.3803,0); if (spoiler_R5.getValue() < 1.5) { @@ -3446,7 +3478,7 @@ var canvas_lowerECAM_test = { return ["Test_white","Test_text"]; }, update: func() { - var elapsedtime = elapsed_sec.getValue(); + var elapsedtime = pts.Sim.Time.elapsedSec.getValue(); if (du4_test_time.getValue() + 1 >= elapsedtime) { me["Test_white"].show(); me["Test_text"].hide(); @@ -3496,13 +3528,13 @@ setlistener("sim/signals/fdm-initialized", func { lowerECAM_test = canvas_lowerECAM_test.new(group_test, "Aircraft/A320-family/Models/Instruments/Common/res/du-test.svg"); lowerECAM_update.start(); - if (getprop("/systems/acconfig/options/lecam-rate") > 1) { + if (rate.getValue() > 1) { l_rateApply(); } }); var l_rateApply = func { - lowerECAM_update.restart(0.05 * getprop("/systems/acconfig/options/lecam-rate")); + lowerECAM_update.restart(0.05 * rate.getValue()); } var lowerECAM_update = maketimer(0.05, func { diff --git a/Models/Instruments/Lower-ECAM/res/bleed.svg b/Models/Instruments/Lower-ECAM/res/bleed.svg index 1c8262a3..e6533a05 100644 --- a/Models/Instruments/Lower-ECAM/res/bleed.svg +++ b/Models/Instruments/Lower-ECAM/res/bleed.svg @@ -12,7 +12,7 @@ viewBox="0 0 1024 1024" version="1.1" id="svg2" - inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" sodipodi:docname="bleed.svg"> @@ -40,10 +40,10 @@ inkscape:window-width="1366" inkscape:window-height="705" id="namedview371" - showgrid="false" - inkscape:zoom="1.4773733" - inkscape:cx="843.6625" - inkscape:cy="621.84897" + showgrid="true" + inkscape:zoom="0.73868665" + inkscape:cx="272.22904" + inkscape:cy="280.96379" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -70,14 +70,6 @@ id="rect5105-2" style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + inkscape:label="#g1035"> + id="BLEED-APU-CIRCLE" + inkscape:label="#g1015"> + id="path5107-1-44-0" + d="m 872.14551,172.28989 c 0,15.58192 -12.63164,28.21356 -28.21356,28.21356 -15.58192,0 -28.21356,-12.63164 -28.21356,-28.21356 0,-15.58192 12.63164,-28.21356 28.21356,-28.21356 15.58192,0 28.21356,12.63164 28.21356,28.21356 z" + style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:4.80000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + height="5.1203089" + width="53.195583" + id="rect5105-2-5-3-6" + style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + + transform="rotate(90)" + inkscape:label="#rect5105-5-7" /> @@ -610,7 +617,7 @@ x="-218.12874" height="32.696423" width="4.1145287" - id="BLEED-Pack-1-Bypass-needel" + id="BLEED-Pack-1-Bypass-needle" style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.0665164;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:transform-center-x="-0.13399155" inkscape:transform-center-y="-28.056774" /> @@ -802,7 +809,7 @@ x="209.9595" height="31.200571" width="4.1151652" - id="BLEED-Pack-2-Packflow-needel" + id="BLEED-Pack-2-Packflow-needle" style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.04191506;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:transform-center-x="1.3492459" inkscape:transform-center-y="-34.314208" /> @@ -813,7 +820,7 @@ x="-213.51646" height="32.714966" width="4.1114964" - id="BLEED-Pack-2-Bypass-needel" + id="BLEED-Pack-2-Bypass-needle" style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.06642556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:transform-center-x="0.24542415" inkscape:transform-center-y="-28.143827" /> @@ -1063,7 +1070,7 @@ y="537.82135">PSI ANTI ICE @@ -1346,4 +1353,13 @@ x="560.88452" y="976.25214" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#0dc04b">00 + diff --git a/Models/Instruments/Lower-ECAM/res/cond.svg b/Models/Instruments/Lower-ECAM/res/cond.svg index b0ab4668..e00eb275 100644 --- a/Models/Instruments/Lower-ECAM/res/cond.svg +++ b/Models/Instruments/Lower-ECAM/res/cond.svg @@ -12,7 +12,7 @@ viewBox="0 0 1024 1024" version="1.1" id="svg2" - inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" sodipodi:docname="cond.svg"> @@ -41,9 +41,9 @@ inkscape:window-height="705" id="namedview371" showgrid="false" - inkscape:zoom="0.5" - inkscape:cx="935.0004" - inkscape:cy="859.89724" + inkscape:zoom="163.84" + inkscape:cx="931.44175" + inkscape:cy="894.81836" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -119,19 +119,6 @@ id="rect5105-2" style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - ALTN MODE TEMP : + style="font-size:30.27799988px;line-height:0"> TEMP : + transform="matrix(1.0008336,0,0,1.0076569,-0.20693166,-2.7123511)" + inkscape:transform-center-x="0.34849792" + inkscape:transform-center-y="-35.397308"> + inkscape:label="#g4870" + inkscape:transform-center-x="0.27914252" + inkscape:transform-center-y="-35.133687"> + inkscape:label="#g4870" + inkscape:transform-center-x="0.17680135" + inkscape:transform-center-y="-35.128738"> - - - + + + + C - C + H - - H + + 34 - 34 + 34 - - - - - - - - - - - HOT - AIR - - - - - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;text-anchor:end;fill:#0dc04b;stroke-width:1px" + y="514.75751" + x="721.77655" + id="tspan5151-3-9-0" + sodipodi:role="line">34 + + + + + + + + - - - - - - - - - - - - - + HOT + AIR + + + + + + + + + + + + + + + + + + + AFT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#cecdce;fill-opacity:1;stroke:none;stroke-width:2.68228602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve">AFT + - = 110 and mcdu1_lgt.getValue() > 0.01) { @@ -306,8 +247,121 @@ var canvas_MCDU_base = { MCDU_2.page.hide(); } }, + defaultHide: func() { + me["Simple"].show(); + me["Simple_Center"].hide(); + me["FPLN"].hide(); + me["DIRTO_TMPY_group"].hide(); + me["INITA"].hide(); + me["IRSINIT"].hide(); + me["INITB"].hide(); + me["FUELPRED"].hide(); + me["WIND"].hide(); + me["PROG"].hide(); + me["PERFTO"].hide(); + me["arrowsDepArr"].hide(); + me["PERFAPPR"].hide(); + me["PERFGA"].hide(); + me["Simple_Title"].show(); + }, + defaultHideWithCenter: func() { + me["Simple"].show(); + me["Simple_Center"].show(); + me["FPLN"].hide(); + me["DIRTO_TMPY_group"].hide(); + me["INITA"].hide(); + me["IRSINIT"].hide(); + me["INITB"].hide(); + me["FUELPRED"].hide(); + me["WIND"].hide(); + me["PROG"].hide(); + me["PERFTO"].hide(); + }, + defaultPageNumbers: func() { + me["Simple_Title"].setColor(1, 1, 1); + me["Simple_PageNum"].setText("X/X"); + me["Simple_PageNum"].hide(); + me["ArrowLeft"].hide(); + me["ArrowRight"].hide(); + }, + hideAllArrows: func() { + me["Simple_L1_Arrow"].hide(); + me["Simple_L2_Arrow"].hide(); + me["Simple_L3_Arrow"].hide(); + me["Simple_L4_Arrow"].hide(); + me["Simple_L5_Arrow"].hide(); + me["Simple_L6_Arrow"].hide(); + me["Simple_R1_Arrow"].hide(); + me["Simple_R2_Arrow"].hide(); + me["Simple_R3_Arrow"].hide(); + me["Simple_R4_Arrow"].hide(); + me["Simple_R5_Arrow"].hide(); + me["Simple_R6_Arrow"].hide(); + }, + hideAllArrowsButL6: func() { + me["Simple_L1_Arrow"].hide(); + me["Simple_L2_Arrow"].hide(); + me["Simple_L3_Arrow"].hide(); + me["Simple_L4_Arrow"].hide(); + me["Simple_L5_Arrow"].hide(); + me["Simple_L6_Arrow"].show(); + me["Simple_R1_Arrow"].hide(); + me["Simple_R2_Arrow"].hide(); + me["Simple_R3_Arrow"].hide(); + me["Simple_R4_Arrow"].hide(); + me["Simple_R5_Arrow"].hide(); + me["Simple_R6_Arrow"].hide(); + }, + standardFontSize: func() { + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, normal, normal); + }, + standardFontColour: func() { + me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + }, updateCommon: func(i) { page = pageProp[i].getValue(); + if (page != "NOTIFICATION") { + me["NOTIFY"].hide(); + me["NOTIFY_FLTNBR"].hide(); + me["NOTIFY_AIRPORT"].hide(); + } + if (page != "COMPANYCALL") { + me["COCALL"].hide(); + me["COCALLTUNE"].hide(); + } + if (page != "CONNECTSTATUS") { + me["COMM-ADS"].hide(); + } else { + me["COMM-ADS"].show(); + } + if (page != "VOICEDIRECTORY") { + me["MODEVHF3"].hide(); + } else { + me["MODEVHF3"].show(); + } + if (page != "WEATHERREQ") { + me["WEATHERREQSEND"].hide(); + } + if (page != "COMMINIT" and page != "COMPANYCALL" and page != "VOICEDIRECTORY" and page != "DATAMODE" and page != "COMMSTATUS") { + me["PRINTPAGE"].hide(); + } else { + me["PRINTPAGE"].show(); + if (page == "DATAMODE" or page == "COMMINIT") { + me["PRINTPAGE"].setColor(BLUE); + } else { + me["PRINTPAGE"].setColor(WHITE); + } + } if (page == "F-PLNA" or page == "F-PLNB") { if (!pageSwitch[i].getBoolValue()) { me["Simple"].show(); @@ -318,6 +372,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["PERFAPPR"].hide(); @@ -332,18 +387,7 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].hide(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); + me.hideAllArrows(); me.fontLeft(default, default, default, default, default, default); me.fontLeftS(default, default, default, default, default, default); @@ -358,8 +402,8 @@ var canvas_MCDU_base = { if (myFpln[i] != nil) { - if (flightNumSet.getValue()) { - me["FPLN_Callsign"].setText(flightNum.getValue()); + if (fmgc.FMGCInternal.flightNumSet) { + me["FPLN_Callsign"].setText(fmgc.FMGCInternal.flightNum); me["FPLN_Callsign"].show(); } else { me["FPLN_Callsign"].hide(); @@ -424,52 +468,24 @@ var canvas_MCDU_base = { } } else if (page == "MCDU") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].hide(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); - me["PERFAPPR"].hide(); - me["PERFGA"].hide(); - me["Simple_Title"].show(); + me.defaultHide(); me["Simple_Title"].setText("MCDU MENU"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, -1, -1); me["Simple_L0S"].hide(); me.showLeftS(-1, -1, -1, -1, -1, -1); me.showLeftArrow(1, 1, 1, 1, -1, -1); - me.showRight(-1, -1, -1, -1, -1, 1); + me.showRight(-1, -1, -1, -1, -1, -1); me.showRightS(-1, -1, -1, -1, -1, -1); - me.showRightArrow(-1, -1, -1, -1, -1, 1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); - - me.colorLeft("ack", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRight("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); - + me.standardFontSize(); + me.standardFontColour(); + me["Simple_L3"].setText(" AIDS"); + me["Simple_L4"].setText(" CFDS"); pageSwitch[i].setBoolValue(1); } @@ -483,10 +499,922 @@ var canvas_MCDU_base = { me["Simple_L1"].setText(" FMGC"); me["Simple_L1"].setColor(0.0509,0.7529,0.2941); } - me["Simple_L2"].setText(" ACARS"); - me["Simple_L3"].setText(" AIDS"); - me["Simple_L4"].setText(" CFDS"); - me["Simple_R6"].setText("RETURN "); + + if (activeAtsu[i].getValue() == 0) { + me["Simple_L2"].setText(" ATSU"); + me["Simple_L2"].setColor(1,1,1); + } else if (activeAtsu[i].getValue() == 1) { + me["Simple_L2"].setText(" ATSU(SEL)"); + me["Simple_L2"].setColor(0.0901,0.6039,0.7176); + } else if (activeAtsu[i].getValue() == 2) { + me["Simple_L2"].setText(" ATSU"); + me["Simple_L2"].setColor(0.0509,0.7529,0.2941); + } + } else if (page == "ATSUDLINK") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("ATSU DATALINK"); + me.defaultPageNumbers(); + + me.showLeft(1, -1, -1, -1, -1, -1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, -1, -1, -1, -1, -1); + me.showLeftArrow(1, -1, -1, -1, -1, -1); + me.showRight(1, -1, -1, -1, -1, 1); + me.showRightS(-1, -1, -1, -1, -1, -1); + me.showRightArrow(1, -1, -1, -1, -1, 1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + me.standardFontColour(); + me["Simple_L1"].setText(" ATC MENU"); + me["Simple_R1"].setText("AOC MENU "); + me["Simple_R6"].setText("COMM MENU "); + pageSwitch[i].setBoolValue(1); + } + } else if (page == "AOCMENU") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("AOC MENU"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, 1, -1, 1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, -1, -1, -1, -1, 1); + me.showLeftArrow(1, 1, 1, -1, 1, 1); + me.showRight(1, 1, 1, 1, 1, -1); + me.showRightS(-1, -1, -1, -1, -1, -1); + me.showRightArrow(1, 1, 1, 1, 1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + me.standardFontColour(); + + me["Simple_L1"].setText(" PREFLIGHT"); + me["Simple_L2"].setText(" ENROUTE"); + me["Simple_L3"].setText(" POSTFLIGHT"); + me["Simple_L5"].setText(" SNAG"); + me["Simple_L6S"].setText(" ATSU DLK"); + me["Simple_L6"].setText(" RETURN"); + + me["Simple_R1"].setText("FLT LOG "); + me["Simple_R2"].setText("WEATHER REQ "); + me["Simple_R3"].setText("RCVD MSGS "); + me["Simple_R4"].setText("REPORTS "); + me["Simple_R5"].setText("CONFIG "); + pageSwitch[i].setBoolValue(1); + } + } else if (page == "WEATHERREQ") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("WEATHER REQ"); + me.defaultPageNumbers(); + + me.showLeft(1, -1, -1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, -1, -1, -1, -1, -1); + me.showLeftArrow(1, -1, -1, -1, -1, 1); + me.showRight(1, 1, 1, -1, 1, -1); + me.showRightS(1, 1, 1, -1, -1, -1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(symbol, symbol, symbol, default, default, default); + me.fontRightS(default, default, default, default, default, default); + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("blu", "blu", "blu", "wht", "blu", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1"].setText(" WEATHER TYPE"); + me["Simple_L1S"].setText(" " ~ atsu.AOC.selectedType); + me["Simple_R1S"].setText("STA 1 "); + me["Simple_R2"].setText("[ ]"); + me["Simple_R2S"].setText("STA 2 "); + me["Simple_R3"].setText("[ ]"); + me["Simple_R3S"].setText("STA 3 "); + pageSwitch[i].setBoolValue(1); + } + + if (atsu.AOC.station != nil) { + me["Simple_R1"].setFont(default); + me["Simple_R1"].setText(atsu.AOC.station); + if (atsu.AOC.sent and !atsu.AOC.received) { + me["WEATHERREQSEND"].hide(); + } else { + me["WEATHERREQSEND"].show(); + } + + if (atsu.AOC.sent) { + me["Simple_R5"].setText(atsu.AOC.sentTime ~ " SEND "); + } else { + me["Simple_R5"].setText("SEND "); + } + } else { + me["Simple_R5"].setText("SEND "); + me["Simple_R1"].setFont(symbol); + me["Simple_R1"].setText("[ ]"); + me["WEATHERREQSEND"].hide(); + } + + me._receivedTime = left(getprop("/sim/time/gmt-string"), 5); + me.receivedTime = split(":", me._receivedTime)[0] ~ "." ~ split(":", me._receivedTime)[1] ~ "Z"; + me["Simple_L6"].setText(" RETURN " ~ me.receivedTime); + } else if (page == "WEATHERTYPE") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("WEATHER TYPE"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, 1, -1, -1, -1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, -1, -1, -1, -1, -1); + me.showLeftArrow(1, 1, 1, -1, -1, -1); + me.showRight(1, 1, 1, -1, -1, -1); + me.showRightS(-1, -1, -1, -1, -1, -1); + me.showRightArrow(1, 1, 1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + me.standardFontColour(); + + me["Simple_L1"].setText(" HOURLY WX"); + me["Simple_L2"].setText(" AREA FCST"); + me["Simple_L3"].setText(" FLD CONDX"); + me["Simple_R1"].setText("TERM FCST "); + me["Simple_R2"].setText("NOTAMS "); + me["Simple_R3"].setText("SEVERE WX "); + pageSwitch[i].setBoolValue(1); + } + } else if (page == "RECEIVEDMSGS") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].show(); + me["arrowsDepArr"].hide(); + me.hideAllArrowsButL6(); + + me["Simple_L0S"].hide(); + me["Simple_L6S"].hide(); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, normal, normal); + + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + + me.showRight(-1, -1, -1, -1, -1, -1); + me.showRightS(-1, -1, -1, -1, -1, -1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + + if (myReceivedMessages[i] != nil) { + me["Simple_Title"].setText(sprintf("%s", myReceivedMessages[i].title)); + + me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myReceivedMessages[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myReceivedMessages[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myReceivedMessages[i].arrowsColour[0][5] ~ "/b")); + + if (mcdu.ReceivedMessagesDatabase.getCountPages() > 1) { + me["Simple_PageNum"].show(); + me["Simple_PageNum"].setText(myReceivedMessages[i].getPageNumStr()); + me["ArrowLeft"].show(); + me["ArrowRight"].show(); + } else { + me["Simple_PageNum"].hide(); + me["ArrowLeft"].hide(); + me["ArrowRight"].hide(); + } + + me.dynamicPageFontFunc(myReceivedMessages[i]); + me.dynamicPageArrowFunc(myReceivedMessages[i]); + + me.dynamicPageFunc(myReceivedMessages[i].L1, "Simple_L1"); + me.dynamicPageFunc(myReceivedMessages[i].L2, "Simple_L2"); + me.dynamicPageFunc(myReceivedMessages[i].L3, "Simple_L3"); + me.dynamicPageFunc(myReceivedMessages[i].L4, "Simple_L4"); + me.dynamicPageFunc(myReceivedMessages[i].L5, "Simple_L5"); + me.colorLeft(myReceivedMessages[i].L1[2],myReceivedMessages[i].L2[2],myReceivedMessages[i].L3[2],myReceivedMessages[i].L4[2],myReceivedMessages[i].L5[2],myReceivedMessages[i].L6[2]); + me["Simple_L6"].setColor(WHITE); + } + pageSwitch[i].setBoolValue(1); + } + + if (myReceivedMessages[i] != nil) { + me._receivedTime = left(getprop("/sim/time/gmt-string"), 5); + me.receivedTime = split(":", me._receivedTime)[0] ~ "." ~ split(":", me._receivedTime)[1] ~ "Z"; + me["Simple_L6"].setText(" RETURN " ~ me.receivedTime); + } + } else if (page == "RECEIVEDMSG") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["Simple_Title"].show(); + me["arrowsDepArr"].hide(); + me.hideAllArrowsButL6(); + me["Simple_PageNum"].hide(); + me["ArrowLeft"].hide(); + me["ArrowRight"].hide(); + + me["Simple_L0S"].hide(); + me["Simple_L6S"].hide(); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(small, small, small, small, small, normal); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, normal, normal); + + me.colorLeftS("grn", "wht", "wht", "wht", "wht", "wht"); + me.colorCenterS("grn", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + + me.showCenter(-1, -1, -1, -1, -1, -1); + me.showCenterS(1, -1, -1, -1, -1, -1); + me.showRight(-1, -1, -1, -1, -1, -1); + me.showRightS(1, -1, -1, -1, -1, -1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + + + if (myReceivedMessage[i] != nil) { + me["Simple_Title"].setText(sprintf("%s", myReceivedMessage[i].title)); + + me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myReceivedMessage[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myReceivedMessage[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myReceivedMessage[i].arrowsColour[0][5] ~ "/b")); + + forindex (var matrixFont; myReceivedMessages[i].fontMatrix) { + if (matrixFont == 0) { + var sign = "L"; + } else { + var sign = "R"; + } + forindex (var item; myReceivedMessages[i].fontMatrix[matrixFont]) { + if (myReceivedMessages[i].fontMatrix[matrixFont][item] == 1) { + me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); + } else { + me["Simple_" ~ sign ~ (item + 1)].setFont(default); + } + } + } + + me.dynamicPageArrowFunc(myReceivedMessage[i]); + + if (myReceivedMessage[i].L1[0] != nil) { + me["Simple_L1"].setText(myReceivedMessage[i].L1[0]); + me["Simple_L1"].show(); + } else { me["Simple_L1"].hide(); } + if (myReceivedMessage[i].L1[1] != nil) { + me["Simple_L1S"].setText(myReceivedMessage[i].L1[1]); + me["Simple_L1S"].show(); + } else { me["Simple_L1S"].hide(); } + if (myReceivedMessage[i].L2[0] != nil) { + me["Simple_L2"].setText(myReceivedMessage[i].L2[0]); + me["Simple_L2"].show(); + } else { me["Simple_L2"].hide(); } + if (myReceivedMessage[i].L2[1] != nil) { + me["Simple_L2S"].setText(myReceivedMessage[i].L2[1]); + me["Simple_L2S"].show(); + } else { me["Simple_L2S"].hide(); } + if (myReceivedMessage[i].L3[0] != nil) { + me["Simple_L3"].setText(myReceivedMessage[i].L3[0]); + me["Simple_L3"].show(); + } else { me["Simple_L3"].hide(); } + if (myReceivedMessage[i].L3[1] != nil) { + me["Simple_L3S"].setText(myReceivedMessage[i].L3[1]); + me["Simple_L3S"].show(); + } else { me["Simple_L3S"].hide(); } + if (myReceivedMessage[i].L4[0] != nil) { + me["Simple_L4"].setText(myReceivedMessage[i].L4[0]); + me["Simple_L4"].show(); + } else { me["Simple_L4"].hide(); } + if (myReceivedMessage[i].L4[1] != nil) { + me["Simple_L4S"].setText(myReceivedMessage[i].L4[1]); + me["Simple_L4S"].show(); + } else { me["Simple_L4S"].hide(); } + if (myReceivedMessage[i].L5[0] != nil) { + me["Simple_L5"].setText(myReceivedMessage[i].L5[0]); + me["Simple_L5"].show(); + } else { me["Simple_L5"].hide(); } + if (myReceivedMessage[i].L5[1] != nil) { + me["Simple_L5S"].setText(myReceivedMessage[i].L5[1]); + me["Simple_L5S"].show(); + } else { me["Simple_L5S"].hide(); } + + me["Simple_C1S"].setText(myReceivedMessage[i].C1[1]); + me["Simple_R1S"].setText(myReceivedMessage[i].R1[1]); + me.colorLeft(myReceivedMessage[i].L1[2],myReceivedMessage[i].L2[2],myReceivedMessage[i].L3[2],myReceivedMessage[i].L4[2],myReceivedMessage[i].L5[2],myReceivedMessage[i].L6[2]); + me["Simple_L6"].setColor(WHITE); + me["Simple_C1S"].setColor(GREEN); + } + pageSwitch[i].setBoolValue(1); + } + + if (myReceivedMessage[i] != nil) { + me._receivedTime = left(getprop("/sim/time/gmt-string"), 5); + me.receivedTime = split(":", me._receivedTime)[0] ~ "." ~ split(":", me._receivedTime)[1] ~ "Z"; + me["Simple_L6"].setText(" RETURN " ~ me.receivedTime); + } + } else if (page == "ATCMENU") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("ATC MENU"); + me["Simple_Title"].setColor(1, 1, 1); + me["Simple_PageNum"].setText("1/2"); + me["Simple_PageNum"].show(); + me["ArrowLeft"].show(); + me["ArrowRight"].show(); + + me.showLeft(1, 1, -1, 1, 1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, -1, -1, -1, -1, 1); + me.showLeftArrow(1, 1, -1, 1, 1, 1); + me.showRight(1, 1, 1, -1, 1, 1); + me.showRightS(-1, -1, -1, -1, 1, -1); + me.showRightArrow(1, 1, 1, -1, 1, 1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + + me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("wht", "wht", "wht", "wht", "wht", "amb"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "amb"); + + + me["Simple_L1"].setText(" LAT REQ"); + me["Simple_L2"].setText(" WHEN CAN WE"); + me["Simple_L4"].setText(" MSG RECORD"); + me["Simple_L5"].setText(" NOTIFICATION"); + me["Simple_L6S"].setText(" ATSU DLK"); + me["Simple_L6"].setText(" RETURN"); + + me["Simple_R1"].setText("VERT REQ "); + me["Simple_R2"].setText("OTHER "); + me["Simple_R3"].setText("TEXT "); + me["Simple_R3"].setText("REPORTS "); + me["Simple_R5"].setText("STATUS "); + me["Simple_R5S"].setText("CONNECTION "); + me["Simple_R6"].setText("EMERGENCY "); + pageSwitch[i].setBoolValue(1); + } + } else if (page == "ATCMENU2") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["Simple_Title"].setText("ATC MENU"); + me["Simple_Title"].setColor(1, 1, 1); + me["Simple_PageNum"].setText("2/2"); + me["Simple_PageNum"].show(); + me["ArrowLeft"].show(); + me["ArrowRight"].show(); + + me.showLeft(1, 1, -1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, -1, -1, -1, -1, 1); + me.showLeftArrow(1, 1, -1, -1, -1, 1); + me.showCenter(-1, -1, -1, -1, -1, -1); + me.showCenterS(1, -1, -1, -1, -1, -1); + me.showRight(1, -1, -1, -1, -1, -1); + me.showRightS(-1, -1, -1, -1, -1, -1); + me.showRightArrow(1, -1, -1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + me.standardFontColour(); + me.colorCenterS("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1"].setText(" DEPART REQ"); + me["Simple_L2"].setText(" OCEANIC REQ"); + me["Simple_C1S"].setText(" -------- ATS623 PAGE -------- "); + me["Simple_L6S"].setText(" ATSU DLK"); + me["Simple_L6"].setText(" RETURN"); + + me["Simple_R1"].setText("ATIS "); + pageSwitch[i].setBoolValue(1); + } + } else if (page == "NOTIFICATION") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["arrowsDepArr"].hide(); + me["PERFAPPR"].hide(); + me["PERFGA"].hide(); + me["Simple_Title"].show(); + me["Simple_Title"].setText("NOTIFICATION"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, -1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, 1, -1, -1, -1, 1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showCenter(-1, 1, -1, -1, -1, -1); + me.showCenterS(-1, -1, -1, -1, -1, -1); + me.showRight(-1, 1, -1, -1, -1, 1); + me.showRightS(-1, -1, -1, -1, -1, 1); + me.showRightArrow(-1, -1, -1, -1, -1, 1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(small, normal, normal, normal, normal, normal); + me.fontSizeCenter(normal, normal, normal, normal, small, normal); + me.fontSizeRight(normal, normal, normal, normal, normal, normal); + + me.colorLeft("grn", "blu", "grn", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorCenter("wht", "wht", "wht", "wht", "amb", "wht"); + me.colorRight("wht", "blu", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1S"].setText(" ATC FLT NBR"); + me["Simple_L2S"].setText(" ATC CENTER"); + me["Simple_C2"].setText("------------ "); + me["Simple_R2"].setText("NOTIFY "); + me["Simple_C5"].setText("NOTIFICATION UNAVAILABLE"); + + me["Simple_L6S"].setText(" ATC MENU"); + me["Simple_L6"].setText(" RETURN"); + me["Simple_R6"].setText("STATUS "); + me["Simple_R6S"].setText("CONNECTION "); + + + if (fmgc.FMGCInternal.flightNumSet) { + me["NOTIFY_FLTNBR"].hide(); + me["Simple_L1"].setText(fmgc.FMGCInternal.flightNum); + me["Simple_L1"].show(); + me["Simple_C5"].hide(); + } else { + me["Simple_L1"].hide(); + me["NOTIFY_FLTNBR"].show(); + me["Simple_C5"].show(); + } + pageSwitch[i].setBoolValue(1); + } + + if (atsu.notificationSystem.notifyAirport != nil) { + if (!atsu.notificationSystem.hasNotified) { + me["Simple_L2"].setText(atsu.notificationSystem.notifyAirport); + me["Simple_L2"].show(); + me["NOTIFY_AIRPORT"].hide(); + } else { + me["Simple_L2"].hide(); + me["NOTIFY_AIRPORT"].show(); + } + } else { + me["Simple_L2"].hide(); + me["NOTIFY_AIRPORT"].show(); + } + + if (atsu.notificationSystem.hasNotified) { + me["NOTIFY"].hide(); + me["Simple_L3"].setText(atsu.notificationSystem.notifyAirport); + me["Simple_L3"].show(); + me["Simple_L3S"].setText(" ATC NOTIFIED"); + me["Simple_L3S"].show(); + } else { + me["NOTIFY"].show(); + me["Simple_L3"].hide(); + me["Simple_L3S"].hide(); + } + } else if (page == "CONNECTSTATUS") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["arrowsDepArr"].hide(); + me["PERFAPPR"].hide(); + me["PERFGA"].hide(); + me["Simple_Title"].show(); + me["Simple_Title"].setText("CONNECTION STATUS"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, -1, 1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, 1, -1, -1, -1, 1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showCenter(1, -1, -1, -1, -1, -1); + me.showCenterS(-1, -1, -1, 1, -1, -1); + me.showRight(1, -1, 1, -1, 1, 1); + me.showRightS(-1, -1, 1, -1, -1, -1); + me.showRightArrow(-1, -1, -1, -1, -1, 1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeCenter(small, normal, small, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, small, normal); + + me.colorLeft("grn", "wht", "wht", "blu", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorCenter("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("blu", "blu", "blu", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1S"].setText("ACTIVE ATC"); + me["Simple_L2S"].setText("NEXT ATC"); + me["Simple_L2"].setText("----"); + me["Simple_C1"].setText("------------- "); + me["Simple_R1"].setText("NOTIFIED "); + me["Simple_R3S"].setText("MAX UPLINK DELAY"); + me["Simple_R3"].setText("NONE"); + + me["Simple_R5"].setText("ADS DETAIL"); + me["Simple_L6S"].setText(" ATC MENU"); + me["Simple_L6"].setText(" RETURN"); + me["Simple_R6"].setText("NOTIFICATION "); + + pageSwitch[i].setBoolValue(1); + } + + if (atsu.notificationSystem.notifyAirport != nil) { + if (atsu.notificationSystem.hasNotified) { + me["Simple_L1"].setText(atsu.notificationSystem.notifyAirport); + } else { + me["Simple_L1"].setText("----"); + me["Simple_C1"].hide(); + me["Simple_R1"].hide(); + } + } else { + me["Simple_L1"].setText("----"); + me["Simple_C1"].hide(); + me["Simple_R1"].hide(); + } + + if (atsu.ADS.state == 0) { + me["Simple_C4S"].setText("--------------ADS - OFF--------"); + me["Simple_L4"].setText(" SET ARMED"); + } elsif (atsu.ADS.state == 1) { + me["Simple_C4S"].setText("-------------ADS - ARMED-------"); + me["Simple_L4"].setText(" SET OFF"); + } elsif (atsu.ADS.state == 2) { + me["Simple_C4S"].setText("-----------ADS - CONNECTED-----"); + me["Simple_L4"].setText(" SET OFF"); + } + } else if (page == "COMMMENU") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("COMM MENU"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, 1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, 1, 1, -1, -1, 1); + me.showLeftArrow(1, 1, 1, -1, -1, 1); + me.showRight(1, 1, -1, 1, -1, -1); + me.showRightS(1, 1, -1, -1, -1, -1); + me.showRightArrow(1, 1, -1, 1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, small, normal); + me.standardFontColour(); + me["Simple_L1S"].setText(" COMM"); + me["Simple_L1"].setText(" INIT"); + me["Simple_L2S"].setText(" VHF3"); + me["Simple_L2"].setText(" DATA MODE"); + me["Simple_L3S"].setText(" VHF3 VOICE"); + me["Simple_L3"].setText(" DIRECTORY"); + me["Simple_L6S"].setText(" RETURN TO"); + me["Simple_L6"].setText(" ATSU DLK"); + me["Simple_R1S"].setText("COMM "); + me["Simple_R1"].setText("STATUS "); + me["Simple_R2S"].setText("COMPANY "); + me["Simple_R2"].setText("CALL "); + me["Simple_R4"].setText("MAINTENANCE "); + + pageSwitch[i].setBoolValue(1); + } + } else if (page == "VOICEDIRECTORY") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["arrowsDepArr"].hide(); + me["PERFAPPR"].hide(); + me["PERFGA"].hide(); + me["Simple_Title"].show(); + me["Simple_Title"].setText("VHF3 VOICE DIRECTORY"); + me.defaultPageNumbers(); + + me.showLeft(1, -1, -1, 1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, -1, -1, 1, -1, -1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showCenter(-1, -1, -1, -1, -1, -1); + me.showCenterS(1, -1, -1, -1, -1, -1); + me.showRight(1, -1, -1, -1, 1, 1); + me.showRightS(1, -1, -1, -1, 1, 1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + + me.colorLeft("blu", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorCenterS("grn", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("blu", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1S"].setText(" OPS"); + me["Simple_L1"].setText(" 132.225"); + me["Simple_L4S"].setText(" CO CALL"); + me["Simple_L6S"].setText(" RETURN TO"); + me["Simple_L6"].setText(" COMM MENU"); + me["Simple_R1S"].setText("MAINT "); + me["Simple_R1"].setText("132.400 "); + me["Simple_R5S"].setText("MODE "); + me["Simple_R6S"].setText("PAGE "); + me["Simple_R6"].setText("PRINT "); + me["Simple_C1S"].setFontSize(normal); + + pageSwitch[i].setBoolValue(1); + } + if (ecam.vhf3_voice.active) { + me["Simple_C1S"].setText("VOICE"); + me["Simple_R5"].setText("DATA "); + } else { + me["Simple_C1S"].setText("DATA"); + me["Simple_R5"].setText("VOICE "); + } + if (atsu.CompanyCall.frequency != 999.99) { + me["Simple_L4"].setText(" " ~ sprintf("%5.2f", atsu.CompanyCall.frequency)); + } else { + me["Simple_L4"].setText(" ---.--"); + } + } else if (page == "DATAMODE") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["arrowsDepArr"].hide(); + me["PERFAPPR"].hide(); + me["PERFGA"].hide(); + me["Simple_Title"].show(); + me["Simple_Title"].setText("VHF3 DATA MODE"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, 1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, -1, -1, -1, -1, -1); + me.showLeftArrow(-1, 1, 1, -1, -1, 1); + me.showCenter(-1, -1, -1, -1, -1, -1); + me.showCenterS(1, -1, -1, -1, -1, -1); + me.showRight(1, 1, 1, -1, -1, 1); + me.showRightS(1, -1, -1, -1, -1, 1); + me.showRightArrow(-1, 1, 1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); + + me.colorLeft("grn", "blu", "blu", "blu", "wht", "wht"); + me.colorLeftS("wht", "blu", "blu", "blu", "wht", "wht"); + me.colorLeftArrow("wht", "blu", "blu", "blu", "wht", "wht"); + me.colorCenterS("grn", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("grn", "blu", "blu", "wht", "wht", "blu"); + me.colorRightS("wht", "blu", "blu", "wht", "wht", "blu"); + me.colorRightArrow("wht", "blu", "blu", "wht", "wht", "wht"); + + me["Simple_L1S"].setText(" ATIS"); + me["Simple_C1S"].setText("ACTIVE SERVERS"); + me["Simple_L2"].setText(" FAA"); + me["Simple_L3"].setText(" VATSIM"); + me["Simple_R1S"].setText("METAR "); + me["Simple_R2"].setText("NOAA "); + me["Simple_R3"].setText("VATSIM "); + me["Simple_L6S"].setText(" RETURN TO"); + me["Simple_L6"].setText(" COMM MENU"); + me["Simple_R6S"].setText("PAGE "); + me["Simple_R6"].setText("PRINT "); + + pageSwitch[i].setBoolValue(1); + } + if (atsu.AOC.server == 1) { + me["Simple_R1"].setText("VATSIM "); + me["Simple_R2_Arrow"].show(); + me["Simple_R3_Arrow"].hide(); + } elsif (atsu.AOC.server == 0) { + me["Simple_R1"].setText("NOAA "); + me["Simple_R2_Arrow"].hide(); + me["Simple_R3_Arrow"].show(); + } + + if (atsu.ATIS.server == 1) { + me["Simple_L1"].setText(" VATSIM"); + me["Simple_L2_Arrow"].show(); + me["Simple_L3_Arrow"].hide(); + } elsif (atsu.ATIS.server == 0) { + me["Simple_L1"].setText(" FAA"); + me["Simple_L2_Arrow"].hide(); + me["Simple_L3_Arrow"].show(); + } + } else if (page == "COMMINIT") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("COMM INIT"); + me.defaultPageNumbers(); + + me.showLeft(-1, 1, 1, 1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, 1, 1, 1, -1, -1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showRight(-1, -1, 1, -1, -1, 1); + me.showRightS(-1, -1, 1, -1, -1, 1); + me.showRightArrow(-1, -1, 1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, normal, normal, normal, normal, normal); + me.fontSizeRight(normal, normal, normal, normal, small, normal); + + me.colorLeft("wht", "blu", "blu", "blu", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("wht", "wht", "wht", "wht", "wht", "blu"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "blu"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L2S"].setText(" A/C REGISTR"); + me["Simple_L2"].setText(getprop("/options/model-options/registration")); + me["Simple_L3S"].setText(" ACARS A/L ID"); + me["Simple_L3"].setText(getprop("/options/model-options/two-letter")); + me["Simple_L4S"].setText(" STANDARD A/L ID"); + me["Simple_L4"].setText(getprop("/options/model-options/three-letter")); + me["Simple_L6"].setText(" RETURN"); + me["Simple_R3S"].setText("VHF3 "); + me["Simple_R3"].setText("SCAN SEL "); + me["Simple_R6S"].setText("PAGE "); + me["Simple_R6"].setText("PRINT "); + + pageSwitch[i].setBoolValue(1); + } + } else if (page == "COMMSTATUS") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("COMM STATUS"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, -1, 1, 1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(-1, 1, 1, -1, 1, 1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showRight(1, 1, -1, 1, 1, 1); + me.showRightS(-1, 1, 1, 1, 1, 1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, small, normal, normal, small, normal); + me.fontSizeRight(normal, small, normal, small, small, normal); + + me.colorLeft("wht", "grn", "grn", "wht", "grn", "wht"); + me.colorLeftS("wht", "grn", "grn", "wht", "grn", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("wht", "grn", "wht", "grn", "grn", "wht"); + me.colorRightS("wht", "grn", "grn", "wht", "grn", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1"].setText(" VHF3"); + me["Simple_L2S"].setText(" OP"); + me["Simple_L2"].setText(" COMM"); + me["Simple_L4"].setText(" SATCOM"); + me["Simple_L5"].setText(" COMM"); + me["Simple_L6S"].setText(" RETURN TO"); + me["Simple_L6"].setText(" COMM MENU"); + me["Simple_R1"].setText("HF1 "); + me["Simple_R2S"].setText("OP "); + me["Simple_R2"].setText("COMM "); + me["Simple_R3S"].setText("VOICE "); + me["Simple_R4S"].setText("HF2 "); + me["Simple_R4S"].setFontSize(normal); + me["Simple_R4"].setText("OP "); + me["Simple_R5S"].setText("COMM "); + me["Simple_R5"].setText("VOICE "); + me["Simple_R6S"].setText("PAGE "); + me["Simple_R6"].setText("PRINT "); + + pageSwitch[i].setBoolValue(1); + } + me["Simple_L3S"].setText(ecam.vhf3_voice.active == 1 ? " VOICE " : " DATA"); + me["Simple_L5S"].setText(getprop("/options/model-options/wifi-aft") ? " OP" : " NOT INST"); + me["Simple_L5"].setText(getprop("/options/model-options/wifi-aft") ? " COMM" : " DLK INOP"); + } else if (page == "COMPANYCALL") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHide(); + me["Simple_Title"].setText("COMPANY CALL"); + me.defaultPageNumbers(); + + me.showLeft(1, 1, -1, -1, -1, 1); + me["Simple_L0S"].hide(); + me.showLeftS(1, 1, -1, -1, -1, 1); + me.showLeftArrow(-1, -1, -1, -1, -1, 1); + me.showRight(1, -1, -1, -1, -1, 1); + me.showRightS(1, -1, -1, -1, -1, 1); + me.showRightArrow(-1, -1, -1, -1, -1, -1); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.fontLeft(default, default, default, default, default, default); + me.fontLeftS(default, default, default, default, default, default); + me.fontRight(default, default, default, default, default, default); + me.fontRightS(default, default, default, default, default, default); + + me.fontSizeLeft(normal, small, normal, normal, small, normal); + me.fontSizeRight(normal, small, normal, small, small, normal); + + me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRight("blu", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + me["Simple_L1S"].setText(" VHF3 TUNE"); + me["Simple_L2S"].setText(" TEXT"); + me["Simple_L6S"].setText(" RETURN TO"); + me["Simple_L6"].setText(" COMM MENU"); + me["Simple_R1S"].setText("CO CALL "); + me["Simple_R1"].setText("CLEAR "); + me["Simple_R6S"].setText("CALL "); + me["Simple_R6"].setText("PRINT "); + + pageSwitch[i].setBoolValue(1); + } + + if (atsu.CompanyCall.received) { + me["COCALL"].hide(); + } else { + me["COCALL"].show(); + } + + if (atsu.CompanyCall.frequency != 999.99) { + if (atsu.CompanyCall.tuned) { + me["COCALLTUNE"].hide(); + } else { + me["COCALLTUNE"].show(); + } + } else { + me["COCALLTUNE"].hide(); + } + + if (atsu.CompanyCall.activeMsg != "") { + me["Simple_L2"].setText(sprintf("%s", atsu.CompanyCall.activeMsg)); + me["Simple_L2"].show(); + } else { + me["Simple_L2"].hide(); + } + + if (atsu.CompanyCall.frequency != 999.99) { + me["Simple_L1"].setText(" " ~ sprintf("%5.2f", atsu.CompanyCall.frequency)); + } else { + me["Simple_L1"].setText(" ---.--"); + } } else if (page == "STATUS") { if (!pageSwitch[i].getBoolValue()) { me["Simple"].show(); @@ -497,6 +1425,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].show(); @@ -515,11 +1444,7 @@ var canvas_MCDU_base = { me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText(sprintf("%s", " " ~ acType.getValue())); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, -1, 1, 1); me["Simple_L0S"].hide(); @@ -548,7 +1473,7 @@ var canvas_MCDU_base = { me["Simple_L5"].setText("[ ]"); - me["Simple_L6"].setText("+4.0/+0.0"); + me["Simple_L6"].setText("+0.0/+1.0"); me["Simple_L1S"].setText(" ENG"); me["Simple_L2S"].setText(" ACTIVE NAV DATA BASE"); me["Simple_L3S"].setText(" SECOND NAV DATA BASE"); @@ -592,7 +1517,7 @@ var canvas_MCDU_base = { me["arrow5R"].setColor(getprop("/MCDUC/colors/blu/r"),getprop("/MCDUC/colors/blu/g"),getprop("/MCDUC/colors/blu/b")); } - if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 7) { + if (fmgc.FMGCInternal.phase == 0 or fmgc.FMGCInternal.phase == 7) { me["Simple_L5"].show(); me["Simple_L5S"].show(); } else { @@ -601,20 +1526,7 @@ var canvas_MCDU_base = { } } else if (page == "DATA") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].hide(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); - me["PERFAPPR"].hide(); - me["PERFGA"].hide(); - me["Simple_Title"].show(); + me.defaultHide(); me["Simple_Title"].setText("DATA INDEX"); me["Simple_Title"].setColor(1, 1, 1); me["Simple_PageNum"].setText("1/2"); @@ -632,21 +1544,8 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); - - me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRight("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); - + me.standardFontSize(); + me.standardFontColour(); # why is this needed? me["Simple_L5"].show(); @@ -667,20 +1566,7 @@ var canvas_MCDU_base = { } } else if (page == "DATA2") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].hide(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); - me["PERFAPPR"].hide(); - me["PERFGA"].hide(); - me["Simple_Title"].show(); + me.defaultHide(); me["Simple_Title"].setText("DATA INDEX"); me["Simple_Title"].setColor(1, 1, 1); me["Simple_PageNum"].setText("2/2"); @@ -698,21 +1584,8 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); - - me.colorLeft("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRight("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); - me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); - + me.standardFontSize(); + me.standardFontColour(); pageSwitch[i].setBoolValue(1); } @@ -734,20 +1607,7 @@ var canvas_MCDU_base = { me["Simple_R4S"].setText("PILOTS "); } else if (page == "PILOTWP") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].hide(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); - me["PERFAPPR"].hide(); - me["PERFGA"].hide(); - me["Simple_Title"].show(); + me.defaultHide(); me["Simple_PageNum"].show(); me["ArrowLeft"].show(); me["ArrowRight"].show(); @@ -756,13 +1616,7 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); @@ -773,41 +1627,11 @@ var canvas_MCDU_base = { me["Simple_Title"].setText(sprintf("%s", myPilotWP[i].title ~ " ")); - forindex (var matrixArrow; myPilotWP[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myPilotWP[i].arrowsMatrix[matrixArrow]) { - if (myPilotWP[i].arrowsMatrix[matrixArrow][item] == 1) { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].show(); - } else { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].hide(); - } - } - } + me.dynamicPageArrowFunc(myPilotWP[i]); me.colorLeftArrow(myPilotWP[i].arrowsColour[0][0],myPilotWP[i].arrowsColour[0][1],myPilotWP[i].arrowsColour[0][2],myPilotWP[i].arrowsColour[0][3],myPilotWP[i].arrowsColour[0][4],myPilotWP[i].arrowsColour[0][5]); me.colorRightArrow(myPilotWP[i].arrowsColour[1][0],myPilotWP[i].arrowsColour[1][1],myPilotWP[i].arrowsColour[1][2],myPilotWP[i].arrowsColour[1][3],myPilotWP[i].arrowsColour[1][4],myPilotWP[i].arrowsColour[1][5]); - - forindex (var matrixFont; myPilotWP[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myPilotWP[i].fontMatrix[matrixFont]) { - if (myPilotWP[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } - + me.dynamicPageFontFunc(myPilotWP[i]); me.dynamicPageFunc(myPilotWP[i].L1, "Simple_L1"); me.dynamicPageFunc(myPilotWP[i].L2, "Simple_L2"); @@ -831,26 +1655,13 @@ var canvas_MCDU_base = { } } else if (page == "POSMON") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("POSITION MONITOR"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, 1, 1); me["Simple_L0S"].hide(); @@ -864,13 +1675,7 @@ var canvas_MCDU_base = { me.showRightS(-1, -1, -1, -1, 1, 1); me.showRightArrow(-1, -1, -1, -1, -1, 1); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeft("wht", "wht", "wht", "wht", "grn", "blu"); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); @@ -900,26 +1705,9 @@ var canvas_MCDU_base = { me["Simple_C5S"].setText("IRS2"); } else if (page == "RADNAV") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].hide(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); - me["PERFAPPR"].hide(); - me["PERFGA"].hide(); - me["Simple_Title"].show(); + me.defaultHide(); me["Simple_Title"].setText("RADIO NAV"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, 1, -1); me["Simple_L0S"].hide(); @@ -978,7 +1766,7 @@ var canvas_MCDU_base = { } else { me["Simple_L5"].setFont(symbol); me["Simple_L5"].setFontSize(small); - me["Simple_L5"].setText("[ ]/[ . ]"); + me["Simple_L5"].setText("[ ]/[ ]"); } if (vor2FreqSet.getValue() == 1) { @@ -998,7 +1786,7 @@ var canvas_MCDU_base = { } else { me["Simple_R5"].setFont(symbol); me["Simple_R5"].setFontSize(small); - me["Simple_R5"].setText("[ . ]/[ ]"); + me["Simple_R5"].setText("[ ]/[ ]"); } me["Simple_L1"].setText(" " ~ vor1.getValue()); @@ -1012,13 +1800,37 @@ var canvas_MCDU_base = { me["Simple_L5S"].setText("ADF1/FREQ"); me["Simple_R1"].setText(" " ~ vor2.getValue()); me["Simple_R2"].setText(sprintf("%3.0f", vor2CRS.getValue())); - me["Simple_R3"].setText("[ ]/[ ]"); + me["Simple_R3"].setText("[ ]/[ ]"); me["Simple_R4"].setText("-.- [ ]"); me["Simple_R1S"].setText("FREQ/VOR2"); me["Simple_R2S"].setText("CRS"); me["Simple_R3S"].setText("CHAN/ MLS"); me["Simple_R4S"].setText("SLOPE CRS"); me["Simple_R5S"].setText("FREQ/ADF2"); + + if (getprop("systems/radio/rmp[0]/nav") or getprop("systems/radio/rmp[1]/nav")) { + me["Simple_L1"].hide(); + me["Simple_L2"].hide(); + me["Simple_L3"].hide(); + me["Simple_L4"].hide(); + me["Simple_L5"].hide(); + me["Simple_R1"].hide(); + me["Simple_R2"].hide(); + me["Simple_R3"].hide(); + me["Simple_R4"].hide(); + me["Simple_R5"].hide(); + } else { + me["Simple_L1"].show(); + me["Simple_L2"].show(); + me["Simple_L3"].show(); + me["Simple_L4"].show(); + me["Simple_L5"].show(); + me["Simple_R1"].show(); + me["Simple_R2"].show(); + me["Simple_R3"].show(); + me["Simple_R4"].show(); + me["Simple_R5"].show(); + } } else if (page == "INITA") { if (!pageSwitch[i].getBoolValue()) { me["Simple"].show(); @@ -1029,6 +1841,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); @@ -1070,53 +1883,54 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (flightNumSet.getValue() == 1) { + if (fmgc.FMGCInternal.flightNumSet) { me["INITA_FltNbr"].hide(); me["Simple_L3"].show(); } else { me["INITA_FltNbr"].show(); me["Simple_L3"].hide(); } - if (toFromSet.getValue() != 1 and costIndexSet.getValue() != 1) { + + if (!fmgc.FMGCInternal.toFromSet and !fmgc.FMGCInternal.costIndexSet) { me["INITA_CostIndex"].hide(); me["Simple_L5"].setColor(1,1,1); me["Simple_L5"].show(); me["Simple_L5"].setText("---"); - } else if (costIndexSet.getValue() == 1) { + } else if (fmgc.FMGCInternal.costIndexSet) { me["INITA_CostIndex"].hide(); me["Simple_L5"].setColor(0.0901,0.6039,0.7176); me["Simple_L5"].show(); - me["Simple_L5"].setText(sprintf("%s", costIndex.getValue())); + me["Simple_L5"].setText(sprintf("%s", fmgc.FMGCInternal.costIndex)); } else { me["INITA_CostIndex"].show(); me["Simple_L5"].hide(); } - if (toFromSet.getValue() != 1 and cruiseSet.getValue() != 1) { + if (!fmgc.FMGCInternal.toFromSet and !fmgc.FMGCInternal.crzSet) { me["INITA_CruiseFLTemp"].hide(); me["Simple_L6"].setColor(1,1,1); me["Simple_L6"].setText("-----/---g"); - } else if (cruiseSet.getValue() == 1 and cruiseTempSet.getValue() == 1) { + } else if (fmgc.FMGCInternal.crzSet and fmgc.FMGCInternal.crzTempSet) { me["INITA_CruiseFLTemp"].hide(); me["Simple_L6"].setColor(0.0901,0.6039,0.7176); - me["Simple_L6"].setText(sprintf("%s", "FL" ~ cruiseFL.getValue()) ~ sprintf("/%sg", cruiseTemp.getValue())); - } else if (cruiseSet.getValue() == 1) { + me["Simple_L6"].setText(sprintf("%s", "FL" ~ fmgc.FMGCInternal.crzFl) ~ sprintf("/%sg", fmgc.FMGCInternal.crzTemp)); + } else if (fmgc.FMGCInternal.crzSet) { me["INITA_CruiseFLTemp"].hide(); me["Simple_L6"].setColor(0.0901,0.6039,0.7176); - setprop("/FMGC/internal/cruise-temp", 15 - (2 * cruiseFL.getValue() / 10)); - setprop("/FMGC/internal/cruise-temp-set", 1); - me["Simple_L6"].setText(sprintf("%s", "FL" ~ cruiseFL.getValue()) ~ sprintf("/%sg", cruiseTemp.getValue())); + fmgc.FMGCInternal.crzTemp = 15 - (2 * fmgc.FMGCInternal.crzFl / 10); + fmgc.FMGCInternal.crzTempSet = 1; + me["Simple_L6"].setText(sprintf("%s", "FL" ~ fmgc.FMGCInternal.crzFl) ~ sprintf("/%sg", fmgc.FMGCInternal.crzTemp)); } else { me["INITA_CruiseFLTemp"].show(); me["Simple_L6"].setColor(0.7333,0.3803,0); me["Simple_L6"].setText(" g"); } - if (toFromSet.getValue() == 1) { + if (fmgc.FMGCInternal.toFromSet) { me["INITA_CoRoute"].hide(); me["INITA_FromTo"].hide(); me["Simple_L1"].show(); me["Simple_L2"].setColor(0.0901,0.6039,0.7176); - if (altSet.getValue() == 1) { - me["Simple_L2"].setText(alt_airport.getValue()); + if (fmgc.FMGCInternal.altAirportSet) { + me["Simple_L2"].setText(fmgc.FMGCInternal.altAirport); } else { me["Simple_L2"].setText("NONE"); } @@ -1131,7 +1945,11 @@ var canvas_MCDU_base = { me["Simple_L2"].setText("----/----------"); me.showRight(-1, 1, 0, 0, 0, 0); me["Simple_R2S"].show(); - me["INITA_InitRequest"].show(); + if (!Simbrief.SimbriefParser.inhibit) { + me["INITA_InitRequest"].show(); + } else { + me["INITA_InitRequest"].hide(); + } } if (ADIRSMCDUBTN.getValue() != 1) { me["INITA_AlignIRS"].show(); @@ -1142,24 +1960,24 @@ var canvas_MCDU_base = { me["Simple_R3"].setColor(WHITE); me.showRightArrow(0, 0, 1, 0, 0, 0); } - if (tropoSet.getValue() == 1) { + if (fmgc.FMGCInternal.tropoSet) { me["Simple_R5"].setFontSize(normal); } else { me["Simple_R5"].setFontSize(small); } me["Simple_R6S"].setText("GND TEMP"); - if (getprop("/FMGC/status/phase") == 0 and !getprop("/FMGC/internal/gndtemp-set")) { - setprop("/FMGC/internal/gndtemp", 15 - (2 * getprop("/position/gear-agl-ft") / 1000)); - me["Simple_R6"].setText(sprintf("%.0fg", gndtemp.getValue())); + if (fmgc.FMGCInternal.phase == 0 and !fmgc.FMGCInternal.gndTempSet) { + fmgc.FMGCInternal.gndTemp = 15 - (2 * getprop("/position/gear-agl-ft") / 1000); + me["Simple_R6"].setText(sprintf("%.0fg", fmgc.FMGCInternal.gndTemp)); me["Simple_R6"].setFontSize(small); } else { - if (getprop("/FMGC/internal/gndtemp-set")) { + if (fmgc.FMGCInternal.gndTempSet) { me["Simple_R6"].setFontSize(normal); } else { me["Simple_R6"].setFontSize(small); } - me["Simple_R6"].setText(sprintf("%.0fg", gndtemp.getValue())); + me["Simple_R6"].setText(sprintf("%.0fg", fmgc.FMGCInternal.gndTemp)); } me["Simple_L1S"].setText(" CO RTE"); @@ -1168,16 +1986,16 @@ var canvas_MCDU_base = { me["Simple_L5S"].setText("COST INDEX"); me["Simple_L6S"].setText("CRZ FL/TEMP"); me["Simple_L1"].setText("NONE"); - me["Simple_L3"].setText(sprintf("%s", flightNum.getValue())); + me["Simple_L3"].setText(sprintf("%s", fmgc.FMGCInternal.flightNum)); me["Simple_R1S"].setText("FROM/TO "); me["Simple_R2S"].setText("INIT "); me["Simple_R5S"].setText("TROPO"); - me["Simple_R1"].setText(sprintf("%s", depArpt.getValue() ~ "/" ~ arrArpt.getValue())); + me["Simple_R1"].setText(sprintf("%s", fmgc.FMGCInternal.depApt ~ "/" ~ fmgc.FMGCInternal.arrApt)); me["Simple_R2"].setText("REQUEST "); me["Simple_R3"].setText("IRS INIT "); me["Simple_R4"].setText("WIND "); - me["Simple_R5"].setText(sprintf("%5.0f", tropo.getValue())); + me["Simple_R5"].setText(sprintf("%5.0f", fmgc.FMGCInternal.tropo)); } else if (page == "IRSINIT") { if (!pageSwitch[i].getBoolValue()) { me["Simple"].show(); @@ -1188,6 +2006,7 @@ var canvas_MCDU_base = { me["IRSINIT"].show(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); @@ -1195,11 +2014,7 @@ var canvas_MCDU_base = { me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("IRS INIT"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, -1, -1, -1, 1); me["Simple_L0S"].hide(); @@ -1247,7 +2062,7 @@ var canvas_MCDU_base = { me["IRSINIT_2"].hide(); } - if (toFromSet.getValue() == 1) { + if (fmgc.FMGCInternal.toFromSet) { degrees = getprop("/FMGC/internal/align-ref-lat-degrees"); minutes = getprop("/FMGC/internal/align-ref-lat-minutes"); sign = getprop("/FMGC/internal/align-ref-lat-sign"); @@ -1357,26 +2172,13 @@ var canvas_MCDU_base = { } else if (page == "ROUTESELECTION") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("ROUTE SELECTION"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, -1, -1, -1, -1, 1); me["Simple_L0S"].hide(); @@ -1402,12 +2204,12 @@ var canvas_MCDU_base = { me["Simple_L1"].setText("NONE"); me["Simple_L6"].setText(" RETURN"); - if (toFromSet.getValue() == 1 and alt_selected.getValue() == 0) { - me["Simple_Title"].setText(sprintf("%s", depArpt.getValue() ~ "/" ~ arrArpt.getValue())); - } else if (toFromSet.getValue() == 0 and alt_airport.getValue() != "" and alt_selected.getValue() == 1) { - me["Simple_Title"].setText(sprintf("%s", alt_airport.getValue())); - } else if (toFromSet.getValue() == 1 and alt_airport.getValue() != "" and alt_selected.getValue() == 1) { - me["Simple_Title"].setText(sprintf("%s", arrArpt.getValue() ~ "/" ~ alt_airport.getValue())); + if (fmgc.FMGCInternal.toFromSet and !fmgc.FMGCInternal.altSelected) { + me["Simple_Title"].setText(sprintf("%s", fmgc.FMGCInternal.depApt ~ "/" ~ fmgc.FMGCInternal.arrApt)); + } else if (!fmgc.FMGCInternal.toFromSet and fmgc.FMGCInternal.altAirport != "" and fmgc.FMGCInternal.altSelected) { + me["Simple_Title"].setText(sprintf("%s", fmgc.FMGCInternal.altAirport)); + } else if (fmgc.FMGCInternal.toFromSet and fmgc.FMGCInternal.altAirport != "" and fmgc.FMGCInternal.altSelected) { + me["Simple_Title"].setText(sprintf("%s", fmgc.FMGCInternal.arrApt ~ "/" ~ fmgc.FMGCInternal.altAirport)); } else { me["Simple_Title"].setText("ROUTE SELECTION"); } @@ -1422,6 +2224,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].show(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); @@ -1451,7 +2254,7 @@ var canvas_MCDU_base = { me.fontRightS(default, default, default, default, default, default); me.fontSizeLeft(small, small, small, small, small, small); - me.fontSizeCenter(small, small, small, small, small, small); + me.fontSizeCenter(normal, small, small, small, small, small); me.fontSizeRight(normal, normal, normal, small, small, small); me["Simple_C4B"].setFontSize(small); @@ -1468,7 +2271,11 @@ var canvas_MCDU_base = { } me["Simple_L1S"].setText("TAXI"); - me["Simple_L1"].setText(sprintf("%2.1f", taxi_fuel.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L1"].setText(sprintf("%2.1f", fmgc.FMGCInternal.taxiFuel * LBS2KGS)); + } else { + me["Simple_L1"].setText(sprintf("%2.1f", fmgc.FMGCInternal.taxiFuel)); + } me["Simple_L2S"].setText("TRIP/TIME"); me["Simple_L3S"].setText("RTE RSV/PCT"); me["Simple_L4S"].setText("ALTN/TIME"); @@ -1477,29 +2284,33 @@ var canvas_MCDU_base = { me["Simple_R2S"].setText("BLOCK"); me["Simple_R4S"].setText("TOW/ LW"); me["Simple_R5S"].setText("TRIP WIND"); - me["Simple_R5"].setText(trip_wind.getValue()); + me["Simple_R5"].setText(fmgc.FMGCInternal.tripWind); me["Simple_R6S"].setText("EXTRA/TIME"); me["Simple_Title"].setColor(1, 1, 1); - if (!getprop("/FMGC/internal/fuel-request-set")) { + if (!fmgc.FMGCInternal.fuelRequest) { me["Simple_L2"].setText("---.-/----"); me["Simple_L3"].setText("---.-"); - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); me["Simple_L4"].setText("---.-/----"); me["Simple_C4"].hide(); me["Simple_L5"].setText("---.-"); - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); me["Simple_L6"].setText("---.-"); - if (blockSet.getValue() == 1) { + if (fmgc.FMGCInternal.blockSet) { me["Simple_R2"].show(); me["INITB_Block"].hide(); - me["Simple_R2"].setText(sprintf("%3.1f", block.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS)); + } else { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block)); + } } else { me["Simple_R2"].hide(); me["INITB_Block"].show(); } - if (zfwSet.getValue() == 1) { + if (fmgc.FMGCInternal.zfwSet) { me["Simple_R3S"].show(); me["Simple_R3"].show(); me["Simple_R3S"].setText("FUEL"); @@ -1525,14 +2336,14 @@ var canvas_MCDU_base = { me["Simple_Title"].setText("INIT FUEL PREDICTION "); - if (getprop("/FMGC/internal/block-calculating")) { + if (fmgc.FMGCInternal.blockCalculating) { me["Simple_L2"].setText("---.-/----"); me["Simple_L3"].setText("---.-"); - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); me["Simple_L4"].setText("---.-/----"); me["Simple_C4"].hide(); me["Simple_L5"].setText("---.-"); - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); me["Simple_L6"].setText("---.-"); me["Simple_R2"].show(); me["Simple_R2"].setText("---.-"); @@ -1551,18 +2362,22 @@ var canvas_MCDU_base = { me.colorRight("ack", "wht", "grn", "wht", "ack", "wht"); me["Simple_R3S"].setColor(GREEN); } else { - if (!getprop("/FMGC/internal/block-confirmed")) { + if (!fmgc.FMGCInternal.blockConfirmed) { me["Simple_L2"].setText("---.-/----"); me["Simple_L3"].setText("---.-"); - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); me["Simple_L4"].setText("---.-/----"); me["Simple_C4"].hide(); me["Simple_L5"].setText("---.-"); - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); me["Simple_L6"].setText("---.-"); me["Simple_R2"].show(); me["INITB_Block"].hide(); - me["Simple_R2"].setText(sprintf("%3.1f", block.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS)); + } else { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block)); + } me["Simple_R3S"].show(); me["Simple_R3"].show(); me["Simple_R3S"].setText("BLOCK"); @@ -1570,10 +2385,18 @@ var canvas_MCDU_base = { me["Simple_R3_Arrow"].show(); me["Simple_R3_Arrow"].setColor(AMBER); me["Simple_C4B"].show(); - if (num(tow.getValue()) >= 100.0) { - me["Simple_C4B"].setText(sprintf(" %4.1f/", tow.getValue())); + if (num(fmgc.FMGCInternal.tow) >= 100.0) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS)); + } else { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow)); + } } else { - me["Simple_C4B"].setText(sprintf(" %4.1f/", tow.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS)); + } else { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow)); + } } me["Simple_R4"].setText("---.-"); me["Simple_R6"].setText("---.-/----"); @@ -1582,40 +2405,52 @@ var canvas_MCDU_base = { me.colorRight("ack", "blu", "amb", "wht", "ack", "wht"); me["Simple_R3S"].setColor(AMBER); } else { - if (getprop("/FMGC/internal/fuel-calculating")) { + if (fmgc.FMGCInternal.fuelCalculating) { me["Simple_L2"].setText("---.-/----"); me["Simple_L3"].setText("---.-"); - if (rte_rsv_set.getValue() == 1) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (rte_percent_set.getValue() == 1) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (fmgc.FMGCInternal.rteRsvSet) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (fmgc.FMGCInternal.rtePercentSet) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } me["Simple_L4"].setText("---.-/----"); me["Simple_C4"].hide(); me["Simple_L5"].setText("---.-"); - if (final_fuel_set.getValue() == 1 and final_time_set.getValue() == 1) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); - } else if (final_fuel_set.getValue() == 1) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); - } else if (final_time_set.getValue() == 1) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (fmgc.FMGCInternal.finalFuelSet and fmgc.FMGCInternal.finalTimeSet) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); + } else if (fmgc.FMGCInternal.finalFuelSet) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); + } else if (fmgc.FMGCInternal.finalTimeSet) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } me["Simple_L6"].setText("---.-"); me["Simple_R2"].show(); me["INITB_Block"].hide(); - me["Simple_R2"].setText(sprintf("%3.1f", block.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS)); + } else { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block)); + } me["Simple_R3S"].hide(); me["Simple_R3"].hide(); me["Simple_R3_Arrow"].hide(); me["Simple_C4B"].show(); - if (num(tow.getValue()) >= 100.0) { - me["Simple_C4B"].setText(sprintf(" %4.1f/", tow.getValue())); + if (num(fmgc.FMGCInternal.tow) >= 100.0) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS)); + } else { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow)); + } } else { - me["Simple_C4B"].setText(sprintf(" %4.1f/", tow.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS)); + } else { + me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow)); + } } me["Simple_R4"].setText("---.-"); me["Simple_R6"].setText("---.-/----"); @@ -1623,54 +2458,66 @@ var canvas_MCDU_base = { me.colorLeft("ack", "wht", "wht", "wht", "wht", "wht"); me.colorRight("ack", "blu", "ack", "wht", "ack", "wht"); } else { - me["Simple_L2"].setText(sprintf("%.1f/" ~ trip_time.getValue(), trip_fuel.getValue())); - me["Simple_L3"].setText(sprintf("%.1f", rte_rsv.getValue())); - if (rte_rsv_set.getValue() == 1) { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L2"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.tripTime, fmgc.FMGCInternal.tripFuel * LBS2KGS)); + } else { + me["Simple_L2"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.tripTime, fmgc.FMGCInternal.tripFuel)); + } + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv * LBS2KGS)); + } else { + me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv)); + } + if (fmgc.FMGCInternal.rteRsvSet) { + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } - } else if (rte_percent_set.getValue() == 1) { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + } else if (fmgc.FMGCInternal.rtePercentSet) { + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } } else { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } } - if (altSet.getValue() == 1) { - me["Simple_L4"].setText(sprintf("%.1f", alt_fuel.getValue())); + if (fmgc.FMGCInternal.altAirportSet) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel * LBS2KGS)); + } else { + me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel)); + } me["Simple_L4"].setColor(BLUE); me["Simple_C4"].show(); - if (alt_fuel_set.getValue() == 1) { - if (num(alt_fuel.getValue()) > 9.9) { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + if (fmgc.FMGCInternal.altFuelSet) { + if (num(fmgc.FMGCInternal.altFuel) > 9.9) { + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } else { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } } else { - if (num(alt_fuel.getValue()) > 9.9) { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + if (num(fmgc.FMGCInternal.altFuel) > 9.9) { + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } else { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } } } else { @@ -1678,42 +2525,60 @@ var canvas_MCDU_base = { me["Simple_L4"].setColor(WHITE); me["Simple_C4"].hide(); } - me["Simple_L5"].setText(sprintf("%.1f", final_fuel.getValue())); - if (final_time_set.getValue() == 1 and final_fuel_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel * LBS2KGS)); + } else { + me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel)); + } + if (fmgc.FMGCInternal.finalTimeSet and fmgc.FMGCInternal.finalFuelSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } - } else if (final_time_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + } else if (fmgc.FMGCInternal.finalTimeSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } - } else if (final_fuel_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + } else if (fmgc.FMGCInternal.finalFuelSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } } else { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } } - me["Simple_L6"].setText(sprintf("%.1f", min_dest_fob.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob * LBS2KGS)); + } else { + me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob)); + } me["Simple_R2"].show(); me["INITB_Block"].hide(); - me["Simple_R2"].setText(sprintf("%3.1f", block.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS)); + } else { + me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block)); + } me["Simple_R3S"].hide(); me["Simple_R3"].hide(); me["Simple_R3_Arrow"].hide(); me["Simple_C4B"].hide(); - me["Simple_R4"].setText(sprintf("%4.1f/", tow.getValue()) ~ sprintf("%4.1f", lw.getValue())); - me["Simple_R6"].setText(sprintf("%.1f/" ~ extra_time.getValue(), extra_fuel.getValue())); + + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_R4"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.tow * LBS2KGS) ~ sprintf("%4.1f", fmgc.FMGCInternal.lw * LBS2KGS)); + me["Simple_R6"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel * LBS2KGS)); + } else { + me["Simple_R4"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.tow) ~ sprintf("%4.1f", fmgc.FMGCInternal.lw)); + me["Simple_R6"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel)); + } me.colorLeft("ack", "grn", "blu", "ack", "blu", "blu"); me.colorRight("ack", "blu", "ack", "grn", "ack", "grn"); @@ -1722,38 +2587,48 @@ var canvas_MCDU_base = { } } - me["Simple_R1S"].setText("ZFWCG/ ZFW"); - me["Simple_R1"].setText(sprintf("%3.1f", zfw.getValue())); - if (zfwcgSet.getValue() == 1) { - me["Simple_C1"].setFontSize(normal); - me["Simple_C1"].setText(" " ~ sprintf("%3.1f", zfwcg.getValue())); - me["INITB_ZFWCG"].hide(); + me["Simple_R1S"].setText("ZFW/ZFWCG"); + me["Simple_R1"].setText(sprintf("%3.1f", fmgc.FMGCInternal.zfwcg)); + me["INITB_ZFWCG"].hide(); + me["INITB_ZFWCG_S"].show(); + me["Simple_R1"].show(); + if (fmgc.FMGCInternal.zfwcgSet) { + me["Simple_R1"].setFontSize(normal); } else { - me["Simple_C1"].setFontSize(small); - me["Simple_C1"].setText(" " ~ sprintf("%3.1f", zfwcg.getValue())); - me["INITB_ZFWCG"].hide(); + me["Simple_R1"].setFontSize(small); } - if (zfwSet.getValue() == 1) { + if (fmgc.FMGCInternal.zfwSet) { + if (fmgc.FMGCInternal.zfw < 100) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS)); + } else { + me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw)); + } + } else { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS)); + } else { + me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw)); + } + } + me["Simple_C1"].show(); me["INITB_ZFW"].hide(); - me["INITB_ZFW_S"].show(); - me["Simple_R1"].show(); } else { + me["Simple_C1"].hide(); me["INITB_ZFW"].show(); - me["INITB_ZFW_S"].hide(); - me["Simple_R1"].hide(); } - - if (taxi_fuel_set.getValue() == 1) { + + if (fmgc.FMGCInternal.taxiFuelSet) { me["Simple_L1"].setFontSize(normal); } else { me["Simple_L1"].setFontSize(small); } - if (rte_rsv_set.getValue() == 1) { + if (fmgc.FMGCInternal.rteRsvSet) { me["Simple_L3"].setFontSize(normal); me["Simple_C3"].setFontSize(small); - } else if (rte_percent_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.rtePercentSet) { me["Simple_L3"].setFontSize(small); me["Simple_C3"].setFontSize(normal); } else { @@ -1761,19 +2636,19 @@ var canvas_MCDU_base = { me["Simple_C3"].setFontSize(small); } - if (alt_fuel_set.getValue() == 1 and altSet.getValue() == 1) { + if (fmgc.FMGCInternal.altFuelSet and fmgc.FMGCInternal.crzSet) { me["Simple_L4"].setFontSize(normal); } else { me["Simple_L4"].setFontSize(small); } - if (final_fuel_set.getValue() == 1 and final_time_set.getValue() == 1) { + if (fmgc.FMGCInternal.finalFuelSet and fmgc.FMGCInternal.finalTimeSet) { me["Simple_L5"].setFontSize(normal); me["Simple_C5"].setFontSize(normal); - } else if (final_fuel_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.finalFuelSet) { me["Simple_L5"].setFontSize(normal); me["Simple_C5"].setFontSize(small); - } else if (final_time_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.finalTimeSet) { me["Simple_L5"].setFontSize(small); me["Simple_C5"].setFontSize(normal); } else { @@ -1781,7 +2656,7 @@ var canvas_MCDU_base = { me["Simple_C5"].setFontSize(small); } - if (min_dest_fob_set.getValue() == 1) { + if (fmgc.FMGCInternal.minDestFobSet) { me["Simple_L6"].setFontSize(normal); } else { me["Simple_L6"].setFontSize(small); @@ -1797,6 +2672,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].show(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); @@ -1828,7 +2704,7 @@ var canvas_MCDU_base = { me.fontRightS(default, default, default, default, default, default); me.fontSizeLeft(normal, normal, small, small, small, small); - me.fontSizeCenter(small, small, small, small, small, small); + me.fontSizeCenter(small, small, normal, small, small, small); me.fontSizeRight(normal, normal, normal, small, small, small); me["Simple_C3B"].setFontSize(small); @@ -1845,15 +2721,15 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (!engrdy.getBoolValue() or toFromSet.getValue() != 1) { + if (!engrdy.getBoolValue() or !fmgc.FMGCInternal.toFromSet) { me["Simple_L1"].setText("----"); } else { - me["Simple_L1"].setText(arrArpt.getValue()); + me["Simple_L1"].setText(fmgc.FMGCInternal.arrApt); } - if (!engrdy.getBoolValue() or alt_airport.getValue() == "") { + if (!engrdy.getBoolValue() or !fmgc.FMGCInternal.altAirportSet) { me["Simple_L2"].setText("----"); } else { - me["Simple_L2"].setText(alt_airport.getValue()); + me["Simple_L2"].setText(fmgc.FMGCInternal.altAirport); } me["Simple_L1S"].setText("AT"); @@ -1875,22 +2751,22 @@ var canvas_MCDU_base = { me["Simple_R5S"].setText(" GW/ CG"); me["Simple_R6S"].setText("EXTRA/TIME"); - if (!getprop("/FMGC/internal/fuel-request-set") or !getprop("/FMGC/internal/block-confirmed") or getprop("/FMGC/internal/fuel-calculating")) { + if (!fmgc.FMGCInternal.fuelRequest or !fmgc.FMGCInternal.blockConfirmed or fmgc.FMGCInternal.fuelCalculating) { me["Simple_L3"].setText("---.-"); - if (rte_rsv_set.getValue() == 1) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (rte_percent_set.getValue() == 1) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (fmgc.FMGCInternal.rteRsvSet) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (fmgc.FMGCInternal.rtePercentSet) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } me["Simple_L4"].setText("---.-/----"); me["Simple_C4"].hide(); me["Simple_L5"].setText("---.-"); - if (final_fuel_set.getValue() == 1 or final_time_set.getValue() == 1) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (fmgc.FMGCInternal.finalFuelSet or fmgc.FMGCInternal.finalTimeSet) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } me["Simple_L6"].setText("---.-"); @@ -1901,53 +2777,61 @@ var canvas_MCDU_base = { me.colorLeft("ack", "ack", "wht", "wht", "wht", "wht"); me.colorRight("ack", "ack", "ack", "wht", "wht", "wht"); } else { - me["Simple_L3"].setText(sprintf("%.1f", rte_rsv.getValue())); - if (rte_rsv_set.getValue() == 1) { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv * LBS2KGS)); + } else { + me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv)); + } + if (fmgc.FMGCInternal.rteRsvSet) { + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } - } else if (rte_percent_set.getValue() == 1) { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + } else if (fmgc.FMGCInternal.rtePercentSet) { + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } } else { - if (num(rte_rsv.getValue()) > 9.9 and num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_rsv.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); - } else if (num(rte_percent.getValue()) > 9.9) { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rteRsv) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); + } else if (num(fmgc.FMGCInternal.rtePercent) > 9.9) { + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } else { - me["Simple_C3B"].setText(sprintf("/%.1f ", rte_percent.getValue())); + me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent)); } } - if (altSet.getValue() == 1) { - me["Simple_L4"].setText(sprintf("%.1f", alt_fuel.getValue())); + if (fmgc.FMGCInternal.altAirportSet) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel * LBS2KGS)); + } else { + me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel)); + } me["Simple_L4"].setColor(BLUE); me["Simple_C4"].show(); - if (alt_fuel_set.getValue() == 1) { - if (num(alt_fuel.getValue()) > 9.9) { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + if (fmgc.FMGCInternal.altFuelSet) { + if (num(fmgc.FMGCInternal.altFuel) > 9.9) { + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } else { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } } else { - if (num(alt_fuel.getValue()) > 9.9) { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + if (num(fmgc.FMGCInternal.altFuel) > 9.9) { + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } else { - me["Simple_C4"].setText(sprintf("/%s ", alt_time.getValue())); + me["Simple_C4"].setText(sprintf("/%s ", fmgc.FMGCInternal.altTime)); } } } else { @@ -1955,71 +2839,88 @@ var canvas_MCDU_base = { me["Simple_L4"].setColor(WHITE); me["Simple_C4"].hide(); } - me["Simple_L5"].setText(sprintf("%.1f", final_fuel.getValue())); - if (final_time_set.getValue() == 1 and final_fuel_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel * LBS2KGS)); + } else { + me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel)); + } + if (fmgc.FMGCInternal.finalTimeSet and fmgc.FMGCInternal.finalFuelSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } - } else if (final_time_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + } else if (fmgc.FMGCInternal.finalTimeSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } - } else if (final_fuel_set.getValue() == 1) { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + } else if (fmgc.FMGCInternal.finalFuelSet) { + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } } else { - if (num(final_fuel.getValue()) > 9.9) { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + if (num(fmgc.FMGCInternal.finalFuel) > 9.9) { + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } else { - me["Simple_C5"].setText(sprintf("/%s ", final_time.getValue())); + me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime)); } } - me["Simple_L6"].setText(sprintf("%.1f", min_dest_fob.getValue())); - - setprop("/FMGC/internal/fob", num(getprop("/consumables/fuel/total-fuel-lbs") / 1000)); - setprop("/FMGC/internal/fuel-pred-gw", num(getprop("/fdm/jsbsim/inertia/weight-lbs") / 1000)); - setprop("/FMGC/internal/cg", num(getprop("/FMGC/internal/zfwcg"))); - me["Simple_R4"].setText(sprintf("%4.1f/" ~ fffq_sensor.getValue(), fob.getValue())); - me["Simple_R5"].setText(sprintf("%4.1f/", gw.getValue()) ~ sprintf("%4.1f", cg.getValue())); - me["Simple_R6"].setText(sprintf("%4.1f/" ~ extra_time.getValue(), extra_fuel.getValue())); + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob * LBS2KGS)); + me["Simple_R4"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.fffqSensor, fmgc.FMGCInternal.fob * LBS2KGS)); + me["Simple_R5"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.fuelPredGw * LBS2KGS) ~ sprintf("%4.1f", fmgc.FMGCInternal.cg)); + me["Simple_R6"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel * LBS2KGS)); + } else { + me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob)); + me["Simple_R4"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.fffqSensor, fmgc.FMGCInternal.fob)); + me["Simple_R5"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.fuelPredGw) ~ sprintf("%4.1f", fmgc.FMGCInternal.cg)); + me["Simple_R6"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel)); + } me.colorLeft("ack", "ack", "blu", "ack", "blu", "blu"); me.colorRight("ack", "ack", "blu", "grn", "grn", "grn"); } - me["Simple_R3S"].setText("ZFWCG/ZFW"); - me["Simple_R3"].setText(sprintf("%3.1f", zfw.getValue())); - if (zfwcgSet.getValue() == 1) { - me["Simple_C3"].setFontSize(normal); - me["Simple_C3"].setText(" " ~ sprintf("%3.1f", zfwcg.getValue())); - me["FUELPRED_ZFWCG"].hide(); + me["Simple_R3S"].setText("ZFW/ZFWCG"); + me["Simple_R3"].setText(sprintf("%3.1f", fmgc.FMGCInternal.zfwcg)); + me["Simple_R3"].show(); + me["FUELPRED_ZFWCG"].hide(); + me["FUELPRED_ZFWCG_S"].show(); + if (fmgc.FMGCInternal.zfwcgSet) { + me["Simple_R3"].setFontSize(normal); } else { - me["Simple_C3"].setFontSize(small); - me["Simple_C3"].setText(" " ~ sprintf("%3.1f", zfwcg.getValue())); - me["FUELPRED_ZFWCG"].hide(); + me["Simple_R3"].setFontSize(small); } - if (zfwSet.getValue() == 1) { + if (fmgc.FMGCInternal.zfwSet) { + if (fmgc.FMGCInternal.zfw < 100) { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS)); + } else { + me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw)); + } + } else { + if (acconfig_weight_kgs.getValue() == 1) { + me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS)); + } else { + me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw)); + } + } + me["Simple_C3"].show(); me["FUELPRED_ZFW"].hide(); - me["FUELPRED_ZFW_S"].show(); - me["Simple_R3"].show(); } else { + me["Simple_C3"].hide(); me["FUELPRED_ZFW"].show(); - me["FUELPRED_ZFW_S"].hide(); - me["Simple_R3"].hide(); } - if (rte_rsv_set.getValue() == 1) { + if (fmgc.FMGCInternal.rteRsvSet) { me["Simple_L3"].setFontSize(normal); me["Simple_C3B"].setFontSize(small); - } else if (rte_percent_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.rtePercentSet) { me["Simple_L3"].setFontSize(small); me["Simple_C3B"].setFontSize(normal); } else { @@ -2027,19 +2928,19 @@ var canvas_MCDU_base = { me["Simple_C3B"].setFontSize(small); } - if (alt_fuel_set.getValue() == 1 and altSet.getValue() == 1) { + if (fmgc.FMGCInternal.altFuelSet and fmgc.FMGCInternal.crzSet == 1) { me["Simple_L4"].setFontSize(normal); } else { me["Simple_L4"].setFontSize(small); } - if (final_fuel_set.getValue() == 1 and final_time_set.getValue() == 1) { + if (fmgc.FMGCInternal.finalFuelSet and fmgc.FMGCInternal.finalTimeSet) { me["Simple_L5"].setFontSize(normal); me["Simple_C5"].setFontSize(normal); - } else if (final_fuel_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.finalFuelSet) { me["Simple_L5"].setFontSize(normal); me["Simple_C5"].setFontSize(small); - } else if (final_time_set.getValue() == 1) { + } else if (fmgc.FMGCInternal.finalTimeSet) { me["Simple_L5"].setFontSize(small); me["Simple_C5"].setFontSize(normal); } else { @@ -2047,23 +2948,23 @@ var canvas_MCDU_base = { me["Simple_C5"].setFontSize(small); } - if (min_dest_fob_set.getValue() == 1) { + if (fmgc.FMGCInternal.minDestFobSet) { me["Simple_L6"].setFontSize(normal); } else { me["Simple_L6"].setFontSize(small); } } else if (page == "PROGTO" or page == "PROGCLB" or page == "PROGCRZ" or page == "PROGDES") { - if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) { + if (fmgc.FMGCInternal.phase == 0 or fmgc.FMGCInternal.phase == 1) { setprop("/MCDU[" ~ i ~ "]/page", "PROGTO"); page = "PROGTO"; - } else if (getprop("/FMGC/status/phase") == 2) { + } else if (fmgc.FMGCInternal.phase == 2) { setprop("/MCDU[" ~ i ~ "]/page", "PROGCLB"); page = "PROGCLB"; - } else if (getprop("/FMGC/status/phase") == 3) { + } else if (fmgc.FMGCInternal.phase == 3) { setprop("/MCDU[" ~ i ~ "]/page", "PROGCRZ"); page = "PROGCRZ"; - } else if (getprop("/FMGC/status/phase") == 4 or getprop("/FMGC/status/phase") == 5 or getprop("/FMGC/status/phase") == 6) { + } else if (fmgc.FMGCInternal.phase == 4 or fmgc.FMGCInternal.phase == 5 or fmgc.FMGCInternal.phase == 6) { setprop("/MCDU[" ~ i ~ "]/page", "PROGDES"); page = "PROGDES"; } @@ -2077,21 +2978,22 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].show(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); - if (flightNumSet.getValue() == 1) { + if (fmgc.FMGCInternal.flightNumSet) { if (page == "PROGTO") { - me["Simple_Title"].setText(sprintf("TAKE OFF %s", flightNum.getValue())); + me["Simple_Title"].setText(sprintf("TAKE OFF %s", fmgc.FMGCInternal.flightNum)); } else if (page == "PROGCLB") { - me["Simple_Title"].setText(sprintf("CLIMB %s", flightNum.getValue())); + me["Simple_Title"].setText(sprintf("CLIMB %s", fmgc.FMGCInternal.flightNum)); } else if (page == "PROGCRZ") { - me["Simple_Title"].setText(sprintf("CRUISE %s", flightNum.getValue())); + me["Simple_Title"].setText(sprintf("CRUISE %s", fmgc.FMGCInternal.flightNum)); } else if (page == "PROGDES") { - me["Simple_Title"].setText(sprintf("DESCENT %s", flightNum.getValue())); + me["Simple_Title"].setText(sprintf("DESCENT %s", fmgc.FMGCInternal.flightNum)); } } else { if (page == "PROGTO") { @@ -2157,11 +3059,11 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (cruiseSet.getValue() == 1 and page != "PROGDES") { - if (getprop("/it-autoflight/input/alt") > cruiseFL_prog.getValue() * 100) { + if (fmgc.FMGCInternal.crzSet and page != "PROGDES") { + if (getprop("/it-autoflight/input/alt") > fmgc.FMGCInternal.crzProg * 100) { me["Simple_L1"].setText(sprintf("%s", "FL" ~ getprop("/it-autoflight/input/alt") / 100)); } else { - me["Simple_L1"].setText(sprintf("%s", "FL" ~ cruiseFL_prog.getValue())); + me["Simple_L1"].setText(sprintf("%s", "FL" ~ fmgc.FMGCInternal.crzProg)); } } else { me["Simple_L1"].setText("----"); @@ -2207,6 +3109,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].show(); me["arrowsDepArr"].hide(); @@ -2252,9 +3155,6 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - me["Simple_L1"].setText(sprintf("%3.0f", v1.getValue())); - me["Simple_L2"].setText(sprintf("%3.0f", vr.getValue())); - me["Simple_L3"].setText(sprintf("%3.0f", v2.getValue())); me["Simple_L4"].setText(sprintf("%3.0f", fmgc.FMGCInternal.transAlt)); me["Simple_L5"].setText(sprintf("%3.0f", clbReducFt.getValue()) ~ sprintf("/%3.0f", reducFt.getValue())); me["Simple_L6"].setText(" TO DATA"); @@ -2264,7 +3164,7 @@ var canvas_MCDU_base = { me["Simple_L4S"].setText("TRANS ALT"); me["Simple_L5S"].setText("THR RED/ACC"); me["Simple_L6S"].setText(" UPLINK"); - me["Simple_R2"].setText("[ ] "); + me["Simple_R2"].setText("[ ] "); me["Simple_R5"].setText(sprintf("%3.0f", engOutAcc.getValue())); me["Simple_R6"].setText("PHASE "); me["Simple_R1S"].setText("RWY "); @@ -2280,7 +3180,7 @@ var canvas_MCDU_base = { me["Simple_L4"].setFontSize(small); } - if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 7) { + if (fmgc.FMGCInternal.phase == 0 or fmgc.FMGCInternal.phase == 7) { me["Simple_L6_Arrow"].show(); me["Simple_L6"].show(); me["Simple_L6S"].show(); @@ -2290,7 +3190,7 @@ var canvas_MCDU_base = { me["Simple_L6S"].hide(); } - if (getprop("/FMGC/status/phase") == 1) { + if (fmgc.FMGCInternal.phase == 1) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); } else { me["Simple_Title"].setColor(1, 1, 1); @@ -2302,27 +3202,33 @@ var canvas_MCDU_base = { me["Simple_Title"].setText("TAKE OFF"); } - if (v1Set.getValue() == 1) { + if (fmgc.FMGCInternal.v1set) { me["PERFTO_V1"].hide(); + me["Simple_L1"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v1)); me["Simple_L1"].show(); } else { me["PERFTO_V1"].show(); me["Simple_L1"].hide(); } - if (vrSet.getValue() == 1) { + + if (fmgc.FMGCInternal.vrset) { me["PERFTO_VR"].hide(); + me["Simple_L2"].setText(sprintf("%3.0f", fmgc.FMGCInternal.vr)); me["Simple_L2"].show(); } else { me["PERFTO_VR"].show(); me["Simple_L2"].hide(); } - if (v2Set.getValue() == 1) { + + if (fmgc.FMGCInternal.v2set) { me["PERFTO_V2"].hide(); + me["Simple_L3"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v2)); me["Simple_L3"].show(); } else { me["PERFTO_V2"].show(); me["Simple_L3"].hide(); } + if (thrAccSet.getValue() == 1) { me["Simple_L5"].setFontSize(normal); } else { @@ -2340,7 +3246,7 @@ var canvas_MCDU_base = { } else { me["Simple_R3"].setFont(symbol); me["Simple_R3"].setFontSize(small); - me["Simple_R3"].setText("[ ]/[ ]"); + me["Simple_R3"].setText("[ ]/[ ]"); } if (flexSet.getValue() == 1) { me["Simple_R4"].setFont(default); @@ -2357,10 +3263,10 @@ var canvas_MCDU_base = { me["Simple_R5"].setFontSize(small); } - if ((zfwSet.getValue() == 1 and blockSet.getValue() == 1) or getprop("/FMGC/status/phase") == 1) { - me["Simple_C1"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/flap2_to"))); - me["Simple_C2"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/slat_to"))); - me["Simple_C3"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/clean_to"))); + if ((fmgc.FMGCInternal.zfwSet and fmgc.FMGCInternal.blockSet) or fmgc.FMGCInternal.phase == 1) { + me["Simple_C1"].setText(sprintf("%3.0f", fmgc.FMGCInternal.flap2_to)); + me["Simple_C2"].setText(sprintf("%3.0f", fmgc.FMGCInternal.slat_to)); + me["Simple_C3"].setText(sprintf("%3.0f", fmgc.FMGCInternal.clean_to)); } else { me["Simple_C1"].setText(" ---"); me["Simple_C2"].setText(" ---"); @@ -2372,26 +3278,13 @@ var canvas_MCDU_base = { me["Simple_C3S"].setText("CLEAN "); } else if (page == "PERFCLB") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("CLB"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, 1, 1); me["Simple_L0S"].hide(); @@ -2428,7 +3321,7 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (getprop("/FMGC/status/phase") == 2) { + if (fmgc.FMGCInternal.phase == 2) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); me.showLeft(0, 0, 0, 0, 1, 0); me.showLeftS(0, 0, 0, 0, 1, 0); @@ -2458,7 +3351,7 @@ var canvas_MCDU_base = { me.colorLeft("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftS("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftArrow("ack", "ack", "ack", "ack", "ack", "amb"); - } else if (getprop("/FMGC/status/phase") == 5) { + } else if (fmgc.FMGCInternal.phase == 5) { me["Simple_L6S"].setText(""); me["Simple_L6"].setText(""); me.colorLeft("ack", "ack", "ack", "ack", "ack", "blu"); @@ -2494,28 +3387,28 @@ var canvas_MCDU_base = { me.fontLeft(0, 0, 0, symbol, 0, 0); } else { me["Simple_L1"].setText("SELECTED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/spd-mach"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/mach"))); } else { - me["Simple_L4"].setText(sprintf(" %s", int(getprop("/it-autoflight/input/spd-kts")))); + me["Simple_L4"].setText(sprintf(" %s", int(getprop("/it-autoflight/input/kts")))); } me.fontLeft(0, 0, 0, default, 0, 0); } me["Simple_L2S"].setText(" CI"); - if (costIndexSet.getValue() == 1) { + if (fmgc.FMGCInternal.costIndexSet) { me["Simple_L2"].setColor(0.0901,0.6039,0.7176); - me["Simple_L2"].setText(sprintf(" %s", costIndex.getValue())); + me["Simple_L2"].setText(sprintf(" %s", fmgc.FMGCInternal.costIndex)); } else { me["Simple_L2"].setColor(1,1,1); me["Simple_L2"].setText(" ---"); } me["Simple_L3S"].setText(" MANAGED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L3"].setText(sprintf(" %3.3f", getprop("/FMGC/internal/mng-spd"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L3"].setText(sprintf(" %3.3f", fmgc.FMGCInternal.mngSpd)); } else { - me["Simple_L3"].setText(sprintf(" %s", int(getprop("/FMGC/internal/mng-spd")))); + me["Simple_L3"].setText(sprintf(" %s", int(fmgc.FMGCInternal.mngSpd))); } me["Simple_L5S"].setText(" EXPEDITE"); @@ -2539,26 +3432,13 @@ var canvas_MCDU_base = { me["Simple_R6"].setText("PHASE "); } else if (page == "PERFCRZ") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("CRZ"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, -1, 1); me["Simple_L0S"].hide(); @@ -2594,7 +3474,7 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (getprop("/FMGC/status/phase") == 3) { + if (fmgc.FMGCInternal.phase == 3) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); if (managedSpeed.getValue() == 1) { @@ -2618,7 +3498,7 @@ var canvas_MCDU_base = { me.colorLeft("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftS("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftArrow("ack", "ack", "ack", "ack", "ack", "amb"); - } else if (getprop("/FMGC/status/phase") == 5) { + } else if (fmgc.FMGCInternal.phase == 5) { me["Simple_L6S"].setText(""); me["Simple_L6"].setText(""); me.colorLeft("ack", "ack", "ack", "ack", "ack", "blu"); @@ -2648,17 +3528,17 @@ var canvas_MCDU_base = { me.fontLeft(0, 0, 0, symbol, 0, 0); } else { me["Simple_L1"].setText("SELECTED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/spd-mach"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/mach"))); } else { - me["Simple_L4"].setText(sprintf(" %s", int(getprop("/it-autoflight/input/spd-kts")))); + me["Simple_L4"].setText(sprintf(" %s", int(getprop("/it-autoflight/input/kts")))); } me.fontLeft(0, 0, 0, default, 0, 0); } - if (costIndexSet.getValue() == 1) { + if (fmgc.FMGCInternal.costIndexSet) { me["Simple_L2"].setColor(0.0901,0.6039,0.7176); - me["Simple_L2"].setText(sprintf(" %s", costIndex.getValue())); + me["Simple_L2"].setText(sprintf(" %s", fmgc.FMGCInternal.costIndex)); } else { me["Simple_L2"].setColor(1,1,1); me["Simple_L2"].setText(" ---"); @@ -2668,10 +3548,10 @@ var canvas_MCDU_base = { me["Simple_L2S"].setText(" CI"); me["Simple_L3S"].setText(" MANAGED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L3"].setText(sprintf(" %3.3f", getprop("/FMGC/internal/mng-spd"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L3"].setText(sprintf(" %3.3f", fmgc.FMGCInternal.mngSpd)); } else { - me["Simple_L3"].setText(sprintf(" %s", int(getprop("/FMGC/internal/mng-spd")))); + me["Simple_L3"].setText(sprintf(" %s", int(fmgc.FMGCInternal.mngSpd))); } me["Simple_R1S"].setText("DEST EFOB"); @@ -2689,26 +3569,13 @@ var canvas_MCDU_base = { } else if (page == "PERFDES") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("DES"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, 1, 1); me["Simple_L0S"].hide(); @@ -2745,7 +3612,7 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (getprop("/FMGC/status/phase") == 4) { + if (fmgc.FMGCInternal.phase == 4) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); me.showLeft(0, 0, 0, 0, 1, 0); me.showRight(0, 1, 0, 1, 0, 0); @@ -2774,7 +3641,7 @@ var canvas_MCDU_base = { me.colorLeft("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftS("ack", "ack", "ack", "ack", "ack", "amb"); me.colorLeftArrow("ack", "ack", "ack", "ack", "ack", "amb"); - } else if (getprop("/FMGC/status/phase") == 5) { + } else if (fmgc.FMGCInternal.phase == 5) { me["Simple_L6S"].setText(""); me["Simple_L6"].setText(""); me.colorLeft("ack", "ack", "ack", "ack", "ack", "blu"); @@ -2809,17 +3676,17 @@ var canvas_MCDU_base = { me.fontLeft(0, 0, 0, symbol, 0, 0); } else { me["Simple_L1"].setText("SELECTED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/spd-mach"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L4"].setText(sprintf(" %3.3f", getprop("/it-autoflight/input/mach"))); } else { - me["Simple_L4"].setText(sprintf(" %3.0f", getprop("/it-autoflight/input/spd-kts"))); + me["Simple_L4"].setText(sprintf(" %3.0f", getprop("/it-autoflight/input/kts"))); } me.fontLeft(0, 0, 0, default, 0, 0); } - if (costIndexSet.getValue() == 1) { + if (fmgc.FMGCInternal.costIndexSet) { me["Simple_L2"].setColor(0.0901,0.6039,0.7176); - me["Simple_L2"].setText(sprintf(" %2.0f", costIndex.getValue())); + me["Simple_L2"].setText(sprintf(" %2.0f", fmgc.FMGCInternal.costIndex)); } else { me["Simple_L2"].setColor(1,1,1); me["Simple_L2"].setText(" ---"); @@ -2829,10 +3696,10 @@ var canvas_MCDU_base = { me["Simple_L2S"].setText(" CI"); me["Simple_L3S"].setText(" MANAGED"); - if (getprop("/it-autoflight/input/kts-mach")) { - me["Simple_L3"].setText(sprintf(" %3.3f", getprop("/FMGC/internal/mng-spd"))); + if (fmgc.Input.ktsMach.getValue()) { + me["Simple_L3"].setText(sprintf(" %3.3f", fmgc.FMGCInternal.mngSpd)); } else { - me["Simple_L3"].setText(sprintf(" %3.0f", getprop("/FMGC/internal/mng-spd"))); + me["Simple_L3"].setText(sprintf(" %3.0f", fmgc.FMGCInternal.mngSpd)); } me["Simple_L5"].setText(" EXPEDITE"); @@ -2860,26 +3727,13 @@ var canvas_MCDU_base = { me["Simple_R6"].setText("PHASE "); } else if (page == "PERFAPPR") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].show(); me["PERFGA"].hide(); me["Simple_Title"].show(); me["Simple_Title"].setText("APPR"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(1, 1, 1, 1, 1, 1); me["Simple_L0S"].show(); @@ -2914,7 +3768,7 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (getprop("/FMGC/status/phase") == 5) { + if (fmgc.FMGCInternal.phase == 5) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); } else { me["Simple_Title"].setColor(1, 1, 1); @@ -2942,10 +3796,20 @@ var canvas_MCDU_base = { } me["Simple_L3S"].setText("MAG WIND"); - if (dest_mag.getValue() != -1 and dest_wind.getValue() != -1) { - me["Simple_L3"].setText(sprintf("%03.0fg", dest_mag.getValue()) ~ sprintf("/%.0f", dest_wind.getValue())); + if (fmgc.FMGCInternal.destMagSet and fmgc.FMGCInternal.destWindSet) { + me["Simple_L3"].setText(sprintf("%03.0fg", fmgc.FMGCInternal.destMag) ~ sprintf("/%.0f", fmgc.FMGCInternal.destWind)); + me["Simple_L3"].setFontSize(normal); } else { - me["Simple_L3"].setText("---g/---");; + me["Simple_L3"].setFontSize(small); + if (myDESWIND[i] != nil and myDESWIND[i].returnGRND() != nil) { + var result = myDESWIND[i].returnGRND(); + me["Simple_L3"].setText(sprintf("%03.0fg", result[0]) ~ sprintf("/%.0f", result[1])); + } else if (myDESWIND[math.abs(i-1)] != nil and myDESWIND[math.abs(i-1)].returnGRND() != nil) { + var result = myDESWIND[math.abs(i-1)].returnGRND(); + me["Simple_L3"].setText(sprintf("%03.0fg", result[0]) ~ sprintf("/%.0f", result[1])); + } else { + me["Simple_L3"].setText("---g/---"); + } } me["Simple_L4S"].setText("TRANS FL"); @@ -2982,7 +3846,7 @@ var canvas_MCDU_base = { me["Simple_R3"].setText(sprintf("%.0f", getprop("/FMGC/internal/radio"))); me.fontRight(0, 0, default, 0, 0, 0); me.fontSizeRight(0, 0, normal, 0, 0, 0); - } else if (getprop("/FMGC/internal/radio-no")) { + } else if (fmgc.FMGCInternal.radioNo) { me["Simple_R3"].setText("NO"); me.fontRight(0, 0, default, 0, 0, 0); me.fontSizeRight(0, 0, normal, 0, 0, 0); @@ -2995,7 +3859,7 @@ var canvas_MCDU_base = { me["Simple_R4S"].setText("LDG CONF "); me["Simple_R4"].setText("CONF3 "); me["Simple_R5"].setText("FULL "); - if (ldg_config_3_set.getValue() == 1 and ldg_config_f_set.getValue() == 0) { + if (fmgc.FMGCInternal.ldgConfig3 == 1 and fmgc.FMGCInternal.ldgConfigFull == 0) { me["PERFAPPR_LDG_3"].hide(); me["PERFAPPR_LDG_F"].show(); me.fontSizeRight(0, 0, 0, normal, small, 0); @@ -3012,14 +3876,14 @@ var canvas_MCDU_base = { me["Simple_R6"].setText("PHASE "); me["Simple_L5S"].setText(" VAPP"); - if ((zfwSet.getValue() == 1 and blockSet.getValue() == 1) or getprop("/FMGC/status/phase") == 5) { - me["Simple_C1"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/flap2_appr"))); - me["Simple_C2"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/slat_appr"))); - me["Simple_C3"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/clean_appr"))); - me["Simple_C5"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/vls_appr"))); - me["Simple_L5"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/vapp_appr"))); + if ((fmgc.FMGCInternal.zfwSet and fmgc.FMGCInternal.blockSet) or fmgc.FMGCInternal.phase == 5) { + me["Simple_C1"].setText(sprintf("%3.0f", fmgc.FMGCInternal.flap2_appr)); + me["Simple_C2"].setText(sprintf("%3.0f", fmgc.FMGCInternal.slat_appr)); + me["Simple_C3"].setText(sprintf("%3.0f", fmgc.FMGCInternal.clean_appr)); + me["Simple_C5"].setText(sprintf("%3.0f", fmgc.FMGCInternal.vls_appr)); + me["Simple_L5"].setText(sprintf("%3.0f", fmgc.FMGCInternal.vapp_appr)); me.fontLeft(0, 0, 0, 0, default, 0); - if (vapp_speed_set.getValue()) { + if (fmgc.FMGCInternal.vappSpeedSet) { me.fontSizeLeft(0, 0, 0, 0, normal, 0); } else { me.fontSizeLeft(0, 0, 0, 0, small, 0); @@ -3029,8 +3893,8 @@ var canvas_MCDU_base = { me["Simple_C2"].setText(" ---"); me["Simple_C3"].setText(" ---"); me["Simple_C5"].setText(" ---"); - if (vapp_speed_set.getValue()) { - me["Simple_L5"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/vapp_appr"))); + if (fmgc.FMGCInternal.vappSpeedSet) { + me["Simple_L5"].setText(sprintf("%3.0f", fmgc.FMGCInternal.vapp_appr)); me.fontLeft(0, 0, 0, 0, default, 0); me.fontSizeLeft(0, 0, 0, 0, normal, 0); } else { @@ -3046,26 +3910,13 @@ var canvas_MCDU_base = { me["Simple_C5S"].setText("VLS "); } else if (page == "PERFGA") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["PERFAPPR"].hide(); me["PERFGA"].show(); me["Simple_Title"].show(); me["Simple_Title"].setText("GO AROUND"); - me["Simple_Title"].setColor(1, 1, 1); - me["Simple_PageNum"].setText("X/X"); - me["Simple_PageNum"].hide(); - me["ArrowLeft"].hide(); - me["ArrowRight"].hide(); + me.defaultPageNumbers(); me.showLeft(-1, -1, -1, -1, 1, 1); me["Simple_L0S"].hide(); @@ -3100,7 +3951,7 @@ var canvas_MCDU_base = { pageSwitch[i].setBoolValue(1); } - if (getprop("/FMGC/status/phase") == 6) { + if (fmgc.FMGCInternal.phase == 6) { me["Simple_Title"].setColor(0.0509,0.7529,0.2941); } else { me["Simple_Title"].setColor(1, 1, 1); @@ -3124,10 +3975,10 @@ var canvas_MCDU_base = { me["Simple_R5"].setText(sprintf("%3.0f", engOutAcc.getValue())); me["Simple_R5S"].setText("ENG OUT ACC"); - if ((zfwSet.getValue() == 1 and blockSet.getValue() == 1) or getprop("/FMGC/status/phase") == 6) { - me["Simple_C1"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/flap2_appr"))); - me["Simple_C2"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/slat_appr"))); - me["Simple_C3"].setText(sprintf("%3.0f", getprop("/FMGC/internal/computed-speeds/clean_appr"))); + if ((fmgc.FMGCInternal.zfwSet and fmgc.FMGCInternal.blockSet) or fmgc.FMGCInternal.phase == 6) { + me["Simple_C1"].setText(sprintf("%3.0f", fmgc.FMGCInternal.flap2_appr)); + me["Simple_C2"].setText(sprintf("%3.0f", fmgc.FMGCInternal.slat_appr)); + me["Simple_C3"].setText(sprintf("%3.0f", fmgc.FMGCInternal.clean_appr)); } else { me["Simple_C1"].setText(" ---"); me["Simple_C2"].setText(" ---"); @@ -3137,22 +3988,13 @@ var canvas_MCDU_base = { me["Simple_C1S"].setText("FLP RETR"); me["Simple_C2S"].setText("SLT RETR"); me["Simple_C3S"].setText("CLEAN "); - } else if (page == "LATREV") { + } else if (page == "WINDCLB" or page == "WINDCRZ" or page == "WINDDES" or page == "WINDHIST") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); - me["arrowsDepArr"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); + me["WIND"].show(); me["ArrowLeft"].hide(); me["ArrowRight"].hide(); @@ -3166,7 +4008,121 @@ var canvas_MCDU_base = { me.fontRightS(default, default, default, default, default, default); me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + + me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht"); + + if (page == "WINDCLB") { + myWind = myCLBWIND; + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "amb"); + me.colorRightS("wht", "wht", "amb", "wht", "wht", "amb"); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + } else if (page == "WINDCRZ") { + myWind = myCRZWIND; + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "amb"); + me.colorRightS("wht", "amb", "wht", "wht", "wht", "amb"); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + } else if (page == "WINDDES") { + myWind = myDESWIND; + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "amb"); + me.colorRightS("wht", "wht", "amb", "wht", "wht", "amb"); + me.fontSizeCenter(normal, normal, normal, normal, normal, normal); + } else if (page == "WINDHIST") { + myWind = myHISTWIND; + me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); + me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + me.fontSizeCenter(small, small, small, small, small, normal); + } + + if (page == "WINDHIST") { + if (fmgc.windController.hist_winds.wind1.set) { + me["WIND_INSERT_star"].show(); + } else { + me["WIND_INSERT_star"].hide(); + } + me["WIND_CANCEL"].hide(); + } else { + if (fmgc.flightPlanController.temporaryFlag[i]) { + me["WIND_CANCEL"].show(); + me["WIND_INSERT_star"].show(); + } else { + me["WIND_CANCEL"].hide(); + me["WIND_INSERT_star"].hide(); + } + } + + if (myWind[i] != nil) { + if (page == "WINDCRZ") { + me["Simple_Title"].setText(sprintf("%s", myWind[i].title[0] ~ myWind[i].title[1] ~ myWind[i].title[2])); + if (fmgc.flightPlanController.temporaryFlag[i]) { + if (size(fmgc.windController.nav_indicies[i]) > 1) { + me["WIND_UPDOWN"].show(); + } else { + me["WIND_UPDOWN"].hide(); + } + } else { + if (size(fmgc.windController.nav_indicies[2]) > 1) { + me["WIND_UPDOWN"].show(); + } else { + me["WIND_UPDOWN"].hide(); + } + } + } else { + me["Simple_Title"].setText(sprintf("%s", myWind[i].title)); + me["WIND_UPDOWN"].hide(); + } + + me["Simple_Title"].setColor(getprop("/MCDUC/colors/" ~ myWind[i].titleColour ~ "/r"), getprop("/MCDUC/colors/" ~ myWind[i].titleColour ~ "/g"), getprop("/MCDUC/colors/" ~ myWind[i].titleColour ~ "/b")); + + me.dynamicPageArrowFunc(myWind[i]); + me.colorLeftArrow(myWind[i].arrowsColour[0][0],myWind[i].arrowsColour[0][1],myWind[i].arrowsColour[0][2],myWind[i].arrowsColour[0][3],myWind[i].arrowsColour[0][4],myWind[i].arrowsColour[0][5]); + + me.dynamicPageFontFunc(myWind[i]); + + me.dynamicPageFunc(myWind[i].L1, "Simple_L1"); + me.dynamicPageFunc(myWind[i].L2, "Simple_L2"); + me.dynamicPageFunc(myWind[i].L3, "Simple_L3"); + me.dynamicPageFunc(myWind[i].L4, "Simple_L4"); + me.dynamicPageFunc(myWind[i].L5, "Simple_L5"); + me.dynamicPageFunc(myWind[i].L6, "Simple_L6"); + + me.colorLeft(myWind[i].L1[2],myWind[i].L2[2],myWind[i].L3[2],myWind[i].L4[2],myWind[i].L5[2],myWind[i].L6[2]); + + me.dynamicPageFunc(myWind[i].C1, "Simple_C1"); + me.dynamicPageFunc(myWind[i].C2, "Simple_C2"); + me.dynamicPageFunc(myWind[i].C3, "Simple_C3"); + me.dynamicPageFunc(myWind[i].C4, "Simple_C4"); + me.dynamicPageFunc(myWind[i].C5, "Simple_C5"); + me.dynamicPageFunc(myWind[i].C6, "Simple_C6"); + + me.colorCenter(myWind[i].C1[2],myWind[i].C2[2],myWind[i].C3[2],myWind[i].C4[2],myWind[i].C5[2],myWind[i].C6[2]); + + me.dynamicPageFunc(myWind[i].R1, "Simple_R1"); + me.dynamicPageFunc(myWind[i].R2, "Simple_R2"); + me.dynamicPageFunc(myWind[i].R3, "Simple_R3"); + me.dynamicPageFunc(myWind[i].R4, "Simple_R4"); + me.dynamicPageFunc(myWind[i].R5, "Simple_R5"); + me.dynamicPageFunc(myWind[i].R6, "Simple_R6"); + + me.colorRight(myWind[i].R1[2],myWind[i].R2[2],myWind[i].R3[2],myWind[i].R4[2],myWind[i].R5[2],myWind[i].R6[2]); + } + pageSwitch[i].setBoolValue(1); + } + } else if (page == "LATREV") { + if (!pageSwitch[i].getBoolValue()) { + me.defaultHideWithCenter(); + me["arrowsDepArr"].hide(); + me["Simple_PageNum"].setText("X/X"); + me["Simple_PageNum"].hide(); + me["Simple_Title"].show(); + me["ArrowLeft"].hide(); + me["ArrowRight"].hide(); + + me["Simple_L0S"].hide(); + me["Simple_C3B"].hide(); + me["Simple_C4B"].hide(); + + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); @@ -3176,6 +4132,8 @@ var canvas_MCDU_base = { if (myLatRev[i] != nil) { me["Simple_Title"].setText(sprintf("%s", myLatRev[i].title[0] ~ myLatRev[i].title[1] ~ myLatRev[i].title[2])); + me["Simple_Title"].setColor(getprop("/MCDUC/colors/" ~ myLatRev[i].titleColour ~ "/r"), getprop("/MCDUC/colors/" ~ myLatRev[i].titleColour ~ "/g"), getprop("/MCDUC/colors/" ~ myLatRev[i].titleColour ~ "/b")); + if (myLatRev[i].subtitle[0] != nil) { me["Simple_Center"].show(); @@ -3195,39 +4153,11 @@ var canvas_MCDU_base = { } else { me["Simple_Center"].hide(); } - forindex (var matrixArrow; myLatRev[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myLatRev[i].arrowsMatrix[matrixArrow]) { - if (myLatRev[i].arrowsMatrix[matrixArrow][item] == 1) { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].show(); - } else { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].hide(); - } - } - } + + me.dynamicPageArrowFunc(myLatRev[i]); me.colorLeftArrow(myLatRev[i].arrowsColour[0][0],myLatRev[i].arrowsColour[0][1],myLatRev[i].arrowsColour[0][2],myLatRev[i].arrowsColour[0][3],myLatRev[i].arrowsColour[0][4],myLatRev[i].arrowsColour[0][5]); - - forindex (var matrixFont; myLatRev[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myLatRev[i].fontMatrix[matrixFont]) { - if (myLatRev[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageFontFunc(myLatRev[i]); me.dynamicPageFunc(myLatRev[i].L1, "Simple_L1"); me.dynamicPageFunc(myLatRev[i].L2, "Simple_L2"); @@ -3251,16 +4181,7 @@ var canvas_MCDU_base = { } } else if (page == "VERTREV") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); @@ -3272,13 +4193,7 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); @@ -3307,39 +4222,11 @@ var canvas_MCDU_base = { } else { me["Simple_Center"].hide(); } - forindex (var matrixArrow; myVertRev[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myVertRev[i].arrowsMatrix[matrixArrow]) { - if (myVertRev[i].arrowsMatrix[matrixArrow][item] == 1) { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].show(); - } else { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].hide(); - } - } - } + + me.dynamicPageArrowFunc(myVertRev[i]); me.colorLeftArrow(myVertRev[i].arrowsColour[0][0],myVertRev[i].arrowsColour[0][1],myVertRev[i].arrowsColour[0][2],myVertRev[i].arrowsColour[0][3],myVertRev[i].arrowsColour[0][4],myVertRev[i].arrowsColour[0][5]); - - forindex (var matrixFont; myVertRev[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myVertRev[i].fontMatrix[matrixFont]) { - if (myVertRev[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageFontFunc(myVertRev[i]); me.dynamicPageFunc(myVertRev[i].L1, "Simple_L1"); me.dynamicPageFunc(myVertRev[i].L2, "Simple_L2"); @@ -3363,46 +4250,20 @@ var canvas_MCDU_base = { } } else if (page == "DEPARTURE") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); me["ArrowLeft"].show(); me["ArrowRight"].show(); me["arrowsDepArr"].show(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].show(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); + me.hideAllArrowsButL6(); me["Simple_L0S"].hide(); me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); @@ -3411,42 +4272,8 @@ var canvas_MCDU_base = { if (myDeparture[i] != nil) { me["Simple_Title"].setText(sprintf("%s", myDeparture[i].title[0] ~ myDeparture[i].title[1] ~ myDeparture[i].title[2])); - forindex (var matrixArrow; myDeparture[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDeparture[i].arrowsMatrix[matrixArrow]) { - if (item == 5) { - me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[0][5] ~ "/b")); - continue; - } - if (myDeparture[i].arrowsMatrix[matrixArrow][item] == 1) { - me["arrow" ~ (item + 1) ~ sign].show(); - me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ myDeparture[i].arrowsColour[matrixArrow][item] ~ "/b")); - } else { - me["arrow" ~ (item + 1) ~ sign].hide(); - } - } - } - - forindex (var matrixFont; myDeparture[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDeparture[i].fontMatrix[matrixFont]) { - if (myDeparture[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageArrowFuncDepArr(myDeparture[i]); + me.dynamicPageFontFunc(myDeparture[i]); me.dynamicPageFunc(myDeparture[i].L1, "Simple_L1"); me.dynamicPageFunc(myDeparture[i].L2, "Simple_L2"); @@ -3481,16 +4308,7 @@ var canvas_MCDU_base = { } } else if (page == "DUPLICATENAMES") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["arrowsDepArr"].hide(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); @@ -3502,13 +4320,7 @@ var canvas_MCDU_base = { me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht"); @@ -3519,39 +4331,10 @@ var canvas_MCDU_base = { if (myDuplicate[i] != nil) { me["Simple_Title"].setText(sprintf("%s", myDuplicate[i].title)); - forindex (var matrixArrow; myDuplicate[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDuplicate[i].arrowsMatrix[matrixArrow]) { - if (myDuplicate[i].arrowsMatrix[matrixArrow][item] == 1) { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].show(); - } else { - me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].hide(); - } - } - } + me.dynamicPageArrowFunc(myDuplicate[i]); me.colorLeftArrow(myDuplicate[i].arrowsColour[0][0],myDuplicate[i].arrowsColour[0][1],myDuplicate[i].arrowsColour[0][2],myDuplicate[i].arrowsColour[0][3],myDuplicate[i].arrowsColour[0][4],myDuplicate[i].arrowsColour[0][5]); - - forindex (var matrixFont; myDuplicate[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDuplicate[i].fontMatrix[matrixFont]) { - if (myDuplicate[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageFontFunc(myDuplicate[i]); me.dynamicPageFunc(myDuplicate[i].L1, "Simple_L1"); me.dynamicPageFunc(myDuplicate[i].L2, "Simple_L2"); @@ -3586,90 +4369,37 @@ var canvas_MCDU_base = { } } else if (page == "ARRIVAL") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); me["ArrowLeft"].show(); me["ArrowRight"].show(); me["arrowsDepArr"].show(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].show(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); - + me.hideAllArrowsButL6(); + me["arrow2L"].hide(); + me["arrow2R"].hide(); me["Simple_L0S"].hide(); me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); + if (myArrival[i].arrowsMatrix[0][1]) { + me["Simple_L2_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][1] ~ "/r"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][1] ~ "/g"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][1] ~ "/b")); + me["Simple_L2_Arrow"].show(); + } else { + me["Simple_L2_Arrow"].hide(); + } if (myArrival[i] != nil) { me["Simple_Title"].setText(sprintf("%s", myArrival[i].title[0] ~ myArrival[i].title[1] ~ myArrival[i].title[2])); - forindex (var matrixArrow; myArrival[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myArrival[i].arrowsMatrix[matrixArrow]) { - if (item == 5) { - me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[0][5] ~ "/b")); - continue; - } - if (myArrival[i].arrowsMatrix[matrixArrow][item] == 1) { - me["arrow" ~ (item + 1) ~ sign].show(); - me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ myArrival[i].arrowsColour[matrixArrow][item] ~ "/b")); - } else { - me["arrow" ~ (item + 1) ~ sign].hide(); - } - } - } - - forindex (var matrixFont; myArrival[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myArrival[i].fontMatrix[matrixFont]) { - if (myArrival[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageArrowFuncDepArr(myArrival[i]); + me.dynamicPageFontFunc(myArrival[i]); me.dynamicPageFunc(myArrival[i].L1, "Simple_L1"); me.dynamicPageFunc(myArrival[i].L2, "Simple_L2"); @@ -3704,34 +4434,14 @@ var canvas_MCDU_base = { } } else if (page == "HOLD") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); me["ArrowLeft"].hide(); me["ArrowRight"].hide(); me["arrowsDepArr"].show(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].show(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); + me.hideAllArrowsButL6(); me["Simple_L0S"].hide(); me["Simple_C3B"].hide(); @@ -3754,42 +4464,8 @@ var canvas_MCDU_base = { me["Simple_Title"].setText(sprintf("%s", myHold[i].title[0] ~ myHold[i].title[1] ~ myHold[i].title[2])); me["Simple_Title"].setColor(getprop("/MCDUC/colors/" ~ myHold[i].titleColour ~ "/r"), getprop("/MCDUC/colors/" ~ myHold[i].titleColour ~ "/g"), getprop("/MCDUC/colors/" ~ myHold[i].titleColour ~ "/b")); - forindex (var matrixArrow; myHold[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myHold[i].arrowsMatrix[matrixArrow]) { - if (item == 5) { - me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[0][5] ~ "/b")); - continue; - } - if (myHold[i].arrowsMatrix[matrixArrow][item] == 1) { - me["arrow" ~ (item + 1) ~ sign].show(); - me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ myHold[i].arrowsColour[matrixArrow][item] ~ "/b")); - } else { - me["arrow" ~ (item + 1) ~ sign].hide(); - } - } - } - - forindex (var matrixFont; myHold[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myHold[i].fontMatrix[matrixFont]) { - if (myHold[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageArrowFuncDepArr(myHold[i]); + me.dynamicPageFontFunc(myHold[i]); me.dynamicPageFunc(myHold[i].L1, "Simple_L1"); me.dynamicPageFunc(myHold[i].L2, "Simple_L2"); @@ -3824,34 +4500,14 @@ var canvas_MCDU_base = { } } else if (page == "AIRWAYS") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); me["ArrowLeft"].hide(); me["ArrowRight"].hide(); me["arrowsDepArr"].show(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].show(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); + me.hideAllArrowsButL6(); me["Simple_L0S"].hide(); me["Simple_C3B"].hide(); @@ -3874,42 +4530,8 @@ var canvas_MCDU_base = { me["Simple_Title"].setText(sprintf("%s", myAirways[i].title[0] ~ myAirways[i].title[1] ~ myAirways[i].title[2])); me["Simple_Title"].setColor(getprop("/MCDUC/colors/" ~ myAirways[i].titleColour ~ "/r"), getprop("/MCDUC/colors/" ~ myAirways[i].titleColour ~ "/g"), getprop("/MCDUC/colors/" ~ myAirways[i].titleColour ~ "/b")); - forindex (var matrixArrow; myAirways[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myAirways[i].arrowsMatrix[matrixArrow]) { - if (item == 5) { - me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[0][5] ~ "/b")); - continue; - } - if (myAirways[i].arrowsMatrix[matrixArrow][item] == 1) { - me["arrow" ~ (item + 1) ~ sign].show(); - me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ myAirways[i].arrowsColour[matrixArrow][item] ~ "/b")); - } else { - me["arrow" ~ (item + 1) ~ sign].hide(); - } - } - } - - forindex (var matrixFont; myAirways[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myAirways[i].fontMatrix[matrixFont]) { - if (myAirways[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageArrowFuncDepArr(myAirways[i]); + me.dynamicPageFontFunc(myAirways[i]); me.dynamicPageFunc(myAirways[i].L1, "Simple_L1"); me.dynamicPageFunc(myAirways[i].L2, "Simple_L2"); @@ -3944,16 +4566,7 @@ var canvas_MCDU_base = { } } else if (page == "CLOSESTAIRPORT") { if (!pageSwitch[i].getBoolValue()) { - me["Simple"].show(); - me["Simple_Center"].show(); - me["FPLN"].hide(); - me["DIRTO_TMPY_group"].hide(); - me["INITA"].hide(); - me["IRSINIT"].hide(); - me["INITB"].hide(); - me["FUELPRED"].hide(); - me["PROG"].hide(); - me["PERFTO"].hide(); + me.defaultHideWithCenter(); me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].hide(); me["Simple_Title"].show(); @@ -3995,22 +4608,8 @@ var canvas_MCDU_base = { me["Simple_L6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[0][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[0][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[0][5] ~ "/b")); me["Simple_R6_Arrow"].setColor(getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[1][5] ~ "/r"), getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[1][5] ~ "/g"), getprop("/MCDUC/colors/" ~ myClosestAirport[i].arrowsColour[1][5] ~ "/b")); - forindex (var matrixFont; myClosestAirport[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myClosestAirport[i].fontMatrix[matrixFont]) { - if (myClosestAirport[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + + me.dynamicPageFontFunc(myClosestAirport[i]); me.dynamicPageFunc(myClosestAirport[i].L1, "Simple_L1"); me.dynamicPageFunc(myClosestAirport[i].L2, "Simple_L2"); @@ -4053,6 +4652,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].show(); @@ -4063,30 +4663,13 @@ var canvas_MCDU_base = { me["Simple_Title"].show(); me["ArrowLeft"].hide(); me["ArrowRight"].hide(); - me["Simple_L1_Arrow"].hide(); - me["Simple_L2_Arrow"].hide(); - me["Simple_L3_Arrow"].hide(); - me["Simple_L4_Arrow"].hide(); - me["Simple_L5_Arrow"].hide(); - me["Simple_L6_Arrow"].hide(); - me["Simple_R1_Arrow"].hide(); - me["Simple_R2_Arrow"].hide(); - me["Simple_R3_Arrow"].hide(); - me["Simple_R4_Arrow"].hide(); - me["Simple_R5_Arrow"].hide(); - me["Simple_R6_Arrow"].hide(); + me.hideAllArrows(); me["Simple_L0S"].hide(); me["Simple_C3B"].hide(); me["Simple_C4B"].hide(); - me.fontLeft(default, default, default, default, default, default); - me.fontLeftS(default, default, default, default, default, default); - me.fontRight(default, default, default, default, default, default); - me.fontRightS(default, default, default, default, default, default); - - me.fontSizeLeft(normal, normal, normal, normal, normal, normal); - me.fontSizeRight(normal, normal, normal, normal, normal, normal); + me.standardFontSize(); me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht"); me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht"); @@ -4097,39 +4680,8 @@ var canvas_MCDU_base = { me["Simple_Title"].setText(sprintf("%s", myDirTo[i].title[0])); me["Simple_Title"].setColor(getprop("/MCDUC/colors/" ~ myDirTo[i].titleColour ~ "/r"), getprop("/MCDUC/colors/" ~ myDirTo[i].titleColour ~ "/g"), getprop("/MCDUC/colors/" ~ myDirTo[i].titleColour ~ "/b")); - forindex (var matrixArrow; myDirTo[i].arrowsMatrix) { - if (matrixArrow == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDirTo[i].arrowsMatrix[matrixArrow]) { - if (item == 5) { continue; } - if (myDirTo[i].arrowsMatrix[matrixArrow][item] == 1) { - me["arrow" ~ (item + 1) ~ sign].show(); - me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ myDirTo[i].arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ myDirTo[i].arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ myDirTo[i].arrowsColour[matrixArrow][item] ~ "/b")); - } else { - me["arrow" ~ (item + 1) ~ sign].hide(); - } - } - } - - forindex (var matrixFont; myDirTo[i].fontMatrix) { - if (matrixFont == 0) { - var sign = "L"; - } else { - var sign = "R"; - } - forindex (var item; myDirTo[i].fontMatrix[matrixFont]) { - if (myDirTo[i].fontMatrix[matrixFont][item] == 1) { - me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); - } else { - me["Simple_" ~ sign ~ (item + 1)].setFont(default); - me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); - } - } - } + me.dynamicPageArrowFuncDepArr(myDirTo[i]); + me.dynamicPageFontFunc(myDirTo[i]); if (fmgc.flightPlanController.temporaryFlag[i] and mcdu.dirToFlag) { me["DIRTO_TMPY_group"].show(); @@ -4166,6 +4718,7 @@ var canvas_MCDU_base = { me["IRSINIT"].hide(); me["INITB"].hide(); me["FUELPRED"].hide(); + me["WIND"].hide(); me["PROG"].hide(); me["PERFTO"].hide(); me["arrowsDepArr"].hide(); @@ -4908,6 +5461,59 @@ var canvas_MCDU_base = { } } }, + dynamicPageArrowFunc: func (dynamic) { + forindex (var matrixArrow; dynamic.arrowsMatrix) { + if (matrixArrow == 0) { + var sign = "L"; + } else { + var sign = "R"; + } + forindex (var item; dynamic.arrowsMatrix[matrixArrow]) { + if (dynamic.arrowsMatrix[matrixArrow][item] == 1) { + me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].show(); + } else { + me["Simple_" ~ sign ~ (item + 1) ~ "_Arrow"].hide(); + } + } + } + }, + dynamicPageArrowFuncDepArr: func (dynamic) { + forindex (var matrixArrow; dynamic.arrowsMatrix) { + if (matrixArrow == 0) { + var sign = "L"; + } else { + var sign = "R"; + } + forindex (var item; dynamic.arrowsMatrix[matrixArrow]) { + if (item == 5) { continue; } + if (dynamic.arrowsMatrix[matrixArrow][item] == 1) { + me["arrow" ~ (item + 1) ~ sign].show(); + me["arrow" ~ (item + 1) ~ sign].setColor(getprop("/MCDUC/colors/" ~ dynamic.arrowsColour[matrixArrow][item] ~ "/r"), getprop("/MCDUC/colors/" ~ dynamic.arrowsColour[matrixArrow][item] ~ "/g"), getprop("/MCDUC/colors/" ~ dynamic.arrowsColour[matrixArrow][item] ~ "/b")); + } else { + me["arrow" ~ (item + 1) ~ sign].hide(); + } + } + } + }, + dynamicPageFontFunc: func (dynamic) { + forindex (var matrixFont; dynamic.fontMatrix) { + if (matrixFont == 0) { + var sign = "L"; + } else { + var sign = "R"; + } + forindex (var item; dynamic.fontMatrix[matrixFont]) { + if (dynamic.fontMatrix[matrixFont][item] == 1) { + me["Simple_" ~ sign ~ (item + 1)].setFont(symbol); + me["Simple_" ~ sign ~ (item + 1)].setFontSize(small); + } else { + me["Simple_" ~ sign ~ (item + 1)].setFont(default); + me["Simple_" ~ sign ~ (item + 1)].setFontSize(normal); + } + } + } + }, + updateScratchpad: func(i) { me["Scratchpad"].setText(sprintf("%s", mcdu_scratchpad.scratchpads[i].scratchpad)); var color_selected = mcdu_scratchpad.scratchpads[i].scratchpadColour; diff --git a/Models/Instruments/MCDU/MCDU1.xml b/Models/Instruments/MCDU/MCDU1.xml index 37e6bbc9..51439c6d 100644 --- a/Models/Instruments/MCDU/MCDU1.xml +++ b/Models/Instruments/MCDU/MCDU1.xml @@ -58,7 +58,7 @@ BRT - false + true @@ -70,7 +70,7 @@ controls/lighting/DU/mcdu1 0.0 1.0 - 0.2 + 0.05 false @@ -81,7 +81,7 @@ DIM - false + true @@ -93,7 +93,7 @@ controls/lighting/DU/mcdu1 0.0 1.0 - -0.2 + -0.05 false @@ -174,6 +174,31 @@ + + pick + atc_comm + + + false + + nasal + + + + + systems/electrical/bus/ac-1 + 110 + + + controls/lighting/DU/mcdu1 + 0.01 + + + + + + + pick mcdu diff --git a/Models/Instruments/MCDU/MCDU2.xml b/Models/Instruments/MCDU/MCDU2.xml index 7b3d3818..38324cf0 100644 --- a/Models/Instruments/MCDU/MCDU2.xml +++ b/Models/Instruments/MCDU/MCDU2.xml @@ -58,7 +58,7 @@ BRT - false + true @@ -70,7 +70,7 @@ controls/lighting/DU/mcdu2 0.0 1.0 - 0.2 + 0.05 false @@ -81,7 +81,7 @@ DIM - false + true @@ -93,7 +93,7 @@ controls/lighting/DU/mcdu2 0.0 1.0 - -0.2 + -0.05 false @@ -174,6 +174,31 @@ + + pick + atc_comm + + + false + + nasal + + + + + systems/electrical/bus/ac-2 + 110 + + + controls/lighting/DU/mcdu2 + 0.01 + + + + + + + pick mcdu diff --git a/Models/Instruments/MCDU/res/mcdu.svg b/Models/Instruments/MCDU/res/mcdu.svg index 35f4ac4f..365d0760 100644 --- a/Models/Instruments/MCDU/res/mcdu.svg +++ b/Models/Instruments/MCDU/res/mcdu.svg @@ -7,13 +7,13 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - sodipodi:docname="mcdu.svg" - inkscape:version="1.0beta2 (2b71d25, 2019-12-03)" - id="svg2" - version="1.1" - viewBox="0 0 1024 864" + width="1280" height="1080" - width="1280"> + viewBox="0 0 1024 864" + version="1.1" + id="svg2" + inkscape:version="1.0beta2 (2b71d25, 2019-12-03)" + sodipodi:docname="mcdu.svg"> @@ -29,749 +29,656 @@ + borderopacity="1" + objecttolerance="20" + gridtolerance="20" + guidetolerance="20" + inkscape:pageopacity="1" + inkscape:pageshadow="2" + inkscape:window-width="1440" + inkscape:window-height="819" + id="namedview371" + showgrid="true" + inkscape:zoom="0.78947164" + inkscape:cx="929.63178" + inkscape:cy="751.57487" + inkscape:window-x="481" + inkscape:window-y="23" + inkscape:window-maximized="0" + inkscape:current-layer="WIND" + showguides="false" + inkscape:snap-global="false" + units="px" + inkscape:document-rotation="0"> + type="xygrid" + id="grid5153" /> SCRATCHPAD + x="20.138426" + id="tspan4242" + sodipodi:role="line">SCRATCHPAD + transform="translate(-1.2,-0.2)"> - - - - - + + + + + + inkscape:label="Simple"> + inkscape:label="Simple_Center"> TEXT + x="521.1662" + y="187.10254" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">TEXT TEXT + x="521.1662" + id="tspan4243" + sodipodi:role="line">TEXT TEXT - TEXT TEXT TEXT TEXT + TEXT + x="520.20905" + id="tspan4266" + sodipodi:role="line">TEXT TEXT + x="520.20905" + y="247.74202" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:56px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">TEXT TEXT + x="520.20905" + id="tspan4274" + sodipodi:role="line">TEXT TEXT - TEXT TEXT TEXT + id="tspan4286" + x="520.20905" + y="717.159" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:56px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">TEXT TEXT + TEXT TITLE + x="521.74713" + y="69.238266" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">TITLE X/X + id="tspan4217" + sodipodi:role="line">X/X + cy="15.471865" + r="1.5" /> + cy="15.754708" + r="1.5" /> + cy="16.320395" + r="1.5" /> + cx="796.48511" + cy="13.774809" + r="3" /> TEXT - - - - - TEXT - - - - - TEXT - - - - - TEXT - - - - - TEXT - - - - - TEXT - - - - - TEXT - TEXT - TEXT - TEXT - TEXT - TEXT - TEXT + id="Simple_L1_Arrow" + style="fill:#ffffff;fill-opacity:1"> TEXT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1">TEXT + transform="matrix(1.0000018,0,0,0.99998906,-895.98862,236.8439)" + style="fill:#ffffff;fill-opacity:1"> TEXT + id="Simple_L3_Arrow" + style="fill:#ffffff;fill-opacity:1"> TEXT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1">TEXT + transform="matrix(1.0000018,0,0,0.99998906,-895.98862,473.56068)" + style="fill:#ffffff;fill-opacity:1"> TEXT + + + + + TEXT + + + + + TEXT + TEXT + TEXT + TEXT + TEXT + TEXT + TEXT + + + + + TEXT + id="Simple_R2_Arrow" + style="fill:#ffffff;fill-opacity:1"> @@ -779,1553 +686,942 @@ xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="1022.194" - y="773.87396" - id="Simple_R6" + y="421.81125" + id="Simple_R3" transform="scale(0.991516,1.0085566)" inkscape:label="#text4244">TEXT + transform="matrix(-1.000002,0,0,0.99998904,1919.9892,355.20231)" + style="fill:#ffffff;fill-opacity:1"> - TEXT TEXT - TEXT - TEXT - TEXT - TEXT - TEXT - - - - - - - - - - - - - CALLSIG - - TMPY - - ERASE - TMPY - - - - - - - - TMPY - INSERT - - - - - - - - - FROM - - - - ERASE - DIR TO - - - - - - - - DIR TO - INSERT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="Simple_R4_Arrow" + style="fill:#ffffff;fill-opacity:1"> + style="fill:#ffffff;fill-opacity:1;stroke:#cdcdcd;stroke-width:4.08;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + TEXT + id="Simple_R5_Arrow" + inkscape:label="#g4241" + transform="matrix(-1.000002,0,0,0.99998904,1919.9892,591.91912)" + style="fill:#ffffff;fill-opacity:1"> - + id="path4319" + d="M 936.70791,62.1688 921.8587,47.4328" + style="fill:#ffffff;fill-opacity:1;stroke:#cdcdcd;stroke-width:4.08;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + + TEXT + + id="path4327" + d="M 936.70791,32.6968 921.8587,47.4328" + style="fill:#ffffff;fill-opacity:1;stroke:#cdcdcd;stroke-width:4.08;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + + + TEXT + TEXT + TEXT + TEXT + TEXT + TEXT + TEXT + + + + + + + + + inkscape:label="INITA" + id="INITA-9" + style="display:inline" /> + + + / + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:56px;line-height:1.25;font-family:BoeingCDULarge;-inkscape-font-specification:BoeingCDULarge;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1" + y="69.238258" + x="750.78857" + id="tspan4388" + sodipodi:role="line">CALLSIG - - - - + id="FPLN_TMPY_group" + inkscape:label="#g3767"> + TMPY + + ERASE + TMPY + + + + + + + + TMPY + INSERT + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / + id="FPLN_FROM" + y="68.861366" + x="177.72771" + style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve">FROM + + + + ERASE + DIR TO + + + + + + + + DIR TO + INSERT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inkscape:groupmode="layer" + id="INITA" + inkscape:label="INITA"> - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - / - . - / - - - - - - - - - - - - - . - - - . - - - - - - - - - / - - . - / - - - - - - - - - - - - - . - - - - + id="path4490" + d="M 998.71909,284.70793 H 970.18944" + style="fill:none;stroke:#bb6100;stroke-width:4.08;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;stroke:#bb6100;stroke-width:4.08;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - - - + id="INITA_FromTo" + inkscape:label="#g4320"> + / + + + + + + + + + + + + + + id="rect4316-4" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bb6100;stroke-width:4.03199;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + + + + + + + id="INITA_FltNbr" + transform="translate(-833.84951,236.71687)"> + + id="rect4377" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bb6100;stroke-width:4.03199;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + id="rect4381" + style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bb6100;stroke-width:4.03199;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + + + + - + + + + + + + + + + + + + + F - S - O - = - = - = + x="1113.7798" + style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#bb6100;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve">/ + - F - S - O - = - = - = + inkscape:groupmode="layer" + id="IRSINIT" + inkscape:label="IRSINIT"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + . + / + + + + + + + + + + + + + . + + + . + + + + + + + + + / + + . + / + + + + + + + + + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + transform="translate(-833.84951,0.00320079)" + id="PERFTO_V1" + inkscape:label="#g4310-0"> + + + - - - - - - + inkscape:label="#g4310-0" + id="PERFTO_VR" + transform="translate(-833.84951,118.3616)"> + + + + + + + + - - - F F + S + S - O - = + x="398.21817" + id="tspan4399" + sodipodi:role="line">O = = + = + + + F + S + O + = + = + = + + + + + + + + + + + + + + + + + + + + + + + F + S + O + = + = + = + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml index c52984df..25e3fafc 100644 --- a/Models/Instruments/OHpanel/OHpanel.xml +++ b/Models/Instruments/OHpanel/OHpanel.xml @@ -11,8 +11,6 @@ select - ACESSFeedBtn1F - ACESSFeedBtn2A ACPack1Btn1F ACPack1Btn2O ACPack2Btn1F @@ -30,6 +28,10 @@ ELAC1Btn1F ELAC1Btn2O EmerExtLtBtn2O + Eng1AntiIceBtn1F + Eng1AntiIceBtn2O + Eng2AntiIceBtn1F + Eng2AntiIceBtn2O ExtPwrBtn2O FAC1Btn1F FAC1Btn2O @@ -42,6 +44,8 @@ RamAirBtn2O SEC1Btn1F SEC1Btn2O + WingAntiIceBtn1F + WingAntiIceBtn2O VentBlowBtn1F @@ -53,8 +57,6 @@ select - APUBleedBtn1F - APUBleedBtn2O APUGenBtn1F APUGenBtn2O APUMasterBtn1F @@ -91,6 +93,8 @@ select + ACESSFeedBtn1F + ACESSFeedBtn2A AftCargoIsoBtn1F AftCargoIsoBtn2O AftCargoSmkBtn1S @@ -112,15 +116,7 @@ EmerCallBtn1C EmerCallBtn2O EmerGenInd1F - Eng1AntiIceBtn1F - Eng1AntiIceBtn2O - Eng2AntiIceBtn1F - Eng2AntiIceBtn2O - Eng1BleedBtn1F - Eng1BleedBtn2O Eng1ManStartBtn2O - Eng2BleedBtn1F - Eng2BleedBtn2O Eng2ManStartBtn2O EvacCommandBtn1E EvacCommandBtn2O @@ -170,8 +166,6 @@ VentBlowBtn2O VentExtractBtn1F VentExtractBtn2O - WingAntiIceBtn1F - WingAntiIceBtn2O YellowElecPump1F YellowElecPump2O YellowEngPump1F @@ -183,6 +177,28 @@ + + + select + Eng1BleedBtn1F + Eng1BleedBtn2O + Eng2BleedBtn1F + Eng2BleedBtn2O + APUBleedBtn1F + APUBleedBtn2O + + + + systems/electrical/bus/dc-2 + 25 + + + systems/electrical/bus/dc-ess-shed + 25 + + + + @@ -339,7 +355,7 @@ nasal - + @@ -400,7 +416,7 @@ nasal - + @@ -448,7 +464,7 @@ nasal - + @@ -856,7 +872,7 @@ nasal - + @@ -918,7 +934,7 @@ nasal - + @@ -980,7 +996,7 @@ nasal - + @@ -1214,7 +1230,7 @@ nasal - + @@ -1226,7 +1242,11 @@ - systems/failures/elac1-fault + systems/fctl/lights/elac1-fault + 1 + + + controls/fctl/switches/elac1 1 @@ -1277,7 +1297,7 @@ nasal - + @@ -1289,7 +1309,7 @@ - systems/failures/sec1 + systems/fctl/lights/sec1-fault 1 @@ -1344,7 +1364,7 @@ nasal - + @@ -1356,7 +1376,7 @@ - systems/failures/fac1-fault + systems/fctl/lights/fac1-fault 1 @@ -1411,7 +1431,7 @@ nasal - + @@ -1423,7 +1443,7 @@ - systems/failures/elac2-fault + systems/fctl/lights/elac2-fault 1 @@ -1456,7 +1476,7 @@ - + pick SEC2Btn1 @@ -1478,7 +1498,7 @@ nasal - + @@ -1490,7 +1510,7 @@ - systems/failures/sec2 + systems/fctl/lights/sec2-fault 1 @@ -1545,7 +1565,7 @@ nasal - + @@ -1557,7 +1577,7 @@ - systems/failures/sec3 + systems/fctl/lights/sec3-fault 1 @@ -1612,7 +1632,7 @@ nasal - + @@ -1624,7 +1644,7 @@ - systems/failures/fac2-fault + systems/fctl/lights/fac2-fault 1 @@ -1658,7 +1678,7 @@ - + select @@ -1696,7 +1716,7 @@ 0 - instrumentation/mk-viii/inputs/discretes/terr-inhibit + instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit 0 @@ -1714,7 +1734,7 @@ - instrumentation/mk-viii/inputs/discretes/terr-inhibit + instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit 1 @@ -1747,7 +1767,7 @@ nasal - + @@ -1809,11 +1829,11 @@ property-toggle - instrumentation/mk-viii/inputs/discretes/glideslope-cancel + instrumentation/mk-viii/inputs/discretes/glideslope-inhibit nasal - + @@ -1824,7 +1844,7 @@ - instrumentation/mk-viii/inputs/discretes/glideslope-cancel + instrumentation/mk-viii/inputs/discretes/glideslope-inhibit 1 @@ -1856,7 +1876,7 @@ nasal - + @@ -1899,7 +1919,7 @@ nasal - + @@ -1944,7 +1964,7 @@ nasal - + @@ -2020,7 +2040,7 @@ nasal - + @@ -2106,7 +2126,7 @@ nasal - + @@ -2173,7 +2193,7 @@ nasal - + @@ -2240,7 +2260,7 @@ nasal - + @@ -2307,7 +2327,7 @@ nasal - + @@ -2375,7 +2395,7 @@ nasal - + @@ -2434,7 +2454,7 @@ nasal - + @@ -2446,7 +2466,7 @@ - systems/fuel/tank0pump1-fault + systems/failures/fuel/left-tank-pump-1 1 @@ -2499,7 +2519,7 @@ nasal - + @@ -2511,7 +2531,7 @@ - systems/fuel/tank0pump2-fault + systems/failures/fuel/left-tank-pump-2 1 @@ -2564,7 +2584,7 @@ nasal - + @@ -2576,7 +2596,7 @@ - systems/fuel/tank1pump1-fault + systems/failures/fuel/center-tank-pump-1 1 @@ -2628,7 +2648,7 @@ nasal - + @@ -2693,7 +2713,7 @@ nasal - + @@ -2705,7 +2725,7 @@ - systems/fuel/tank1pump2-fault + systems/failures/fuel/center-tank-pump-2 1 @@ -2758,7 +2778,7 @@ nasal - + @@ -2770,7 +2790,7 @@ - systems/fuel/tank2pump1-fault + systems/failures/fuel/right-tank-pump-1 1 @@ -2823,7 +2843,7 @@ nasal - + @@ -2835,7 +2855,7 @@ - systems/fuel/tank2pump2-fault + systems/failures/fuel/right-tank-pump-2 1 @@ -2889,7 +2909,7 @@ nasal - + @@ -2950,7 +2970,7 @@ nasal - + @@ -3017,7 +3037,7 @@ nasal - + @@ -3067,6 +3087,42 @@ + + + pick + IDG1Prot + + + + property-toggle + controls/OH/protectors/idg1 + + + + + controls/OH/protectors/idg1 + + + nasal + + + + + + + rotate + IDG1Prot + controls/OH/protectors/idg1 + -145 + + -0.00898 + -0.14623 + -0.03502 + -0.00898 + -0.12327 + -0.03502 + + IDG 1 pick @@ -3078,16 +3134,32 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + /engines/engine[0]/n2-actual + 14.0 + + + systems/electrical/bus/dc-bat + 25 + + + controls/OH/protectors/idg1 + 1 + + property-assign controls/electrical/switches/idg-1-disc 0 + + + controls/OH/protectors/idg1 + 1 + + property-assign controls/electrical/switches/idg-1-disc-momentary 1 @@ -3098,6 +3170,17 @@ controls/electrical/switches/idg-1-disc-momentary 0 + + + + controls/OH/protectors/idg1 + 1 + + + property-assign + controls/OH/protectors/idg1 + 0 + @@ -3131,23 +3214,14 @@ false - - - systems/electrical/bus/dc-bat - 25 - - - systems/electrical/bus/dc-ess - 25 - - + /systems/electrical/sources/idg-1/gcu-1-powered property-toggle controls/electrical/switches/gen-1 nasal - + @@ -3199,12 +3273,12 @@ - systems/electrical/bus/dc-bat - 25 + systems/electrical/bus/ac-1 + 110 - systems/electrical/bus/dc-ess - 25 + systems/electrical/bus/ac-2 + 110 @@ -3213,7 +3287,7 @@ nasal - + @@ -3264,17 +3338,14 @@ false - - systems/electrical/bus/dc-bat - 25 - + /systems/electrical/sources/apu/gcu-powered property-toggle controls/electrical/switches/apu nasal - + @@ -3345,7 +3416,7 @@ nasal - + @@ -3389,7 +3460,7 @@ nasal - + @@ -3453,23 +3524,14 @@ false - - - systems/electrical/bus/dc-bat - 25 - - - systems/electrical/bus/dc-ess - 25 - - + /systems/electrical/sources/idg-2/gcu-2-powered property-toggle controls/electrical/switches/gen-2 nasal - + @@ -3507,6 +3569,42 @@ + + + pick + IDG2Prot + + + + property-toggle + controls/OH/protectors/idg2 + + + + + controls/OH/protectors/idg2 + + + nasal + + + + + + + rotate + IDG2Prot + controls/OH/protectors/idg2 + -145 + + -0.00898 + 0.12327 + -0.03502 + -0.00898 + 0.14623 + -0.03502 + + IDG 2 pick @@ -3518,16 +3616,32 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + /engines/engine[1]/n2-actual + 14.0 + + + systems/electrical/bus/dc-bat + 25 + + + controls/OH/protectors/idg2 + 1 + + property-assign controls/electrical/switches/idg-2-disc 0 + + + controls/OH/protectors/idg2 + 1 + + property-assign controls/electrical/switches/idg-2-disc-momentary 1 @@ -3538,6 +3652,17 @@ controls/electrical/switches/idg-2-disc-momentary 0 + + + + controls/OH/protectors/idg2 + 1 + + + property-assign + controls/OH/protectors/idg2 + 0 + @@ -3587,7 +3712,7 @@ nasal - + @@ -3749,7 +3874,7 @@ nasal - + @@ -3824,10 +3949,10 @@ false property-cycle - controls/pneumatic/switches/pack-flo - 7 - 9 - 11 + controls/pneumatics/switches/pack-flow + 0.8 + 1.0 + 1.2 nasal @@ -3840,10 +3965,10 @@ false property-cycle - controls/pneumatic/switches/pack-flo - 11 - 9 - 7 + controls/pneumatics/switches/pack-flow + 1.2 + 1.0 + 0.8 nasal @@ -3855,11 +3980,11 @@ AC pack flow rotate rotate ACFlowKnb - controls/pneumatic/switches/pack-flo + controls/pneumatics/switches/pack-flow - 7 55 - 9 0 - 11-55 + 0.8 55 + 1.0 0 + 1.2-55 1 @@ -3883,7 +4008,7 @@ false property-adjust - controls/pneumatic/switches/cockpit-temp + controls/pneumatics/switches/temp-cockpit 0.1 0 1 @@ -3895,7 +4020,7 @@ false property-adjust - controls/pneumatic/switches/cockpit-temp + controls/pneumatics/switches/temp-cockpit -0.1 0 1 @@ -3906,7 +4031,7 @@ Cockpit Temp rotate rotate CockpitACKnb - controls/pneumatic/switches/cockpit-temp + controls/pneumatics/switches/temp-cockpit 0 135 1-135 @@ -3933,7 +4058,7 @@ false property-adjust - controls/pneumatic/switches/fwd-temp + controls/pneumatics/switches/temp-cabin-fwd 0.1 0 1 @@ -3945,7 +4070,7 @@ false property-adjust - controls/pneumatic/switches/fwd-temp + controls/pneumatics/switches/temp-cabin-fwd -0.1 0 1 @@ -3956,7 +4081,7 @@ FWD Temp rotate rotate FwdCabinACKnb - controls/pneumatic/switches/fwd-temp + controls/pneumatics/switches/temp-cabin-fwd 0 135 1-135 @@ -3983,7 +4108,7 @@ false property-adjust - controls/pneumatic/switches/aft-temp + controls/pneumatics/switches/temp-cabin-aft 0.1 0 1 @@ -3995,7 +4120,7 @@ false property-adjust - controls/pneumatic/switches/aft-temp + controls/pneumatics/switches/temp-cabin-aft -0.1 0 1 @@ -4006,7 +4131,7 @@ AFT Temp rotate rotate AftCabinACKnb - controls/pneumatic/switches/aft-temp + controls/pneumatics/switches/temp-cabin-aft 0 135 1-135 @@ -4033,7 +4158,7 @@ false property-cycle - controls/pneumatic/switches/xbleed + /controls/pneumatics/switches/x-bleed 0 1 2 @@ -4049,7 +4174,7 @@ false property-cycle - controls/pneumatic/switches/xbleed + /controls/pneumatics/switches/x-bleed 2 1 0 @@ -4064,7 +4189,7 @@ X-Bleed rotate rotate XbleedKnb - controls/pneumatic/switches/xbleed + /controls/pneumatics/switches/x-bleed 0 55 1 0 @@ -4106,11 +4231,11 @@ property-toggle - controls/pneumatic/switches/pack1 + controls/pneumatics/switches/pack-1 nasal - + @@ -4120,16 +4245,7 @@ ACPack1Btn1F - - - systems/pneumatic/pack1-fault - 1 - - - controls/pneumatic/switches/pack1 - 1 - - + /systems/air-conditioning/warnings/pack-1-fault-light controls/switches/annun-test 1 @@ -4144,7 +4260,7 @@ - controls/pneumatic/switches/pack1 + controls/pneumatics/switches/pack-1 0 @@ -4167,17 +4283,23 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + systems/electrical/bus/dc-2 + 25 + + + systems/electrical/bus/dc-ess-shed + 25 + + property-toggle - controls/pneumatic/switches/bleed1 + controls/pneumatics/switches/bleed-1 nasal - + @@ -4189,11 +4311,11 @@ - systems/pneumatic/bleed1-fault + systems/pneumatics/warnings/bleed1-fault 1 - controls/pneumatic/switches/bleed1 + controls/pneumatics/switches/bleed-1 1 @@ -4211,7 +4333,7 @@ - controls/pneumatic/switches/bleed1 + controls/pneumatics/switches/bleed-1 0 @@ -4236,21 +4358,21 @@ - systems/electrical/bus/dc-bat + systems/electrical/bus/dc-2 25 - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-ess-shed 25 property-toggle - controls/pneumatic/switches/bleedapu + controls/pneumatics/switches/apu nasal - + @@ -4260,16 +4382,16 @@ APUBleedBtn1F - + controls/switches/annun-test 1 @@ -4284,7 +4406,7 @@ - controls/pneumatic/switches/bleedapu + controls/pneumatics/switches/apu 1 @@ -4307,17 +4429,23 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + systems/electrical/bus/dc-2 + 25 + + + systems/electrical/bus/dc-ess-shed + 25 + + property-toggle - controls/pneumatic/switches/bleed2 + controls/pneumatics/switches/bleed-2 nasal - + @@ -4329,11 +4457,11 @@ - systems/pneumatic/bleed2-fault + systems/pneumatics/warnings/bleed2-fault 1 - controls/pneumatic/switches/bleed2 + controls/pneumatics/switches/bleed-2 1 @@ -4351,7 +4479,7 @@ - controls/pneumatic/switches/bleed2 + controls/pneumatics/switches/bleed-2 0 @@ -4379,11 +4507,11 @@ property-toggle - controls/pneumatic/switches/hot-air + controls/pneumatics/switches/hot-air nasal - + @@ -4395,11 +4523,11 @@ - systems/pneumatic/hotair-fault + systems/pneumatics/hotair-fault 1 - controls/pneumatic/switches/hot-air + controls/pneumatics/switches/hot-air 1 @@ -4417,7 +4545,7 @@ - controls/pneumatic/switches/hot-air + controls/pneumatics/switches/hot-air 0 @@ -4452,11 +4580,11 @@ property-toggle - controls/pneumatic/switches/pack2 + controls/pneumatics/switches/pack-2 nasal - + @@ -4466,16 +4594,7 @@ ACPack2Btn1F - - - systems/pneumatic/pack2-fault - 1 - - - controls/pneumatic/switches/pack2 - 1 - - + /systems/air-conditioning/warnings/pack-2-fault-light controls/switches/annun-test 1 @@ -4490,7 +4609,7 @@ - controls/pneumatic/switches/pack2 + controls/pneumatics/switches/pack-2 0 @@ -4529,7 +4648,7 @@ property-toggle - controls/pneumatic/switches/ram-air + controls/pneumatics/switches/ram-air @@ -4539,7 +4658,7 @@ nasal - + @@ -4591,7 +4710,7 @@ - controls/pneumatic/switches/ram-air + controls/pneumatics/switches/ram-air 1 @@ -4730,7 +4849,7 @@ nasal - + @@ -4741,7 +4860,7 @@ - systems/failures/pack2 + systems/failures/pneumatics/pack-2-valve 1 @@ -4807,7 +4926,7 @@ nasal - + @@ -5307,16 +5426,16 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-ess-shed 25 property-toggle - controls/switches/wing + controls/ice-protection/wing nasal - + @@ -5327,7 +5446,7 @@ - controls/switches/wingfault + controls/ice-protection/wingfault 1 @@ -5344,7 +5463,7 @@ - controls/switches/wing + controls/ice-protection/wing 1 @@ -5368,16 +5487,16 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-1 25 property-toggle - controls/switches/leng + controls/ice-protection/leng nasal - + @@ -5388,7 +5507,7 @@ - controls/switches/lengfault + controls/ice-protection/lengfault 1 @@ -5405,7 +5524,7 @@ - controls/switches/leng + controls/ice-protection/leng 1 @@ -5429,16 +5548,16 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-2 25 property-toggle - controls/switches/reng + controls/ice-protection/reng nasal - + @@ -5449,7 +5568,7 @@ - controls/switches/rengfault + controls/ice-protection/rengfault 1 @@ -5466,7 +5585,7 @@ - controls/switches/reng + controls/ice-protection/reng 1 @@ -5497,13 +5616,13 @@ property-cycle - controls/switches/windowprobeheat - 0.5 + controls/ice-protection/windowprobeheat + 0 1 nasal - + @@ -5514,7 +5633,7 @@ - controls/switches/windowprobeheat + controls/ice-protection/windowprobeheat 1 @@ -5542,11 +5661,11 @@ property-toggle - controls/switches/cabinfan + controls/switches/pneumatics/cabin-fans nasal - + @@ -5557,7 +5676,7 @@ - controls/switches/cabinfan + controls/switches/pneumatics/cabin-fans 0 @@ -5597,7 +5716,7 @@ nasal - + @@ -5661,7 +5780,7 @@ nasal - + @@ -5733,7 +5852,7 @@ nasal - + @@ -5838,7 +5957,7 @@ nasal - + @@ -7190,17 +7309,40 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + systems/electrical/bus/dc-ess + 25 + + + + gear/gear[1]/wow + + + /engines/engine[0]/state + 3 + + + /engines/engine[1]/state + 3 + + + - property-toggle + property-assign controls/switches/LrainRpt + 1 + + + property-assign + controls/switches/LrainRpt + 0 + + nasal - + @@ -7213,17 +7355,40 @@ false - - systems/electrical/bus/dc-ess - 25 - + + + systems/electrical/bus/dc-2 + 25 + + + + gear/gear[1]/wow + + + /engines/engine[0]/state + 3 + + + /engines/engine[1]/state + 3 + + + - property-toggle + property-assign controls/switches/RrainRpt + 1 + + + property-assign + controls/switches/RrainRpt + 0 + + nasal - + @@ -7321,7 +7486,7 @@ nasal - + @@ -7362,7 +7527,7 @@ nasal - + @@ -7414,7 +7579,7 @@ nasal - + diff --git a/Models/Instruments/OHpanel/OHpanelEPR.xml b/Models/Instruments/OHpanel/OHpanelEPR.xml index 7dbe1530..fa2021b5 100644 --- a/Models/Instruments/OHpanel/OHpanelEPR.xml +++ b/Models/Instruments/OHpanel/OHpanelEPR.xml @@ -14,11 +14,11 @@ - systems/electrical/bus/dc1 + systems/electrical/bus/dc-1 25 - systems/electrical/bus/dc2 + systems/electrical/bus/dc-2 25 @@ -42,11 +42,11 @@ - systems/electrical/bus/dc1 + systems/electrical/bus/dc-1 25 - systems/electrical/bus/dc2 + systems/electrical/bus/dc-2 25 @@ -55,6 +55,11 @@ property-toggle controls/fadec/n1mode1 + + property-assign + controls/OH/protectors/eng1-n1 + 0 + @@ -63,35 +68,30 @@ nasal - + pick - Eng1N1Btn - Eng1N1Btn2O Eng1N1Prot - + false - property-assign + property-toggle controls/OH/protectors/eng1-n1 - 1 - - - property-assign - controls/OH/protectors/eng1-n1 - 0 - - - nasal - - - + + + + controls/OH/protectors/eng1-n1 + + + nasal + + @@ -143,11 +143,11 @@ - systems/electrical/bus/dc1 + systems/electrical/bus/dc-1 25 - systems/electrical/bus/dc2 + systems/electrical/bus/dc-2 25 @@ -156,6 +156,11 @@ property-toggle controls/fadec/n1mode2 + + property-assign + controls/OH/protectors/eng2-n1 + 0 + @@ -164,35 +169,30 @@ nasal - + pick - Eng2N1Btn - Eng2N1Btn2O Eng2N1Prot - + false - property-assign + property-toggle controls/OH/protectors/eng2-n1 - 1 - - - property-assign - controls/OH/protectors/eng2-n1 - 0 - - - nasal - - - + + + + controls/OH/protectors/eng2-n1 + + + nasal + + diff --git a/Models/Instruments/OHpanel/SteepAppr.xml b/Models/Instruments/OHpanel/SteepAppr.xml index 055fbf49..655894f7 100644 --- a/Models/Instruments/OHpanel/SteepAppr.xml +++ b/Models/Instruments/OHpanel/SteepAppr.xml @@ -14,11 +14,11 @@ - systems/electrical/bus/dc1 + systems/electrical/bus/dc-1 25 - systems/electrical/bus/dc2 + systems/electrical/bus/dc-2 25 @@ -39,11 +39,11 @@ - systems/electrical/bus/dc1 + systems/electrical/bus/dc-1 25 - systems/electrical/bus/dc2 + systems/electrical/bus/dc-2 25 @@ -53,7 +53,7 @@ nasal - + diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas index be5385fc..82f982a7 100644 --- a/Models/Instruments/PFD/PFD.nas +++ b/Models/Instruments/PFD/PFD.nas @@ -15,6 +15,8 @@ var updateR = 0; var elapsedtime = 0; var altTens = 0; var altPolarity = ""; +var track_diff = 0; +var AICenter = nil; # Fetch nodes: var state1 = props.globals.getNode("/systems/thrust/state1", 1); @@ -37,8 +39,6 @@ var wow2 = props.globals.getNode("/gear/gear[2]/wow"); var pitch = props.globals.getNode("/orientation/pitch-deg", 1); var roll = props.globals.getNode("/orientation/roll-deg", 1); var elapsedtime = props.globals.getNode("/sim/time/elapsed-sec", 1); -var acess = props.globals.getNode("/systems/electrical/bus/ac-ess", 1); -var ac2 = props.globals.getNode("/systems/electrical/bus/ac-2", 1); var du1_lgt = props.globals.getNode("/controls/lighting/DU/du1", 1); var du6_lgt = props.globals.getNode("/controls/lighting/DU/du6", 1); var acconfig = props.globals.getNode("/systems/acconfig/autoconfig-running", 1); @@ -73,22 +73,19 @@ var alt_diff = props.globals.getNode("/instrumentation/pfd/alt-diff", 1); var ground_diff = props.globals.getNode("/instrumentation/pfd/ground-diff", 1); var landing_diff = props.globals.getNode("/instrumentation/pfd/landing-diff", 1); var ap_alt = props.globals.getNode("/it-autoflight/internal/alt", 1); -var alt_agl = props.globals.getNode("/position/altitude-agl-ft", 1); var vs_needle = props.globals.getNode("/instrumentation/pfd/vs-needle", 1); var vs_digit = props.globals.getNode("/instrumentation/pfd/vs-digit-trans", 1); var ap_vs_pfd = props.globals.getNode("/it-autoflight/internal/vert-speed-fpm-pfd", 1); var athr_arm = props.globals.getNode("/modes/pfd/fma/athr-armed", 1); -var FMGC_max_spd = props.globals.getNode("/FMGC/internal/maxspeed", 1); var ind_spd_kt = props.globals.getNode("/instrumentation/airspeed-indicator/indicated-speed-kt", 1); var ind_spd_mach = props.globals.getNode("/instrumentation/airspeed-indicator/indicated-mach", 1); var at_mach_mode = props.globals.getNode("/it-autoflight/input/kts-mach", 1); -var at_input_spd_mach = props.globals.getNode("/it-autoflight/input/spd-mach", 1); -var at_input_spd_kts = props.globals.getNode("/it-autoflight/input/spd-kts", 1); +var at_input_spd_mach = props.globals.getNode("/it-autoflight/input/mach", 1); +var at_input_spd_kts = props.globals.getNode("/it-autoflight/input/kts", 1); var fd_roll = props.globals.getNode("/it-autoflight/fd/roll-bar", 1); var fd_pitch = props.globals.getNode("/it-autoflight/fd/pitch-bar", 1); var decision = props.globals.getNode("/instrumentation/mk-viii/inputs/arinc429/decision-height", 1); var slip_skid = props.globals.getNode("/instrumentation/pfd/slip-skid", 1); -var FMGCphase = props.globals.getNode("/FMGC/status/phase", 1); var loc = props.globals.getNode("/instrumentation/nav[0]/heading-needle-deflection-norm", 1); var gs = props.globals.getNode("/instrumentation/nav[0]/gs-needle-deflection-norm", 1); var show_hdg = props.globals.getNode("/it-autoflight/custom/show-hdg", 1); @@ -128,19 +125,21 @@ var ils1_crs_set = props.globals.getNode("/FMGC/internal/ils1crs-set/", 1); var outer_marker = props.globals.getNode("/instrumentation/marker-beacon/outer", 1); var middle_marker = props.globals.getNode("/instrumentation/marker-beacon/middle", 1); var inner_marker = props.globals.getNode("/instrumentation/marker-beacon/inner", 1); -var v1 = props.globals.getNode("/FMGC/internal/v1", 1); -var v1_set = props.globals.getNode("/FMGC/internal/v1-set", 1); -var vr = props.globals.getNode("/FMGC/internal/vr", 1); -var vr_set = props.globals.getNode("/FMGC/internal/vr-set", 1); -var v2 = props.globals.getNode("/FMGC/internal/v2", 1); -var v2_set = props.globals.getNode("/FMGC/internal/v2-set", 1); var flap_config = props.globals.getNode("/controls/flight/flaps-input", 1); var hundredAbove = props.globals.getNode("/instrumentation/pfd/hundred-above", 1); var minimum = props.globals.getNode("/instrumentation/pfd/minimums", 1); +var aoa_1 = props.globals.getNode("/systems/navigation/adr/output/aoa-1", 1); +var aoa_2 = props.globals.getNode("/systems/navigation/adr/output/aoa-2", 1); +var aoa_3 = props.globals.getNode("/systems/navigation/adr/output/aoa-3", 1); +var adr_1_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-1", 1); +var adr_2_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-2", 1); +var adr_3_switch = props.globals.getNode("/controls/navigation/adirscp/switches/adr-3", 1); +var adr_1_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-1-fault", 1); +var adr_2_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-2-fault", 1); +var adr_3_fault = props.globals.getNode("/controls/navigation/adirscp/lights/adr-3-fault", 1); +var air_data_switch = props.globals.getNode("/controls/navigation/switching/air-data", 1); # Create Nodes: -var vs_needle = props.globals.initNode("/instrumentation/pfd/vs-needle", 0.0, "DOUBLE"); -var vs_needle_trans = props.globals.initNode("/instrumentation/pfd/vs-digit-trans", 0.0, "DOUBLE"); var alt_diff = props.globals.initNode("/instrumentation/pfd/alt-diff", 0.0, "DOUBLE"); var ground_diff = props.globals.initNode("/instrumentation/pfd/ground-diff", 0.0, "DOUBLE"); var landing_diff = props.globals.initNode("/instrumentation/pfd/landing-diff", 0.0, "DOUBLE"); @@ -150,7 +149,7 @@ var horizon_ground = props.globals.initNode("/instrumentation/pfd/horizon-ground var hdg_diff = props.globals.initNode("/instrumentation/pfd/hdg-diff", 0.0, "DOUBLE"); var hdg_scale = props.globals.initNode("/instrumentation/pfd/heading-scale", 0.0, "DOUBLE"); var track = props.globals.initNode("/instrumentation/pfd/track-deg", 0.0, "DOUBLE"); -var track_diff = props.globals.initNode("/instrumentation/pfd/track-hdg-diff", 0.0, "DOUBLE"); +#var track_diff = props.globals.initNode("/instrumentation/pfd/track-hdg-diff", 0.0, "DOUBLE"); # returns incorrect value var du1_test = props.globals.initNode("/instrumentation/du/du1-test", 0, "BOOL"); var du1_test_time = props.globals.initNode("/instrumentation/du/du1-test-time", 0.0, "DOUBLE"); var du1_offtime = props.globals.initNode("/instrumentation/du/du1-off-time", 0.0, "DOUBLE"); @@ -213,6 +212,9 @@ var canvas_PFD_base = { me.AI_horizon_hdg_trans = me["AI_heading"].createTransform(); me.AI_horizon_hdg_rot = me["AI_heading"].createTransform(); + me.AI_fpv_trans = me["FPV"].createTransform(); + me.AI_fpv_rot = me["FPV"].createTransform(); + me.page = canvas_group; return me; @@ -225,11 +227,11 @@ var canvas_PFD_base = { "AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_box_flash","ALT_box","ALT_box_amber","ALT_scale","ALT_target","ALT_target_digit","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP", "ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting","QNH_std","QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale", "HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame","TRK_pointer","machError","ilsError","ils_code","ils_freq","dme_dist","dme_dist_legend","ILS_HDG_R","ILS_HDG_L", - "ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref"]; + "ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref","FPV","spdLimError"]; }, updateDu1: func() { var elapsedtime_act = elapsedtime.getValue(); - if (acess.getValue() >= 110) { + if (systems.ELEC.Bus.acEss.getValue() >= 110) { if (du1_offtime.getValue() + 3 < elapsedtime_act) { if (wow0.getValue() == 1) { if (acconfig.getValue() != 1 and du1_test.getValue() != 1) { @@ -254,7 +256,7 @@ var canvas_PFD_base = { }, updateDu6: func() { var elapsedtime_act = elapsedtime.getValue(); - if (ac2.getValue() >= 110) { + if (systems.ELEC.Bus.ac2.getValue() >= 110) { if (du6_offtime.getValue() + 3 < elapsedtime_act) { if (wow0.getValue() == 1) { if (acconfig.getValue() != 1 and du6_test.getValue() != 1) { @@ -283,7 +285,7 @@ var canvas_PFD_base = { if (acconfig_mismatch.getValue() == "0x000") { PFD_1_mismatch.page.hide(); PFD_2_mismatch.page.hide(); - if (acess.getValue() >= 110 and du1_lgt.getValue() > 0.01) { + if (systems.ELEC.Bus.acEss.getValue() >= 110 and du1_lgt.getValue() > 0.01) { if (du1_test_time.getValue() + du1_test_amount.getValue() >= elapsedtime_act and cpt_du_xfr.getValue() != 1) { PFD_1_test.update(); updateL = 0; @@ -306,7 +308,7 @@ var canvas_PFD_base = { PFD_1_test.page.hide(); PFD_1.page.hide(); } - if (ac2.getValue() >= 110 and du6_lgt.getValue() > 0.01) { + if (systems.ELEC.Bus.ac2.getValue() >= 110 and du6_lgt.getValue() > 0.01) { if (du6_test_time.getValue() + du6_test_amount.getValue() >= elapsedtime_act and fo_du_xfr.getValue() != 1) { PFD_2_test.update(); updateR = 0; @@ -644,7 +646,7 @@ var canvas_PFD_base = { me["QNH"].hide(); me["QNH_setting"].hide(); - if (altitude.getValue() < fmgc.FMGCInternal.transAlt and FMGCphase.getValue() == '4') { + if (altitude.getValue() < fmgc.FMGCInternal.transAlt and fmgc.FMGCInternal.phase == 4) { if (qnh_going == 0) { qnh_going = 1; } @@ -669,7 +671,7 @@ var canvas_PFD_base = { me["QNH_std"].hide(); me["QNH_box"].hide(); - if (altitude.getValue() >= fmgc.FMGCInternal.transAlt and FMGCphase.getValue() == '2') { + if (altitude.getValue() >= fmgc.FMGCInternal.transAlt and fmgc.FMGCInternal.phase == 2) { if (qnh_going == 0) { qnh_going = 1; } @@ -694,7 +696,7 @@ var canvas_PFD_base = { } else if (alt_inhg_mode.getValue() == 1) { - if (altitude.getValue() >= fmgc.FMGCInternal.transAlt and FMGCphase.getValue() == '2') { + if (altitude.getValue() >= fmgc.FMGCInternal.transAlt and fmgc.FMGCInternal.phase == 2) { if (qnh_going == 0) { qnh_going = 1; } @@ -761,7 +763,7 @@ var canvas_PFD_base = { me["AI_agl"].setText(sprintf("%s", math.round(math.clamp(gear_agl_cur, 0, 2500)))); - if (FMGCphase.getValue() < 3 or fmgc.flightPlanController.arrivalDist >= 250) { + if (fmgc.FMGCInternal.phase < 3 or fmgc.flightPlanController.arrivalDist >= 250) { me["FMA_dh_box"].hide(); me["FMA_dh"].hide(); me["FMA_dhn"].hide(); @@ -807,7 +809,7 @@ var canvas_PFD_base = { } else { me["AI_agl"].setColor(0.0509,0.7529,0.2941); } - } else if (getprop("/FMGC/internal/radio-no")) { + } else if (fmgc.FMGCInternal.radioNo) { me["FMA_dh"].setText("BARO"); me["FMA_dh"].show(); me["FMA_dhn"].setText("100"); @@ -848,7 +850,7 @@ var canvas_PFD_base = { me["FMA_dhn"].setText(sprintf("%.0f", getprop("/FMGC/internal/baro"))); me["FMA_dhn"].show(); me["FMA_nodh"].hide(); - } else if (getprop("/FMGC/internal/radio-no")) { + } else if (fmgc.FMGCInternal.radioNo) { me["FMA_dh"].setText("BARO"); me["FMA_dh"].show(); me["FMA_dhn"].setText("100"); @@ -864,7 +866,7 @@ var canvas_PFD_base = { me["AI_agl_g"].setRotation(-roll_cur * D2R); - FMGCphase_act = FMGCphase.getValue(); + FMGCphase_act = fmgc.FMGCInternal.phase; if ((wow1.getValue() == 1 or wow2.getValue() == 1) and FMGCphase_act != 0 and FMGCphase_act != 1) { me["AI_stick"].show(); me["AI_stick_pos"].show(); @@ -897,6 +899,19 @@ var canvas_PFD_base = { me["VS_digit"].setText(sprintf("%02d", vs_pfd_cur)); } + var vs_itaf = fmgc.Internal.vs.getValue(); + var gearAgl = gear_agl.getValue(); + + if (abs(vs_itaf) >= 6000 or (vs_itaf <= -2000 and gearAgl <= 2500) or (vs_itaf <= -1200 and gearAgl <= 1000)) { + me["VS_digit"].setColor(0.7333,0.3803,0); + me["VS_pointer"].setColor(0.7333,0.3803,0); + me["VS_pointer"].setColorFill(0.7333,0.3803,0); + } else { + me["VS_digit"].setColor(0.0509,0.7529,0.2941); + me["VS_pointer"].setColor(0.0509,0.7529,0.2941); + me["VS_pointer"].setColorFill(0.0509,0.7529,0.2941); + } + # ILS me["LOC_pointer"].setTranslation(loc.getValue() * 197, 0); me["GS_pointer"].setTranslation(0, gs.getValue() * -197); @@ -961,12 +976,15 @@ var canvas_PFD_base = { me["HDG_target"].hide(); } - me["TRK_pointer"].setTranslation((math.clamp(track_diff.getValue(), -23.62, 23.62) / 10) * 98.5416, 0); + + var heading_deg = heading.getValue(); + track_diff = geo.normdeg180(track.getValue() - heading_deg); + me["TRK_pointer"].setTranslation(me.getTrackDiffPixels(track_diff),0); split_ils = split("/", ils_data1.getValue()); if (ap_ils_mode.getValue() == 1 and size(split_ils) == 2) { magnetic_hdg = ils_crs.getValue(); - magnetic_hdg_dif = geo.normdeg180(magnetic_hdg - heading.getValue()); + magnetic_hdg_dif = geo.normdeg180(magnetic_hdg - heading_deg); if (magnetic_hdg_dif >= -23.62 and magnetic_hdg_dif <= 23.62) { me["CRS_pointer"].setTranslation((magnetic_hdg_dif / 10) * 98.5416, 0); me["ILS_HDG_R"].hide(); @@ -1010,6 +1028,28 @@ var canvas_PFD_base = { me.AI_horizon_hdg_rot.setRotation(-roll_cur * D2R, me["AI_center"].getCenter()); me["AI_heading"].update(); }, + + # Get Angle of Attack from ADR1 or, depending on Switching panel, ADR3 + getAOAForPFD1: func() { + if (air_data_switch.getValue() != -1 and adr_1_switch.getValue() and !adr_1_fault.getValue()) return aoa_1.getValue(); + if (air_data_switch.getValue() == -1 and adr_3_switch.getValue() and !adr_3_fault.getValue()) return aoa_3.getValue(); + return nil; + }, + + # Get Angle of Attack from ADR2 or, depending on Switching panel, ADR3 + getAOAForPFD2: func() { + if (air_data_switch.getValue() != 1 and adr_2_switch.getValue() and !adr_2_fault.getValue()) return aoa_2.getValue(); + if (air_data_switch.getValue() == 1 and adr_3_switch.getValue() and !adr_3_fault.getValue()) return aoa_3.getValue(); + return nil; + }, + + # Convert difference between magnetic heading and track measured in degrees to pixel for display on PFDs + # And set max and minimum values + getTrackDiffPixels: func(track_diff_deg) { + return ((math.clamp(track_diff_deg, -23.62, 23.62) / 10) * 98.5416); + }, + + }; var canvas_PFD_1 = { @@ -1032,7 +1072,6 @@ var canvas_PFD_1 = { SPDftrgtdiff: 0, SPDflaptrgtdiff: 0, SPDcleantrgtdiff: 0, - FMGC_max: 0, new: func(canvas_group, file) { var m = {parents: [canvas_PFD_1, canvas_PFD_base]}; m.init(canvas_group, file); @@ -1067,6 +1106,14 @@ var canvas_PFD_1 = { me["VS_group"].hide(); } + # Apparently SPD LIM only on captains PFD. I find this odd. But manual says it. + # Spd Lim Error + if (!fbw.FBW.Computers.fac1.getValue() and !fbw.FBW.Computers.fac2.getValue()) { + me["spdLimError"].show(); + } else { + me["spdLimError"].hide(); + } + # FD if (fd1_act == 1 and ((!wow1_act and !wow2_act and roll_mode_cur != " ") or roll_mode_cur != " ") and ap_trk_sw.getValue() == 0 and pitch_cur < 25 and pitch_cur > -13 and roll_cur < 45 and roll_cur > -45) { me["FD_roll"].show(); @@ -1080,6 +1127,26 @@ var canvas_PFD_1 = { me["FD_pitch"].hide(); } + # If TRK FPA selected, display FPV on PFD1 + if (ap_trk_sw.getValue() == 0 ) { + me["FPV"].hide(); + } else { + var aoa = me.getAOAForPFD1(); + if (aoa == nil or (systems.ADIRS.ADIRunits[0].aligned != 1 and att_switch.getValue() == 0) or (systems.ADIRS.ADIRunits[2].aligned != 1 and att_switch.getValue() == -1)){ + me["FPV"].hide(); + } else { + var roll_deg = roll.getValue() or 0; + AICenter = me["AI_center"].getCenter(); + var track_x_translation = me.getTrackDiffPixels(track_diff); + + me.AI_fpv_trans.setTranslation(track_x_translation, math.clamp(aoa, -20, 20) * 12.5); + me.AI_fpv_rot.setRotation(-roll_deg * D2R, AICenter); + me["FPV"].setRotation(roll_deg * D2R); # It shouldn't be rotated, only the axis should be + me["FPV"].show(); + } + + } + # ILS if (ap_ils_mode.getValue() == 1) { me["LOC_scale"].show(); @@ -1193,7 +1260,7 @@ var canvas_PFD_1 = { me.ASI = ind_spd - 30; } - me.FMGC_max = FMGC_max_spd.getValue(); + me.FMGC_max = fmgc.FMGCInternal.maxspeed; if (me.FMGC_max <= 30) { me.ASImax = 0 - me.ASI; } else if (me.FMGC_max >= 420) { @@ -1203,10 +1270,16 @@ var canvas_PFD_1 = { } me["ASI_scale"].setTranslation(0, me.ASI * 6.6); - me["ASI_max"].setTranslation(0, me.ASImax * -6.6); - if (!getprop("/FMGC/status/to-state") and FMGCphase.getValue() >= 1 and !wow1.getValue() and !wow2.getValue()) { - me.FMGC_vls = getprop("/FMGC/internal/computed-speeds/vls_min"); + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + me["ASI_max"].setTranslation(0, me.ASImax * -6.6); + me["ASI_max"].show(); + } else { + me["ASI_max"].hide(); + } + + if (!fmgc.FMGCInternal.takeoffState and fmgc.FMGCInternal.phase >= 1 and !wow1.getValue() and !wow2.getValue()) { + me.FMGC_vls = fmgc.FMGCInternal.vls_min; if (me.FMGC_vls <= 30) { me.VLSmin = 0 - me.ASI; } else if (me.FMGC_vls >= 420) { @@ -1214,7 +1287,7 @@ var canvas_PFD_1 = { } else { me.VLSmin = me.FMGC_vls - 30 - me.ASI; } - me.FMGC_prot = getprop("/FMGC/internal/computed-speeds/alpha_prot"); + me.FMGC_prot = fmgc.FMGCInternal.alpha_prot; if (me.FMGC_prot <= 30) { me.ALPHAprot = 0 - me.ASI; } else if (me.FMGC_prot >= 420) { @@ -1222,7 +1295,7 @@ var canvas_PFD_1 = { } else { me.ALPHAprot = me.FMGC_prot - 30 - me.ASI; } - me.FMGC_max = getprop("/FMGC/internal/computed-speeds/alpha_max"); + me.FMGC_max = fmgc.FMGCInternal.alpha_max; if (me.FMGC_max <= 30) { me.ALPHAmax = 0 - me.ASI; } else if (me.FMGC_max >= 420) { @@ -1230,7 +1303,7 @@ var canvas_PFD_1 = { } else { me.ALPHAmax = me.FMGC_max - 30 - me.ASI; } - me.FMGC_vsw = getprop("/FMGC/internal/computed-speeds/vsw"); + me.FMGC_vsw = fmgc.FMGCInternal.vsw; if (me.FMGC_vsw <= 30) { me.ALPHAvsw = 0 - me.ASI; } else if (me.FMGC_vsw >= 420) { @@ -1238,19 +1311,27 @@ var canvas_PFD_1 = { } else { me.ALPHAvsw = me.FMGC_vsw - 30 - me.ASI; } - me["VLS_min"].setTranslation(0, me.VLSmin * -6.6); - me["VLS_min"].show(); - me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6); - me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6); - me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6); - if (getprop("/it-fbw/law") == 0) { - me["ALPHA_PROT"].show(); - me["ALPHA_MAX"].show(); - me["ALPHA_SW"].hide(); + + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + me["VLS_min"].setTranslation(0, me.VLSmin * -6.6); + me["VLS_min"].show(); + if (getprop("/it-fbw/law") == 0) { + me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6); + me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6); + me["ALPHA_PROT"].show(); + me["ALPHA_MAX"].show(); + me["ALPHA_SW"].hide(); + } else { + me["ALPHA_PROT"].hide(); + me["ALPHA_MAX"].hide(); + me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6); + me["ALPHA_SW"].show(); + } } else { + me["VLS_min"].hide(); me["ALPHA_PROT"].hide(); me["ALPHA_MAX"].hide(); - me["ALPHA_SW"].show(); + me["ALPHA_SW"].hide(); } } @@ -1260,15 +1341,15 @@ var canvas_PFD_1 = { if (managed_spd.getValue() == 1) { if (getprop("/FMGC/internal/decel") == 1) { - if (getprop("/FMGC/internal/vapp-speed-set")) { - vapp = getprop("/FMGC/internal/computed-speeds/vapp_appr"); + if (fmgc.FMGCInternal.vappSpeedSet) { + vapp = fmgc.FMGCInternal.vapp_appr; } else { - vapp = getprop("/FMGC/internal/computed-speeds/vapp"); + vapp = fmgc.FMGCInternal.vapp; } tgt_ias = vapp; tgt_kts = vapp; - } else if (FMGCphase.getValue() == 6) { - clean = getprop("/FMGC/internal/computed-speeds/clean"); + } else if (fmgc.FMGCInternal.phase == 6) { + clean = fmgc.FMGCInternal.clean; tgt_ias = clean; tgt_kts = clean; } @@ -1331,8 +1412,8 @@ var canvas_PFD_1 = { me["ASI_target"].hide(); } - if (v1_set.getValue() == '1') { - tgt_v1 = v1.getValue(); + if (fmgc.FMGCInternal.v1set) { + tgt_v1 = fmgc.FMGCInternal.v1; if (tgt_v1 <= 30) { me.V1trgt = 0 - me.ASI; } else if (tgt_v1 >= 420) { @@ -1343,14 +1424,14 @@ var canvas_PFD_1 = { me.SPDv1trgtdiff = tgt_v1 - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) { me["v1_group"].show(); me["v1_text"].hide(); me["v1_group"].setTranslation(0, me.V1trgt * -6.6); - } else if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2) { + } else if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2) { me["v1_group"].hide(); me["v1_text"].show(); - me["v1_text"].setText(sprintf("%3.0f", v1.getValue())); + me["v1_text"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v1)); } else { me["v1_group"].hide(); me["v1_text"].hide(); @@ -1360,8 +1441,8 @@ var canvas_PFD_1 = { me["v1_text"].hide(); } - if (vr_set.getValue() == '1') { - tgt_vr = vr.getValue(); + if (fmgc.FMGCInternal.vrset) { + tgt_vr = fmgc.FMGCInternal.vr; if (tgt_vr <= 30) { me.VRtrgt = 0 - me.ASI; } else if (tgt_vr >= 420) { @@ -1372,7 +1453,7 @@ var canvas_PFD_1 = { me.SPDvrtrgtdiff = tgt_vr - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) { me["vr_speed"].show(); me["vr_speed"].setTranslation(0, me.VRtrgt * -6.6); } else { @@ -1382,8 +1463,8 @@ var canvas_PFD_1 = { me["vr_speed"].hide(); } - if (v2_set.getValue() == '1') { - tgt_v2 = v2.getValue(); + if (fmgc.FMGCInternal.v2set) { + tgt_v2 = fmgc.FMGCInternal.v2; if (tgt_v2 <= 30) { me.V2trgt = 0 - me.ASI; } else if (tgt_v2 >= 420) { @@ -1394,155 +1475,157 @@ var canvas_PFD_1 = { me.SPDv2trgtdiff = tgt_v2 - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) { me["ASI_target"].show(); me["ASI_target"].setTranslation(0, me.V2trgt * -6.6); - me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue())); - } else if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2) { + me["ASI_digit_UP"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v2)); + } else if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2) { me["ASI_target"].hide(); - me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue())); + me["ASI_digit_UP"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v2)); } } - if (flap_config.getValue() == '1') { - me["F_target"].hide(); - me["clean_speed"].hide(); + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + if (flap_config.getValue() == '1') { + me["F_target"].hide(); + me["clean_speed"].hide(); + + tgt_S = fmgc.FMGCInternal.slat; - tgt_S = getprop("/FMGC/internal/computed-speeds/slat"); - - if (tgt_S <= 30) { - me.Strgt = 0 - me.ASI; - } else if (tgt_S >= 420) { - me.Strgt = 390 - me.ASI; - } else { - me.Strgt = tgt_S - 30 - me.ASI; - } - - me.SPDstrgtdiff = tgt_S - ind_spd; - - if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42) { - me["S_target"].show(); - me["S_target"].setTranslation(0, me.Strgt * -6.6); + if (tgt_S <= 30) { + me.Strgt = 0 - me.ASI; + } else if (tgt_S >= 420) { + me.Strgt = 390 - me.ASI; + } else { + me.Strgt = tgt_S - 30 - me.ASI; + } + + me.SPDstrgtdiff = tgt_S - ind_spd; + + if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["S_target"].show(); + me["S_target"].setTranslation(0, me.Strgt * -6.6); + } else { + me["S_target"].hide(); + } + + tgt_flap = 200; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '2') { + me["S_target"].hide(); + me["clean_speed"].hide(); + + tgt_F = fmgc.FMGCInternal.flap2; + + if (tgt_F <= 30) { + me.Ftrgt = 0 - me.ASI; + } else if (tgt_F >= 420) { + me.Ftrgt = 390 - me.ASI; + } else { + me.Ftrgt = tgt_F - 30 - me.ASI; + } + + me.SPDftrgtdiff = tgt_F - ind_spd; + + if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["F_target"].show(); + me["F_target"].setTranslation(0, me.Ftrgt * -6.6); + } else { + me["F_target"].hide(); + } + + tgt_flap = 185; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '3') { + me["S_target"].hide(); + me["clean_speed"].hide(); + + tgt_F = fmgc.FMGCInternal.flap3; + + if (tgt_F <= 30) { + me.Ftrgt = 0 - me.ASI; + } else if (tgt_F >= 420) { + me.Ftrgt = 390 - me.ASI; + } else { + me.Ftrgt = tgt_F - 30 - me.ASI; + } + + me.SPDftrgtdiff = tgt_F - ind_spd; + + if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["F_target"].show(); + me["F_target"].setTranslation(0, me.Ftrgt * -6.6); + } else { + me["F_target"].hide(); + } + + tgt_flap = 177; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '4') { + me["S_target"].hide(); + me["F_target"].hide(); + me["clean_speed"].hide(); + me["flap_max"].hide(); } else { me["S_target"].hide(); - } - - tgt_flap = 200; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } else if (flap_config.getValue() == '2') { - me["S_target"].hide(); - me["clean_speed"].hide(); - - tgt_F = getprop("/FMGC/internal/computed-speeds/flap2"); - - if (tgt_F <= 30) { - me.Ftrgt = 0 - me.ASI; - } else if (tgt_F >= 420) { - me.Ftrgt = 390 - me.ASI; - } else { - me.Ftrgt = tgt_F - 30 - me.ASI; - } - - me.SPDftrgtdiff = tgt_F - ind_spd; - - if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) { - me["F_target"].show(); - me["F_target"].setTranslation(0, me.Ftrgt * -6.6); - } else { me["F_target"].hide(); - } - - tgt_flap = 185; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } else if (flap_config.getValue() == '3') { - me["S_target"].hide(); - me["clean_speed"].hide(); - - tgt_F = getprop("/FMGC/internal/computed-speeds/flap3"); - if (tgt_F <= 30) { - me.Ftrgt = 0 - me.ASI; - } else if (tgt_F >= 420) { - me.Ftrgt = 390 - me.ASI; - } else { - me.Ftrgt = tgt_F - 30 - me.ASI; - } - - me.SPDftrgtdiff = tgt_F - ind_spd; - - if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) { - me["F_target"].show(); - me["F_target"].setTranslation(0, me.Ftrgt * -6.6); - } else { - me["F_target"].hide(); - } + tgt_clean = fmgc.FMGCInternal.clean; + + me.cleantrgt = tgt_clean - 30 - me.ASI; + me.SPDcleantrgtdiff = tgt_clean - ind_spd; - tgt_flap = 177; - me.flaptrgt = tgt_flap - 30 - me.ASI; + if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) { + me["clean_speed"].show(); + me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6); + } else { + me["clean_speed"].hide(); + } + + tgt_flap = 230; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } } - } else if (flap_config.getValue() == '4') { - me["S_target"].hide(); - me["F_target"].hide(); - me["clean_speed"].hide(); - me["flap_max"].hide(); } else { me["S_target"].hide(); me["F_target"].hide(); - - tgt_clean = getprop("/FMGC/internal/computed-speeds/clean"); - - me.cleantrgt = tgt_clean - 30 - me.ASI; - me.SPDcleantrgtdiff = tgt_clean - ind_spd; - - if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) { - me["clean_speed"].show(); - me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6); - } else { - me["clean_speed"].hide(); - } - - tgt_flap = 230; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } - - if (alt_agl.getValue() < 400) { - me["S_target"].hide(); - me["F_target"].hide(); + me["clean_speed"].hide(); + me["flap_max"].hide(); } me.ASItrend = dmc.DMController.DMCs[0].outputs[6].getValue() - me.ASI; @@ -1681,7 +1764,7 @@ var canvas_PFD_1 = { landing_diff_cur = landing_diff.getValue(); if (landing_diff_cur >= -565 and landing_diff_cur <= 565) { - if ((FMGCphase.getValue() == 5 or FMGCphase.getValue() == 6) and !wow1.getValue() and !wow2.getValue()) { #add std too + if ((fmgc.FMGCInternal.phase == 5 or fmgc.FMGCInternal.phase == 6) and !wow1.getValue() and !wow2.getValue()) { #add std too me["ground"].setTranslation(0, (landing_diff_cur / 100) * -48.66856); me["ground"].show(); } else { @@ -1691,13 +1774,13 @@ var canvas_PFD_1 = { me["ground"].hide(); } - if (!getprop("/ECAM/alt-alert-flash") and !getprop("/ECAM/alt-alert-steady")) { + if (!ecam.altAlertFlash and !ecam.altAlertSteady) { alt_going1 = 0; amber_going1 = 0; me["ALT_box_flash"].hide(); me["ALT_box_amber"].hide(); } else { - if (getprop("/ECAM/alt-alert-flash")) { + if (ecam.altAlertFlash) { if (alt_going1 == 1) { me["ALT_box_flash"].hide(); altTimer1.stop(); @@ -1715,7 +1798,7 @@ var canvas_PFD_1 = { } else { me["ALT_box_amber"].show(); } - } elsif (getprop("/ECAM/alt-alert-steady")) { + } elsif (ecam.altAlertSteady) { if (amber_going1 == 1) { me["ALT_box"].show(); me["ALT_box_amber"].hide(); @@ -1804,6 +1887,7 @@ var canvas_PFD_2 = { me["VS_error"].show(); me["VS_group"].hide(); } + me["spdLimError"].hide(); # FD if (fd2_act == 1 and ((!wow1_act and !wow2_act and roll_mode_cur != " ") or roll_mode_cur != " ") and ap_trk_sw.getValue() == 0 and pitch_cur < 25 and pitch_cur > -13 and roll_cur < 45 and roll_cur > -45) { @@ -1818,6 +1902,25 @@ var canvas_PFD_2 = { me["FD_pitch"].hide(); } + # If TRK FPA selected, display FPV on PFD2 + if (ap_trk_sw.getValue() == 0 ) { + me["FPV"].hide(); + } else { + var aoa = me.getAOAForPFD2(); + if (aoa == nil or (systems.ADIRS.ADIRunits[1].aligned != 1 and att_switch.getValue() == 0) or (systems.ADIRS.ADIRunits[2].aligned != 1 and att_switch.getValue() == 1)) { + me["FPV"].hide(); + } else { + var roll_deg = roll.getValue() or 0; + AICenter = me["AI_center"].getCenter(); + var track_x_translation = me.getTrackDiffPixels(track_diff); + + me.AI_fpv_trans.setTranslation(track_x_translation, math.clamp(aoa, -20, 20) * 12.5); + me.AI_fpv_rot.setRotation(-roll_deg * D2R, AICenter); + me["FPV"].setRotation(roll_deg * D2R); # It shouldn't be rotated, only the axis should be + me["FPV"].show(); + } + } + # ILS if (ap_ils_mode2.getValue() == 1) { me["LOC_scale"].show(); @@ -1931,7 +2034,7 @@ var canvas_PFD_2 = { me.ASI = ind_spd - 30; } - me.FMGC_max = FMGC_max_spd.getValue(); + me.FMGC_max = fmgc.FMGCInternal.maxspeed; if (me.FMGC_max <= 30) { me.ASImax = 0 - me.ASI; } else if (me.FMGC_max >= 420) { @@ -1941,10 +2044,16 @@ var canvas_PFD_2 = { } me["ASI_scale"].setTranslation(0, me.ASI * 6.6); - me["ASI_max"].setTranslation(0, me.ASImax * -6.6); - if (!getprop("/FMGC/status/to-state") and FMGCphase.getValue() >= 1 and !wow1.getValue() and !wow2.getValue()) { - me.FMGC_vls = getprop("/FMGC/internal/computed-speeds/vls_min"); + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + me["ASI_max"].setTranslation(0, me.ASImax * -6.6); + me["ASI_max"].show(); + } else { + me["ASI_max"].hide(); + } + + if (!fmgc.FMGCInternal.takeoffState and fmgc.FMGCInternal.phase >= 1 and !wow1.getValue() and !wow2.getValue()) { + me.FMGC_vls = fmgc.FMGCInternal.vls_min; if (me.FMGC_vls <= 30) { me.VLSmin = 0 - me.ASI; } else if (me.FMGC_vls >= 420) { @@ -1952,7 +2061,7 @@ var canvas_PFD_2 = { } else { me.VLSmin = me.FMGC_vls - 30 - me.ASI; } - me.FMGC_prot = getprop("/FMGC/internal/computed-speeds/alpha_prot"); + me.FMGC_prot = fmgc.FMGCInternal.alpha_prot; if (me.FMGC_prot <= 30) { me.ALPHAprot = 0 - me.ASI; } else if (me.FMGC_prot >= 420) { @@ -1960,7 +2069,7 @@ var canvas_PFD_2 = { } else { me.ALPHAprot = me.FMGC_prot - 30 - me.ASI; } - me.FMGC_max = getprop("/FMGC/internal/computed-speeds/alpha_max"); + me.FMGC_max = fmgc.FMGCInternal.alpha_max; if (me.FMGC_max <= 30) { me.ALPHAmax = 0 - me.ASI; } else if (me.FMGC_max >= 420) { @@ -1968,7 +2077,7 @@ var canvas_PFD_2 = { } else { me.ALPHAmax = me.FMGC_max - 30 - me.ASI; } - me.FMGC_vsw = getprop("/FMGC/internal/computed-speeds/vsw"); + me.FMGC_vsw = fmgc.FMGCInternal.vsw; if (me.FMGC_vsw <= 30) { me.ALPHAvsw = 0 - me.ASI; } else if (me.FMGC_vsw >= 420) { @@ -1976,19 +2085,27 @@ var canvas_PFD_2 = { } else { me.ALPHAvsw = me.FMGC_vsw - 30 - me.ASI; } - me["VLS_min"].setTranslation(0, me.VLSmin * -6.6); - me["VLS_min"].show(); - me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6); - me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6); - me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6); - if (getprop("/it-fbw/law") == 0) { - me["ALPHA_PROT"].show(); - me["ALPHA_MAX"].show(); - me["ALPHA_SW"].hide(); + + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + me["VLS_min"].setTranslation(0, me.VLSmin * -6.6); + me["VLS_min"].show(); + if (getprop("/it-fbw/law") == 0) { + me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6); + me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6); + me["ALPHA_PROT"].show(); + me["ALPHA_MAX"].show(); + me["ALPHA_SW"].hide(); + } else { + me["ALPHA_PROT"].hide(); + me["ALPHA_MAX"].hide(); + me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6); + me["ALPHA_SW"].show(); + } } else { + me["VLS_min"].hide(); me["ALPHA_PROT"].hide(); me["ALPHA_MAX"].hide(); - me["ALPHA_SW"].show(); + me["ALPHA_SW"].hide(); } } @@ -1998,15 +2115,15 @@ var canvas_PFD_2 = { if (managed_spd.getValue() == 1) { if (getprop("/FMGC/internal/decel") == 1) { - if (getprop("/FMGC/internal/vapp-speed-set")) { - vapp = getprop("/FMGC/internal/computed-speeds/vapp_appr"); + if (fmgc.FMGCInternal.vappSpeedSet) { + vapp = fmgc.FMGCInternal.vapp_appr; } else { - vapp = getprop("/FMGC/internal/computed-speeds/vapp"); + vapp = fmgc.FMGCInternal.vapp; } tgt_ias = vapp; tgt_kts = vapp; - } else if (FMGCphase.getValue() == 6) { - clean = getprop("/FMGC/internal/computed-speeds/clean"); + } else if (fmgc.FMGCInternal.phase == 6) { + clean = fmgc.FMGCInternal.clean; tgt_ias = clean; tgt_kts = clean; } @@ -2024,7 +2141,6 @@ var canvas_PFD_2 = { me["ASI_decimal_DN"].setColor(0.0901,0.6039,0.7176); } - tgt_ias = at_tgt_ias.getValue(); if (tgt_ias <= 30) { me.ASItrgt = 0 - me.ASI; } else if (tgt_ias >= 420) { @@ -2070,8 +2186,8 @@ var canvas_PFD_2 = { me["ASI_target"].hide(); } - if (v1_set.getValue() == '1') { - tgt_v1 = v1.getValue(); + if (fmgc.FMGCInternal.v1set) { + tgt_v1 = fmgc.FMGCInternal.v1; if (tgt_v1 <= 30) { me.V1trgt = 0 - me.ASI; } else if (tgt_v1 >= 420) { @@ -2082,14 +2198,14 @@ var canvas_PFD_2 = { me.SPDv1trgtdiff = tgt_v1 - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) { me["v1_group"].show(); me["v1_text"].hide(); me["v1_group"].setTranslation(0, me.V1trgt * -6.6); - } else if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2) { + } else if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2) { me["v1_group"].hide(); me["v1_text"].show(); - me["v1_text"].setText(sprintf("%3.0f", v1.getValue())); + me["v1_text"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v1)); } else { me["v1_group"].hide(); me["v1_text"].hide(); @@ -2099,8 +2215,8 @@ var canvas_PFD_2 = { me["v1_text"].hide(); } - if (vr_set.getValue() == '1') { - tgt_vr = vr.getValue(); + if (fmgc.FMGCInternal.vrset) { + tgt_vr = fmgc.FMGCInternal.vr; if (tgt_vr <= 30) { me.VRtrgt = 0 - me.ASI; } else if (tgt_vr >= 420) { @@ -2111,7 +2227,7 @@ var canvas_PFD_2 = { me.SPDvrtrgtdiff = tgt_vr - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) { me["vr_speed"].show(); me["vr_speed"].setTranslation(0, me.VRtrgt * -6.6); } else { @@ -2121,8 +2237,8 @@ var canvas_PFD_2 = { me["vr_speed"].hide(); } - if (v2_set.getValue() == '1') { - tgt_v2 = v2.getValue(); + if (fmgc.FMGCInternal.v2set) { + tgt_v2 = fmgc.FMGCInternal.v2; if (tgt_v2 <= 30) { me.V2trgt = 0 - me.ASI; } else if (tgt_v2 >= 420) { @@ -2133,155 +2249,157 @@ var canvas_PFD_2 = { me.SPDv2trgtdiff = tgt_v2 - ind_spd; - if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2 and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) { + if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2 and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) { me["ASI_target"].show(); me["ASI_target"].setTranslation(0, me.V2trgt * -6.6); - me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue())); - } else if (pts.Position.gearAglFt.getValue() < 55 and FMGCphase.getValue() <= 2) { + me["ASI_digit_UP"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v2)); + } else if (pts.Position.gearAglFt.getValue() < 55 and fmgc.FMGCInternal.phase <= 2) { me["ASI_target"].hide(); - me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue())); + me["ASI_digit_UP"].setText(sprintf("%3.0f", fmgc.FMGCInternal.v2)); } } - if (flap_config.getValue() == '1') { - me["F_target"].hide(); - me["clean_speed"].hide(); + if (fbw.FBW.Computers.fac1.getValue() or fbw.FBW.Computers.fac2.getValue()) { + if (flap_config.getValue() == '1') { + me["F_target"].hide(); + me["clean_speed"].hide(); + + tgt_S = fmgc.FMGCInternal.slat; - tgt_S = tgt_S = getprop("/FMGC/internal/computed-speeds/slat"); - - if (tgt_S <= 30) { - me.Strgt = 0 - me.ASI; - } else if (tgt_S >= 420) { - me.Strgt = 390 - me.ASI; - } else { - me.Strgt = tgt_S - 30 - me.ASI; - } - - me.SPDstrgtdiff = tgt_S - ind_spd; - - if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42) { - me["S_target"].show(); - me["S_target"].setTranslation(0, me.Strgt * -6.6); + if (tgt_S <= 30) { + me.Strgt = 0 - me.ASI; + } else if (tgt_S >= 420) { + me.Strgt = 390 - me.ASI; + } else { + me.Strgt = tgt_S - 30 - me.ASI; + } + + me.SPDstrgtdiff = tgt_S - ind_spd; + + if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["S_target"].show(); + me["S_target"].setTranslation(0, me.Strgt * -6.6); + } else { + me["S_target"].hide(); + } + + tgt_flap = 200; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '2') { + me["S_target"].hide(); + me["clean_speed"].hide(); + + tgt_F = fmgc.FMGCInternal.flap2; + + if (tgt_F <= 30) { + me.Ftrgt = 0 - me.ASI; + } else if (tgt_F >= 420) { + me.Ftrgt = 390 - me.ASI; + } else { + me.Ftrgt = tgt_F - 30 - me.ASI; + } + + me.SPDftrgtdiff = tgt_F - ind_spd; + + if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["F_target"].show(); + me["F_target"].setTranslation(0, me.Ftrgt * -6.6); + } else { + me["F_target"].hide(); + } + + tgt_flap = 185; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '3') { + me["S_target"].hide(); + me["clean_speed"].hide(); + + tgt_F = fmgc.FMGCInternal.flap3; + + if (tgt_F <= 30) { + me.Ftrgt = 0 - me.ASI; + } else if (tgt_F >= 420) { + me.Ftrgt = 390 - me.ASI; + } else { + me.Ftrgt = tgt_F - 30 - me.ASI; + } + + me.SPDftrgtdiff = tgt_F - ind_spd; + + if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42 and gear_agl.getValue() >= 400) { + me["F_target"].show(); + me["F_target"].setTranslation(0, me.Ftrgt * -6.6); + } else { + me["F_target"].hide(); + } + + tgt_flap = 177; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; + + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } + } else if (flap_config.getValue() == '4') { + me["S_target"].hide(); + me["F_target"].hide(); + me["clean_speed"].hide(); + me["flap_max"].hide(); } else { me["S_target"].hide(); - } - - tgt_flap = 200; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } else if (flap_config.getValue() == '2') { - me["S_target"].hide(); - me["clean_speed"].hide(); - - tgt_F = tgt_S = getprop("/FMGC/internal/computed-speeds/flap2"); - - if (tgt_F <= 30) { - me.Ftrgt = 0 - me.ASI; - } else if (tgt_F >= 420) { - me.Ftrgt = 390 - me.ASI; - } else { - me.Ftrgt = tgt_F - 30 - me.ASI; - } - - me.SPDftrgtdiff = tgt_F - ind_spd; - - if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) { - me["F_target"].show(); - me["F_target"].setTranslation(0, me.Ftrgt * -6.6); - } else { me["F_target"].hide(); - } - - tgt_flap = 185; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } else if (flap_config.getValue() == '3') { - me["S_target"].hide(); - me["clean_speed"].hide(); - - tgt_F = tgt_S = getprop("/FMGC/internal/computed-speeds/flap3"); - if (tgt_F <= 30) { - me.Ftrgt = 0 - me.ASI; - } else if (tgt_F >= 420) { - me.Ftrgt = 390 - me.ASI; - } else { - me.Ftrgt = tgt_F - 30 - me.ASI; - } - - me.SPDftrgtdiff = tgt_F - ind_spd; - - if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) { - me["F_target"].show(); - me["F_target"].setTranslation(0, me.Ftrgt * -6.6); - } else { - me["F_target"].hide(); - } + tgt_clean = fmgc.FMGCInternal.clean; + + me.cleantrgt = tgt_clean - 30 - me.ASI; + me.SPDcleantrgtdiff = tgt_clean - ind_spd; - tgt_flap = 177; - me.flaptrgt = tgt_flap - 30 - me.ASI; + if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) { + me["clean_speed"].show(); + me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6); + } else { + me["clean_speed"].hide(); + } + + tgt_flap = 230; + me.flaptrgt = tgt_flap - 30 - me.ASI; + + me.SPDflaptrgtdiff = tgt_flap - ind_spd; - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); + if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { + me["flap_max"].show(); + me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); + } else { + me["flap_max"].hide(); + } } - } else if (flap_config.getValue() == '4') { - me["S_target"].hide(); - me["F_target"].hide(); - me["clean_speed"].hide(); - me["flap_max"].hide(); } else { me["S_target"].hide(); me["F_target"].hide(); - - tgt_clean = tgt_S = getprop("/FMGC/internal/computed-speeds/clean"); - - me.cleantrgt = tgt_clean - 30 - me.ASI; - me.SPDcleantrgtdiff = tgt_clean - ind_spd; - - if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) { - me["clean_speed"].show(); - me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6); - } else { - me["clean_speed"].hide(); - } - - tgt_flap = 230; - me.flaptrgt = tgt_flap - 30 - me.ASI; - - me.SPDflaptrgtdiff = tgt_flap - ind_spd; - - if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) { - me["flap_max"].show(); - me["flap_max"].setTranslation(0, me.flaptrgt * -6.6); - } else { - me["flap_max"].hide(); - } - } - - if (alt_agl.getValue() < 400) { - me["S_target"].hide(); - me["F_target"].hide(); + me["clean_speed"].hide(); + me["flap_max"].hide(); } me.ASItrend = dmc.DMController.DMCs[1].outputs[6].getValue() - me.ASI; @@ -2419,7 +2537,7 @@ var canvas_PFD_2 = { landing_diff_cur = landing_diff.getValue(); if (landing_diff_cur >= -565 and landing_diff_cur <= 565) { - if ((FMGCphase.getValue() == 5 or FMGCphase.getValue() == 6) and !wow1.getValue() and !wow2.getValue()) { #add std too + if ((fmgc.FMGCInternal.phase == 5 or fmgc.FMGCInternal.phase == 6) and !wow1.getValue() and !wow2.getValue()) { #add std too me["ground"].setTranslation(0, (landing_diff_cur / 100) * -48.66856); me["ground"].show(); } else { @@ -2429,13 +2547,13 @@ var canvas_PFD_2 = { me["ground"].hide(); } - if (!getprop("/ECAM/alt-alert-flash") and !getprop("/ECAM/alt-alert-steady")) { + if (!ecam.altAlertFlash and !ecam.altAlertSteady) { alt_going2 = 0; amber_going2 = 0; me["ALT_box_flash"].hide(); me["ALT_box_amber"].hide(); } else { - if (getprop("/ECAM/alt-alert-flash")) { + if (ecam.altAlertFlash) { if (alt_going2 == 1) { me["ALT_box_flash"].hide(); altTimer2.stop(); @@ -2453,7 +2571,7 @@ var canvas_PFD_2 = { } else { me["ALT_box_amber"].hide(); } - } elsif (getprop("/ECAM/alt-alert-steady")) { + } elsif (ecam.altAlertSteady) { if (amber_going2 == 1) { me["ALT_box"].show(); me["ALT_box_amber"].hide(); diff --git a/Models/Instruments/PFD/res/info.txt b/Models/Instruments/PFD/res/info.txt new file mode 100644 index 00000000..d219aea5 --- /dev/null +++ b/Models/Instruments/PFD/res/info.txt @@ -0,0 +1,13 @@ +Heading Tape: +123.177 +61.5885 + +98.5416 is 123.177 in 1024 +49.2708 is 61.5885 in 1024 + +Altitude Tape: +304.178 +60.8357 + +243.3424 is 304.178 in 1024 +48.66856 is 60.8357 in 1024 \ No newline at end of file diff --git a/Models/Instruments/PFD/res/pfd.svg b/Models/Instruments/PFD/res/pfd.svg index 214a1acd..9dcde382 100644 --- a/Models/Instruments/PFD/res/pfd.svg +++ b/Models/Instruments/PFD/res/pfd.svg @@ -8,7 +8,7 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="pfd.svg" - inkscape:version="1.0beta2 (2b71d25, 2019-12-03)" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" id="svg2" version="1.1" viewBox="0 0 1024 1024" @@ -39,14 +39,14 @@ showguides="true" inkscape:current-layer="svg2" inkscape:window-maximized="1" - inkscape:window-y="23" - inkscape:window-x="0" - inkscape:cy="886.5494" - inkscape:cx="916.44902" - inkscape:zoom="2.1546825" + inkscape:window-y="18" + inkscape:window-x="3840" + inkscape:cy="557.03495" + inkscape:cx="619.57094" + inkscape:zoom="0.53867065" showgrid="true" id="namedview371" - inkscape:window-height="1035" + inkscape:window-height="1062" inkscape:window-width="1920" inkscape:pageshadow="2" inkscape:pageopacity="1" @@ -1396,9 +1396,10 @@ + style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="fixed_aircraft_outline_1" /> + sodipodi:nodetypes="cccccccccccc" + inkscape:label="fixed_aircraft_outline_2" /> - @@ -2872,17 +2866,12 @@ + FLX + SPDLIM + + + + + + diff --git a/Models/Instruments/Radio/Radio1.xml b/Models/Instruments/Radio/Radio1.xml index 955cb2ff..2bd06244 100644 --- a/Models/Instruments/Radio/Radio1.xml +++ b/Models/Instruments/Radio/Radio1.xml @@ -240,7 +240,6 @@ - - + + + /sim/current-view/internal + 8.0 + + 20.0 + 100.0 + + apoff-looped looped @@ -1064,13 +1079,14 @@ /sim/sound/other/air-con + 6 once wow0 - Aircraft/A320-family/Sounds/SASA/Touch-Main.wav + Aircraft/A320-family/Sounds/SASA/Touch-Main.wav gear/gear[0]/wow @@ -1527,6 +1543,20 @@ + + Pushbutton + once + avionics + Aircraft/A320-family/Sounds/Cockpit/pushbutton.wav + + /sim/sounde/pushbutton + + + sim/current-view/internal + 0.25 + + + Flaps Lever once @@ -1541,6 +1571,21 @@ 0.75 + + + Speedbrake Lever + once + Aircraft/A320-family/Sounds/SASA/A320_flaplever.wav + + + /sim/sounde/spdbrk-click + /sim/current-view/internal + + + + 0.75 + + Flaps Motor @@ -1644,10 +1689,10 @@ RelayBatt1 once Aircraft/A320-family/Sounds/Cockpit/relay-battery.wav - /systems/electrical/sources/bat-1/contact + /sim/sounde/relay-batt-1 /sim/current-view/internal - 0.8 + 0.4 @@ -1655,10 +1700,10 @@ RelayBatt2 once Aircraft/A320-family/Sounds/Cockpit/relay-battery.wav - /systems/electrical/sources/bat-2/contact + /sim/sounde/relay-batt-2 /sim/current-view/internal - 0.8 + 0.4 @@ -1666,7 +1711,7 @@ RelayEXT once Aircraft/A320-family/Sounds/Cockpit/relay-external.wav - /systems/electrical/relay/ext-epc/contact-pos + /sim/sounde/relay-ext /sim/current-view/internal 0.8 @@ -1677,7 +1722,7 @@ RelayAPU once Aircraft/A320-family/Sounds/Cockpit/relay-apu.wav - /systems/electrical/relay/apu-glc/contact-pos + /sim/sounde/relay-apu /sim/current-view/internal 0.8 @@ -2019,5 +2064,65 @@ 0.05 + + + gear-screech + once + Aircraft/A320-family/Sounds/Effects/tires-screech-asphalt.wav + + + + + /fdm/jsbsim/fcs/left-brake-cmd-norm + 0.95 + + + /fdm/jsbsim/fcs/right-brake-cmd-norm + 0.95 + + + + /velocities/groundspeed-kt + 5 + + + + + /sim/current-view/internal + 2 + + 10 + 200.0 + + + + gear-screech looped + looped + Aircraft/A320-family/Sounds/Effects/tires-screech-asphalt.wav + + + + + /fdm/jsbsim/gear/unit[0]/slip-angle-deg + 35 + + + /fdm/jsbsim/gear/unit[0]/side_friction_coeff + 0.95 + + + + /velocities/groundspeed-kt + 5 + + + + + /sim/current-view/internal + 2 + + 10 + 200.0 + \ No newline at end of file diff --git a/Sounds/Cockpit/pushbutton.wav b/Sounds/Cockpit/pushbutton.wav new file mode 100644 index 00000000..f935763e Binary files /dev/null and b/Sounds/Cockpit/pushbutton.wav differ diff --git a/Sounds/Effects/tires-screech-asphalt.wav b/Sounds/Effects/tires-screech-asphalt.wav new file mode 100644 index 00000000..5f1bfa99 Binary files /dev/null and b/Sounds/Effects/tires-screech-asphalt.wav differ diff --git a/Sounds/GPWS/too-low-gear.wav b/Sounds/GPWS/too-low-gear.wav index 8dbde954..1d28c9d5 100644 Binary files a/Sounds/GPWS/too-low-gear.wav and b/Sounds/GPWS/too-low-gear.wav differ diff --git a/Sounds/SASA/CFM56B/external/cfm-shutdown.wav b/Sounds/SASA/CFM56B/external/cfm-shutdown.wav new file mode 100644 index 00000000..add39766 Binary files /dev/null and b/Sounds/SASA/CFM56B/external/cfm-shutdown.wav differ diff --git a/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav b/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav new file mode 100644 index 00000000..7d7cebe3 Binary files /dev/null and b/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav differ diff --git a/Sounds/SASA/Touch-Main.wav b/Sounds/SASA/Touch-Main.wav index 14af7984..d52738ae 100644 Binary files a/Sounds/SASA/Touch-Main.wav and b/Sounds/SASA/Touch-Main.wav differ diff --git a/Sounds/cfm56-sound.xml b/Sounds/cfm56-sound.xml index 137f512d..e49487ee 100644 --- a/Sounds/cfm56-sound.xml +++ b/Sounds/cfm56-sound.xml @@ -87,6 +87,48 @@ + + a320_shutdown_left + once + Aircraft/A320-family/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav + + + /sim/sound/shutdown[0] + 0 + + + + /sim/sound/internal-custom + 1 + + + 0 + 20 + 0 + + + + + a320_shutdown_right + once + Aircraft/A320-family/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav + + + /sim/sound/shutdown[1] + 0 + + + + /sim/sound/internal-custom + 1 + + + 0 + -20 + 0 + + + a320_cockpit_idle_1 looped @@ -502,9 +544,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -533,9 +574,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -564,9 +604,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -595,9 +634,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -626,9 +664,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 @@ -657,9 +694,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 @@ -677,6 +713,50 @@ + + a320_external_shutdown_left + once + Aircraft/A320-family/Sounds/SASA/CFM56B/external/cfm-shutdown.wav + + + /sim/sound/shutdown[0] + 0 + + + + /sim/sound/external-custom + 1 + + 30 + + 0 + 20 + 0 + + + + + a320_external_shutdown_right + once + Aircraft/A320-family/Sounds/SASA/CFM56B/external/cfm-shutdown.wav + + + /sim/sound/shutdown[1] + 0 + + + + /sim/sound/external-custom + 1 + + 30 + + 0 + -20 + 0 + + + a320_external_idle_1 diff --git a/Sounds/leapx-sound.xml b/Sounds/leapx-sound.xml index d7ff4875..8156494f 100644 --- a/Sounds/leapx-sound.xml +++ b/Sounds/leapx-sound.xml @@ -458,9 +458,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -489,9 +488,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -520,9 +518,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -551,9 +548,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -582,9 +578,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 @@ -613,9 +608,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 diff --git a/Sounds/v2500-sound.xml b/Sounds/v2500-sound.xml index 751bb41b..9654322c 100644 --- a/Sounds/v2500-sound.xml +++ b/Sounds/v2500-sound.xml @@ -87,6 +87,48 @@ + + a320_shutdown_left + once + Aircraft/A320-family/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav + + + /sim/sound/shutdown[0] + 0 + + + + /sim/sound/internal-custom + 1 + + + 0 + 20 + 0 + + + + + a320_shutdown_right + once + Aircraft/A320-family/Sounds/SASA/CFM56B/start/A320_cockpit_shutdown.wav + + + /sim/sound/shutdown[1] + 0 + + + + /sim/sound/internal-custom + 1 + + + 0 + -20 + 0 + + + a320_cockpit_idle_left looped @@ -319,9 +361,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -350,9 +391,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -381,9 +421,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -412,9 +451,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 -1 @@ -432,6 +470,50 @@ + + a320_external_shutdown_left + once + Aircraft/A320-family/Sounds/SASA/CFM56B/external/cfm-shutdown.wav + + + /sim/sound/shutdown[0] + 0 + + + + /sim/sound/external-custom + 1 + + 30 + + 0 + 20 + 0 + + + + + a320_external_shutdown_right + once + Aircraft/A320-family/Sounds/SASA/CFM56B/external/cfm-shutdown.wav + + + /sim/sound/shutdown[1] + 0 + + + + /sim/sound/external-custom + 1 + + 30 + + 0 + -20 + 0 + + + a320_external_startup_rear once @@ -443,9 +525,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 @@ -474,9 +555,8 @@ - /sim/sound/internal-custom - -1 - 1 + /sim/sound/external-custom + 1 1 diff --git a/Systems/a320-adr.xml b/Systems/a320-adr.xml index 20bcc96b..8e6ce63f 100644 --- a/Systems/a320-adr.xml +++ b/Systems/a320-adr.xml @@ -4,7 +4,7 @@ - + @@ -75,51 +75,19 @@ - - - - /environment/temperature-degc - 273.15 - - - 1 - - 0.2 - 0.995 - - velocities/mach - 2 - - - - - 273.15 - + + 0.995 + propulsion/tat-c + - - - - /environment/temperature-degc - 273.15 - - - 1 - - 0.2 - 0.996 - - velocities/mach - 2 - - - - - 273.15 - + + 0.996 + propulsion/tat-c + @@ -143,7 +111,7 @@ - + /instrumentation/altimeter[0]/pressure-alt-ft @@ -770,7 +738,7 @@ - + /systems/navigation/probes/aoa-1 diff --git a/Systems/a320-aerodynamics.xml b/Systems/a320-aerodynamics.xml index a9c797ca..789cefd8 100644 --- a/Systems/a320-aerodynamics.xml +++ b/Systems/a320-aerodynamics.xml @@ -4,9 +4,8 @@ - ice/wing - rubbish/landL - rubbish/landR + ice/wingL + ice/wingR @@ -143,18 +142,35 @@ - + Lift_decrease_due_to_ice_on_wing aero/qbar-psf metrics/Sw-sqft - ice/wing + ice/wingL + + 0.0 0.00 + 0.5 -0.05 + 1.0 -0.15 + 2.0 -1.25 + +
+
+
+ + + Lift_decrease_due_to_ice_on_wing + + aero/qbar-psf + metrics/Sw-sqft + + ice/wingR 0.0 0.0 - 0.5 -0.1 - 1.0 -0.3 - 2.0 -1.5 + 0.5 -0.05 + 1.0 -0.15 + 2.0 -1.25
@@ -337,18 +353,35 @@
- + Drag_due_to_ice_on_wing aero/qbar-psf metrics/Sw-sqft - ice/wing + ice/wingL 0.0 0.000 - 0.5 0.004 - 1.0 0.010 - 2.0 0.100 + 0.5 0.002 + 1.0 0.005 + 2.0 0.050 + +
+
+
+ + + Drag_due_to_ice_on_wing + + aero/qbar-psf + metrics/Sw-sqft + + ice/wingR + + 0.0 0.000 + 0.5 0.002 + 1.0 0.005 + 2.0 0.050
diff --git a/Systems/a320-aircond.xml b/Systems/a320-aircond.xml new file mode 100644 index 00000000..0f74d621 --- /dev/null +++ b/Systems/a320-aircond.xml @@ -0,0 +1,879 @@ + + + + + /systems/air-conditioning/packs/pack-flow-1-norm + /systems/air-conditioning/packs/pack-flow-2-norm + + + + + + + /systems/air-conditioning/packs/pack-1-outlet-temp ge 260 + /controls/engines/engine[0]/fire-btn eq 1 + + + + /systems/pneumatics/valves/starter-valve-1 ne 0 + /systems/pneumatics/valves/starter-valve-2 ne 0 + + /gear/gear[1]/wow eq 1 + + + + /systems/pneumatics/valves/starter-valve-1 ne 0 + + /systems/pneumatics/valves/crossbleed-valve eq 1 + /systems/pneumatics/valves/starter-valve-2 ne 0 + + + /gear/gear[1]/wow eq 0 + + + /systems/pressurization/ditchingpb eq 1 + /systems/pneumatics/psi/engine-1-psi le 13.8 + + + /controls/pneumatics/switches/pack-1 eq 1 + + + + + + + /systems/failures/pneumatics/pack-1-valve eq 0 + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/air-conditioning/valves/flow-control-valve-1-cmd + /systems/air-conditioning/valves/flow-control-valve-1-power + + + + + + + /systems/air-conditioning/packs/pack-2-outlet-temp ge 260 + /controls/engines/engine[1]/fire-btn eq 1 + + + + /systems/pneumatics/valves/starter-valve-1 ne 0 + /systems/pneumatics/valves/starter-valve-2 ne 0 + + /gear/gear[1]/wow eq 1 + + + + /systems/pneumatics/valves/starter-valve-2 ne 0 + + /systems/pneumatics/valves/crossbleed-valve eq 1 + /systems/pneumatics/valves/starter-valve-1 ne 0 + + + /gear/gear[1]/wow eq 0 + + + /systems/pressurization/ditchingpb eq 1 + /systems/pneumatics/psi/engine-2-psi le 13.8 + + + /controls/pneumatics/switches/pack-2 eq 1 + + + + + + + /systems/failures/pneumatics/pack-2-valve eq 0 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/air-conditioning/valves/flow-control-valve-2-cmd + /systems/air-conditioning/valves/flow-control-valve-2-power + + + + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 eq 0 + /systems/air-conditioning/valves/flow-control-valve-2 eq 1 + + + /systems/air-conditioning/valves/flow-control-valve-1 eq 1 + /systems/air-conditioning/valves/flow-control-valve-2 eq 0 + + + + + + + + /systems/pneumatics/valves/apu-bleed-valve eq 1 + /systems/air-conditioning/packs/single-pack eq 1 + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 + /systems/air-conditioning/packs/pack-flow + + + + + + /systems/air-conditioning/packs/pack-flow-1-calc + 5 + + + + + + /systems/air-conditioning/packs/pack-flow-1 + + 1 + 1.2 + + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-2 + /systems/air-conditioning/packs/pack-flow + + + + + + /systems/air-conditioning/packs/pack-flow-2-calc + 5 + + + + + + /systems/air-conditioning/packs/pack-flow-2 + + 1 + 1.2 + + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 eq 0 + /systems/air-conditioning/valves/flow-control-valve-2 eq 0 + + + /systems/air-conditioning/valves/flow-control-valve-1 eq 0 + /systems/air-conditioning/valves/flow-control-valve-2 eq 0 + + + /systems/air-conditioning/valves/flow-control-valve-1 eq 1 + /systems/air-conditioning/valves/flow-control-valve-2 eq 1 + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 + 0.5 + + + 0.6363636 + /systems/air-conditioning/valves/flow-control-valve-1 + /systems/pneumatics/precooler/temp-1 + + /systems/navigation/probes/tat-1/compute-tat + + + + + + /systems/air-conditioning/packs/pack-1-outlet-temp-calc + 0.8 + + + + + + + /systems/air-conditioning/valves/flow-control-valve-2 + 0.5 + + + 0.6363636 + /systems/air-conditioning/valves/flow-control-valve-2 + /systems/pneumatics/precooler/temp-2 + + /systems/navigation/probes/tat-2/compute-tat + + + + + + /systems/air-conditioning/packs/pack-2-outlet-temp-calc + 0.8 + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 + 0.5 + + + + -1 + + + 0.76 + /systems/air-conditioning/packs/pack-1-outlet-temp + + 37.5 + + + /systems/air-conditioning/packs/pack-1-outlet-temp + + /systems/navigation/probes/tat-1/compute-tat + + + + + + /systems/air-conditioning/packs/pack-1-output-temp-calc + 0.8 + + + + + + + /systems/air-conditioning/valves/flow-control-valve-2 + 0.5 + + + + -1 + + + 0.76 + /systems/air-conditioning/packs/pack-2-outlet-temp + + 37.5 + + + /systems/air-conditioning/packs/pack-2-outlet-temp + + /systems/navigation/probes/tat-2/compute-tat + + + + + + /systems/air-conditioning/packs/pack-2-output-temp-calc + 0.8 + + + + + + /controls/pneumatics/switches/temp-cockpit + + 0.0 18 + 0.5 24 + 1.0 30 + +
+
+
+ + + + + + /systems/air-conditioning/valves/hot-air + 0 + + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + /systems/air-conditioning/packs/demand-temp/cockpit + + + + + + /systems/air-conditioning/packs/demand-temp/cockpit-duct-cmd + /systems/air-conditioning/valves/trim-power-cockpit + + + + + + /sim/time/elapsed-sec lt 20 + + + + + /systems/air-conditioning/packs/demand-temp/cockpit-duct-cmd + /systems/air-conditioning/temperatures/rate + + + + + + /controls/pneumatics/switches/temp-cabin-aft + + 0.0 18 + 0.5 24 + 1.0 30 + +
+
+
+ + + + + /controls/pneumatics/switches/temp-cabin-aft + + 0.0 18 + 0.5 24 + 1.0 30 + +
+
+
+ + + + + + /systems/air-conditioning/valves/hot-air + 0 + + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + /systems/air-conditioning/packs/demand-temp/cabin-aft + + + + + + /systems/air-conditioning/packs/demand-temp/cabin-aft-duct-cmd + /systems/air-conditioning/valves/trim-power-cabin-aft + + + + /systems/air-conditioning/packs/demand-temp/cabin-aft-duct-cmd + /systems/air-conditioning/temperatures/rate + + + + + + /controls/pneumatics/switches/temp-cabin-fwd + + 0.0 18 + 0.5 24 + 1.0 30 + +
+
+
+ + + + + + /systems/air-conditioning/valves/hot-air + 0 + + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + + + + + /systems/air-conditioning/packs/demand-temp/cabin-fwd-duct-cmd + /systems/air-conditioning/valves/trim-power-cabin-fwd + + + + /systems/air-conditioning/packs/demand-temp/cabin-fwd-duct-cmd + /systems/air-conditioning/temperatures/rate + + + + + + /controls/pneumatics/switches/ram-air eq 1 + /systems/pressurization/ditchingpb eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/air-conditioning/valves/ram-air-cmd + /systems/air-conditioning/valves/ram-air-power + + + + + + /gear/gear[1]/wow eq 0 + /systems/air-conditioning/landing-switch eq 0 + + + /gear/gear[1]/wow eq 1 + /systems/air-conditioning/landing-switch eq 1 + /velocities/airspeed-kt lt 70 + /ECAM/phases/to-power-set ne 1 + + + + + + + /gear/gear[1]/wow eq 1 + /ECAM/phases/to-power-set eq 1 + + + /gear/gear[1]/wow eq 1 + /velocities/airspeed-kt ge 70 + /systems/air-conditioning/landing-switch eq 1 + + + + + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-ess ge 25 + + + + + /systems/air-conditioning/valves/ram-air-inlet-1-cmd + /systems/air-conditioning/valves/ram-air-inlet-1-power + + + + /systems/air-conditioning/valves/ram-air-inlet-1-cmd + /systems/air-conditioning/valves/ram-air-inlet-1-power + + + + + + /gear/gear[1]/wow eq 1 + /ECAM/phases/to-power-set eq 1 + + + /gear/gear[1]/wow eq 1 + /velocities/airspeed-kt ge 70 + /systems/air-conditioning/landing-switch eq 1 + + + + + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/air-conditioning/valves/ram-air-inlet-2-cmd + /systems/air-conditioning/valves/ram-air-inlet-2-power + + + + /systems/air-conditioning/valves/ram-air-inlet-2-cmd + /systems/air-conditioning/valves/ram-air-inlet-2-power + + + + + + /controls/pneumatics/switches/hot-air eq 1 + + + + + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/air-conditioning/valves/hot-air-cmd + /systems/air-conditioning/valves/hot-air-power + + + + + + /systems/failures/pneumatics/trim-valve-cockpit eq 1 + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /systems/failures/pneumatics/trim-valve-cabin-fwd eq 1 + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /systems/failures/pneumatics/trim-valve-cabin-aft eq 1 + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + + + + + 1 + /systems/air-conditioning/packs/pack-flow-2-norm + + + 1 + /systems/air-conditioning/packs/pack-flow-1-norm + + + 2 + + + /systems/air-conditioning/packs/demand-temp/cockpit + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + + + 2 + + + + + + + + + + + + 1 + /systems/air-conditioning/packs/pack-flow-2-norm + + + 1 + /systems/air-conditioning/packs/pack-flow-1-norm + + + 2 + + + /systems/air-conditioning/packs/demand-temp/cabin-aft + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + + + 2 + + + + + + + + + + + + 1 + /systems/air-conditioning/packs/pack-flow-2-norm + + + 1 + /systems/air-conditioning/packs/pack-flow-1-norm + + + 2 + + + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + /systems/air-conditioning/packs/demand-temp/cockpit + /systems/air-conditioning/packs/demand-temp/cabin-aft + /systems/air-conditioning/packs/demand-temp/cabin-fwd + + + + 2 + + + + + + + + /systems/air-conditioning/valves/hot-air eq 0 + + + + + /systems/air-conditioning/valves/trim-cockpit-cmd + /systems/air-conditioning/valves/trim-power-cockpit + + + + + + /systems/air-conditioning/valves/hot-air eq 0 + + + + + /systems/air-conditioning/valves/trim-aft-cmd + /systems/air-conditioning/valves/trim-power-cabin-aft + + + + + + /systems/air-conditioning/valves/hot-air eq 0 + + + + + /systems/air-conditioning/valves/trim-fwd-cmd + /systems/air-conditioning/valves/trim-power-cabin-fwd + +
+ + + + + + + + + + + + /systems/air-conditioning/packs/pack-factor + /systems/air-conditioning/packs/pack-flow + + /systems/pressurization/cabinpsi + 68.9476 + + 0.928 + + + 2.87 + /systems/air-conditioning/temperatures/cabin-overall-temp-kelvin + + + + + + + + + /systems/air-conditioning/packs/pack-flow eq 1.0 + + + /systems/air-conditioning/packs/pack-flow eq 1.2 + + + /systems/air-conditioning/packs/pack-flow eq 0.8 + + + + + + + /controls/switches/pneumatics/cabin-fans eq 1 + /systems/failures/pneumatics/cabin-fans eq 0 + + + + + + + + /systems/air-conditioning/recirc/recirc-factor + /systems/air-conditioning/recirc/cabin-fans + /systems/air-conditioning/mass-flow-fresh-kg_s + + /systems/air-conditioning/mass-flow-fresh-kg_s + + + + + + + + 0.14 + /systems/air-conditioning/mass-flow-total-kg_s + + + + + + + + + + + + /systems/air-conditioning/packs/pack-1-outlet-temp ge 260 + + + + + + + /systems/air-conditioning/packs/pack-2-outlet-temp ge 260 + + + + + + + /systems/air-conditioning/warnings/pack-1-ovht eq 1 + /ECAM/warnings/logic/pack-1-2-fault eq 0 + + + + + + + /systems/air-conditioning/warnings/pack-2-ovht eq 1 + /ECAM/warnings/logic/pack-1-2-fault eq 0 + + + + + + + /ECAM/warnings/logic/pack-1-disagree-input eq 1 + /systems/air-conditioning/warnings/pack-1-ovht eq 1 + + + + + + + /ECAM/warnings/logic/pack-2-disagree-input eq 1 + /systems/air-conditioning/warnings/pack-2-ovht eq 1 + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-1 ne 1 + /systems/air-conditioning/valves/flow-control-valve-1-cmd eq 1 + + + /systems/air-conditioning/valves/flow-control-valve-1 ne 0 + /systems/air-conditioning/valves/flow-control-valve-1-cmd eq 0 + + + + + + + + + /systems/air-conditioning/valves/flow-control-valve-2 ne 1 + /systems/air-conditioning/valves/flow-control-valve-2-cmd eq 1 + + + /systems/air-conditioning/valves/flow-control-valve-2 ne 0 + /systems/air-conditioning/valves/flow-control-valve-2-cmd eq 0 + + + + + + +
diff --git a/Systems/a320-apu.xml b/Systems/a320-apu.xml index ed359f59..42691717 100644 --- a/Systems/a320-apu.xml +++ b/Systems/a320-apu.xml @@ -4,7 +4,7 @@ - + @@ -13,7 +13,7 @@ - /controls/pneumatic/switches/bleedapu + /controls/pneumatics/switches/apu 1 252 diff --git a/Systems/a320-electrical.xml b/Systems/a320-electrical.xml index 6e4fa910..8fb63914 100644 --- a/Systems/a320-electrical.xml +++ b/Systems/a320-electrical.xml @@ -5,6 +5,8 @@ /systems/electrical/some-electric-thingie/rat-deploy + /systems/electrical/relay/gen-1-glc/contact-pos + /systems/electrical/relay/gen-2-glc/contact-pos @@ -172,9 +174,11 @@ /systems/electrical/sources/bat-1/load-kw ne 0 + /systems/electrical/sources/bat-1/direction eq 1 /systems/electrical/sources/bat-1/contact eq 1 + /systems/electrical/sources/bat-1/direction eq -1
@@ -342,9 +346,11 @@ /systems/electrical/sources/bat-2/load-kw ne 0 + /systems/electrical/sources/bat-2/direction eq 1 /systems/electrical/sources/bat-2/contact eq 1 + /systems/electrical/sources/bat-2/direction eq -1 @@ -357,7 +363,6 @@ - /controls/engines/engine[0]/fire-btn eq 1 /systems/failures/electrical/idg-1 eq 1 /controls/electrical/switches/idg-1-disc eq 0 @@ -376,8 +381,8 @@ - 1.3 - 2.8 + 1.315 + 2.667 @@ -419,7 +424,8 @@ /systems/failures/electrical/gen-1 ne 1 - /systems/electrical/sources/idg-1/csd-rpm ge 11500 + /controls/engines/engine[0]/fire-btn eq 0 + /systems/electrical/sources/idg-1/drive-rpm ge 4730 @@ -442,7 +448,6 @@ - /controls/engines/engine[1]/fire-btn eq 1 /systems/failures/electrical/idg-2 eq 1 /controls/electrical/switches/idg-2-disc eq 0 @@ -461,8 +466,8 @@ - 1.3 - 2.8 + 1.315 + 2.667 @@ -504,7 +509,8 @@ /systems/failures/electrical/gen-2 ne 1 - /systems/electrical/sources/idg-2/csd-rpm ge 11500 + /controls/engines/engine[1]/fire-btn eq 0 + /systems/electrical/sources/idg-2/drive-rpm ge 4730 @@ -519,27 +525,15 @@ - + /engines/engine[2]/n1 240.34 - - - - /controls/apu/fire-btn eq 1 - - - - - /systems/electrical/sources/apu/drive-rpm-input - /systems/electrical/sources/apu/working - - - /systems/electrical/sources/apu/drive-rpm-input + /systems/electrical/sources/apu/drive-rpm 115 24000 @@ -552,7 +546,7 @@ - /systems/electrical/sources/apu/drive-rpm-input + /systems/electrical/sources/apu/drive-rpm 2 120 @@ -563,9 +557,10 @@ + /controls/apu/fire-btn ne 1 /controls/electrical/switches/apu eq 1 /systems/failures/electrical/apu ne 1 - /systems/electrical/sources/apu/drive-rpm-input ge 23000 + /systems/electrical/sources/apu/drive-rpm ge 22800 @@ -652,6 +647,15 @@ /systems/electrical/sources/si-1/inverter-gain + + + + /systems/electrical/sources/bat-1/volt lt 23.5 + /systems/electrical/sources/si-1/output-volt lt 110 + /systems/electrical/sources/si-1/output-volt ge 120 + + + @@ -686,7 +690,7 @@ /systems/electrical/bus/ac-2 ne 0 - /instrumentation/airspeed-indicator/indicated-speed-kt gt 100 + /instrumentation/airspeed-indicator/indicated-speed-kt ge 100 /systems/electrical/bus/ac-1 eq 0 /systems/electrical/bus/ac-2 eq 0 gear/unit[0]/WOW eq 0 @@ -757,15 +761,69 @@ - + + + + /systems/electrical/bus/dc-bat ge 25 + /systems/electrical/sources/idg-1/pmg-volt ge 110 + + + + + /systems/electrical/sources/idg-1/gcu-1-voltage-trip eq 1 /controls/electrical/switches/gen-1 eq 1 + + + /systems/electrical/relay/gen-1-glc/contact-pos eq 1 + + /systems/electrical/sources/idg-1/output-volt lt 110 + /systems/electrical/sources/idg-1/output-volt gt 130 + + + + + + + + /systems/electrical/sources/idg-1/gcu-1-frequency-trip eq 1 + /controls/electrical/switches/gen-1 eq 1 + + + /systems/electrical/relay/gen-1-glc/contact-pos eq 1 + + /systems/electrical/sources/idg-1/output-hertz lt 363 + /systems/electrical/sources/idg-1/output-hertz gt 433 + + + + + + + + /systems/acconfig/autoconfig-running eq 1 + /sim/time/elapsed-sec lt 10 + + + /systems/electrical/sources/idg-1/gcu-1-voltage-trip eq 1 + /systems/electrical/sources/idg-1/gcu-1-frequency-trip eq 1 + /systems/electrical/sources/idg-1/drive-rpm lt 4730 + + + + + + + /sim/time/elapsed-sec lt 10 + + + /controls/electrical/switches/gen-1 eq 1 + /systems/electrical/sources/idg-1/output-hertz ge 363 + /systems/electrical/sources/idg-1/output-hertz le 433 /systems/electrical/sources/idg-1/output-volt ge 110 /systems/electrical/sources/idg-1/output-volt le 130 - /systems/electrical/sources/idg-1/output-hertz ge 390 - /systems/electrical/sources/idg-1/output-hertz le 410 - /controls/electrical/switches/gen-1-line-contactor ne 1 + /systems/electrical/sources/idg-1/gcu-1-fault ne 1 @@ -776,14 +834,69 @@ - + + + + /systems/electrical/bus/dc-bat ge 25 + /systems/electrical/sources/idg-2/pmg-volt ge 110 + + + + + /systems/electrical/sources/idg-2/gcu-2-voltage-trip eq 1 /controls/electrical/switches/gen-2 eq 1 + + + /systems/electrical/relay/gen-2-glc/contact-pos eq 1 + + /systems/electrical/sources/idg-2/output-volt lt 110 + /systems/electrical/sources/idg-2/output-volt gt 130 + + + + + + + + /systems/electrical/sources/idg-2/gcu-2-frequency-trip eq 1 + /controls/electrical/switches/gen-2 eq 1 + + + /systems/electrical/relay/gen-2-glc/contact-pos eq 1 + + /systems/electrical/sources/idg-2/output-hertz lt 363 + /systems/electrical/sources/idg-2/output-hertz gt 433 + + + + + + + + /systems/acconfig/autoconfig-running eq 1 + /sim/time/elapsed-sec lt 10 + + + /systems/electrical/sources/idg-2/gcu-2-voltage-trip eq 1 + /systems/electrical/sources/idg-2/gcu-2-frequency-trip eq 1 + /systems/electrical/sources/idg-2/drive-rpm lt 4730 + + + + + + + /sim/time/elapsed-sec lt 10 + + + /controls/electrical/switches/gen-2 eq 1 + /systems/electrical/sources/idg-2/output-hertz ge 363 + /systems/electrical/sources/idg-2/output-hertz le 433 /systems/electrical/sources/idg-2/output-volt ge 110 - /systems/electrical/sources/idg-2/output-volt lt 130 - /systems/electrical/sources/idg-2/output-hertz ge 390 - /systems/electrical/sources/idg-2/output-hertz le 410 + /systems/electrical/sources/idg-2/output-volt le 130 + /systems/electrical/sources/idg-2/gcu-2-fault ne 1 @@ -810,16 +923,70 @@ + + + + /systems/electrical/bus/dc-bat ge 25 + /systems/electrical/sources/apu/pmg-volt ge 101.5 + + + + + + + /systems/electrical/sources/apu/gcu-voltage-trip eq 1 + /controls/electrical/switches/apu eq 1 + + + /systems/electrical/relay/apu-glc/contact-pos eq 1 + + /systems/electrical/sources/apu/output-volt lt 101.5 + /systems/electrical/sources/apu/output-volt gt 130 + + + + + + + + /systems/electrical/sources/apu/gcu-frequency-trip eq 1 + /controls/electrical/switches/apu eq 1 + + + /systems/electrical/relay/apu-glc/contact-pos eq 1 + + /systems/electrical/sources/apu/output-hertz lt 361 + /systems/electrical/sources/apu/output-hertz gt 435 + + + + + + + + /systems/acconfig/autoconfig-running eq 1 + /sim/time/elapsed-sec lt 10 + + + /systems/electrical/sources/apu/gcu-voltage-trip eq 1 + /systems/electrical/sources/apu/gcu-frequency-trip eq 1 + + + + + /sim/time/elapsed-sec lt 10 + /controls/apu/master eq 1 /controls/electrical/switches/apu eq 1 - /systems/electrical/sources/apu/output-volt ge 110 - /systems/electrical/sources/apu/output-volt lt 130 - /systems/electrical/sources/apu/output-hertz ge 390 - /systems/electrical/sources/apu/output-hertz le 410 + /systems/electrical/sources/apu/output-volt ge 101.5 + /systems/electrical/sources/apu/output-volt le 130 + /systems/electrical/sources/apu/output-hertz ge 361 + /systems/electrical/sources/apu/output-hertz le 435 /systems/electrical/relay/ext-epc/contact-pos eq 0 + /systems/electrical/sources/apu/gcu-fault ne 1 @@ -903,10 +1070,24 @@ + + + + /systems/electrical/bus/ac-1 lt 110 + + + + + /systems/electrical/relay/ac-ess-feed-1/auto-switch + 100 + 0.33333333333 + + /controls/electrical/switches/ac-ess-feed eq 0 + /systems/electrical/relay/ac-ess-feed-1/auto-switch-timer lt 1 /controls/electrical/switches/emer-gen-test eq 0 @@ -921,7 +1102,10 @@ - /controls/electrical/switches/ac-ess-feed eq 1 + + /controls/electrical/switches/ac-ess-feed eq 1 + /systems/electrical/relay/ac-ess-feed-1/auto-switch-timer eq 1 + /controls/electrical/switches/emer-gen-test eq 0 @@ -989,13 +1173,38 @@ + + + + + /systems/electrical/relay/apu-glc/contact-pos + /systems/electrical/relay/ext-epc/contact-pos + /systems/electrical/relay/gen-1-glc/contact-pos + /systems/electrical/relay/gen-2-glc/contact-pos + + + + - - + + /controls/electrical/switches/galley eq 1 - - /systems/electrical/relay/gen-1-glc/output ne 0 - /systems/electrical/relay/gen-2-glc/output ne 0 + + + /gear/gear[1]/wow eq 0 + /systems/electrical/some-electric-thingie/galley-shed-sum gt 1 + + + /gear/gear[1]/wow eq 1 + + /systems/electrical/relay/apu-glc/output ge 110 + /systems/electrical/relay/ext-epc/output ge 110 + + /systems/electrical/relay/gen-1-glc/output ge 110 + /systems/electrical/relay/gen-2-glc/output ge 110 + + + @@ -1008,12 +1217,25 @@ - - + + /controls/electrical/switches/galley eq 1 - - /systems/electrical/relay/gen-1-glc/output ne 0 - /systems/electrical/relay/gen-2-glc/output ne 0 + + + /gear/gear[1]/wow eq 0 + /systems/electrical/some-electric-thingie/galley-shed-sum gt 1 + + + /gear/gear[1]/wow eq 1 + + /systems/electrical/relay/apu-glc/output ge 110 + /systems/electrical/relay/ext-epc/output ge 110 + + /systems/electrical/relay/gen-1-glc/output ge 110 + /systems/electrical/relay/gen-2-glc/output ge 110 + + + @@ -1025,6 +1247,14 @@ + + + + /systems/electrical/relay/galley-bus-1-shed-switch/contact-pos eq 0 + /systems/electrical/relay/galley-bus-2-shed-switch/contact-pos eq 0 + + + Tell which source is being used for priority purpose @@ -1346,11 +1576,11 @@ /systems/electrical/relay/dc-ess-feed-tr/contact-pos eq 0 - /systems/electrical/relay/tr-contactor-1/contact-pos eq 1 - /systems/electrical/relay/dc-bus-tie-dc-1/contact-pos eq 1 - /systems/electrical/relay/dc-bus-tie-dc-2/contact-pos eq 0 + + /systems/electrical/relay/dc-bus-tie-dc-1/contact-pos eq 0 + /systems/electrical/relay/dc-bus-tie-dc-2/contact-pos eq 0 + /controls/electrical/switches/emer-gen-test eq 0 - /systems/electrical/bus/dc-1 ge 25 @@ -1370,13 +1600,6 @@ - - - - /systems/electrical/relay/dc-ess-shed-switch/contact-pos eq 1 - - - @@ -1495,7 +1718,7 @@ - /instrumentation/airspeed-indicator/indicated-speed-kt lt 50 + /instrumentation/airspeed-indicator/indicated-speed-kt lt 100 /controls/electrical/switches/bat-1 eq 1 /controls/electrical/switches/bat-2 eq 1 @@ -1527,7 +1750,7 @@ - /instrumentation/airspeed-indicator/indicated-speed-kt lt 50 + /instrumentation/airspeed-indicator/indicated-speed-kt lt 100 /controls/electrical/switches/bat-1 eq 1 /systems/electrical/bus/dc-bat-src eq 3 /systems/electrical/sources/bat-1/volt ge 25 @@ -1542,7 +1765,7 @@ - /instrumentation/airspeed-indicator/indicated-speed-kt lt 50 + /instrumentation/airspeed-indicator/indicated-speed-kt lt 100 /controls/electrical/switches/bat-2 eq 1 /systems/electrical/bus/dc-bat-src eq 3 /systems/electrical/sources/bat-2/volt ge 25 @@ -1576,7 +1799,7 @@ /systems/electrical/bus/dc-ess - 1 + /systems/electrical/relay/dc-ess-shed-switch/contact-pos @@ -1649,7 +1872,6 @@ - Timer for the ECAM system /systems/electrical/relay/ac-ess-feed-inverter/contact-pos 100 0.1 @@ -1700,11 +1922,16 @@ /controls/electrical/switches/apu eq 1 - /systems/electrical/relay/apu-glc/contact-pos eq 0 - /systems/electrical/relay/ext-epc/contact-pos eq 0 - /systems/electrical/relay/gen-1-glc/contact-pos eq 0 - /systems/electrical/relay/gen-2-glc/contact-pos eq 0 - /systems/electrical/sources/apu/drive-rpm gt 2000 + + /systems/electrical/sources/apu/gcu-fault eq 1 + + /systems/electrical/relay/apu-glc/contact-pos eq 0 + /systems/electrical/relay/ext-epc/contact-pos eq 0 + /systems/electrical/relay/gen-1-glc/contact-pos eq 0 + /systems/electrical/relay/gen-2-glc/contact-pos eq 0 + + + /systems/electrical/sources/apu/drive-rpm gt 22800 @@ -1731,7 +1958,10 @@ /controls/electrical/switches/gen-1 eq 1 - /systems/electrical/relay/gen-1-glc/contact-pos eq 0 + + /systems/electrical/sources/idg-1/gcu-1-fault eq 1 + /systems/electrical/relay/gen-1-glc/contact-pos eq 0 + @@ -1739,7 +1969,10 @@ /controls/electrical/switches/gen-2 eq 1 - /systems/electrical/relay/gen-2-glc/contact-pos eq 0 + + /systems/electrical/sources/idg-2/gcu-2-fault eq 1 + /systems/electrical/relay/gen-2-glc/contact-pos eq 0 + @@ -1747,7 +1980,7 @@ /systems/failures/electrical/idg-1 eq 1 - /systems/electrical/sources/idg-1/csd-rpm gt 2000 + /systems/electrical/sources/idg-1/drive-rpm gt 2000 /controls/electrical/switches/idg-1-disc-momentary eq 1 @@ -1758,7 +1991,7 @@ /systems/failures/electrical/idg-2 eq 1 - /systems/electrical/sources/idg-2/csd-rpm gt 2000 + /systems/electrical/sources/idg-2/drive-rpm gt 2000 /controls/electrical/switches/idg-2-disc-momentary eq 1 diff --git a/Systems/a320-engine-fire.xml b/Systems/a320-engine-fire.xml index 8d173bb8..9778bf50 100644 --- a/Systems/a320-engine-fire.xml +++ b/Systems/a320-engine-fire.xml @@ -2,7 +2,7 @@ - + @@ -73,7 +73,7 @@ - + diff --git a/Systems/a320-fbw.xml b/Systems/a320-fbw.xml index 7dd5c0ba..e8ce9803 100644 --- a/Systems/a320-fbw.xml +++ b/Systems/a320-fbw.xml @@ -56,12 +56,14 @@ - + position/wow eq 1 - /it-fbw/law eq 2 - /it-fbw/law eq 3 + + /it-fbw/yaw-law eq 2 + /it-fbw/law ne 0 + @@ -248,6 +250,234 @@ + + + + + + /controls/fctl/switches/elac1 eq 1 + /systems/fctl/elac1 eq 0 + + + + + + + /controls/fctl/switches/elac1 eq 1 + /systems/failures/fctl/elac1 eq 0 + + /systems/electrical/bus/dc-ess ge 25 + /systems/electrical/bus/dc-hot-1 ge 25 + + + + + + + + /controls/fctl/switches/elac2 eq 1 + /systems/fctl/elac2 eq 0 + + + + + + + /controls/fctl/switches/elac2 eq 1 + /systems/failures/fctl/elac2 eq 0 + + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/dc-hot-2 ge 25 + + + + + + + + /controls/fctl/switches/sec1 eq 1 + /systems/fctl/sec1 eq 0 + + + + + + + /controls/fctl/switches/sec1 eq 1 + /systems/failures/fctl/sec1 eq 0 + + /systems/electrical/bus/dc-ess ge 25 + /systems/electrical/bus/dc-hot-1 ge 25 + + + + + + + + /controls/fctl/switches/sec2 eq 1 + /systems/fctl/sec2 eq 0 + + + + + + + /controls/fctl/switches/sec2 eq 1 + /systems/failures/fctl/sec2 eq 0 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /controls/fctl/switches/sec3 eq 1 + /systems/fctl/sec3 eq 0 + + + + + + + /controls/fctl/switches/sec3 eq 1 + /systems/failures/fctl/sec3 eq 0 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /controls/fctl/switches/fac1 eq 1 + /systems/failures/fctl/fac1 eq 0 + + /systems/electrical/bus/ac-ess ge 110 + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + + + + /gear/gear[0]/wow eq 0 + /controls/fctl/switches/fac1 eq 1 + /systems/fctl/fac1-healthy eq 0 + + + + + + + /controls/fctl/switches/fac1 eq 0 + + + + + + + /systems/fctl/fac1-healthy-latch-set eq 1 + + + /systems/fctl/fac1-healthy-latch-reset eq 1 + + + + + + + /systems/fctl/fac1-healthy eq 1 + + /systems/fctl/fac1-healthy-latch eq 0 + /gear/gear[0]/wow eq 1 + + + + + + + + /controls/fctl/switches/fac1 eq 1 + /systems/fctl/fac1-healthy-signal eq 0 + + + + + + + /controls/fctl/switches/fac1 eq 1 + /systems/fctl/fac1-healthy eq 1 + + + + + + + /controls/fctl/switches/fac2 eq 1 + /systems/failures/fctl/fac2 eq 0 + + /systems/electrical/bus/ac-2 ge 110 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + + /controls/fctl/switches/fac2 eq 1 + /systems/fctl/fac2-healthy eq 0 + + + + + + + /controls/fctl/switches/fac2 eq 0 + + + + + + + /gear/gear[0]/wow eq 0 + /systems/fctl/fac2-healthy-latch-set eq 1 + + + /systems/fctl/fac2-healthy-latch-reset eq 1 + + + + + + + /systems/fctl/fac2-healthy eq 1 + + /systems/fctl/fac2-healthy-latch eq 0 + /gear/gear[0]/wow eq 1 + + + + + + + + /controls/fctl/switches/fac2 eq 1 + /systems/fctl/fac2-healthy-signal eq 0 + + + + + + + /controls/fctl/switches/fac2 eq 1 + /systems/fctl/fac2-healthy eq 1 + + + + + @@ -737,7 +967,7 @@ /controls/flight/flaps-pos ge 4 /controls/engines/engine[0]/throttle lt 0.65 /controls/engines/engine[1]/throttle lt 0.65 - /FMGC/status/to-state eq 0 + /FMGC/internal/to-state eq 0 /it-fbw/law eq 0 position/wow eq 0 @@ -747,7 +977,7 @@ /controls/flight/flaps-pos ge 4 /controls/engines/engine[0]/throttle lt 0.65 /controls/engines/engine[1]/throttle lt 0.65 - /FMGC/status/to-state eq 0 + /FMGC/internal/to-state eq 0 /it-fbw/law eq 0 gear/unit[0]/WOW eq 0 fbw/pitch/flare-gear-switch eq 1 @@ -1173,10 +1403,10 @@ - + - velocities/vc-kts + /systems/fmgc/active-airspeed-1 160 25.0 410 3.5 @@ -1185,21 +1415,107 @@ - - - - /systems/fctl/fac1 eq 1 - /systems/fctl/fac2 eq 1 - /gear/gear[1]/wow eq 0 - /gear/gear[2]/wow eq 0 - - - /controls/flight/flaps eq 0 - /gear/gear[1]/wow eq 0 - /gear/gear[2]/wow eq 0 + + +
+ /systems/fmgc/active-airspeed-2 + + 160 25.0 + 410 3.5 + +
+
+
+ + + + + /systems/failures/fctl/rtlu-1 eq 0 + /systems/electrical/bus/dc-ess ge 25 + /systems/fctl/fac1-healthy-signal eq 1 + + + /systems/fmgc/cas-compare/cas-reject-1 eq 0 + /systems/navigation/adr/operating-1 eq 1 + + + /systems/fmgc/cas-compare/cas-reject-3 eq 0 + /systems/navigation/adr/operating-3 eq 1 + + + + + + /systems/failures/fctl/rtlu-2 eq 0 + /systems/electrical/bus/dc-2 ge 25 + /systems/fctl/fac2-healthy-signal eq 1 + + + /systems/fmgc/cas-compare/cas-reject-2 eq 0 + /systems/navigation/adr/operating-2 eq 1 + + + /systems/fmgc/cas-compare/cas-reject-3 eq 0 + /systems/navigation/adr/operating-3 eq 1 + + + + + + + + + /systems/fctl/fac1-rtlu-avail eq 0 + /systems/fctl/fac2-rtlu-avail eq 0 + fcs/slat-pos-deg ne 0 + + + + + + + /systems/fctl/fac1-rtlu-avail eq 0 + /systems/fctl/fac2-rtlu-avail eq 0 + fcs/slat-pos-deg eq 0 + + + fbw/yaw/rtlu-emergency eq 1 + + + /systems/fctl/fac1-rtlu-avail eq 1 + + + /systems/fctl/fac2-rtlu-avail eq 1 + + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + fbw/yaw/rtlu-emergency ne 1 + + + /systems/electrical/bus/ac-ess-26v ge 24.8 + /systems/fctl/fac1-rtlu-avail eq 0 + /systems/fctl/fac2-rtlu-avail eq 0 + fcs/slat-pos-deg ne 0 + fbw/yaw/max-deg-switch ne fbw/yaw/max-deg-switch-cmd + + + + + fbw/yaw/max-deg-switch-cmd + fbw/yaw/rtlu-power + fbw/yaw/max-deg-switch + + fbw/yaw/max-deg-switch @@ -1319,11 +1635,14 @@ fbw/yaw/fmgc-cmd - + - - /it-fbw/law eq 0 - /it-fbw/law eq 1 + + /it-fbw/law ne 3 + + /it-fbw/yaw-law eq 0 + /it-fbw/yaw-law eq 1 + diff --git a/Systems/a320-fcs.xml b/Systems/a320-fcs.xml index a3ddad8d..caece36a 100644 --- a/Systems/a320-fcs.xml +++ b/Systems/a320-fcs.xml @@ -33,6 +33,18 @@
+ + + + /velocities/airspeed-kt + + 12 1.0 + 35 0.0 + +
+
+
+ fbw/spoiler-output 0.9 @@ -296,7 +308,8 @@ - + + /systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/green-psi ge 1500 @@ -304,7 +317,7 @@ /controls/flight/elevator-trim - -1.00 + -1.0 0.296296 @@ -333,13 +346,78 @@ + + + + /systems/fctl/fac1-healthy-signal eq 1 + /systems/hydraulic/green-psi ge 1500 + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-3 eq 1 + + /systems/failures/fctl/yaw-damper-1 eq 0 + + + + + + + /systems/fctl/fac2-healthy-signal eq 1 + /systems/hydraulic/yellow-psi ge 1500 + + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + + /systems/failures/fctl/yaw-damper-2 eq 0 + + + + + + + /systems/fctl/yawdamper-1-active eq 1 + /systems/fctl/yawdamper-2-active eq 1 + + + + + + + /it-autoflight/output/ap1 eq 0 + /it-autoflight/output/ap2 eq 0 + + + - /controls/flight/rudder-trim + hydraulics/rudder/trim-autopilot 20 + + + + + /systems/electrical/bus/dc-ess ge 25 + /systems/fctl/fac1-healthy-signal eq 1 + + + /systems/electrical/bus/dc-2 ge 25 + /systems/fctl/fac2-healthy-signal eq 1 + + + + + + hydraulics/rudder/trim-cmd-deg + hydraulics/rudder/trim-rate + + - /controls/flight/rudder-trim + hydraulics/rudder/trim-deg + + -20 + 20 + -0.8 0.8 @@ -355,11 +433,42 @@ + + + + hydraulics/rudder-swing + + + /orientation/heading-deg + /environment/wind-from-heading-deg + + + /environment/wind-speed-kt + 1.6666 + + + + -25.0 + 25.0 + + + + + hydraulics/rudder/swing-deg + + -25 + 25 + + + -1.0 + 1.0 + + + - + - hydraulics/rudder/pressure-switch-or eq 1 - /systems/failures/rudder eq 0 + hydraulics/rudder/pressure-switch-or ne 0 fbw/yaw/max-deg-scale-neg @@ -372,9 +481,16 @@ 25 + + + + hydraulics/rudder/pressure-switch-or eq 0 + + + hydraulics/rudder/cmd-deg - 80 + hydraulics/rudder/rate 25.5 hydraulics/rudder/final-deg @@ -646,8 +762,49 @@ + + + + fcs/slat-locked-cmd eq 1 + + /gear/gear[1]/wow ne 1 + /velocities/airspeed-kt ge 60 + + + aero/alpha-deg gt 7.6 + /systems/navigation/adr/output/cas-1 lt 154 + + + + fcs/slat-locked-cmd eq 0 + /controls/flight/flaps-input ne 0 + + /gear/gear[1]/wow ne 1 + /velocities/airspeed-kt ge 60 + + + aero/alpha-deg gt 8.5 + /systems/navigation/adr/output/cas-1 lt 148 + + + + + + + + /controls/flight/flaps-input eq 0 + fcs/slat-pos-deg le 18.01 + fcs/slat-locked-cmd eq 1 + + + + + /controls/flight/flaps-input eq 0 + fcs/slat-pos-deg le 18.01 + fcs/slat-locked eq 1 + /systems/acconfig/autoconfig-running eq 1 @@ -700,8 +857,15 @@ + + + + /systems/failures/gear eq 1 + + + - gear/gear-cmd-norm + gear/gear-cmd-switch 0 @@ -930,45 +1094,88 @@ 20 - - /services/chocks/nose - 0.5 - - - + /controls/gear/brake-left - /controls/gear/brake-parking - /services/chocks/nose-half - /services/chocks/left + 2 + + + + /controls/gear/brake-right + 2 + + + + + + + + + + + fcs/brake-avail + + /services/chocks/enable + fcs/brake-left + + /controls/autobrake/brake-left + /controls/autobrake/active + + /controls/gear/brake-parking + + + 0 1 - + + + + fcs/left-brake-input + 10 + - - - /controls/autobrake/active eq 1 + + + /systems/acconfig/autoconfig-running eq 1 fcs/left-brake-cmd-norm - - /controls/gear/brake-right - /controls/gear/brake-parking - /services/chocks/nose-half - /services/chocks/right + + + + fcs/brake-avail + + /services/chocks/enable + fcs/brake-right + + /controls/autobrake/brake-right + /controls/autobrake/active + + /controls/gear/brake-parking + + + 0 1 - + + + + fcs/right-brake-input + 10 + - - - /controls/autobrake/active eq 1 + + + /systems/acconfig/autoconfig-running eq 1 fcs/right-brake-cmd-norm diff --git a/Systems/a320-fmgc.xml b/Systems/a320-fmgc.xml index 93919e38..cb4bc86a 100644 --- a/Systems/a320-fmgc.xml +++ b/Systems/a320-fmgc.xml @@ -65,20 +65,34 @@ - - - /systems/fmgc/cas-compare/cas-1-to-3 - 5 - - - /systems/fmgc/cas-compare/cas-2-to-1 - 5 - - - /systems/fmgc/cas-compare/cas-2-to-3 - 5 - - + + + /systems/navigation/adr/operating-1 + 0 + + + + /systems/fmgc/cas-compare/cas-1-to-3 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-1 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-3 + 5 + + + /systems/navigation/adr/operating-2 + 1 + + + /systems/navigation/adr/operating-3 + 1 + + + 1 0 @@ -88,20 +102,34 @@ - - - /systems/fmgc/cas-compare/cas-2-to-3 - 5 - - - /systems/fmgc/cas-compare/cas-2-to-1 - 5 - - - /systems/fmgc/cas-compare/cas-1-to-3 - 5 - - + + + /systems/navigation/adr/operating-2 + 0 + + + + /systems/fmgc/cas-compare/cas-1-to-3 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-1 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-3 + 5 + + + /systems/navigation/adr/operating-1 + 1 + + + /systems/navigation/adr/operating-3 + 1 + + + 1 0 @@ -111,20 +139,34 @@ - - - /systems/fmgc/cas-compare/cas-1-to-3 - 5 - - - /systems/fmgc/cas-compare/cas-2-to-3 - 5 - - - /systems/fmgc/cas-compare/cas-2-to-1 - 5 - - + + + /systems/navigation/adr/operating-3 + 0 + + + + /systems/fmgc/cas-compare/cas-1-to-3 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-1 + 5 + + + /systems/fmgc/cas-compare/cas-2-to-3 + 5 + + + /systems/navigation/adr/operating-1 + 1 + + + /systems/navigation/adr/operating-2 + 1 + + + 1 0 @@ -144,6 +186,19 @@ + + + + + /systems/fmgc/active-airspeed-src-1 + 1 + + /systems/navigation/adr/output/cas-1 + /systems/navigation/adr/output/cas-3 + + + + @@ -156,6 +211,19 @@ + + + + + + /systems/fmgc/active-airspeed-src-2 + 2 + + /systems/navigation/adr/output/cas-2 + /systems/navigation/adr/output/cas-3 + + +
diff --git a/Systems/a320-fuel.xml b/Systems/a320-fuel.xml index 0205df02..d6006798 100644 --- a/Systems/a320-fuel.xml +++ b/Systems/a320-fuel.xml @@ -4,7 +4,7 @@ - + @@ -22,6 +22,7 @@ /controls/fuel/switches/pump-left-1 eq 1 + /systems/failures/fuel/left-tank-pump-1 ne 1 /systems/electrical/sources/idg-1/pmg-volt ge 110 @@ -35,6 +36,7 @@ + /systems/failures/fuel/left-tank-pump-2 ne 1 /controls/fuel/switches/pump-left-2 eq 1 /systems/electrical/bus/ac-2 ge 110 @@ -44,6 +46,7 @@ /controls/fuel/switches/pump-right-1 eq 1 + /systems/failures/fuel/right-tank-pump-1 ne 1 /systems/electrical/sources/idg-1/pmg-volt ge 110 @@ -57,6 +60,7 @@ + /systems/failures/fuel/right-tank-pump-2 ne 1 /controls/fuel/switches/pump-right-2 eq 1 /systems/electrical/bus/ac-2 ge 110 @@ -107,6 +111,7 @@ + /systems/failures/fuel/center-tank-pump-1 ne 1 /controls/fuel/switches/pump-center-1 eq 1 /controls/fuel/switches/center-mode eq 0 @@ -129,6 +134,7 @@ /controls/fuel/switches/pump-center-2 eq 1 + /systems/failures/fuel/center-tank-pump-2 ne 1 /controls/fuel/switches/center-mode eq 0 @@ -402,8 +408,18 @@ - + + + /systems/fuel/offset-left + propulsion/engine[0]/fuel-used-lbs + + + + /systems/fuel/offset-right + propulsion/engine[1]/fuel-used-lbs + + @@ -536,6 +552,32 @@ + + + + /systems/acconfig/autoconfig-running eq 0 + /systems/fuel/valves/engine-1-lp-valve eq 0 + + propulsion/tank[5]/unusable-volume-gal + + + + + + /systems/acconfig/autoconfig-running eq 0 + /systems/fuel/valves/engine-2-lp-valve eq 0 + + propulsion/tank[6]/unusable-volume-gal + + + + + + /systems/acconfig/autoconfig-running eq 0 + /systems/fuel/valves/apu-lp-valve eq 0 + + propulsion/tank[7]/unusable-volume-gal + @@ -725,7 +767,9 @@ /consumables/fuel/tank[3]/level-norm lt 0.9999 - + + + /systems/fuel/internal/left-outer-wing-tank-refuel -/systems/fuel/internal/left-wing-outer-to-inner-tank @@ -767,7 +811,7 @@ /systems/fuel/internal/left-wing-tank-eng-1 /systems/fuel/internal/right-wing-tank-eng-1 - /systems/fuel/internal/center-tank-eng-2 + /systems/fuel/internal/center-tank-eng-1 propulsion/tank[5]/external-flow-rate-pps @@ -781,9 +825,34 @@ /systems/fuel/internal/left-wing-tank-apu /systems/fuel/internal/center-tank-apu - //systems/fuel/internal/right-wing-tank-apu + /systems/fuel/internal/right-wing-tank-apu propulsion/tank[7]/external-flow-rate-pps + + + + + /consumables/fuel/tank[0]/level-kg + /consumables/fuel/tank[1]/level-kg + + + + /consumables/fuel/tank[3]/level-kg + /consumables/fuel/tank[4]/level-kg + + + + + + + /systems/fuel/quantity/left-wing-kg lt 5000 + /systems/fuel/quantity/right-wing-kg lt 5000 + + /consumables/fuel/tank[2]/level-kg ge 250 + + + + diff --git a/Systems/a320-fwc-phases.xml b/Systems/a320-fwc-phases.xml new file mode 100644 index 00000000..33d5a6b1 --- /dev/null +++ b/Systems/a320-fwc-phases.xml @@ -0,0 +1,85 @@ + + + + + + + + + + Timer for the ECAM phase system + /ECAM/ground-calc-immediate + 100 + 1 + + + + + + + + + /sim/time/elapsed-sec lt 10 + + + + /systems/navigation/adr/output/cas-1 gt 83 + /systems/navigation/adr/output/cas-2 gt 83 + + + /systems/navigation/adr/output/cas-2 gt 83 + /systems/navigation/adr/output/cas-3 gt 83 + + + /systems/navigation/adr/output/cas-1 gt 83 + /systems/navigation/adr/output/cas-3 gt 83 + + + + + + + + /sim/time/elapsed-sec lt 10 + + + + /systems/navigation/adr/output/cas-1 lt 77 + /systems/navigation/adr/output/cas-2 lt 77 + + + /systems/navigation/adr/output/cas-2 lt 77 + /systems/navigation/adr/output/cas-3 lt 77 + + + /systems/navigation/adr/output/cas-1 lt 77 + /systems/navigation/adr/output/cas-3 lt 77 + + + + + + + + /position/gear-agl-ft lt 5 + + + + + + + /gear/gear[1]/compression-norm eq 0 + + + + + + + /ECAM/flipflop/radar-altimeter-5-output eq 1 + /position/gear-agl-ft lt 5 + + + + + + diff --git a/Systems/a320-fwc.xml b/Systems/a320-fwc.xml index 0624ae00..8a63074c 100644 --- a/Systems/a320-fwc.xml +++ b/Systems/a320-fwc.xml @@ -7,39 +7,2370 @@ - Timer for the ECAM system - /ECAM/phases/timer/eng1idle - 100 - 0.033 - + Timer for the ECAM system + /ECAM/phases/timer/eng1idle + 100 + 0.033 + - Timer for the ECAM system - /ECAM/phases/timer/eng2idle - 100 - 0.033 - + Timer for the ECAM system + /ECAM/phases/timer/eng2idle + 100 + 0.033 + - Timer for the ECAM system - /ECAM/phases/timer/eng1or2 - 100 - 0.033 - + Timer for the ECAM system + /ECAM/phases/timer/eng1or2 + 100 + 0.033 + - Timer for the ECAM system - /ECAM/phases/timer/to-inhibit - 100 - 0.33 - + Timer for the ECAM system + /ECAM/phases/timer/to-inhibit + 100 + 0.33 + - Timer for the ECAM system - /ECAM/phases/timer/ldg-inhibit - 100 - 0.33 - + Timer for the ECAM system + /ECAM/phases/timer/ldg-inhibit + 100 + 0.33 + + + + Timer for the ECAM system + /ECAM/warnings/timer/bleed-1-fault + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/timer/bleed-2-fault + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/apu-bleed-fault + 100 + 0.1 + + + + Timer for the ECAM system + /systems/pneumatics/warnings/crossbleed-disag + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/prv-1-not-shut-apu + 100 + 1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/prv-2-not-shut-apu + 100 + 1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/prv-1-not-shut + 100 + 1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/prv-2-not-shut + 100 + 1 + + + + Timer for the ECAM system + /ECAM/warnings/timer/bleed-1-and-2-low-temp + 100 + 0.00185185 + + + + Timer for the ECAM system + /systems/pneumatics/warnings/lowtemp-1-mem + 100 + 0.016666 + + + + Timer for the ECAM system + /systems/pneumatics/warnings/lowtemp-2-mem + 100 + 0.016666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/bleed-1-off-60 + 100 + 0.016666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/bleed-2-off-60 + 100 + 0.016666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/bleed-1-off-5 + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/bleed-2-off-5 + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/eng-aice-1-open + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/eng-aice-2-open + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/eng-aice-1-closed + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/eng-aice-2-closed + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/wing-anti-ice-flipflop-set-input + 100 + 0.0285714 + + + + Timer for the ECAM system + /ECAM/warnings/timer/phase-1-input + 100 + 0.5 + + + + Timer for the ECAM system + /controls/ice-protection/wing + 100 + 0.04 + + + + Timer for the ECAM system + /ECAM/warnings/logic/wing-anti-ice-left-closed-set-input + 100 + 0.066666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/wing-anti-ice-right-closed-set-input + 100 + 0.066666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/proc-wai-shutdown-flipflop + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/wing-hi-pr-left-input + 100 + 0.025 + + + + Timer for the ECAM system + /ECAM/warnings/logic/wing-hi-pr-right-input + 100 + 0.025 + + + + Timer for the ECAM system + /ECAM/warnings/logic/cranking-35-sec-input + 100 + 0.028571 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-1-fault-closed-input + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-2-fault-closed-input + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-1-disagree-input + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-2-disagree-input + 100 + 0.1 + + + + Timer for the ECAM system + /ECAM/warnings/logic/ignition + 100 + 0.028571 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-1-fault-input + 100 + 0.20 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-2-fault-input + 100 + 0.20 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-1-fault-warning-input + 100 + 0.50 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-2-fault-warning-input + 100 + 0.50 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-1-off-input + 100 + 0.0166666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/pack-2-off-input + 100 + 0.0166666 + + + + Timer for the ECAM system + /ECAM/warnings/logic/trim-air-fault-input + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/yaw-damper-1-fault + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/yaw-damper-2-fault + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/nav-gpws-terr-fault + 100 + 1.0 + + + + Timer for the ECAM system + /ECAM/warnings/logic/gen-1-fault-set + 100 + 0.1818 + + + + Timer for the ECAM system + /ECAM/warnings/logic/gen-2-fault-set + 100 + 0.1818 + + + + Timer for the ECAM system + /ECAM/warnings/logic/apu-gen-fault-set + 100 + 0.2 + + + + Timer for the ECAM system + /ECAM/warnings/logic/apu-gen-fault-reset + 100 + 0.5 + + + + + + + + + + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/relay/dc-ess-feed-bat/contact-pos eq 1 + + + + /systems/apu/available eq 1 + /controls/apu/master eq 1 + /controls/pneumatics/switches/apu eq 0 + /systems/pneumatics/valves/apu-bleed-valve ne 0 + + + /systems/apu/available eq 1 + /controls/apu/master eq 1 + /controls/pneumatics/switches/apu eq 1 + /systems/pneumatics/valves/apu-bleed-valve ne 1 + + + + + + + + + /systems/apu/available eq 1 + /controls/pneumatics/switches/apu eq 1 + /systems/pneumatics/valves/engine-1-prv-valve-disag eq 1 + + + + + + + /systems/apu/available eq 1 + /controls/pneumatics/switches/apu eq 1 + /systems/pneumatics/valves/engine-2-prv-valve-disag eq 1 + + + + + + + + /controls/pneumatics/switches/bleed-1 eq 0 + /ECAM/warnings/logic/engine-1-prv-valve-falling-pulse eq 0 + + /ECAM/warning-phase eq 1 + + /engines/engine[0]/state eq 3 + + /ECAM/warnings/logic/apu-bleed-sw-pulse eq 1 + /controls/pneumatics/switches/apu eq 1 + + + + + + + + + + /controls/pneumatics/switches/bleed-2 eq 0 + /ECAM/warnings/logic/engine-2-prv-valve-falling-pulse eq 0 + + /ECAM/warning-phase eq 1 + + /engines/engine[1]/state eq 3 + + /ECAM/warnings/logic/apu-bleed-sw-pulse eq 1 + /controls/pneumatics/switches/apu eq 1 + + + + + + + + + /ECAM/warnings/logic/prv-1-not-shut-apu-flipflop-output eq 1 + + /engines/engine[0]/state ne 3 + /systems/pneumatics/valves/engine-1-prv-valve-disag eq 1 + + + /systems/pneumatics/valves/starter-valve-1 ne 0 + /systems/pneumatics/valves/engine-1-prv-valve-disag eq 1 + + + + + + + + /ECAM/warnings/logic/prv-2-not-shut-apu-flipflop-output eq 1 + + /engines/engine[1]/state ne 3 + /systems/pneumatics/valves/engine-2-prv-valve-disag eq 1 + + + /systems/pneumatics/valves/starter-valve-2 ne 0 + /systems/pneumatics/valves/engine-2-prv-valve-disag eq 1 + + + + + + + + /ECAM/warnings/timer/xbleed-fault-output eq 1 + + /ECAM/warnings/timer/xbleed-fault-output-10 eq 1 + /ECAM/warnings/timer/xbleed-fault-output-15 eq 0 + + + + + + + + /systems/apu/available eq 1 + /controls/pneumatics/switches/apu eq 1 + /systems/pneumatics/valves/engine-1-prv-valve eq 0 + /systems/pneumatics/valves/engine-2-prv-valve eq 0 + /systems/pneumatics/warnings/crossbleed-disag-open eq 1 + + + + + + + + /controls/ice-protection/wing eq 0 + /ECAM/warnings/logic/wai-falling-pulse eq 0 + + /gear/gear[1]/wow eq 1 + + + + + + + /engines/engine[0]/state ne 3 + /controls/pneumatics/switches/bleed-1 eq 0 + /systems/pneumatics/valves/engine-1-prv-valve-autoclose-cmd eq 1 + + + + + + + /engines/engine[1]/state ne 3 + /controls/pneumatics/switches/bleed-2 eq 0 + /systems/pneumatics/valves/engine-2-prv-valve-autoclose-cmd eq 1 + + + + + + + /ECAM/warnings/logic/bleed-1-not-avail eq 1 + /ECAM/warnings/logic/bleed-2-not-avail eq 1 + + + + + + + /systems/apu/available eq 1 + /controls/pneumatics/switches/apu eq 1 + + + + + + + /ECAM/warnings/logic/bleed-1-not-avail eq 0 + /ECAM/warnings/logic/bleed-apu-is-in-use eq 1 + + /systems/pneumatics/valves/crossbleed-valve eq 1 + /ECAM/warnings/logic/bleed-2-not-avail eq 0 + + + + + + + + /ECAM/warnings/logic/bleed-2-not-avail eq 0 + + /systems/pneumatics/valves/crossbleed-valve eq 1 + + /ECAM/warnings/logic/bleed-1-not-avail eq 0 + /ECAM/warnings/logic/bleed-apu-is-in-use eq 1 + + + + + + + + + /ECAM/warnings/logic/bleed-apu-is-in-use eq 0 + /ECAM/warnings/logic/bleed-1-avail eq 1 + + + + + + + /ECAM/warnings/logic/bleed-apu-is-in-use eq 0 + /ECAM/warnings/logic/bleed-2-avail eq 1 + + + + + + + /controls/ice-protection/wing eq 1 + + /systems/pneumatics/valves/wing-ice-1 eq 1 + /systems/pneumatics/valves/wing-ice-2 eq 1 + + + + + + + + /ECAM/warnings/logic/bleed-2-wai-avail eq 1 + /systems/pneumatics/valves/crossbleed-valve eq 0 + + + + + + + /ECAM/warnings/logic/bleed-2-wai-avail eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + + + + + /ECAM/warnings/logic/bleed-2-wai-avail eq 1 + /controls/pneumatics/switches/pack-1 eq 1 + /controls/pneumatics/switches/pack-2 eq 1 + + + + + + + /ECAM/warnings/logic/bleed-2-wai-avail eq 0 + /ECAM/warnings/logic/bleed-1-lo-temp-xbleed eq 1 + /ECAM/warnings/logic/bleed-1-lo-temp-bleed eq 1 + /ECAM/warnings/logic/bleed-1-lo-temp-pack eq 1 + + + + + + + /ECAM/warnings/logic/bleed-1-wai-avail eq 1 + /systems/pneumatics/valves/crossbleed-valve eq 0 + + + + + + + /ECAM/warnings/logic/bleed-1-wai-avail eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + + + + + /ECAM/warnings/logic/bleed-1-wai-avail eq 1 + /controls/pneumatics/switches/pack-1 eq 1 + /controls/pneumatics/switches/pack-2 eq 1 + + + + + + + /systems/pneumatics/warnings/lowtemp-1-mem eq 0 + /ECAM/warning-phase eq 6 + /controls/pneumatics/switches/bleed-1 eq 0 + /ECAM/warnings/logic/prv-1-not-shut eq 0 + /ECAM/warnings/logic/bleed-1-off-flipflop eq 0 + + + + + + + /systems/pneumatics/warnings/lowtemp-1-mem eq 0 + /ECAM/warning-phase eq 2 + /controls/pneumatics/switches/bleed-1 eq 0 + /ECAM/warnings/logic/prv-1-not-shut eq 0 + /ECAM/warnings/logic/bleed-1-off-flipflop eq 0 + + + + + + + /systems/pneumatics/valves/engine-1-prv-valve-disag eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + + + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 3 + /ECAM/warning-phase eq 7 + + + + + + + /systems/pneumatics/warnings/lowtemp-2-mem eq 0 + /ECAM/warning-phase eq 6 + /controls/pneumatics/switches/bleed-2 eq 0 + /ECAM/warnings/logic/prv-2-not-shut eq 0 + /ECAM/warnings/logic/bleed-2-off-flipflop eq 0 + + + + + + + /systems/pneumatics/warnings/lowtemp-2-mem eq 0 + /ECAM/warning-phase eq 2 + /controls/pneumatics/switches/bleed-2 eq 0 + /ECAM/warnings/logic/prv-2-not-shut eq 0 + /ECAM/warnings/logic/bleed-2-off-flipflop eq 0 + + + + + + + /systems/pneumatics/valves/engine-2-prv-valve-disag eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + + + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 3 + /ECAM/warning-phase eq 7 + + + + + + + /ECAM/phases/timer/eng1idle-output ne 0 + /systems/electrical/bus/dc-1 ge 25 + /controls/ice-protection/lengfault eq 1 + /controls/ice-protection/leng eq 0 + + + + + + + /ECAM/phases/timer/eng2idle-output ne 0 + /systems/electrical/bus/dc-2 ge 25 + /controls/ice-protection/rengfault eq 1 + /controls/ice-protection/reng eq 0 + + + + + + + /ECAM/phases/timer/eng1idle-output ne 0 + /controls/ice-protection/lengfault eq 1 + /controls/ice-protection/leng eq 1 + + + + + + + /ECAM/phases/timer/eng2idle-output ne 0 + /controls/ice-protection/rengfault eq 1 + /controls/ice-protection/reng eq 1 + + + + + + + /gear/gear[1]/wow eq 0 + /controls/ice-protection/wing eq 1 + + + + + + + /controls/ice-protection/wing eq 1 + /ECAM/warnings/logic/bleed-1-avail eq 1 + + /systems/pneumatics/valves/wing-ice-1 eq 0 + /systems/pneumatics/psi/engine-1-psi lt 13 + + + + /ECAM/warnings/logic/wai-ground-pulse-set eq 1 + + + /gear/gear[1]/wow eq 1 + /ECAM/warnings/timer/wing-anti-ice-25 ne 1 + + + + + + + + + /controls/ice-protection/wing eq 1 + /ECAM/warnings/logic/bleed-2-avail eq 1 + + /systems/pneumatics/valves/wing-ice-2 eq 0 + /systems/pneumatics/psi/engine-2-psi lt 13 + + + + /ECAM/warnings/logic/wai-ground-pulse-set eq 1 + + + /gear/gear[1]/wow eq 1 + /ECAM/warnings/timer/wing-anti-ice-25 ne 1 + + + + + + + + + /ECAM/warning-phase eq 1 + + + + + + + /ECAM/warnings/timer/phase-1 eq 1 + + /systems/pneumatics/valves/wing-ice-1 eq 1 + /controls/ice-protection/wing eq 1 + /ECAM/warnings/logic/bleed-1-avail eq 1 + + + + + + + + /ECAM/warnings/timer/phase-1 eq 1 + + /systems/pneumatics/valves/wing-ice-2 eq 1 + /controls/ice-protection/wing eq 1 + /ECAM/warnings/logic/bleed-2-avail eq 1 + + + + + + + + /controls/ice-protection/wing eq 1 + /gear/gear[1]/wow eq 1 + /ECAM/warnings/logic/wai-on eq 1 + + + + + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + /systems/pneumatics/valves/crossbleed-valve eq 0 + /controls/engines/engine[0]/fire-btn eq 0 + /controls/engines/engine[1]/fire-btn eq 0 + /ECAM/warnings/logic/wai-ground-pulse eq 1 + /ECAM/warnings/logic/wai-ground-pulse-set eq 1 + + + /engines/engine[0]/state eq 3 + /engines/engine[1]/state ne 3 + + + /engines/engine[0]/state ne 3 + /engines/engine[1]/state eq 3 + + + + + + + + + /systems/pneumatics/valves/crossbleed-valve ne 0 + /ECAM/warnings/logic/wai-on eq 0 + + /ECAM/warnings/timer/phase-1-input eq 1 + /ECAM/warnings/timer/phase-1-pulse eq 1 + + + + + + + + /ECAM/warnings/logic/proc-wai-shutdown-output eq 1 + + + /ECAM/warnings/logic/wai-ground-pulse eq 0 + /ECAM/warnings/logic/wai-ground-pulse-set eq 0 + + + /ECAM/warnings/flipflop/wing-anti-ice-left-closed eq 1 + /ECAM/warnings/flipflop/wing-anti-ice-right-closed eq 1 + + + + + + + + + /controls/ice-protection/wing eq 1 + /ECAM/warning-phase eq 9 + + + + + + + /ECAM/warnings/logic/wing-anti-ice-flipflop-set eq 1 + + + + + + + /ECAM/warnings/flipflop/wing-anti-ice-left-closed eq 0 + /ECAM/warnings/flipflop/wing-anti-ice-right-closed eq 0 + + /ECAM/warnings/logic/wai-phase-9-pulse-input eq 0 + /ECAM/warnings/logic/wai-phase-9-pulse eq 0 + + /ECAM/warnings/logic/wing-anti-ice-gnd-fault-flipflop eq 1 + + + + + + + /ECAM/warnings/logic/wai-on eq 1 + /systems/pneumatics/psi/engine-1-psi gt 49 + + + + + + + /ECAM/warnings/logic/wai-on eq 1 + /systems/pneumatics/psi/engine-2-psi gt 49 + + + + + + + /ECAM/warning-phase eq 10 + + + + + + + + /ECAM/warnings/logic/phase-10-pulse-input eq 1 + /ECAM/warnings/logic/phase-10-pulse eq 1 + + + /ECAM/warnings/logic/pack-1-pulse eq 1 + /controls/pneumatics/switches/pack-1 eq 1 + + + + + + + + + /ECAM/warnings/logic/phase-10-pulse-input eq 1 + /ECAM/warnings/logic/phase-10-pulse eq 1 + + + /ECAM/warnings/logic/pack-2-pulse eq 1 + /controls/pneumatics/switches/pack-2 eq 1 + + + + + + + + /ECAM/warning-phase eq 10 + + /ECAM/warnings/logic/pack-1-pulse eq 1 + /controls/pneumatics/switches/pack-1 eq 1 + + + + + + + + /ECAM/warning-phase eq 10 + + /ECAM/warnings/logic/pack-2-pulse eq 1 + /controls/pneumatics/switches/pack-2 eq 1 + + + + + + + + /controls/engines/engine-start-switch eq 0 + + + + + + + + /controls/engines/engine-start-switch eq 0 + /ECAM/warnings/timer/cranking-35-sec eq 1 + + /controls/pneumatics/switches/pack-1 eq 1 + /systems/air-conditioning/valves/flow-control-valve-1 eq 0 + /systems/air-conditioning/packs/pack-1-outlet-temp lt 260 + /ECAM/warnings/logic/bleed-1-avail eq 1 + + + + + + + + /controls/engines/engine-start-switch eq 0 + /ECAM/warnings/timer/cranking-35-sec eq 1 + + /controls/pneumatics/switches/pack-2 eq 1 + /systems/air-conditioning/valves/flow-control-valve-2 eq 0 + /systems/air-conditioning/packs/pack-2-outlet-temp lt 260 + /ECAM/warnings/logic/bleed-2-avail eq 1 + + + + + + + /systems/air-conditioning/warnings/pack-1-disagree eq 1 + /ECAM/warnings/logic/bleed-1-avail eq 1 + + + + + + + /systems/air-conditioning/warnings/pack-2-disagree eq 1 + /ECAM/warnings/logic/bleed-2-avail eq 1 + + + + + + + /systems/pneumatics/valves/starter-valve-1 ne 0 + /systems/pneumatics/valves/starter-valve-2 ne 0 + /controls/engines/engine-start-switch eq 2 + /engines/engine[0]/state eq 1 + /engines/engine[0]/state eq 2 + /engines/engine[1]/state eq 1 + /engines/engine[1]/state eq 2 + + + + + + + /ECAM/warnings/timer/ignition eq 1 + /ECAM/warnings/logic/ignition eq 1 + + /controls/pneumatics/switches/pack-1 eq 0 + /ECAM/warning-phase eq 2 + + + + + + + + /ECAM/warnings/timer/ignition eq 1 + /ECAM/warnings/logic/ignition eq 1 + + /controls/pneumatics/switches/pack-2 eq 0 + /ECAM/warning-phase eq 2 + + + + + + + + /ECAM/warnings/logic/inhibit-pack-1-fault eq 0 + + /ECAM/warnings/timer/pack-1-fault-closed eq 1 + /ECAM/warnings/timer/pack-1-disagree eq 1 + + + + + + + + /ECAM/warnings/logic/inhibit-pack-2-fault eq 0 + + /ECAM/warnings/timer/pack-2-fault-closed eq 1 + /ECAM/warnings/timer/pack-2-disagree eq 1 + + + + + + + + /ECAM/warning-phase eq 6 + + + + + + + /ECAM/phases/monostable/phase-6-180 eq 1 + /ECAM/phases/monostable/phase-6-180-pulse eq 1 + + + + + + + + /controls/pneumatics/switches/pack-2 eq 0 + + /ECAM/warnings/timer/pack-1-fault-5 eq 1 + /systems/air-conditioning/warnings/pack-1-ovht eq 1 + + + + /controls/pneumatics/switches/pack-1 eq 0 + + /ECAM/warnings/timer/pack-2-fault-5 eq 1 + /systems/air-conditioning/warnings/pack-2-ovht eq 1 + + + + /controls/pneumatics/switches/pack-1 eq 0 + /controls/pneumatics/switches/pack-2 eq 0 + + /ECAM/warning-phase ne 1 + /ECAM/warning-phase ne 2 + /ECAM/warning-phase ne 10 + /ECAM/phases/monostable/phase-6-180-inhibit ne 1 + + + + + + + + + /controls/pneumatics/switches/pack-1 eq 0 + /ECAM/warnings/timer/pack-1-fault-5 eq 0 + /ECAM/warnings/flipflop/pack-1-ovht eq 1 + + + + + + + /controls/pneumatics/switches/pack-2 eq 0 + /ECAM/warnings/timer/pack-2-fault-5 eq 0 + /ECAM/warnings/flipflop/pack-2-ovht eq 1 + + + + + + + + /ECAM/warnings/logic/pack-1-fault-input eq 1 + /ECAM/warnings/logic/pack-1-2-fault eq 0 + + + + + + + /ECAM/warnings/logic/pack-2-fault-input eq 1 + /ECAM/warnings/logic/pack-1-2-fault eq 0 + + + + + + + /ECAM/warnings/logic/bleed-1-avail eq 1 + /ECAM/warning-phase eq 6 + /controls/pneumatics/switches/pack-1 eq 0 + /ECAM/warnings/flipflop/pack-1-ovht eq 0 + /ECAM/warnings/flipflop/pack-1-off eq 0 + /ECAM/warnings/logic/bleed-1-low-temp-flipflop-output eq 0 + + + + + + + + /ECAM/warnings/logic/bleed-2-avail eq 1 + /ECAM/warning-phase eq 6 + /controls/pneumatics/switches/pack-2 eq 0 + /ECAM/warnings/flipflop/pack-2-ovht eq 0 + /ECAM/warnings/flipflop/pack-2-off eq 0 + /ECAM/warnings/logic/bleed-2-low-temp-flipflop-output eq 0 + + + + + + + + /systems/electrical/bus/ac-ess lt 110 + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + /systems/air-conditioning/valves/hot-air eq 0 + + + + + + + + + /systems/failures/pneumatics/trim-valve-cabin-aft eq 1 + /systems/failures/pneumatics/trim-valve-cabin-fwd eq 1 + /systems/failures/pneumatics/trim-valve-cockpit eq 1 + + /ECAM/warnings/logic/trim-air-fault-inhibit eq 0 + + + + + + + /systems/failures/pneumatics/cabin-fans eq 1 + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/ac-1 ge 110 + /systems/fctl/fac1-rtlu-avail eq 0 + /systems/fctl/fac1-healthy-signal eq 1 + + + + + + + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-2 ge 110 + /systems/fctl/fac2-rtlu-avail eq 0 + /systems/fctl/fac2-healthy-signal eq 1 + + + + + + + /ECAM/warnings/logic/rud-trav-lim-sys-1-fault-cmd eq 1 + /ECAM/warnings/logic/rud-trav-lim-sys-2-fault-cmd eq 1 + + + + + + + /ECAM/warnings/logic/rud-trav-lim-sys-1-fault-cmd eq 1 + /ECAM/warnings/logic/rud-trav-lim-sys-fault eq 0 + + + + + + + /ECAM/warnings/logic/rud-trav-lim-sys-2-fault-cmd eq 1 + /ECAM/warnings/logic/rud-trav-lim-sys-fault eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + /systems/fctl/fac1-healthy-signal eq 0 + /systems/fctl/fac2-healthy-signal eq 0 + + + + + + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/ac-1 ge 110 + /systems/fctl/fac1-healthy-signal eq 0 + /systems/fctl/fac2-healthy-signal eq 1 + + + + + + + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-2 ge 110 + /systems/fctl/fac1-healthy-signal eq 1 + /systems/fctl/fac2-healthy-signal eq 0 + + + + + + + /controls/engines/engine[1]/cutoff-switch eq 0 + /systems/hydraulic/green-psi lt 1500 + /ECAM/timer/ground-calc eq 1 + + + + + + + /systems/hydraulic/green-psi lt 1500 + /ECAM/warning-phase ne 1 + + + + + + + /systems/navigation/adr/operating-1 eq 0 + /systems/navigation/adr/operating-3 eq 0 + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/ac-1 ge 110 + /ECAM/warnings/logic/yaw-damper-1-fault-eng-start eq 0 + /ECAM/warnings/logic/yaw-damper-1-fault-green eq 0 + /ECAM/warnings/logic/yaw-damper-1-fault-adr eq 0 + /ECAM/irs-in-align eq 0 + /systems/fctl/yawdamper-1-active eq 0 + /systems/fctl/fac1-healthy-signal eq 1 + + + + + + + /controls/engines/engine[0]/cutoff-switch eq 0 + /systems/hydraulic/yellow-psi lt 1500 + /ECAM/timer/ground-calc eq 1 + + + + + + + /systems/hydraulic/yellow-psi lt 1500 + /ECAM/warning-phase ne 1 + + + + + + + /systems/navigation/adr/operating-2 eq 0 + /systems/navigation/adr/operating-3 eq 0 + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-2 ge 110 + /ECAM/warnings/logic/yaw-damper-2-fault-eng-start eq 0 + /ECAM/warnings/logic/yaw-damper-2-fault-yellow eq 0 + /ECAM/warnings/logic/yaw-damper-2-fault-adr eq 0 + /ECAM/irs-in-align eq 0 + /systems/fctl/yawdamper-2-active eq 0 + /systems/fctl/fac2-healthy-signal eq 1 + + + + + + + /ECAM/irs-in-align eq 0 + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-2 ge 110 + + /ECAM/warnings/logic/yaw-damper-1-fault-green eq 0 + /ECAM/warnings/logic/yaw-damper-2-fault-yellow eq 0 + /ECAM/warnings/logic/yaw-damper-1-fault eq 1 + /ECAM/warnings/logic/yaw-damper-2-fault eq 1 + + + + + + + /ECAM/irs-in-align eq 0 + /systems/navigation/adr/operating-1 eq 1 + /systems/electrical/bus/ac-1 ge 110 + /ECAM/warning-phase ne 1 + /ECAM/warning-phase ne 10 + /FMGC/FCU-working eq 1 + /instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit eq 1 + + + + + + + + + + /engines/engine[0]/state eq 3 + /systems/electrical/relay/gen-1-glc/contact-pos eq 0 + + + + + + + /controls/electrical/switches/gen-1 eq 1 + /controls/electrical/switches/idg-1-disc eq 1 + /ECAM/warnings/logic/gen-1-inop eq 1 + + + + + + + /ECAM/warnings/timer/gen-1-fault-set eq 1 + + + + + /systems/electrical/relay/gen-1-glc/contact-pos + 100 + 0.5 + + + + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + /systems/electrical/some-electric-thingie/emer-elec-config eq 1 + /ECAM/warnings/logic/glc-1-online-2-sec eq 1 + + + + + + + + /ECAM/warnings/flipflop/gen-1-fault eq 1 + + /ECAM/warnings/logic/gen-1-pulse eq 1 + /controls/electrical/switches/gen-1 eq 1 + + + + + + + + /ECAM/warnings/flipflop/gen-1-fault eq 0 + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + /engines/engine[1]/state eq 3 + /systems/electrical/relay/gen-2-glc/contact-pos eq 0 + + + + + + + /controls/electrical/switches/gen-2 eq 1 + /controls/electrical/switches/idg-2-disc eq 1 + /ECAM/warnings/logic/gen-2-inop eq 1 + + + + + + + /ECAM/warnings/timer/gen-2-fault-set eq 1 + + + + + /systems/electrical/relay/gen-2-glc/contact-pos + 100 + 0.5 + + + + + + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + /systems/electrical/some-electric-thingie/emer-elec-config eq 1 + /ECAM/warnings/logic/glc-2-online-2-sec eq 1 + + + + + + + + /ECAM/warnings/flipflop/gen-2-fault eq 1 + + /ECAM/warnings/logic/gen-2-pulse eq 1 + /controls/electrical/switches/gen-2 eq 1 + + + + + + + + /ECAM/warnings/flipflop/gen-2-fault eq 0 + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + /systems/apu/available eq 1 + /systems/electrical/sources/apu/gcu-fault eq 1 + + + + + + + /controls/electrical/switches/apu eq 1 + /ECAM/warnings/logic/apu-gen-fault eq 1 + + + + + + + /ECAM/warning-phase eq 1 + + /systems/apu/available eq 1 + /controls/electrical/switches/apu eq 1 + /systems/electrical/sources/apu/gcu-fault eq 0 + + + + + + + + /ECAM/warnings/flipflop/apu-gen-fault eq 1 + + /ECAM/warnings/logic/apu-elec-gen-pulse eq 1 + /controls/electrical/switches/apu eq 1 + + + + + + + + /ECAM/warnings/flipflop/apu-gen-fault eq 0 + /ECAM/warning-phase eq 1 + /ECAM/warning-phase eq 10 + + + + + + + + + + /ECAM/warnings/logic/stall/phase-8-output eq 0 + /ECAM/warning-phase eq 7 + + + /ECAM/warnings/logic/stall/phase-4-output eq 0 + /ECAM/warning-phase eq 5 + + + + + + + + /ECAM/warning-phase eq 4 + + + + + + + /ECAM/warning-phase eq 5 + + + + + + + /ECAM/warning-phase eq 8 + + + + + + + /ECAM/warnings/logic/stall/phase-5-output eq 0 + /ECAM/warning-phase eq 6 + + + + + + + /instrumentation/radar-altimeter[0]/radar-altitude-ft lt 1500 + /instrumentation/radar-altimeter[1]/radar-altitude-ft lt 1500 + + /ECAM/warnings/logic/stall/phase-flipflop eq 1 + + + + + + + + + /fdm/jsbsim/fcs/slat-pos-deg lt 15 + + /systems/navigation/adr/output/aoa-1 ge 15 + /systems/navigation/adr/output/aoa-2 ge 15 + /systems/navigation/adr/output/aoa-3 ge 15 + + + + /fdm/jsbsim/fcs/slat-pos-deg ge 15 + + /systems/navigation/adr/output/aoa-1 ge 23 + /systems/navigation/adr/output/aoa-2 ge 23 + /systems/navigation/adr/output/aoa-3 ge 23 + + + + + + /systems/navigation/adr/operating-1 eq 1 + /systems/navigation/adr/operating-2 eq 1 + /systems/navigation/adr/operating-3 eq 1 + + + + + + + + + /ECAM/warning-phase eq 5 + /ECAM/warning-phase eq 6 + /ECAM/warning-phase eq 7 + + /ECAM/warnings/logic/stall/stall-warn eq 1 + /ECAM/warnings/logic/stall/stall-warn-inhibit eq 0 + + + + + + + + + + + /fdm/jsbsim/spoilers/max-spoiler eq 1 + /fdm/jsbsim/spoilers/main-cmd gt 0 + + + + + /ECAM/warnings/logic/eng/ground-spoilers + 100 + 2 + + + + + + /ECAM/timer/ground-calc eq 0 + /ECAM/warning-phase eq 6 + /ECAM/warning-phase eq 7 + /ECAM/warnings/logic/eng/ground-spoilers-output eq 1 + /ECAM/phases/monostable/phase-8-output eq 1 + + + + + + + /controls/engines/engine[0]/throttle-lever ge 0.13333333333 + + + + + + + /controls/engines/engine[0]/throttle-lever ge 0.13333333333 + /ECAM/phases/to-power-set eq 0 + + + + + /ECAM/warnings/logic/eng/eng-1-tla-abv-6 + 100 + 1 + + + + /ECAM/warnings/logic/eng/eng-1-tla-abv-6-2 + 100 + 1 + + + + + + /controls/engines/engine[0]/throttle-lever lt 0.055 + + + + + /ECAM/warnings/logic/eng/eng-1-tla-idle + 100 + 1 + + + + + + /engines/engine[0]/reverser-pos-norm gt 0 + + + + + /ECAM/warnings/logic/eng/eng-1-reverse + 100 + 1 + + + + + + /controls/engines/engine[1]/throttle-lever ge 0.13333333333 + + + + + + + /controls/engines/engine[1]/throttle-lever ge 0.13333333333 + /ECAM/phases/to-power-set eq 0 + + + + + /ECAM/warnings/logic/eng/eng-2-tla-abv-6 + 100 + 1 + + + + /ECAM/warnings/logic/eng/eng-2-tla-abv-6-2 + 100 + 1 + + + + + + /controls/engines/engine[1]/throttle-lever lt 0.055 + + + + + /ECAM/warnings/logic/eng/eng-2-tla-idle + 100 + 1 + + + + + + /engines/engine[1]/reverser-pos-norm gt 0 + + + + + /ECAM/warnings/logic/eng/eng-2-reverse + 100 + 1 + + + + + + /ECAM/warnings/logic/eng/eng-1-tla-abv-6-output eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + /ECAM/warnings/logic/eng/eng-2-reverse-output eq 1 + + /ECAM/warnings/logic/eng/eng-2-reverse eq 1 + /ECAM/warnings/logic/eng/eng-1-retard-case-2-fall-output eq 0 + + + + + + + + + /ECAM/warnings/logic/eng/eng-1-tla-abv-6-2-output eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + /ECAM/warnings/logic/eng/eng-2-tla-idle-output eq 1 + + /ECAM/warnings/logic/eng/eng-2-reverse-fall eq 0 + /ECAM/warnings/logic/eng/eng-2-tla-idle eq 1 + + + + + + + + + /ECAM/warnings/logic/eng/eng-2-tla-abv-6-2-output eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + /ECAM/warnings/logic/eng/eng-1-reverse-output eq 1 + + /ECAM/warnings/logic/eng/eng-1-reverse eq 1 + /ECAM/warnings/logic/eng/eng-2-retard-case-2-fall-output eq 0 + + + + + + + + + /ECAM/warnings/logic/eng/eng-2-tla-abv-6-output eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + /ECAM/warnings/logic/eng/eng-1-tla-idle-output eq 1 + + /ECAM/warnings/logic/eng/eng-1-reverse-fall eq 0 + /ECAM/warnings/logic/eng/eng-1-tla-idle eq 1 + + + + + + + + + /ECAM/warnings/logic/eng/ground-retard eq 1 + /velocities/groundspeed-kt gt 40 + + /ECAM/warnings/logic/eng/eng-1-retard-case-1 eq 1 + /ECAM/warnings/logic/eng/eng-1-retard-case-2 eq 1 + + + + + + + + /ECAM/warnings/logic/eng/ground-retard eq 0 + + /ECAM/warnings/logic/eng/eng-1-retard-case-1 eq 0 + /ECAM/warnings/logic/eng/eng-1-retard-case-2 eq 0 + + + + + + + + /ECAM/warnings/logic/eng/ground-retard eq 1 + /velocities/groundspeed-kt gt 40 + + /ECAM/warnings/logic/eng/eng-2-retard-case-1 eq 1 + /ECAM/warnings/logic/eng/eng-2-retard-case-2 eq 1 + + + + + + + + /ECAM/warnings/logic/eng/ground-retard eq 0 + + /ECAM/warnings/logic/eng/eng-2-retard-case-1 eq 0 + /ECAM/warnings/logic/eng/eng-2-retard-case-2 eq 0 + + + + + + + + + + + + /ECAM/warning-phase eq 3 + /controls/gear/brake-parking eq 1 + + + + + + + /controls/gear/brake-parking eq 0 + /ECAM/warning-phase eq 5 + + + + + + + + + + + /ECAM/warning-phase ne 1 + /ECAM/warning-phase ne 10 + + hydraulics/elevator-l/pressure-switch-or eq 0 + /systems/failures/elevator-left eq 1 + + + hydraulics/elevator-r/pressure-switch-or eq 0 + /systems/failures/elevator-right eq 1 + + + + + + /ECAM/warnings/fctl/lrElevFault + 100 + 3.33333333333 + + + + + + + /instrumentation/radar-altimeter[0]/radar-altitude-ft lt 750 + /instrumentation/radar-altimeter[1]/radar-altitude-ft lt 750 + + /ECAM/phases/to-power-set eq 0 + + fcs/slat-pos-deg gt 16 + fcs/flap-pos-deg gt 18 + + + /gear/gear[0]/position-norm ne 1 + /gear/gear[1]/position-norm ne 1 + /gear/gear[2]/position-norm ne 1 + + + + + + + + /ECAM/warnings/fctl/gear-not-down-not-cancellable ne 1 + /instrumentation/altimeter[0]/indicated-altitude-ft lt 18500 + + + /engines/engine[0]/n1-actual lt 75 + /engines/engine[1]/n1-actual lt 75 + + + /engines/engine[0]/n1-actual lt 97 + /controls/engines/engine[1]/cutoff-switch eq 1 + + + /engines/engine[1]/n1-actual lt 97 + /controls/engines/engine[0]/cutoff-switch eq 1 + + + + /instrumentation/radar-altimeter[0]/radar-altitude-ft lt 750 + /instrumentation/radar-altimeter[1]/radar-altitude-ft lt 750 + + /ECAM/phases/to-power-set eq 0 + + /gear/gear[0]/position-norm ne 1 + /gear/gear[1]/position-norm ne 1 + /gear/gear[2]/position-norm ne 1 + + + + + + + + /controls/gear/gear-down eq 1 + + /ECAM/warning-phase eq 6 + /ECAM/warning-phase eq 7 + + + + + + + + /ECAM/warnings/fctl/gear-lever-down-pulse eq 1 + /ECAM/warnings/fctl/gear-lever-down eq 1 + + /gear/gear[0]/position-norm ne 1 + /gear/gear[1]/position-norm ne 1 + /gear/gear[2]/position-norm ne 1 + + + + + + + + /ECAM/warning-phase eq 8 + + + + + + + /ECAM/warnings/fctl/gear-lever-down eq 1 + + /gear/gear[0]/position-norm ne 1 + /gear/gear[1]/position-norm ne 1 + /gear/gear[2]/position-norm ne 1 + + + + + + /ECAM/warnings/fctl/gear-not-down-locked-set-input + 100 + 0.03333333333 + + + + + + /ECAM/warnings/fctl/gear-not-down-locked-set-output eq 1 + + + + + + + /gear/gear[0]/position-norm eq 1 + /gear/gear[1]/position-norm eq 1 + /gear/gear[2]/position-norm eq 1 + + + + + + + + + + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + + + + /ECAM/warnings/hyd/engines-2-online + 100 + 1 + + + + + + /engines/engine[0]/state ne 3 + /engines/engine[1]/state ne 3 + /ECAM/timer/ground-calc eq 0 + + + + + /ECAM/warnings/hyd/engines-2-off-in-air + 100 + 0.2 + + + + + + /engines/engine[0]/state eq 3 + + /ECAM/warning-phase ne 1 + /ECAM/warning-phase ne 2 + /ECAM/warning-phase ne 9 + /ECAM/warning-phase ne 10 + + + + + + /ECAM/warnings/hyd/engine-1-start + 100 + 1 + + + + + + /engines/engine[1]/state eq 3 + + /ECAM/warning-phase ne 1 + /ECAM/warning-phase ne 2 + /ECAM/warning-phase ne 9 + /ECAM/warning-phase ne 10 + + + + + + /ECAM/warnings/hyd/engine-2-start + 100 + 1 + + + + + + /systems/hydraulics/warnings/blue-lo-pr eq 1 + + /ECAM/warnings/hyd/engines-2-online eq 1 + /ECAM/warnings/hyd/engines-2-off-in-air-output eq 1 + + + + + + + + /systems/hydraulics/warnings/green-lo-pr eq 1 + /ECAM/warnings/hyd/engine-1-start-output eq 1 + + + + + + + /systems/hydraulics/warnings/yellow-lo-pr eq 1 + /ECAM/warnings/hyd/engine-2-start-output eq 1 + + + + + + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + + + + + + + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + + + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + + + + + + + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + + + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + + + + + + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + + + + + + + /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + + + + + + + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 + /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 + + + + + + + /ECAM/timer/ground-calc eq 0 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + + + + + + /ECAM/timer/ground-calc eq 0 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + fcs/flap-pos-deg ne 0 + hydraulics/spoiler-l1/final-deg gt 0 + hydraulics/spoiler-r1/final-deg gt 0 + hydraulics/spoiler-l2/final-deg gt 0 + hydraulics/spoiler-r2/final-deg gt 0 + hydraulics/spoiler-l4/final-deg gt 0 + hydraulics/spoiler-r4/final-deg gt 0 + hydraulics/spoiler-l5/final-deg gt 0 + hydraulics/spoiler-r5/final-deg gt 0 + + + + + + + + + /ECAM/timer/ground-calc eq 0 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + + + +
diff --git a/Systems/a320-hydraulic.xml b/Systems/a320-hydraulic.xml index e0a87d7e..f4d0ed26 100644 --- a/Systems/a320-hydraulic.xml +++ b/Systems/a320-hydraulic.xml @@ -230,6 +230,7 @@ /controls/hydraulic/switches/yellow-elec eq 1 + /systems/failures/hydraulic/yellow-elec ne 1 /systems/electrical/sources/ext/output-volt ge 110 /systems/electrical/bus/ac-2 ge 110 @@ -239,20 +240,13 @@ - - - /systems/failures/hydraulic/yellow-elec - 1 - - - /systems/hydraulic/sources/yellow-elec/pump-operate - - 0 0 - 1 3000 - -
- 0 -
+ + /systems/hydraulic/sources/yellow-elec/pump-operate + + 0 0 + 1 3000 + +
@@ -500,6 +494,27 @@ + + + + + + /controls/gear/brake-parking ne 1 + /systems/hydraulic/brakes/askidnwssw eq 1 + /systems/hydraulic/green-psi ge 2500 + + + /controls/gear/brake-parking ne 1 + /systems/hydraulic/brakes/askidnwssw eq 1 + /systems/hydraulic/yellow-psi ge 2500 + + + /controls/gear/brake-parking ne 1 + /systems/hydraulic/brakes/accumulator-pressure-psi ge 0 + + + + @@ -566,6 +581,40 @@ /systems/hydraulic/green-qty lt 3.5
+ + + + + + /systems/hydraulic/blue-psi lt 1750 + /systems/hydraulics/warnings/blue-lo-pr eq 1 + + /systems/hydraulic/blue-psi lt 1450 + + + + + + + + /systems/hydraulic/green-psi lt 1750 + /systems/hydraulics/warnings/green-lo-pr eq 1 + + /systems/hydraulic/green-psi lt 1450 + + + + + + + + /systems/hydraulic/yellow-psi lt 1750 + /systems/hydraulics/warnings/yellow-lo-pr eq 1 + + /systems/hydraulic/yellow-psi lt 1450 + + +
diff --git a/Systems/a320-lights.xml b/Systems/a320-lights.xml index 1b89b258..6ae97bbd 100644 --- a/Systems/a320-lights.xml +++ b/Systems/a320-lights.xml @@ -2,7 +2,7 @@ - + @@ -54,6 +54,175 @@ /systems/electrical/bus/dc-2 gt 25 + + + + + /controls/lighting/dome-norm eq 0.5 + /systems/electrical/bus/dc-ess ge 25 + + + /controls/lighting/dome-norm eq 1.0 + /systems/electrical/bus/dc-ess ge 25 + + + + + + + + + + /controls/lighting/taxi-light-switch eq 1 + /gear/gear[0]/position-norm gt 0.8 + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + /controls/lighting/taxi-light-switch eq 0.5 + /gear/gear[0]/position-norm gt 0.8 + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + + /controls/lighting/turnoff-light-switch eq 1 + /gear/gear[0]/position-norm gt 0.8 + /systems/electrical/bus/ac-1 ge 110 + + + + + + + /controls/lighting/turnoff-light-switch eq 1 + /gear/gear[0]/position-norm gt 0.8 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /controls/lighting/turnoff-light-switch eq 1 + /gear/gear[0]/position-norm gt 0.8 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /systems/electrical/bus/dc-1 ge 25 + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + + /controls/lighting/nav-lights-switch eq 1 + /controls/lighting/nav-lights-switch eq 2 + + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + /controls/flight/slats-cmd ge 0 + /gear/gear[2]/wow eq 1 + + + + + + + + + /controls/lighting/nav-lights-switch eq 1 + /controls/lighting/nav-lights-switch eq 2 + + /systems/electrical/nav-lights-power eq 1 + + + + + + + /controls/switches/strobe eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + /controls/switches/strobe eq 0.5 + /systems/electrical/bus/ac-2 ge 110 + /gear/gear[1]/wow eq 0 + /gear/gear[2]/wow eq 0 + + + + + + + /controls/switches/beacon eq 1 + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + + /controls/switches/wing-lights eq 1 + + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + + /controls/switches/landing-lights-l eq 1 + /systems/electrical/bus/ac-1 ge 110 + + + + + + + /controls/switches/landing-lights-r eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + + /controls/lighting/landing-lights[1] ge 0.5 + + + + + + + /controls/lighting/landing-lights[2] ge 0.5 + + + diff --git a/Systems/a320-misc.xml b/Systems/a320-misc.xml new file mode 100644 index 00000000..119da28e --- /dev/null +++ b/Systems/a320-misc.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + /systems/electrical/bus/ac-ess ge 110 + + /gear/gear[1]/wow eq 1 + /gear/gear[2]/wow eq 1 + + + /controls/CVR/gndctl eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + + + /systems/electrical/bus/ac-ess ge 110 + /gear/gear[1]/wow eq 0 + /gear/gear[2]/wow eq 0 + + + + + + diff --git a/Systems/a320-pneumatic.xml b/Systems/a320-pneumatic.xml new file mode 100644 index 00000000..345575d0 --- /dev/null +++ b/Systems/a320-pneumatic.xml @@ -0,0 +1,1327 @@ + + + + + + + + + /sim/time/elapsed-sec lt 10 + + + + + + + + + + + + /engines/engine[2]/n1 ge 95 + /controls/pneumatics/switches/apu eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/pneumatics/apu-valve eq 0 + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + + /systems/pneumatics/valves/apu-bleed-valve-cmd + /systems/pneumatics/valves/apu-bleed-valve-power + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /controls/pneumatics/switches/x-bleed eq 0 + + + /systems/electrical/bus/dc-ess-shed ge 25 + /controls/pneumatics/switches/x-bleed eq 2 + + + /systems/electrical/bus/dc-2 ge 25 + + /controls/pneumatics/switches/apu eq 0 + /systems/pneumatics/valves/apu-bleed-valve eq 0 + + + + /systems/electrical/bus/dc-2 ge 25 + /controls/pneumatics/switches/apu eq 1 + /systems/pneumatics/valves/apu-bleed-valve ne 0 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/pneumatics/x-bleed-valve eq 0 + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + + /systems/pneumatics/valves/crossbleed-valve-cmd + /systems/pneumatics/valves/crossbleed-valve-power + + + + + + + /systems/pneumatics/valves/engine-1-hp-valve eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + + + /systems/pneumatics/valves/engine-1-lp-valve-power eq 0 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/pneumatics/valves/engine-2-hp-valve eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /systems/pneumatics/valves/engine-2-lp-valve-power eq 0 + + + + + + + + /systems/pneumatics/source/engine-1-hp-psi lt 8 + /systems/pneumatics/source/engine-1-hp-psi ge 120 + + /systems/pneumatics/valves/wing-ice-1 eq 0 + /systems/pneumatics/source/engine-1-hp-psi ge 110 + /position/altitude-ft ge 15000 + /systems/pneumatics/valves/engine-1-prv-valve eq 1 + /systems/pneumatics/valves/engine-2-prv-valve eq 1 + + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/failures/pneumatics/hp-1-valve eq 0 + + + + + + + /systems/pneumatics/valves/engine-1-hp-valve-power eq 0 + + + + + + + /systems/pneumatics/source/engine-2-hp-psi lt 8 + /systems/pneumatics/source/engine-2-hp-psi ge 120 + + /systems/pneumatics/valves/wing-ice-2 eq 0 + /systems/pneumatics/source/engine-2-hp-psi ge 110 + /position/altitude-ft ge 15000 + /systems/pneumatics/valves/engine-1-prv-valve eq 1 + /systems/pneumatics/valves/engine-2-prv-valve eq 1 + + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-2 ge 25 + /systems/failures/pneumatics/hp-2-valve eq 0 + + + + + + + /systems/pneumatics/valves/engine-2-hp-valve-power eq 0 + + + + + + + + /systems/pneumatics/psi/engine-1-downstream-prv gt 57 + + + + + /systems/pneumatics/valves/engine-1-prv-valve-autoclose-psi-cmd + 100 + 0.0666 + + + + + + /systems/pneumatics/valves/engine-1-prv-valve-autoclose-cmd eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + /systems/pneumatics/valves/engine-1-prv-valve-autoclose-psi eq 1 + /systems/pneumatics/precooler/ovht-1 eq 1 + + + + + + + /systems/pneumatics/precooler/temp-1 + + 235 1.0 + 245 0.397 + +
+
+
+ + + + + /controls/engines/engine[0]/fire-btn eq 1 + /controls/pneumatics/switches/bleed-1 eq 0 + /systems/pneumatics/valves/apu-bleed-valve eq 1 + /systems/pneumatics/valves/starter-valve-1 ne 0 + /systems/pneumatics/psi/engine-1-upstream-src lt 8 + /systems/pneumatics/valves/engine-1-prv-valve-autoclose-cmd eq 1 + + + /controls/pneumatics/switches/bleed-1 eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/failures/pneumatics/bleed-1-valve eq 0 + + + + + /systems/pneumatics/valves/engine-1-prv-valve-cmd + /systems/pneumatics/valves/engine-1-prv-valve-power + + + + + + /systems/pneumatics/valves/engine-1-prv-valve-cmd eq 0 + /systems/pneumatics/valves/engine-1-prv-valve ne 0 + + + /systems/pneumatics/valves/engine-1-prv-valve-cmd eq 1 + /systems/pneumatics/valves/engine-1-prv-valve ne 1 + + + + + + + /systems/pneumatics/psi/engine-2-downstream-prv gt 57 + + + + + /systems/pneumatics/valves/engine-2-prv-valve-autoclose-psi-cmd + 100 + 0.0666 + + + + + + /systems/pneumatics/valves/engine-2-prv-valve-autoclose-cmd eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + /systems/pneumatics/valves/engine-2-prv-valve-autoclose-psi eq 1 + /systems/pneumatics/precooler/ovht-2 eq 1 + + + + + + + /systems/pneumatics/precooler/temp-2 + + 235 1.0 + 245 0.397 + +
+
+
+ + + + + /controls/engines/engine[1]/fire-btn eq 1 + /controls/pneumatics/switches/bleed-2 eq 0 + + /systems/pneumatics/valves/apu-bleed-valve eq 1 + /systems/pneumatics/valves/crossbleed-valve ne 0 + + /systems/pneumatics/valves/starter-valve-2 ne 0 + /systems/pneumatics/psi/engine-2-upstream-src lt 8 + /systems/pneumatics/valves/engine-2-prv-valve-autoclose-cmd eq 1 + + + /controls/pneumatics/switches/bleed-2 eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/electrical/bus/dc-2 ge 25 + /systems/failures/pneumatics/bleed-2-valve eq 0 + + + + + + + /systems/pneumatics/valves/engine-2-prv-valve-cmd eq 0 + /systems/pneumatics/valves/engine-2-prv-valve ne 0 + + + /systems/pneumatics/valves/engine-2-prv-valve-cmd eq 1 + /systems/pneumatics/valves/engine-2-prv-valve ne 1 + + + + + /systems/pneumatics/valves/engine-2-prv-valve-cmd + /systems/pneumatics/valves/engine-2-prv-valve-power + + + + + + + /systems/pneumatics/psi/engine-1-downstream-prv + + 79 1.0 + 85 0.0 + +
+
+
+ + + + + /systems/pneumatics/valves/engine-1-opv-valve-cmd eq 0.0 + /systems/pneumatics/psi/engine-1-downstream-prv ge 35 + + + /systems/pneumatics/valves/engine-1-opv-valve-cmd-schedule ne 0 + + + + + /systems/pneumatics/valves/engine-1-opv-valve-cmd + 1.0 + + + + + + /systems/pneumatics/psi/engine-2-downstream-prv + + 79 1.0 + 85 0.0 + +
+
+
+ + + + + /systems/pneumatics/valves/engine-2-opv-valve-cmd eq 0.0 + /systems/pneumatics/psi/engine-2-downstream-prv ge 35 + + + /systems/pneumatics/valves/engine-2-opv-valve-cmd-schedule ne 0 + + + + + /systems/pneumatics/valves/engine-2-opv-valve-cmd + 1.0 + + + + + + + + /gear/gear[1]/wow eq 1 + /controls/ice-protection/wing eq 1 + + + + + /systems/pneumatics/valves/wing-ice-gnd-cmd + 0.033333 + 100 + + + + + + /systems/pneumatics/valves/wing-ice-gnd eq 1 + /gear/gear[1]/wow eq 1 + /controls/ice-protection/wing eq 1 + + + /systems/electrical/bus/dc-ess-shed lt 25 + /systems/pneumatics/psi/engine-1-psi le 1 + + + /controls/ice-protection/wing eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/icing/wing-left-valve eq 1 + + + + /systems/electrical/bus/dc-ess-shed lt 25 + /systems/pneumatics/psi/engine-1-psi le 1 + + /systems/pneumatics/valves/wing-ice-1-cmd eq 0 + /systems/pneumatics/valves/wing-ice-1 ne 0 + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/pneumatics/valves/wing-ice-1-cmd + /systems/pneumatics/valves/wing-ice-1-power + + + + + + /systems/pneumatics/valves/wing-ice-gnd eq 1 + /gear/gear[1]/wow eq 1 + /controls/ice-protection/wing eq 1 + + + /systems/electrical/bus/dc-ess-shed lt 25 + /systems/pneumatics/psi/engine-2-psi le 1 + + + /controls/ice-protection/wing eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/icing/wing-right-valve eq 1 + + + + /systems/electrical/bus/dc-ess-shed lt 25 + /systems/pneumatics/psi/engine-2-psi le 1 + + /systems/pneumatics/valves/wing-ice-2-cmd eq 0 + /systems/pneumatics/valves/wing-ice-2 ne 0 + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/pneumatics/valves/wing-ice-2-cmd + /systems/pneumatics/valves/wing-ice-2-power + + + + + + /systems/pneumatics/source/engine-1-hp-psi lt 7 + + + /systems/electrical/bus/dc-1 lt 25 + + + /controls/ice-protection/leng eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/icing/engine-left-valve eq 1 + + + + /systems/electrical/bus/dc-1 lt 25 + /systems/pneumatics/source/engine-1-hp-psi lt 7 + + /systems/pneumatics/valves/engine-ice-1-cmd eq 1 + /systems/pneumatics/valves/engine-ice-1 ne 1 + + + /systems/electrical/bus/dc-1 ge 25 + + + + + /systems/pneumatics/valves/engine-ice-1-cmd + /systems/pneumatics/valves/engine-ice-1-power + + + + + + /systems/pneumatics/source/engine-2-hp-psi lt 7 + + + /systems/electrical/bus/dc-2 lt 25 + + + /controls/ice-protection/reng eq 1 + + + + + + + /systems/startup-power-valves eq 1 + + + /systems/failures/icing/engine-right-valve eq 1 + + + + /systems/electrical/bus/dc-2 lt 25 + /systems/pneumatics/source/engine-2-hp-psi lt 7 + + /systems/pneumatics/valves/engine-ice-2-cmd eq 1 + /systems/pneumatics/valves/engine-ice-2 ne 1 + + + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/pneumatics/valves/engine-ice-2-cmd + /systems/pneumatics/valves/engine-ice-2-power + +
+ + + + + + + + /position/altitude-ft + 20000 + + 0 + + + /engines/engine[2]/n1 + 92 + + + + /position/altitude-ft + 0 + + /engines/engine[2]/n1 + /systems/pneumatics/valves/apu-bleed-valve + + 0 1 + 92 0 0 + 95 16.7 2.7 + 100 58.7 50.7 + +
+ 10000 + + /engines/engine[2]/n1 + /systems/pneumatics/valves/apu-bleed-valve + + 0 1 + 92 0 0 + 95 6.7 0.1 + 100 48.7 40.7 + +
+ 15000 + + /engines/engine[2]/n1 + /systems/pneumatics/valves/apu-bleed-valve + + 0 1 + 92 0 0 + 95 2.7 0 + 100 37.7 32.7 + +
+
+ + /systems/navigation/probes/static-1 + 2.036 + +
+ 0 +
+
+
+ + 0 + 99999999 + +
+ + + + + /controls/pneumatics/switches/groundair + 34 + + + + + + + + /engines/engine[0]/n2-actual + + 22.0 0.0 + 25.0 12.0 + 44.0 22.0 + 60.9 72.0 + 65.0 78.0 + 70.4 96.0 + 80.4 132.0 + +
+
+
+ + + + + /engines/engine[1]/n2-actual + + 22.0 0.0 + 25.0 12.0 + 44.0 22.0 + 60.9 72.0 + 65.0 78.0 + 70.4 96.0 + 80.4 132.0 + +
+
+
+ + + + + /engines/engine[0]/n2-actual + + 22.0 0.0 + 25.0 2.0 + 60.9 18.0 + 70.4 36.0 + 80.4 44.0 + 101.4 48.0 + +
+
+
+ + + + + + /engines/engine[1]/n2-actual + + 22.0 0.0 + 25.0 2.0 + 60.9 18.0 + 70.4 36.0 + 80.4 44.0 + 101.4 48.0 + +
+
+
+ +
+ + + + + + + + /systems/pneumatics/valves/engine-1-hp-valve + 0.1 + + + /systems/pneumatics/source/engine-1-lp-psi + /systems/pneumatics/valves/engine-1-lp-valve + + + + /systems/pneumatics/source/engine-1-hp-psi + 3 + + /systems/pneumatics/valves/engine-1-hp-valve + + + + + + + + + + /systems/pneumatics/valves/engine-2-hp-valve + 0.1 + + + /systems/pneumatics/source/engine-2-lp-psi + /systems/pneumatics/valves/engine-2-lp-valve + + + + /systems/pneumatics/source/engine-2-hp-psi + 3 + + /systems/pneumatics/valves/engine-2-hp-valve + + + + + + + + + /systems/pneumatics/valves/engine-1-prv-valve + /systems/pneumatics/psi/engine-1-upstream-src + + + + + + + + /systems/pneumatics/valves/engine-2-prv-valve + /systems/pneumatics/psi/engine-2-upstream-src + + + + + + + + /systems/pneumatics/valves/engine-1-opv-valve + /systems/pneumatics/psi/engine-1-downstream-prv + + + + + + + + /systems/pneumatics/valves/engine-2-opv-valve + /systems/pneumatics/psi/engine-2-downstream-prv + + + + + + + + /systems/pneumatics/source/apu-psi ne 0 + /systems/pneumatics/valves/apu-bleed-valve ge 0.5 + + + + /systems/pneumatics/psi/engine-1-downstream-opv ge /systems/pneumatics/psi/engine-2-psi + /systems/pneumatics/valves/crossbleed-valve eq 0 + + /systems/pneumatics/valves/engine-1-prv-valve ne 0 + /systems/pneumatics/valves/engine-1-opv-valve ne 0 + + + /systems/pneumatics/psi/engine-1-downstream-opv lt /systems/pneumatics/psi/engine-2-psi + /systems/pneumatics/valves/crossbleed-valve ne 0 + /systems/pneumatics/psi/engine-right-src ne 3 + + + /systems/pneumatics/source/gnd-psi ne 0 + + + /systems/pneumatics/source/apu-psi ne 0 + /systems/pneumatics/valves/apu-bleed-valve eq 0 + + + + + + + /systems/pneumatics/source/apu-psi ne 0 + /systems/pneumatics/valves/apu-bleed-valve ge 0.5 + /systems/pneumatics/valves/crossbleed-valve ne 0 + + + + /systems/pneumatics/psi/engine-2-downstream-opv ge /systems/pneumatics/psi/engine-1-psi + /systems/pneumatics/valves/crossbleed-valve eq 0 + + /systems/pneumatics/valves/engine-2-prv-valve ne 0 + /systems/pneumatics/valves/engine-2-opv-valve ne 0 + + + /systems/pneumatics/psi/engine-2-downstream-opv lt /systems/pneumatics/psi/engine-1-psi + /systems/pneumatics/valves/crossbleed-valve ne 0 + /systems/pneumatics/psi/engine-left-src ne 3 + + + /systems/pneumatics/source/gnd-psi ne 0 + /systems/pneumatics/valves/crossbleed-valve ne 0 + + + /systems/pneumatics/source/apu-psi ne 0 + /systems/pneumatics/valves/crossbleed-valve eq 0 + + + + + + +

/systems/pneumatics/psi/engine-left-src

+ 0 + + /systems/pneumatics/valves/apu-bleed-valve + /systems/pneumatics/source/apu-psi + + /systems/pneumatics/psi/engine-1-downstream-opv + /systems/pneumatics/psi/engine-2-psi + /systems/pneumatics/source/gnd-psi +
+
+
+ + + + +

/systems/pneumatics/psi/engine-right-src

+ 0 + + /systems/pneumatics/valves/apu-bleed-valve + /systems/pneumatics/valves/crossbleed-valve + /systems/pneumatics/source/apu-psi + + /systems/pneumatics/psi/engine-2-downstream-opv + /systems/pneumatics/psi/engine-1-psi + /systems/pneumatics/source/gnd-psi +
+
+
+ +
+ + + + + + + 15 + + + + /systems/pneumatics/valves/engine-1-prv-valve + /systems/pneumatics/valves/engine-1-opv-valve + + 0 + + + /engines/engine[0]/egt-actual + /systems/pneumatics/egt-1-factor + + + /systems/pneumatics/valves/apu-bleed-valve + /systems/apu/egt-degC + 0.40 + + + + + + + + /systems/pneumatics/precooler/calc/temp-1 + 0.8 + + + + + + /systems/pneumatics/precooler/temp-1 gt 290 + + + + + + + /systems/pneumatics/precooler/temp-1 gt 270 + + + + + + + /systems/pneumatics/precooler/temp-1 gt 257 + + + + + /systems/pneumatics/precooler/calc/ovht-5-true + 0.2 + 100 + + + + /systems/pneumatics/precooler/calc/ovht-15-true + 0.06666 + 100 + + + + /systems/pneumatics/precooler/calc/ovht-55-true + 0.018182 + 100 + + + + + + /systems/pneumatics/precooler/calc/ovht-5 eq 1 + /systems/pneumatics/precooler/calc/ovht-15 eq 1 + /systems/pneumatics/precooler/calc/ovht-55 eq 1 + + + + + + + /systems/pneumatics/warnings/ovht-1-mem eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + /systems/pneumatics/precooler/ovht-1 eq 1 + + + + + + + /systems/pneumatics/precooler/temp-1 lt 150 + /systems/pneumatics/valves/wing-ice-1 eq 1 + /gear/gear[1]/wow eq 0 + + + + + + + /systems/pneumatics/warnings/lowtemp-1-mem eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + /systems/pneumatics/warnings/lowtemp-1 eq 1 + + + + + + + + + + 15 + + + + /systems/pneumatics/valves/engine-2-prv-valve + /systems/pneumatics/valves/engine-2-opv-valve + + 0 + + + /engines/engine[1]/egt-actual + /systems/pneumatics/egt-2-factor + + + /systems/pneumatics/valves/apu-bleed-valve + /systems/apu/egt-degC + 0.40 + + + + + + + + /systems/pneumatics/precooler/calc/temp-2 + 0.8 + + + + + + /systems/pneumatics/precooler/temp-2 gt 290 + + + + + + + /systems/pneumatics/precooler/temp-2 gt 270 + + + + + + + /systems/pneumatics/precooler/temp-2 gt 257 + + + + + /systems/pneumatics/precooler/calc/ovht-5-true-2 + 0.2 + 100 + + + + /systems/pneumatics/precooler/calc/ovht-15-true-2 + 0.06666 + 100 + + + + /systems/pneumatics/precooler/calc/ovht-55-true-2 + 0.018182 + 100 + + + + + + /systems/pneumatics/precooler/calc/ovht-5-2 eq 1 + /systems/pneumatics/precooler/calc/ovht-15-2 eq 1 + /systems/pneumatics/precooler/calc/ovht-55-2 eq 1 + + + + + + + /systems/pneumatics/warnings/ovht-2-mem eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + /systems/pneumatics/precooler/ovht-2 eq 1 + + + + + + + /systems/pneumatics/precooler/temp-2 lt 150 + /systems/pneumatics/valves/wing-ice-2 eq 1 + /gear/gear[1]/wow eq 0 + + + + + + + /systems/pneumatics/warnings/lowtemp-2-mem eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + /systems/pneumatics/warnings/lowtemp-2 eq 1 + + + + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/failures/pneumatics/bmc-1 ne 1 + + + + + + + /systems/electrical/bus/dc-2 ge 25 + /systems/failures/pneumatics/bmc-2 ne 1 + + + + + + + /systems/pneumatics/valves/apu-bleed-valve ne 1 + /controls/apu/master eq 1 + /controls/pneumatics/switches/apu eq 1 + + + + + /systems/pneumatics/warnings/apu-bleed-not-on-cmd + 0.1 + 100 + + + + + + /systems/pneumatics/valves/crossbleed-valve-cmd eq 1 + /systems/pneumatics/valves/crossbleed-valve ne 1 + /controls/pneumatics/switches/x-bleed eq 2 + + + /systems/pneumatics/valves/crossbleed-valve-cmd eq 1 + /systems/pneumatics/valves/crossbleed-valve ne 1 + /controls/pneumatics/switches/x-bleed eq 1 + /systems/electrical/bus/dc-2 ge 25 + + + + + + + /systems/pneumatics/valves/crossbleed-valve-cmd eq 0 + /systems/pneumatics/valves/crossbleed-valve ne 0 + + + /systems/pneumatics/warnings/crossbleed-disag-open eq 1 + + + + + + + /systems/acconfig/autoconfig-running eq 1 + + + /systems/pneumatics/warnings/bleed1-fault eq 1 + /controls/pneumatics/switches/bleed-1 eq 0 + /ECAM/warnings/timer/bleed-1-fault-output eq 0 + /ECAM/warnings/timer/prv-1-not-shut-output eq 0 + + + /systems/pneumatics/warnings/bleed1-fault eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + /ECAM/warnings/timer/bleed-1-fault-output eq 1 + /ECAM/warnings/timer/prv-1-not-shut-output eq 1 + /systems/pneumatics/warnings/ovht-1-mem eq 1 + + + + + + + /systems/acconfig/autoconfig-running eq 1 + + + /systems/pneumatics/warnings/bleed2-fault eq 1 + /controls/pneumatics/switches/bleed-2 eq 0 + /ECAM/warnings/timer/bleed-2-fault-output eq 0 + /ECAM/warnings/timer/prv-2-not-shut-output eq 0 + + + /systems/pneumatics/warnings/bleed2-fault eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + /ECAM/warnings/timer/bleed-2-fault-output eq 1 + /ECAM/warnings/timer/prv-2-not-shut-output eq 1 + /systems/pneumatics/warnings/ovht-2-mem eq 1 + + + + + + + /systems/pneumatics/warnings/overpress-1-mem eq 1 + /controls/pneumatics/switches/bleed-1 eq 1 + + + /systems/pneumatics/psi/engine-1-downstream-prv gt 57 + + + + + + + /systems/pneumatics/warnings/overpress-2-mem eq 1 + /controls/pneumatics/switches/bleed-2 eq 1 + + + /systems/pneumatics/psi/engine-2-downstream-prv gt 57 + + + + + + + /systems/pneumatics/valves/wing-ice-1 ne /controls/ice-protection/wing + /systems/pneumatics/valves/wing-ice-2 ne /controls/ice-protection/wing + /systems/electrical/bus/dc-ess-shed lt 25 + + + + + + + /systems/pneumatics/valves/engine-ice-1 ne /controls/ice-protection/leng + + + + + + + /systems/pneumatics/valves/engine-ice-2 ne /controls/ice-protection/reng + + + + + + + /controls/ice-protection/windowprobeheat eq 1 + + /systems/electrical/bus/ac-ess ge 110 + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + /controls/ice-protection/windowprobeheat eq 0 + /gear/gear[1]/wow eq 1 + + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + + + /systems/electrical/bus/ac-ess ge 110 + /systems/electrical/bus/ac-1 ge 110 + /systems/electrical/bus/ac-2 ge 110 + + + + + +
diff --git a/Systems/a320-spoiler.xml b/Systems/a320-spoiler.xml index 1f0db870..562514a6 100644 --- a/Systems/a320-spoiler.xml +++ b/Systems/a320-spoiler.xml @@ -6,7 +6,7 @@ hydraulics/spoiler-l2/main-cmd-feedback - + @@ -112,7 +112,7 @@ /systems/hydraulic/green-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-l1 eq 0 + /systems/failures/spoilers/spoiler-l1 eq 0 0.0 @@ -199,18 +199,18 @@ /systems/hydraulic/yellow-psi ge 1500 spoilers/main-gear-and eq 0 - /systems/failures/spoiler-l2 eq 0 + /systems/failures/spoilers/spoiler-l2 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-l2 eq 0 + /systems/failures/spoilers/spoiler-l2 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-l2 eq 0 + /systems/failures/spoilers/spoiler-l2 eq 0 spoilers/main-cmd eq 0 @@ -266,12 +266,12 @@ /systems/hydraulic/blue-psi ge 1500 - /systems/failures/spoiler-l3 eq 0 + /systems/failures/spoilers/spoiler-l3 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/blue-psi ge 1500 - /systems/failures/spoiler-l3 eq 0 + /systems/failures/spoilers/spoiler-l3 eq 0 spoilers/main-cmd eq 0 @@ -327,12 +327,12 @@ /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-l4 eq 0 + /systems/failures/spoilers/spoiler-l4 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-l4 eq 0 + /systems/failures/spoilers/spoiler-l4 eq 0 spoilers/main-cmd eq 0 @@ -389,12 +389,12 @@ /systems/hydraulic/green-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-l5 eq 0 + /systems/failures/spoilers/spoiler-l5 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/green-psi ge 1500 - /systems/failures/spoiler-l5 eq 0 + /systems/failures/spoilers/spoiler-l5 eq 0 spoilers/main-cmd eq 0 @@ -424,7 +424,7 @@ /systems/hydraulic/green-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-r1 eq 0 + /systems/failures/spoilers/spoiler-r1 eq 0 0.0 @@ -511,18 +511,18 @@ /systems/hydraulic/yellow-psi ge 1500 spoilers/main-gear-and eq 0 - /systems/failures/spoiler-r2 eq 0 + /systems/failures/spoilers/spoiler-r2 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-r2 eq 0 + /systems/failures/spoilers/spoiler-r2 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-r2 eq 0 + /systems/failures/spoilers/spoiler-r2 eq 0 spoilers/main-cmd eq 0 @@ -578,12 +578,12 @@ /systems/hydraulic/blue-psi ge 1500 - /systems/failures/spoiler-r3 eq 0 + /systems/failures/spoilers/spoiler-r3 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/blue-psi ge 1500 - /systems/failures/spoiler-r3 eq 0 + /systems/failures/spoilers/spoiler-r3 eq 0 spoilers/main-cmd eq 0 @@ -639,12 +639,12 @@ /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-r4 eq 0 + /systems/failures/spoilers/spoiler-r4 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/yellow-psi ge 1500 - /systems/failures/spoiler-r4 eq 0 + /systems/failures/spoilers/spoiler-r4 eq 0 spoilers/main-cmd eq 0 @@ -701,12 +701,12 @@ /systems/hydraulic/green-psi ge 1500 spoilers/main-gear-and eq 1 - /systems/failures/spoiler-r5 eq 0 + /systems/failures/spoilers/spoiler-r5 eq 0 spoilers/main-cmd gt 0 /systems/hydraulic/green-psi ge 1500 - /systems/failures/spoiler-r5 eq 0 + /systems/failures/spoilers/spoiler-r5 eq 0 spoilers/main-cmd eq 0 diff --git a/Systems/cfm56-sound.xml b/Systems/cfm56-sound.xml index a460ce48..2fd60e55 100644 --- a/Systems/cfm56-sound.xml +++ b/Systems/cfm56-sound.xml @@ -92,8 +92,8 @@ /engines/engine[0]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67355.0 0.29757.2 0.042 @@ -115,7 +115,7 @@
/engines/engine[0]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -134,8 +134,8 @@ /sim/sound/fake-n2[0] - 15.0 0.000 - 19.0 0.000 + 12.0 0.000 + 18.9 0.00041.7 0.62055.0 0.96457.2 1.000 @@ -470,8 +470,8 @@
/engines/engine[1]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67355.0 0.29757.2 0.042 @@ -493,7 +493,7 @@
/engines/engine[1]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -512,8 +512,8 @@ /sim/sound/fake-n2[1] - 15.0 0.000 - 19.0 0.000 + 12.0 0.000 + 18.9 0.00041.7 0.62055.0 0.96457.2 1.000 @@ -853,9 +853,9 @@
/engines/engine[0]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 0.900 + 12.0 0.000 + 14.0 0.010 + 18.9 0.90041.7 0.31070.0 0.01899.8 0.000 @@ -876,7 +876,7 @@
/engines/engine[0]/n1-actual - 19.0 1.00 + 18.9 1.0042.5 1.50
@@ -895,9 +895,9 @@ /engines/engine[0]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 1.000 + 12.0 0.000 + 14.0 0.010 + 18.9 1.00041.7 0.41055.0 0.24057.2 0.100 @@ -920,9 +920,9 @@
/engines/engine[0]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 1.000 + 12.0 0.000 + 14.0 0.010 + 18.9 1.00041.7 0.41070.0 0.01899.8 0.000 @@ -1133,9 +1133,9 @@
/engines/engine[1]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 0.900 + 12.0 0.000 + 14.0 0.010 + 18.9 0.90041.7 0.31070.0 0.01899.8 0.000 @@ -1156,7 +1156,7 @@
/engines/engine[1]/n1-actual - 19.0 1.00 + 18.9 1.0042.5 1.50
@@ -1175,9 +1175,9 @@ /engines/engine[1]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 1.000 + 12.0 0.000 + 14.0 0.010 + 18.9 1.00041.7 0.41055.0 0.24057.2 0.100 @@ -1200,9 +1200,9 @@
/engines/engine[1]/n1-actual - 14.0 0.000 - 15.0 0.010 - 19.0 1.000 + 12.0 0.000 + 14.0 0.010 + 18.9 1.00041.7 0.41070.0 0.01899.8 0.000 @@ -1354,7 +1354,7 @@ 0 - /sim/sound/external/buzz-2-v + /sim/sound/external/buzz-2-p @@ -1420,8 +1420,8 @@
/engines/engine[0]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67353.0 0.35757.2 0.042 @@ -1443,7 +1443,7 @@
/engines/engine[0]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -1462,7 +1462,7 @@ /sim/sound/fake-n2[0] - 19.0 0.000 + 18.9 0.00041.7 0.62053.0 0.96457.2 1.000 @@ -1838,8 +1838,8 @@
/engines/engine[1]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67353.0 0.35757.2 0.042 @@ -1861,7 +1861,7 @@
/engines/engine[1]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -1880,7 +1880,7 @@ /sim/sound/fake-n2[1] - 19.0 0.000 + 18.9 0.00041.7 0.62053.0 0.96457.2 1.000 @@ -2261,8 +2261,8 @@
/engines/engine[0]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67355.0 0.29757.2 0.042 @@ -2284,7 +2284,7 @@
/engines/engine[0]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -2303,7 +2303,7 @@ /sim/sound/fake-n2[0] - 19.0 0.000 + 18.9 0.00041.7 0.62055.0 0.96457.2 1.000 @@ -2638,8 +2638,8 @@
/engines/engine[1]/n1-actual - 15.0 0.000 - 19.0 0.900 + 12.0 0.000 + 18.9 0.90041.7 0.67355.0 0.29757.2 0.042 @@ -2661,7 +2661,7 @@
/engines/engine[1]/n1-actual - 19.0 1.10 + 18.9 1.1042.5 1.65
@@ -2680,7 +2680,7 @@ /sim/sound/fake-n2[1] - 19.0 0.000 + 18.9 0.00041.7 0.62055.0 0.96457.2 1.000 diff --git a/Systems/ecam-proprules.xml b/Systems/ecam-proprules.xml index d096d682..1e1bd8c9 100644 --- a/Systems/ecam-proprules.xml +++ b/Systems/ecam-proprules.xml @@ -127,12 +127,12 @@ SR - ECAM/phases/flipflop/gear-set + ECAM/flipflop/radar-altimeter-5-set - ECAM/phases/flipflop/gear-reset + ECAM/flipflop/radar-altimeter-5-reset - ECAM/phases/flipflop/gear-output + ECAM/flipflop/radar-altimeter-5-output @@ -168,6 +168,17 @@ ECAM/flipflop/recall-output + + SR + + ECAM/flipflop/speed-gt-80-set + + + ECAM/flipflop/speed-gt-80-reset + + ECAM/phases/speed-gt-80 + + monostable + + monostable + + + /ECAM/ground-calc-immediate + + ECAM/phases/monostable/gnd-output + + + monostable + + monostable + true + + + ECAM/phases/monostable/phase-8 + + ECAM/phases/monostable/phase-8-output + + + + monostable + true + + + /ECAM/warnings/logic/eng/eng-1-retard-case-2 + + /ECAM/warnings/logic/eng/eng-1-retard-case-2-fall-output + + + + monostable + true + + + /ECAM/warnings/logic/eng/eng-2-retard-case-2 + + /ECAM/warnings/logic/eng/eng-2-retard-case-2-fall-output + + + + monostable + true + + + /ECAM/warnings/logic/eng/eng-1-reverse + + /ECAM/warnings/logic/eng/eng-1-reverse-fall + + + + monostable + true + + + /ECAM/warnings/logic/eng/eng-2-reverse + + /ECAM/warnings/logic/eng/eng-2-reverse-fall + + monostable true @@ -400,4 +483,591 @@ ECAM/phases/monostable/to-power-set-output + + + monostable + + + /controls/ice-protection/wing + + /ECAM/phases/wing-anti-ice-pulse + + + + monostable + + + /ECAM/phases/monostable/phase-6-180 + + /ECAM/phases/monostable/phase-6-180-pulse + + + + + monostable + true + + + /ECAM/warnings/timer/xbleed-fault-output + + /ECAM/warnings/timer/xbleed-fault-output-10 + + + + monostable + true + + + /controls/engines/engine[0]/fire-btn + + /ECAM/warnings/timer/xbleed-fault-output-15 + + + + SR + + + /ECAM/warnings/timer/prv-1-not-shut-apu-output + 1 + + + + /ECAM/warnings/logic/prv-1-not-shut-apu-reset + + /ECAM/warnings/logic/prv-1-not-shut-apu-flipflop-output + + + + SR + + + /ECAM/warnings/timer/prv-2-not-shut-apu-output + 1 + + + + /ECAM/warnings/logic/prv-2-not-shut-apu-reset + + /ECAM/warnings/logic/prv-2-not-shut-apu-flipflop-output + + + + + monostable + true + + + /systems/pneumatics/valves/engine-1-prv-valve-disag + + /ECAM/warnings/logic/engine-1-prv-valve-falling-pulse + + + + monostable + true + + + /systems/pneumatics/valves/engine-2-prv-valve-disag + + /ECAM/warnings/logic/engine-2-prv-valve-falling-pulse + + + + + monostable + + + /ECAM/warnings/fctl/gear-lever-down + + /ECAM/warnings/fctl/gear-lever-down-pulse + + + + monostable + + + /controls/pneumatics/switches/bleed-1 + + /ECAM/warnings/logic/bleed-sw1-pulse + + + + monostable + + + /controls/pneumatics/switches/bleed-2 + + /ECAM/warnings/logic/bleed-sw2-pulse + + + + monostable + + + /controls/pneumatics/switches/apu + + /ECAM/warnings/logic/apu-bleed-sw-pulse + + + + monostable + + + /controls/electrical/switches/apu + + /ECAM/warnings/logic/apu-elec-gen-pulse + + + + monostable + + + /controls/electrical/switches/gen-1 + + /ECAM/warnings/logic/gen-1-pulse + + + + monostable + + + /controls/electrical/switches/gen-2 + + /ECAM/warnings/logic/gen-2-pulse + + + + monostable + + + /ECAM/warnings/logic/wai-ground-pulse-set + + /ECAM/warnings/logic/wai-ground-pulse + + + + monostable + + + /ECAM/warnings/timer/phase-1-input + + /ECAM/warnings/timer/phase-1-pulse + + + + monostable + + + /ECAM/warnings/logic/wai-phase-9-pulse-input + + /ECAM/warnings/logic/wai-phase-9-pulse + + + + monostable + + + /ECAM/warnings/logic/phase-10-pulse-input + + /ECAM/warnings/logic/phase-10-pulse + + + + monostable + + + /controls/pneumatics/switches/pack-1 + + /ECAM/warnings/logic/pack-1-pulse + + + + monostable + + + /controls/pneumatics/switches/pack-2 + + /ECAM/warnings/logic/pack-2-pulse + + + + + RS + + + /ECAM/warnings/timer/bleed-1-low-temp-output + 1 + + + + /ECAM/warnings/logic/bleed-low-temp-reset + + /ECAM/warnings/logic/bleed-1-low-temp-flipflop-output + + + + RS + + + /ECAM/warnings/timer/bleed-2-low-temp-output + 1 + + + + /ECAM/warnings/logic/bleed-low-temp-reset + + /ECAM/warnings/logic/bleed-2-low-temp-flipflop-output + + + + + monostable + true + + + /controls/ice-protection/wing + + /ECAM/warnings/logic/wai-falling-pulse + + + + RS + + /ECAM/warnings/logic/bleed-1-off-flipflop-set + + + /ECAM/warnings/logic/bleed-1-off-flipflop-reset + + /ECAM/warnings/logic/bleed-1-off-flipflop + + + + RS + + /ECAM/warnings/logic/bleed-2-off-flipflop-set + + + /ECAM/warnings/logic/bleed-2-off-flipflop-reset + + /ECAM/warnings/logic/bleed-2-off-flipflop + + + + RS + + + /ECAM/warnings/logic/wing-anti-ice-flipflop-set + 1 + + + + /ECAM/warnings/logic/wing-anti-ice-flipflop-reset + + /ECAM/warnings/logic/wing-anti-ice-flipflop + + + + SR + + + /ECAM/warnings/logic/wing-anti-ice-left-closed-set + 1 + + + + /ECAM/warnings/logic/wing-anti-ice-left-closed-reset + + /ECAM/warnings/flipflop/wing-anti-ice-left-closed + + + + SR + + + /ECAM/warnings/logic/wing-anti-ice-right-closed-set + 1 + + + + /ECAM/warnings/logic/wing-anti-ice-right-closed-reset + + /ECAM/warnings/flipflop/wing-anti-ice-right-closed + + + + RS + + /ECAM/warnings/logic/proc-wai-shutdown-set + + + /ECAM/warnings/logic/proc-wai-shutdown-reset + + /ECAM/warnings/logic/proc-wai-shutdown-flipflop + + + + RS + + /ECAM/warnings/logic/wing-anti-ice-gnd-fault-set + + + /ECAM/warnings/logic/wing-anti-ice-flipflop-reset + + /ECAM/warnings/logic/wing-anti-ice-gnd-fault-flipflop + + + + RS + + /systems/air-conditioning/warnings/pack-1-ovht-fault + + + /ECAM/warnings/logic/pack-1-ovht-reset + + /ECAM/warnings/flipflop/pack-1-ovht + + + + RS + + /systems/air-conditioning/warnings/pack-2-ovht-fault + + + /ECAM/warnings/logic/pack-2-ovht-reset + + /ECAM/warnings/flipflop/pack-2-ovht + + + + RS + + /ECAM/warnings/timer/pack-1-fault-5 + + + /ECAM/warnings/logic/pack-1-off-reset + + /ECAM/warnings/flipflop/pack-1-off + + + + RS + + /ECAM/warnings/timer/pack-2-fault-5 + + + /ECAM/warnings/logic/pack-2-off-reset + + /ECAM/warnings/flipflop/pack-2-off + + + + RS + + /ECAM/warnings/logic/gen-1-fault-set-output + + + /ECAM/warnings/logic/gen-1-fault-reset + + /ECAM/warnings/flipflop/gen-1-fault + + + + RS + + /ECAM/warnings/logic/gen-1-fault-on-off-set + + + /ECAM/warnings/logic/gen-1-fault-on-off-reset + + /ECAM/warnings/flipflop/gen-1-fault-on-off + + + + RS + + /ECAM/warnings/logic/gen-2-fault-set-output + + + /ECAM/warnings/logic/gen-2-fault-reset + + /ECAM/warnings/flipflop/gen-2-fault + + + + RS + + /ECAM/warnings/logic/gen-2-fault-on-off-set + + + /ECAM/warnings/logic/gen-2-fault-on-off-reset + + /ECAM/warnings/flipflop/gen-2-fault-on-off + + + + + RS + + /ECAM/warnings/timer/apu-gen-fault-set + + + /ECAM/warnings/timer/apu-gen-fault-reset + + /ECAM/warnings/flipflop/apu-gen-fault + + + + RS + + /ECAM/warnings/logic/apu-gen-fault-on-off-set + + + /ECAM/warnings/logic/apu-gen-fault-on-off-reset + + /ECAM/warnings/flipflop/apu-gen-fault-on-off + + + + SR + + /ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle-set + + + /ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle-reset + + /ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle + + + + SR + + /ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle-set + + + /ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle-reset + + /ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle + + + + + monostable + true + + + /ECAM/warnings/logic/stall/phase-4 + + /ECAM/warnings/logic/stall/phase-4-output + + + + monostable + true + + + /ECAM/warnings/logic/stall/phase-5 + + /ECAM/warnings/logic/stall/phase-5-output + + + + monostable + true + + + /ECAM/warnings/logic/stall/phase-8 + + /ECAM/warnings/logic/stall/phase-8-output + + + + RS + + /ECAM/warnings/logic/stall/phase-flipflop-set + + + /ECAM/warnings/logic/stall/phase-flipflop-reset + + /ECAM/warnings/logic/stall/phase-flipflop + + + + SR + + /ECAM/warnings/config/park-brk/park-brk-set + + + /ECAM/warnings/config/park-brk/park-brk-reset + + /ECAM/warnings/config/park-brk/park-brk-output + + + + SR + + /ECAM/warnings/fctl/gear-not-downlocked-set + + + /ECAM/warnings/fctl/gear-not-downlocked-reset + + /ECAM/warnings/fctl/gear-not-downlocked-output + + + + RS + + /ECAM/warnings/fctl/gear-not-down-locked-set + + + /ECAM/warnings/fctl/gear-not-down-locked-reset + + /ECAM/warnings/fctl/gear-not-down-locked + + diff --git a/Systems/fmgc-drivers.xml b/Systems/fmgc-drivers.xml index 4642cdc8..f36c3a0e 100644 --- a/Systems/fmgc-drivers.xml +++ b/Systems/fmgc-drivers.xml @@ -1,109 +1,50 @@ - - + - - IAS 5 SECOND PREDICTOR + IAS 5 Second Predictor false /instrumentation/airspeed-indicator/indicated-speed-kt - /it-autoflight/internal/lookahead-5-sec-airspeed-kt - 5.0 - 0.0 + /it-autoflight/internal/kts-predicted-5 + 5 + 0 - IAS 10 SECOND PREDICTOR + MACH 5 Second Predictor + false + /instrumentation/airspeed-indicator/indicated-mach + /it-autoflight/internal/mach-predicted-5 + 5 + 0 + + + + IAS 15 Second Predictor false /instrumentation/airspeed-indicator/indicated-speed-kt - /it-autoflight/internal/lookahead-10-sec-airspeed-kt - 10.0 - 0.0 + /it-autoflight/internal/kts-predicted-15 + 15 + 0 - IAS 15 SECOND PREDICTOR - false - /instrumentation/airspeed-indicator/indicated-speed-kt - /it-autoflight/internal/lookahead-15-sec-airspeed-kt - 15.0 - 0.0 - - - - MACH 5 SECOND PREDICTOR + MACH 15 Second Predictor false /instrumentation/airspeed-indicator/indicated-mach - /it-autoflight/internal/lookahead-5-sec-mach - 5.0 - 0.0 - - - - MACH 10 SECOND PREDICTOR - false - /instrumentation/airspeed-indicator/indicated-mach - /it-autoflight/internal/lookahead-10-sec-mach - 10.0 - 0.0 - - - - MACH 15 SECOND PREDICTOR - false - /instrumentation/airspeed-indicator/indicated-mach - /it-autoflight/internal/lookahead-15-sec-mach - 15.0 - 0.0 + /it-autoflight/internal/mach-predicted-15 + 15 + 0 - - AUTOLAND FD FPM - gain - 1.0 - - -
- /position/gear-agl-ft - 100-650 - 50-500 - 45 -70 -
-
- - /it-autoflight/internal/target-fpm-c2 - - - - AUTOLAND FPM - gain - 1.0 - - - - /position/gear-agl-ft - 100-650 - 50-500 - 40-400 - 30-300 - 20-180 - 10-100 - 5 -70 -
-
- - /it-autoflight/internal/target-fpm-c -
- - - FMGC MNG SPD + FMGC Managed Knots gain 1.0 @@ -124,7 +65,7 @@ - FMGC MNG MACH + FMGC Managed Mach gain 1.0 @@ -149,7 +90,7 @@ - FMGC Target IAS PFD + FMGC Target Knots PFD gain 1.0 @@ -159,7 +100,7 @@ 0 - /it-autoflight/input/spd-kts + /it-autoflight/input/kts @@ -174,7 +115,7 @@ /instrumentation/airspeed-indicator/indicated-speed-kt /instrumentation/airspeed-indicator/indicated-mach - /it-autoflight/input/spd-mach + /it-autoflight/input/mach @@ -182,20 +123,11 @@ - KTS INPUT FILTER + Knots Input Filter false noise-spike true output - - - - /it-autoflight/mode/vert - T/O CLB - - - /it-autoflight/input/spd-kts - @@ -203,9 +135,31 @@ T/O CLB - /it-autoflight/settings/togaspd + + + /it-autoflight/settings/togaspd + 10 + + + /it-autoflight/input/kts /it-autoflight/internal/flch-kts + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 25 + + + + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 25 + + + @@ -239,13 +193,29 @@ - MACH INPUT FILTER + Mach Input Filter false noise-spike true output - /it-autoflight/input/spd-mach + /it-autoflight/input/mach /it-autoflight/internal/flch-mach + + + + /instrumentation/airspeed-indicator/indicated-mach + 0.045 + + + + + + + /instrumentation/airspeed-indicator/indicated-mach + 0.045 + + + @@ -273,13 +243,13 @@ - 0.05 + 0.04 1 - IAS SYNC + Knots Sync gain 1.0 @@ -300,11 +270,11 @@ - /it-autoflight/input/spd-kts + /it-autoflight/input/kts - MACH SYNC + Mach Sync gain 1.0 @@ -331,11 +301,11 @@ - /it-autoflight/input/spd-mach + /it-autoflight/input/mach - HEADING DEG + Heading Deg gain 1.0 @@ -351,7 +321,7 @@ - TRACK DEG + Track Deg gain 1.0 @@ -385,7 +355,7 @@ - DRIFT ANGLE + Drift Angle gain 1.0 @@ -407,7 +377,7 @@ - HEADING ERROR DEG + Heading Error Deg false gain 1.0 @@ -479,7 +449,7 @@ - VERT SPEED SYNC + Vertical Speed Sync false gain 1.0 @@ -505,7 +475,7 @@ - VERT SPEED FILTER + Vertical Speed Filter false noise-spike true @@ -545,7 +515,37 @@ - NAV ERROR DEG + VS Abs + gain + 1.0 + 0.02 + + + + /it-autoflight/input/vs + + + + /it-autoflight/input/vs-abs + + + + FPA Abs + gain + 1.0 + 0.02 + + + + /it-autoflight/input/fpa + + + + /it-autoflight/input/fpa-abs + + + + Nav Error Deg false gain 1.0 @@ -564,7 +564,7 @@ - INTERNAL VERTICAL SPEED COMPUTER + Internal Vertical Speed false gain 1.0 @@ -573,92 +573,12 @@ - INTERNAL VERTICAL SPEED COMPUTER SYNC 4 - false - gain - 1.0 - - - - - - /it-autoflight/output/vert - 4 - - - /it-autoflight/output/vert - 7 - - - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - - /it-autoflight/output/fd1 - 1 - - - /it-autoflight/output/fd2 - 1 - - - - - - /it-autoflight/internal/vert-speed-fpm - /it-autoflight/internal/target-fpm-b - - - - INTERNAL VERTICAL SPEED COMPUTER SYNC 5 - false - gain - 1.0 - - - - - /it-autoflight/output/vert - 5 - - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - - /it-autoflight/output/fd1 - 1 - - - /it-autoflight/output/fd2 - 1 - - - - - - /it-autoflight/internal/vert-speed-fpm - /it-autoflight/internal/target-fpm-d - - - - NAV1 G/S FPM Calc + Nav G/S FPM Calc false gain 1.0 /instrumentation/nav[0]/gs-rate-of-climb-fpm - /it-autoflight/internal/nav1-rate-of-climb-fpm + /it-autoflight/internal/nav-rate-of-climb-fpm @@ -681,7 +601,7 @@ - HEADING PREDICTOR STAGE 1 + Heading Predictor Stage 1 false gain 1.0 @@ -731,7 +651,7 @@ - HEADING PREDICTOR STAGE 2 + Heading Predictor Stage 2 false gain 1.0 @@ -768,7 +688,7 @@ - ALTITUDE PREDICTOR + Altitude Predictor false gain 1.0 @@ -787,7 +707,7 @@ - INTERNAL FPA COMPUTER + Internal FPA Computer false gain 1.0 @@ -803,26 +723,10 @@ - - IT-CONTROLLER: TARGET ROLL CMD + FD Target Roll Filter false noise-spike - - - - - /it-autoflight/output/lat - 4 - - - /it-autoflight/output/lat - 5 - - - - 0 - /it-autoflight/internal/target-roll-deg /it-autoflight/internal/target-roll-fd @@ -844,16 +748,16 @@ - FD: ROLL + FD Roll false gain 1.0 - + /it-autoflight/internal/target-roll-fd /orientation/roll-deg - + /it-autoflight/fd/roll-bar @@ -862,16 +766,16 @@ - FD: PITCH + FD Pitch false noise-spike - + /it-autoflight/internal/target-common-fpm /it-autoflight/internal/vert-speed-fpm - + /instrumentation/airspeed-indicator/indicated-mach0.200.004 @@ -882,21 +786,53 @@ /it-autoflight/fd/pitch-bar-15 - 30 + 1510 - - + + Accel Altitude + gain + 1.0 - - /controls/flight/flaps - 0.8 - + + + + + /engines/engine[0]/state + 3 + + + + /engines/engine[1]/state + 3 + + + + + + + /engines/engine[0]/state + 3 + + + + /engines/engine[1]/state + 3 + + + + + + /FMGC/internal/eng-out-reduc + - /instrumentation/mk-viii/inputs/discretes/landing-flaps - + + + /FMGC/internal/accel-agl-ft + + + /it-autoflight/settings/accel-agl-ft + diff --git a/Systems/fmgc-pitch.xml b/Systems/fmgc-pitch.xml index f7e33877..28d26a6c 100644 --- a/Systems/fmgc-pitch.xml +++ b/Systems/fmgc-pitch.xml @@ -1,15 +1,13 @@ - - + - - ALTITUDE CAPTURE/HOLD + IT-CONTROLLER: Altitude Capture/Hold false gain -5 @@ -21,148 +19,54 @@ - - - - /it-autoflight/output/vert - 8 - - - /it-autoflight/internal/mng-alt - /it-autoflight/internal/alt - /it-autoflight/internal/target-fpm + /it-autoflight/internal/target-fpm-alt /it-autoflight/internal/min-vs /it-autoflight/internal/max-vs - - FPA ERROR - false - gain - 1.0 - /it-autoflight/internal/fpa - /it-autoflight/input/fpa - /it-autoflight/internal/fpa-error - -1.5 - 1.5 - - - - FPA HOLD - false - - - + + + + /it-autoflight/output/vert - 5 + 4 - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - - /it-autoflight/output/fd1 - 1 - - - /it-autoflight/output/fd2 - 1 - - - - - - /it-autoflight/internal/fpa-error - 0 - /it-autoflight/internal/target-fpm-d - - - -
- /fdm/jsbsim/velocities/vc-kts - 140120 - 360340 -
-
- - - - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - - - 2.0 - - 10.0 - 0.002 - - - - /it-autoflight/internal/vert-speed-fpm - 2500 - - - - - - - /it-autoflight/internal/vert-speed-fpm - 2500 - - - - - + + /it-autoflight/output/vert + 7 + + + + + /it-autoflight/output/ap1 + 1 + + + /it-autoflight/output/ap2 + 1 + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + + + + /it-autoflight/internal/flch-active + - FLCH SPEED BY PITCH + IT-CONTROLLER: Speed By Pitch false - - - - /it-autoflight/output/vert - 4 - - - /it-autoflight/output/vert - 7 - - - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - - /it-autoflight/output/fd1 - 1 - - - /it-autoflight/output/fd2 - 1 - - - + /it-autoflight/internal/flch-active @@ -172,7 +76,7 @@ 0 - /it-autoflight/internal/lookahead-15-sec-airspeed-kt + /it-autoflight/internal/kts-predicted-15 @@ -181,8 +85,8 @@ 1 - /it-autoflight/internal/lookahead-15-sec-mach - 750.0 + /it-autoflight/internal/mach-predicted-15 + 750 @@ -201,28 +105,11 @@ /it-autoflight/internal/flch-mach - 750.0 + 750 - /it-autoflight/internal/target-fpm-b + /it-autoflight/internal/target-fpm-flch - - - - /it-autoflight/output/vert - 7 - - - -55 - - - - - /it-autoflight/output/vert - 7 - - - -60 - + -55 2.5 0.001 @@ -232,48 +119,16 @@ 2 - 150 + 120 - - - /it-autoflight/output/thr-mode - 1 - - - + /it-autoflight/internal/vert-speed-fpm 2500 - + - - - - - /it-autoflight/output/thr-mode - 2 - - - - /gear/gear[1]/wow - 0 - - - /gear/gear[2]/wow - 0 - - - - - - - /it-autoflight/internal/vert-speed-fpm - 2500 - - - @@ -302,29 +157,9 @@ 1 - -150 + -120 - - - - /it-autoflight/output/thr-mode - 0 - - - - - /it-autoflight/internal/vert-speed-fpm - 2500 - - - - - - /it-autoflight/output/thr-mode - 0 - - /it-autoflight/internal/vert-speed-fpm @@ -335,6 +170,190 @@ + + Speed By Pitch Inactive Sync + false + gain + 1.0 + + + /it-autoflight/internal/flch-active + + + /it-autoflight/internal/vert-speed-fpm + /it-autoflight/internal/target-fpm-flch + + + + + + + /it-autoflight/output/vert + 5 + + + + /it-autoflight/output/ap1 + 1 + + + /it-autoflight/output/ap2 + 1 + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + + + + /it-autoflight/internal/fpa-active + + + + IT-CONTROLLER: FPA + gain + 1.0 + + + /it-autoflight/internal/fpa-active + + /it-autoflight/internal/vert-speed-fpm + + + + + + /it-autoflight/internal/vert-speed-fpm + + /velocities/vertical-speed-fps + 60 + + + + + + /it-autoflight/input/fpa + + + /instrumentation/airspeed-indicator/true-speed-kt + 101.26859142607174 + + + + + /it-autoflight/internal/target-fpm-fpa-raw + + + + /it-autoflight/internal/vert-speed-fpm + 2500 + + + + + + + /it-autoflight/internal/vert-speed-fpm + 2500 + + + + + + + FPA FPM Filter + noise-spike + /it-autoflight/internal/target-fpm-fpa-raw + /it-autoflight/internal/target-fpm-fpa + + + /it-autoflight/internal/fpa-active + + 10000 + + 300 + + + + IT-CONTROLLER: Flare FD + gain + 1.0 + + + + + /it-autoflight/internal/vert-speed-fpm + + /velocities/vertical-speed-fps + 60 + + + + + + + /position/gear-agl-ft + 100-2.80 + 50-2.12 + 45-0.61 +
+
+
+ /instrumentation/airspeed-indicator/true-speed-kt + 101.26859142607174 +
+
+
+ + /it-autoflight/internal/target-fpm-land-fd + -1200 + 0 +
+ + + IT-CONTROLLER: Flare + gain + 1.0 + + + + + /it-autoflight/internal/vert-speed-fpm + + /velocities/vertical-speed-fps + 60 + + + + + + + /position/gear-agl-ft + 100-2.80 + 50-2.12 + 40-1.58 + 30-1.23 + 20-0.92 + 10-0.61 +
+
+
+ /instrumentation/airspeed-indicator/true-speed-kt + 101.26859142607174 +
+
+
+ + /it-autoflight/internal/target-fpm-land + -1200 + 0 +
+ TARGET FPM false @@ -347,7 +366,7 @@ 0 - /it-autoflight/internal/target-fpm + /it-autoflight/internal/target-fpm-alt @@ -371,7 +390,7 @@ - /it-autoflight/internal/target-fpm-b + /it-autoflight/internal/target-fpm-flch @@ -380,7 +399,7 @@ 6 - /it-autoflight/internal/target-fpm-c2 + /it-autoflight/internal/target-fpm-land-fd @@ -389,7 +408,7 @@ 5 - /it-autoflight/internal/target-fpm-d + /it-autoflight/internal/target-fpm-fpa-raw @@ -398,61 +417,25 @@ 2 - /it-autoflight/internal/nav1-rate-of-climb-fpm + /it-autoflight/internal/nav-rate-of-climb-fpm /it-autoflight/internal/target-common-fpm - FPM HOLD + IT-CONTROLLER: FPM Hold false - - - /it-autoflight/output/vert - 0 - - - /it-autoflight/output/vert - 1 - - - /it-autoflight/output/vert - 2 - - - /it-autoflight/output/vert - 4 - - - /it-autoflight/output/vert - 5 - - - - /it-autoflight/output/vert - 6 - - - /gear/gear[1]/wow - 0 - - - /gear/gear[2]/wow - 0 - - - - /it-autoflight/output/vert - 7 - - - /it-autoflight/output/vert - 8 - - + + /gear/gear[1]/wow + 0 + + + /gear/gear[2]/wow + 0 + /it-autoflight/output/ap1 @@ -467,15 +450,6 @@ /it-autoflight/internal/vert-speed-fpm - - - - /it-autoflight/output/vert - 0 - - - /it-autoflight/internal/target-fpm - @@ -485,30 +459,6 @@ /it-autoflight/internal/vs - - - - - /it-autoflight/output/vert - 4 - - - /it-autoflight/output/vert - 7 - - - - /it-autoflight/internal/target-fpm-b - - - - - /it-autoflight/output/vert - 6 - - - /it-autoflight/internal/target-fpm-c - @@ -516,17 +466,18 @@ 5 - /it-autoflight/internal/target-fpm-d + /it-autoflight/internal/target-fpm-fpa /it-autoflight/output/vert - 2 + 6 - /it-autoflight/internal/nav1-rate-of-climb-fpm + /it-autoflight/internal/target-fpm-land + /it-autoflight/internal/target-common-fpm /it-autoflight/internal/target-pitch-deg @@ -555,23 +506,6 @@ 2.5 0.0001 - - - - /it-autoflight/output/vert - 6 - - - - - - /orientation/pitch-deg - 5 - - -10 - - - @@ -581,29 +515,17 @@ 0 - - - - - /gear/gear[1]/wow - 0 - - - /gear/gear[2]/wow - 0 - - - + - - + + /orientation/pitch-deg 5 - - 30 - + + -15 + - + @@ -619,26 +541,66 @@ 10 + + + + /it-autoflight/output/vert + 7 + + + + + + /orientation/pitch-deg + 5 + + 18 + + + + + + + + /orientation/pitch-deg + 5 + + 30 + + + - PITCH DEG SYNC + System Command: Pitch Target Inactive Sync false gain 1.0 - - - /it-autoflight/output/ap1 - 1 - - - /it-autoflight/output/ap2 - 1 - - + + + + /gear/gear[1]/wow + 0 + + + /gear/gear[2]/wow + 0 + + + + /it-autoflight/output/ap1 + 1 + + + /it-autoflight/output/ap2 + 1 + + + + /orientation/pitch-deg @@ -648,10 +610,10 @@ - System Command: Pitch Rate + System Command: Pitch Rate Target false gain - 0.15 + 0.125 /orientation/pitch-deg /it-autoflight/internal/target-pitch-deg /fdm/jsbsim/fbw/fmgc/pitch-cmd diff --git a/Systems/fmgc-roll-yaw.xml b/Systems/fmgc-roll-yaw.xml index 4f7b4b1b..2d3ab56a 100644 --- a/Systems/fmgc-roll-yaw.xml +++ b/Systems/fmgc-roll-yaw.xml @@ -1,15 +1,13 @@ - - + - - IT-CONTROLLER: HDG/LNAV ROLL + IT-CONTROLLER: Heading/LNAV false gain @@ -66,7 +64,7 @@ - IT-CONTROLLER: VORLOC ROLL + IT-CONTROLLER: VOR/LOC false gain @@ -117,7 +115,29 @@ - ROLL DEG SYNC + IT-CONTROLLER: Align/Rollout/Takeoff + false + noise-spike + + + + + /it-autoflight/output/lat + 4 + + + /it-autoflight/output/lat + 5 + + + + + 0 + /it-autoflight/internal/target-roll-deg + + + + System Command: Roll Target Inactive Sync false gain 1.0 @@ -153,24 +173,9 @@ - IT-CONTROLLER: TARGET ROLL CMD + System Command: Target Roll Filter false noise-spike - - - - - /it-autoflight/output/lat - 4 - - - /it-autoflight/output/lat - 5 - - - - 0 - /it-autoflight/internal/target-roll-deg /it-autoflight/internal/target-roll @@ -215,7 +220,7 @@ - System Command: Roll Rate + System Command: Roll Rate Target false gain -0.1 @@ -227,9 +232,8 @@ - - RUDDER VORLOC TRK + IT-CONTROLLER: Yaw VOR/LOC false @@ -266,7 +270,7 @@ - IT-CONTROLLER: RUDDER CMD + System Command: Rudder false noise-spike diff --git a/Systems/fmgc-thrust.xml b/Systems/fmgc-thrust.xml index 3fce8838..6d7018fc 100644 --- a/Systems/fmgc-thrust.xml +++ b/Systems/fmgc-thrust.xml @@ -5,15 +5,30 @@ - - KTS INPUT FILTER + A/THR Knots Input Filter false noise-spike true output - /it-autoflight/input/spd-kts - /it-autoflight/internal/kts + /it-autoflight/input/kts + /it-autoflight/internal/athr-kts + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 25 + + + + + + + /instrumentation/airspeed-indicator/indicated-speed-kt + 25 + + + @@ -49,13 +64,29 @@ - MACH INPUT FILTER + A/THR Mach Input Filter false noise-spike true output - /it-autoflight/input/spd-mach - /it-autoflight/internal/mach + /it-autoflight/input/mach + /it-autoflight/internal/athr-mach + + + + /instrumentation/airspeed-indicator/indicated-mach + 0.045 + + + + + + + /instrumentation/airspeed-indicator/indicated-mach + 0.045 + + + @@ -85,7 +116,7 @@ - 0.1 + 0.08 2 @@ -106,7 +137,7 @@ - IT-CONTROLLER: IAS THRUST + IT-CONTROLLER: Knots false @@ -217,7 +248,7 @@ /it-autoflight/internal/current-speed-input - /it-autoflight/internal/kts + /it-autoflight/internal/athr-kts /controls/engines/throttle-cmd-pid 0.055 @@ -229,7 +260,7 @@ - IT-CONTROLLER: MACH THRUST + IT-CONTROLLER: Mach false @@ -341,11 +372,11 @@ /it-autoflight/internal/current-mach-input - 1000.0 + 1000 - /it-autoflight/internal/mach - 1000.0 + /it-autoflight/internal/athr-mach + 1000 /controls/engines/throttle-cmd-pid @@ -358,7 +389,7 @@ - IT-CONTROLLER: IDLE THRUST + IT-CONTROLLER: Idle Limit false gain 1.0 @@ -464,12 +495,12 @@ - 0.0 + 0 /controls/engines/throttle-cmd-pid - IT-CONTROLLER: LIMIT THRUST + IT-CONTROLLER: Thrust Limit false gain 1.0 @@ -575,12 +606,12 @@ - 1.0 + 1 /controls/engines/throttle-cmd-pid - IT-CONTROLLER: FEEDBACK IF DISABLED + IT-CONTROLLER: Throttle Inactive Sync false gain 1.0 diff --git a/Systems/libraries.xml b/Systems/libraries.xml index 8acf59b5..cf97f463 100644 --- a/Systems/libraries.xml +++ b/Systems/libraries.xml @@ -1352,5 +1352,18 @@ /instrumentation/pfd/minimums-plus-100 + + + + + + /controls/flight/flaps + 0.8 + + + /instrumentation/mk-viii/inputs/discretes/landing-flaps + diff --git a/Systems/lower-ecam.xml b/Systems/lower-ecam.xml index 09ae6ad5..8f76a3ae 100644 --- a/Systems/lower-ecam.xml +++ b/Systems/lower-ecam.xml @@ -182,5 +182,90 @@ /fdm/jsbsim/hydraulics/elevator-trim/final-deg /ECAM/Lower/elevator-trim-deg + + + Pack 1 Flow Output + gain + 1.0 + + + + /systems/air-conditioning/packs/pack-flow-1 + 0.8-80 + 1.0 0 + 1.2 80 +
+
+ + /ECAM/Lower/pack-1-flow-output +
+ + + Pack 2 Flow Output + gain + 1.0 + + + + /systems/air-conditioning/packs/pack-flow-2 + 0.8-80 + 1.0 0 + 1.2 80 +
+
+ + /ECAM/Lower/pack-2-flow-output +
+ + + Trim Valve Cockpit + gain + 1.0 + + + + /systems/air-conditioning/valves/trim-cockpit + 0.0-50 + 0.5 0 + 1.0 50 +
+
+ + /ECAM/Lower/trim-cockpit-output +
+ + + Trim Valve Aft + gain + 1.0 + + + + /systems/air-conditioning/valves/trim-aft + 0.0-50 + 0.5 0 + 1.0 50 +
+
+ + /ECAM/Lower/trim-aft-output +
+ + + Trim Valve Fwd + gain + 1.0 + + + + /systems/air-conditioning/valves/trim-fwd + 0.0-50 + 0.5 0 + 1.0 50 +
+
+ + /ECAM/Lower/trim-fwd-output +
diff --git a/Systems/sound-common.xml b/Systems/sound-common.xml index db7ff037..eabc0903 100644 --- a/Systems/sound-common.xml +++ b/Systems/sound-common.xml @@ -55,6 +55,18 @@ /sim/sound/internal-custom + + + + + /sim/sound/internal-custom + 1 + + + + /sim/sound/external-custom + + gain @@ -203,12 +215,12 @@ gain - 0.025 + 1 /sim/sound/internal-custom - /systems/pneumatic/pack-psi + /systems/air-conditioning/mass-flow-cockpit-kg_s 0 /sim/sound/other/air-con diff --git a/Systems/upper-ecam.xml b/Systems/upper-ecam.xml index d34e4020..298e86b8 100644 --- a/Systems/upper-ecam.xml +++ b/Systems/upper-ecam.xml @@ -400,4 +400,256 @@ /ECAM/Upper/N1ylim + + Flap Indicator + gain + 1.0 + + + + options/maxflap + 35 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-192 + 10.0-135 + 15.0-89 + 20.0-43 + 35.00 +
+
+ + + + + options/maxflap + 40 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-192 + 10.0-135 + 15.0-89 + 20.0-43 + 40.00 +
+
+ + 0 + /ECAM/Upper/FlapX +
+ + + Flap Indicator + gain + 1.0 + + + + options/maxflap + 35 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-47 + 10.0-33 + 15.0-21 + 20.0-10 + 35.00 +
+
+ + + + + options/maxflap + 40 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-47 + 10.0-33 + 15.0-21 + 20.0-10 + 40.00 +
+
+ + 0 + /ECAM/Upper/FlapY +
+ + + Flap Indicator + gain + 1.0 + + + + options/maxflap + 35 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-200 + 10.0-135 + 15.0-95 + 20.0-48.5 + 35.00 +
+
+ + + + + options/maxflap + 40 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-200 + 10.0-135 + 15.0-95 + 20.0-48.5 + 40.00 +
+
+ + 0 + /ECAM/Upper/FlapXtrans +
+ + + Flap Indicator + gain + 1.0 + + + + options/maxflap + 35 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-49 + 10.0-33 + 15.0-23 + 20.0-11.25 + 35.00 +
+
+ + + + + options/maxflap + 40 + + + + + /fdm/jsbsim/fcs/flap-pos-deg + 0.0-49 + 10.0-33 + 15.0-23 + 20.0-11.25 + 40.00 +
+
+ + 0 + /ECAM/Upper/FlapYtrans +
+ + + Slat Indicator + gain + 1.0 + + + + /fdm/jsbsim/fcs/slat-pos-deg + 0.0131 + 18.092 + 22.046 + 27.00 +
+
+ + 0 + /ECAM/Upper/SlatX +
+ + + Slat Indicator + gain + 1.0 + + + + /fdm/jsbsim/fcs/slat-pos-deg + 0.0-42 + 18.0-28 + 22.0-14 + 27.00 +
+
+ + 0 + /ECAM/Upper/SlatY +
+ + + Slat Indicator + gain + 1.0 + + + + /fdm/jsbsim/fcs/slat-pos-deg + 0.0135 + 18.095 + 22.050 + 27.00 +
+
+ + 0 + /ECAM/Upper/SlatXtrans +
+ + + Slat Indicator + gain + 1.0 + + + + /fdm/jsbsim/fcs/slat-pos-deg + 0.0-43 + 18.0-29 + 22.0-15 + 27.00 +
+
+ + 0 + /ECAM/Upper/SlatYtrans +
+ diff --git a/Systems/wingflexer-params.xml b/Systems/wingflexer-params.xml deleted file mode 100644 index d684e0c7..00000000 --- a/Systems/wingflexer-params.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - 12000 - 259 - 12 - 0.375 - - - - 0 - 0 - - - \ No newline at end of file diff --git a/gui/dialogs/a3xx-autoflight-dlg.xml b/gui/dialogs/a3xx-autoflight-dlg.xml index fa5cc801..c9002aa0 100644 --- a/gui/dialogs/a3xx-autoflight-dlg.xml +++ b/gui/dialogs/a3xx-autoflight-dlg.xml @@ -403,7 +403,7 @@ 0 3 50 - /it-autoflight/input/spd-kts + /it-autoflight/input/kts true @@ -529,7 +529,7 @@ 0 3 50 - /it-autoflight/input/spd-mach + /it-autoflight/input/mach true diff --git a/gui/dialogs/mcdu1-dlg.xml b/gui/dialogs/mcdu1-dlg.xml index 6a2f0fd8..b2abfed9 100644 --- a/gui/dialogs/mcdu1-dlg.xml +++ b/gui/dialogs/mcdu1-dlg.xml @@ -466,6 +466,16 @@ ATC 25 40 + + nasal + + + + systems/electrical/bus/ac-1 + 110 + + + 0.95 - 0.05 - 0.05 - 0.05 + 0.19 + 0.19 + 0.19 0.95 - 0.9 - 0.9 - 0.9 + 0.8 + 0.58 + 0.44 0.95 @@ -40,9 +40,9 @@ 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 @@ -52,15 +52,15 @@ 0.95 - 1.0 - 0.0 - 1.0 + 0.8 + 0.58 + 0.44 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 @@ -82,27 +82,27 @@ 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 1.0 - 0.4 - 0.4 - 0.4 + 0.33 + 0.33 + 0.33 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 - 1.0 - 0.0 - 1.0 + 0.8 + 0.58 + 0.44 @@ -111,39 +111,39 @@ 0.95 - 0.05 - 0.05 - 0.05 + 0.17 + 0.17 + 0.17 0.95 - 0.05 - 0.05 - 0.05 + 0.19 + 0.19 + 0.19 0.95 - 0.9 - 0.9 - 0.9 + 0.8 + 0.58 + 0.44 0.95 - 0.9 - 0.9 - 0.9 + 0.8 + 0.58 + 0.44 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 @@ -153,15 +153,15 @@ 0.95 - 1.0 - 0.0 - 1.0 + 0.8 + 0.58 + 0.44 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 @@ -183,27 +183,27 @@ 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 1.0 - 0.4 - 0.4 - 0.4 + 0.33 + 0.33 + 0.33 0.95 - 0.2 - 0.2 - 0.2 + 0.33 + 0.33 + 0.33 0.95 - 1.0 - 0.0 - 1.0 + 0.8 + 0.58 + 0.44 diff --git a/revision.txt b/revision.txt index 7c091989..aaa6442f 100644 --- a/revision.txt +++ b/revision.txt @@ -1 +1 @@ -37 \ No newline at end of file +41 \ No newline at end of file