From f5c66d6047a420625431031a1dd51b97fb3bde76 Mon Sep 17 00:00:00 2001 From: legoboyvdlp R <legoboyvdlp@gmail.com> Date: Sat, 12 Sep 2020 18:21:23 +0100 Subject: [PATCH] JSBSIM Misc file added. --- A320-100-CFM.xml | 1 + A320-200-CFM.xml | 1 + A320-200-IAE.xml | 1 + A320neo-CFM.xml | 1 + A320neo-PW.xml | 1 + Models/Instruments/OHpanel/OHpanel.xml | 66 ++++++++++++--- Nasal/Libraries/buttons.nas | 113 +++++++++---------------- Nasal/Libraries/libraries.nas | 6 +- Systems/a320-misc.xml | 32 +++++++ 9 files changed, 138 insertions(+), 84 deletions(-) create mode 100644 Systems/a320-misc.xml diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml index 260ee175..7784988c 100644 --- a/A320-100-CFM.xml +++ b/A320-100-CFM.xml @@ -213,6 +213,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <system file="a320-adr"/> <system file="a320-apu"/> <system file="a320-fmgc"/> + <system file="a320-misc"/> <flight_control name="none"/> <aerodynamics file="Systems/a320-aerodynamics.xml"/> diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml index 1d7d24fa..17855ff5 100644 --- a/A320-200-CFM.xml +++ b/A320-200-CFM.xml @@ -212,6 +212,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <system file="a320-adr"/> <system file="a320-apu"/> <system file="a320-fmgc"/> + <system file="a320-misc"/> <flight_control name="none"/> <aerodynamics file="Systems/a320-aerodynamics.xml"/> diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml index 7c1c065f..24f5355d 100644 --- a/A320-200-IAE.xml +++ b/A320-200-IAE.xml @@ -212,6 +212,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <system file="a320-adr"/> <system file="a320-apu"/> <system file="a320-fmgc"/> + <system file="a320-misc"/> <flight_control name="none"/> <aerodynamics file="Systems/a320-aerodynamics.xml"/> diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml index 4bd25cfa..7570cb46 100644 --- a/A320neo-CFM.xml +++ b/A320neo-CFM.xml @@ -212,6 +212,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <system file="a320-adr"/> <system file="a320-apu"/> <system file="a320-fmgc"/> + <system file="a320-misc"/> <flight_control name="none"/> <aerodynamics file="Systems/a320-aerodynamics.xml"/> diff --git a/A320neo-PW.xml b/A320neo-PW.xml index 05d4ea88..fa07ac97 100644 --- a/A320neo-PW.xml +++ b/A320neo-PW.xml @@ -212,6 +212,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <system file="a320-adr"/> <system file="a320-apu"/> <system file="a320-fmgc"/> + <system file="a320-misc"/> <flight_control name="none"/> <aerodynamics file="Systems/a320-aerodynamics.xml"/> diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml index 64eca44e..b9bc5cc1 100644 --- a/Models/Instruments/OHpanel/OHpanel.xml +++ b/Models/Instruments/OHpanel/OHpanel.xml @@ -7204,14 +7204,37 @@ <repeatable>false</repeatable> <binding> <condition> - <greater-than-equals> - <property>systems/electrical/bus/dc-ess</property> - <value>25</value> - </greater-than-equals> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <or> + <not> + <property>gear/gear[1]/wow</property> + </not> + <equals> + <property>/engines/engine[0]/state</property> + <value>3</value> + </equals> + <equals> + <property>/engines/engine[1]/state</property> + <value>3</value> + </equals> + </or> + </and> </condition> - <command>property-toggle</command> + <command>property-assign</command> <property>controls/switches/LrainRpt</property> + <value>1</value> </binding> + <mod-up> + <binding> + <command>property-assign</command> + <property>controls/switches/LrainRpt</property> + <value>0</value> + </binding> + </mod-up> <binding> <command>nasal</command> <script>setprop("sim/sounde/oh-btn", 1);</script> @@ -7227,14 +7250,37 @@ <repeatable>false</repeatable> <binding> <condition> - <greater-than-equals> - <property>systems/electrical/bus/dc-ess</property> - <value>25</value> - </greater-than-equals> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-2</property> + <value>25</value> + </greater-than-equals> + <or> + <not> + <property>gear/gear[1]/wow</property> + </not> + <equals> + <property>/engines/engine[0]/state</property> + <value>3</value> + </equals> + <equals> + <property>/engines/engine[1]/state</property> + <value>3</value> + </equals> + </or> + </and> </condition> - <command>property-toggle</command> + <command>property-assign</command> <property>controls/switches/RrainRpt</property> + <value>1</value> </binding> + <mod-up> + <binding> + <command>property-assign</command> + <property>controls/switches/RrainRpt</property> + <value>0</value> + </binding> + </mod-up> <binding> <command>nasal</command> <script>setprop("sim/sounde/oh-btn", 1);</script> diff --git a/Nasal/Libraries/buttons.nas b/Nasal/Libraries/buttons.nas index 58c8f0e6..f5ade43d 100644 --- a/Nasal/Libraries/buttons.nas +++ b/Nasal/Libraries/buttons.nas @@ -5,77 +5,71 @@ var wow = nil; var wowr = nil; -var Lrain = props.globals.getNode("/controls/switches/LrainRpt"); -var Rrain = props.globals.getNode("/controls/switches/RrainRpt"); var OnLt = props.globals.getNode("/controls/switches/emerCallLtO"); var CallLt = props.globals.getNode("/controls/switches/emerCallLtC"); var EmerCall = props.globals.getNode("/controls/switches/emerCall"); var CabinCall = props.globals.getNode("/controls/switches/cabinCall"); var MechCall = props.globals.getNode("/controls/switches/mechCall"); -var cvr_gndCtl = props.globals.getNode("/controls/CVR/gndctl"); -var cvr_power = props.globals.getNode("/controls/CVR/power"); var cvr_tone = props.globals.getNode("/controls/CVR/tone"); # Resets buttons to the default values var variousReset = func { setprop("modes/cpt-du-xfr", 0); setprop("modes/fo-du-xfr", 0); - setprop("controls/fadec/n1mode1", 0); - setprop("controls/fadec/n1mode2", 0); + setprop("/controls/fadec/n1mode1", 0); + setprop("/controls/fadec/n1mode2", 0); setprop("instrumentation/mk-viii/serviceable", 1); setprop("instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit", 0); setprop("instrumentation/mk-viii/inputs/discretes/gpws-inhibit", 0); setprop("instrumentation/mk-viii/inputs/discretes/glideslope-inhibit", 0); setprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override", 0); setprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override", 0); - setprop("controls/switches/cabinCall", 0); - setprop("controls/switches/mechCall", 0); - setprop("controls/switches/emer-lights", 0.5); + setprop("/controls/switches/cabinCall", 0); + setprop("/controls/switches/mechCall", 0); + setprop("/controls/switches/emer-lights", 0.5); # cockpit voice recorder stuff - setprop("controls/CVR/power", 0); - setprop("controls/CVR/test", 0); - setprop("controls/CVR/tone", 0); - setprop("controls/CVR/gndctl", 0); - setprop("controls/CVR/erase", 0); - setprop("controls/switches/pneumatics/cabin-fans", 1); - setprop("controls/oxygen/crewOxyPB", 1); # 0 = OFF 1 = AUTO - setprop("controls/switches/emerCallLtO", 0); # ON light, flashes white for 10s - setprop("controls/switches/emerCallLtC", 0); # CALL light, flashes amber for 10s - setprop("controls/switches/emerCall", 0); - setprop("controls/switches/LrainRpt", 0); - setprop("controls/switches/RrainRpt", 0); - setprop("controls/switches/wiperLspd", 0); # -1 = INTM 0 = OFF 1 = LO 2 = HI - setprop("controls/switches/wiperRspd", 0); # -1 = INTM 0 = OFF 1 = LO 2 = HI - setprop("controls/lighting/strobe", 0); - setprop("controls/lighting/beacon", 0); - setprop("controls/switches/beacon", 0); - setprop("controls/switches/wing-lights", 0); - setprop("controls/switches/landing-lights-l", 0); - setprop("controls/switches/landing-lights-r", 0); - setprop("controls/lighting/wing-lights", 0); - setprop("controls/lighting/nav-lights-switch", 0); - setprop("controls/lighting/landing-lights[1]", 0); - setprop("controls/lighting/landing-lights[2]", 0); - setprop("controls/lighting/taxi-light-switch", 0); - setprop("controls/lighting/DU/du1", 1); - setprop("controls/lighting/DU/du2", 1); - setprop("controls/lighting/DU/du3", 1); - setprop("controls/lighting/DU/du4", 1); - setprop("controls/lighting/DU/du5", 1); - setprop("controls/lighting/DU/du6", 1); - setprop("controls/lighting/DU/mcdu1", 1); - setprop("controls/lighting/DU/mcdu2", 1); + setprop("/controls/CVR/power", 0); + setprop("/controls/CVR/test", 0); + setprop("/controls/CVR/tone", 0); + setprop("/controls/CVR/gndctl", 0); + setprop("/controls/CVR/erase", 0); + setprop("/controls/switches/pneumatics/cabin-fans", 1); + setprop("/controls/oxygen/crewOxyPB", 1); # 0 = OFF 1 = AUTO + setprop("/controls/switches/emerCallLtO", 0); # ON light, flashes white for 10s + setprop("/controls/switches/emerCallLtC", 0); # CALL light, flashes amber for 10s + setprop("/controls/switches/emerCall", 0); + setprop("/controls/switches/LrainRpt", 0); + setprop("/controls/switches/RrainRpt", 0); + setprop("/controls/switches/wiperLspd", 0); # -1 = INTM 0 = OFF 1 = LO 2 = HI + setprop("/controls/switches/wiperRspd", 0); # -1 = INTM 0 = OFF 1 = LO 2 = HI + setprop("/controls/lighting/strobe", 0); + setprop("/controls/lighting/beacon", 0); + setprop("/controls/switches/beacon", 0); + setprop("/controls/switches/wing-lights", 0); + setprop("/controls/switches/landing-lights-l", 0); + setprop("/controls/switches/landing-lights-r", 0); + setprop("/controls/lighting/wing-lights", 0); + setprop("/controls/lighting/nav-lights-switch", 0); + setprop("/controls/lighting/landing-lights[1]", 0); + setprop("/controls/lighting/landing-lights[2]", 0); + setprop("/controls/lighting/taxi-light-switch", 0); + setprop("/controls/lighting/DU/du1", 1); + setprop("/controls/lighting/DU/du2", 1); + setprop("/controls/lighting/DU/du3", 1); + setprop("/controls/lighting/DU/du4", 1); + setprop("/controls/lighting/DU/du5", 1); + setprop("/controls/lighting/DU/du6", 1); + setprop("/controls/lighting/DU/mcdu1", 1); + setprop("/controls/lighting/DU/mcdu2", 1); setprop("modes/fcu/hdg-time", -45); - setprop("controls/switching/ATTHDG", 0); - setprop("controls/switching/AIRDATA", 0); - setprop("controls/switches/no-smoking-sign", 1); - setprop("controls/switches/seatbelt-sign", 1); + setprop("/controls/switching/ATTHDG", 0); + setprop("/controls/switching/AIRDATA", 0); + setprop("/controls/switches/no-smoking-sign", 1); + setprop("/controls/switches/seatbelt-sign", 1); } var BUTTONS = { update: func() { - rainRepel(); - CVR_master(); if (EmerCall.getValue()) { EmerCallOnLight(); EmerCallLight(); @@ -83,17 +77,6 @@ var BUTTONS = { }, }; -var rainRepel = func() { - if (pts.Engines.Engine.state[0].getValue() != 3 and pts.Engines.Engine.state[1].getValue() != 3 and pts.Gear.wow[0].getValue()) { - if (Lrain.getValue()) { - Lrain.setValue(0); - } - if (Rrain.getValue()) { - Rrain.setValue(0); - } - } -} - var _OnLt = nil; var _EmerCall = nil; @@ -120,18 +103,6 @@ var EmerCallLight = func() { } } -var CVR_master = func() { - wow = pts.Gear.wow[0].getValue(); - wowr = pts.Gear.wow[1].getValue(); - if (systems.ELEC.Bus.acEss.getValue() > 0 and wow and wowr and (cvr_gndCtl.getValue() or (pts.Engines.Engine.state[0].getValue() == 3 or pts.Engines.Engine.state[1].getValue() == 3))) { - cvr_power.setValue(1); - } else if (!wow and !wowr and systems.ELEC.Bus.acEss.getValue() > 0) { - cvr_power.setValue(1); - } else { - cvr_power.setValue(0); - } -} - var EmerCallFunc = func { EmerCall.setValue(1); settimer(func() { diff --git a/Nasal/Libraries/libraries.nas b/Nasal/Libraries/libraries.nas index bf2351ed..45086eaf 100644 --- a/Nasal/Libraries/libraries.nas +++ b/Nasal/Libraries/libraries.nas @@ -257,15 +257,15 @@ var systemsLoop = maketimer(0.1, func { systems.PNEU.loop(); systems.HYD.loop(); systems.ADIRS.loop(); + systems.APUController.loop(); ecam.ECAM.loop(); - libraries.BUTTONS.update(); fadec.FADEC.loop(); rmp.rmpUpdate(); fcu.FCUController.loop(); dmc.DMController.loop(); - systems.APUController.loop(); - systems.HFLoop(); atsu.ATSU.loop(); + libraries.BUTTONS.update(); + systems.HFLoop(); groundspeed = pts.Velocities.groundspeed.getValue(); if ((groundAir.getBoolValue() or groundCart.getBoolValue()) and ((groundspeed > 2) or (!pts.Controls.Gear.parkingBrake.getBoolValue() and !chocks.getBoolValue()))) { 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 @@ +<!-- Airbus A320 Misc Systems --> + +<!-- Copyright (c) 2020 Jonathan Redpath --> + +<system name="A320: APU"> + + <channel name="CVR" execrate="8"> + + <switch name="/controls/CVR/power"> + <default value="0"/> + <test logic="AND" value="1"> + /systems/electrical/bus/ac-ess ge 110 + <test logic="OR"> + /gear/gear[1]/wow eq 1 + /gear/gear[2]/wow eq 1 + </test> + <test logic="OR"> + /controls/CVR/gndctl eq 1 + /engines/engine[0]/state eq 3 + /engines/engine[1]/state eq 3 + </test> + </test> + <test logic="AND" value="1"> + /systems/electrical/bus/ac-ess ge 110 + /gear/gear[1]/wow eq 0 + /gear/gear[2]/wow eq 0 + </test> + </switch> + + </channel> + +</system>