From 8dfc6bc93d1808ae5813ba959d6eb35123b76ae5 Mon Sep 17 00:00:00 2001 From: legoboyvdlp R Date: Tue, 16 Apr 2019 16:42:59 +0100 Subject: [PATCH] Add jsbsim part, fix severe bugs --- A320-100-CFM.xml | 1 + A320-200-CFM.xml | 1 + A320-200-IAE.xml | 1 + A320-main.xml | 14 +++++++++++ A320neo-CFM.xml | 1 + A320neo-PW.xml | 1 + Nasal/fire.nas | 45 +++++++++++++++++++++--------------- Systems/a320-engine-fire.xml | 4 ++-- 8 files changed, 47 insertions(+), 21 deletions(-) diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml index 1e4664ce..cb1bf02a 100644 --- a/A320-100-CFM.xml +++ b/A320-100-CFM.xml @@ -138,6 +138,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml index c572e6cc..ed18c1df 100644 --- a/A320-200-CFM.xml +++ b/A320-200-CFM.xml @@ -138,6 +138,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml index 2ac81e32..faa50c49 100644 --- a/A320-200-IAE.xml +++ b/A320-200-IAE.xml @@ -138,6 +138,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/A320-main.xml b/A320-main.xml index e9b59f60..f9d2fb9b 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -805,11 +805,25 @@ 0 0 0 + 0 + 0 + 0 0 0 + + + 0 + + + 0 + + + 0 + + 0 diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml index ee19d068..e035fa21 100644 --- a/A320neo-CFM.xml +++ b/A320neo-CFM.xml @@ -138,6 +138,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/A320neo-PW.xml b/A320neo-PW.xml index c59e0113..1643f571 100644 --- a/A320neo-PW.xml +++ b/A320neo-PW.xml @@ -138,6 +138,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/Nasal/fire.nas b/Nasal/fire.nas index e5050054..e2f5b76f 100644 --- a/Nasal/fire.nas +++ b/Nasal/fire.nas @@ -229,7 +229,7 @@ var engFireDetectorUnit = { detector.updateTemp(detector.sys, detector.type); } - if ((me.loopOne == 1 and me.loopOne == 2) or (me.loopOne == 9 and me.loopOne == 1) or (me.loopOne == 1 and me.loopOne == 9)) { + if ((me.loopOne == 1 and me.loopTwo == 1) or (me.loopOne == 9 and me.loopTwo == 1) or (me.loopOne == 1 and me.loopTwo == 9)) { me.TriggerWarning(me.sys); } }, @@ -251,15 +251,15 @@ var engFireDetectorUnit = { startFailTimer: func(loop) { if (me.sys != 2) { if (loop == 1) { - propsNasFireTime[sys].setValue(elapsedTime.getValue()); + propsNasFireTime.vector[sys].setValue(elapsedTime.getValue()); } elsif (loop == 2) { - propsNasFireTime[sys + 1].setValue(elapsedTime.getValue()); + propsNasFireTime.vector[sys + 1].setValue(elapsedTime.getValue()); } } else { if (loop == 1) { - propsNasFireTime[4].setValue(elapsedTime.getValue()); + propsNasFireTime.vector[4].setValue(elapsedTime.getValue()); } elsif (loop == 2) { - propsNasFireTime[5].setValue(elapsedTime.getValue()); + propsNasFireTime.vector[5].setValue(elapsedTime.getValue()); } } @@ -302,12 +302,12 @@ var detectorLoop = { if (typeLoop == 1) { index += 1 } - if (propsNasFire[index].getValue() > 250 and me.elecProp.getValue() >= 25) { + if (propsNasFire.vector[index].getValue() > 250 and me.elecProp.getValue() >= 25) { me.sendSignal(system,typeLoop); } }, sendSignal: func(system,typeLoop) { - engFireDetectorUnits[system].receiveSignal(typeLoop); + engFireDetectorUnits.vector[system].receiveSignal(typeLoop); } }; @@ -348,8 +348,8 @@ props.globals.getNode("/systems/fire/apu/loop1-failtime", 1), props.globals.getN var checkTimeFire1 = func() { et = elapsedTime.getValue(); - var loop1 = propsNasFireTime[0].getValue(); - var loop2 = propsNasFireTime[1].getValue(); + var loop1 = propsNasFireTime.vector[0].getValue(); + var loop2 = propsNasFireTime.vector[1].getValue(); if ((loop1 != 0 and et > loop1 + 5) or (loop2 != 0 and et > loop2 + 5)) { fireTimer1.stop(); @@ -357,9 +357,9 @@ var checkTimeFire1 = func() { loop2.setValue(0); } - if (engFireDetectorUnits[0].loop1 == 9 and engFireDetectorUnits[0].loop2 == 9) { + if (engFireDetectorUnits.vector[0].loop1 == 9 and engFireDetectorUnits.vector[0].loop2 == 9) { fireTimer1.stop(); - engFireDetectorUnits[0].TriggerWarning(engFireDetectorUnits[0].sys); + engFireDetectorUnits.vector[0].TriggerWarning(engFireDetectorUnits.vector[0].sys); loop1.setValue(0); loop2.setValue(0); } @@ -367,8 +367,8 @@ var checkTimeFire1 = func() { var checkTimeFire2 = func() { et = elapsedTime.getValue(); - var loop3 = propsNasFireTime[2].getValue(); - var loop4 = propsNasFireTime[3].getValue(); + var loop3 = propsNasFireTime.vector[2].getValue(); + var loop4 = propsNasFireTime.vector[3].getValue(); if ((loop3 != 0 and et > loop3 + 5) or (loop4 != 0 and et > loop4 + 5)) { fireTimer2.stop(); @@ -376,17 +376,17 @@ var checkTimeFire2 = func() { loop4.setValue(0); } - if (engFireDetectorUnits[1].loop1 == 9 and engFireDetectorUnits[1].loop2 == 9) { + if (engFireDetectorUnits.vector[1].loop1 == 9 and engFireDetectorUnits.vector[1].loop2 == 9) { fireTimer2.stop(); - engFireDetectorUnits[1].TriggerWarning(engFireDetectorUnits[1].sys); + engFireDetectorUnits.vector[1].TriggerWarning(engFireDetectorUnits.vector[1].sys); loop3.setValue(0); loop4.setValue(0); } } var checkTimeFire3 = func() { et = elapsedTime.getValue(); - var loop4 = propsNasFireTime[3].getValue(); - var loop5 = propsNasFireTime[4].getValue(); + var loop4 = propsNasFireTime.vector[3].getValue(); + var loop5 = propsNasFireTime.vector[4].getValue(); if ((loop4 != 0 and et > loop4 + 5) or (loop5 != 0 and et > loop5 + 5)) { fireTimer3.stop(); @@ -394,9 +394,9 @@ var checkTimeFire3 = func() { loop5.setValue(0); } - if (engFireDetectorUnits[2].loop1 == 9 and engFireDetectorUnits[2].loop2 == 9) { + if (engFireDetectorUnits.vector[2].loop1 == 9 and engFireDetectorUnits.vector[2].loop2 == 9) { fireTimer3.stop(); - engFireDetectorUnits[2].TriggerWarning(engFireDetectorUnits[2].sys); + engFireDetectorUnits.vector[2].TriggerWarning(engFireDetectorUnits.vector[2].sys); loop4.setValue(0); loop5.setValue(0); } @@ -480,12 +480,19 @@ createFireBottleListener("/controls/engines/engine[0]/agent2-btn", 1); createFireBottleListener("/controls/engines/engine[1]/agent1-btn", 2); createFireBottleListener("/controls/engines/engine[1]/agent2-btn", 3); createFireBottleListener("/controls/APU/agent-btn", 4); + +var updateUnits = func() { + foreach (var units; engFireDetectorUnits.vector) { + units.update(); + } +} ################### # Update Function # ################### var update_fire = func { master_fire(); + updateUnits(); } var fire_timer = maketimer(0.2, update_fire); \ No newline at end of file diff --git a/Systems/a320-engine-fire.xml b/Systems/a320-engine-fire.xml index 373a0f2f..25445ac2 100644 --- a/Systems/a320-engine-fire.xml +++ b/Systems/a320-engine-fire.xml @@ -3,7 +3,7 @@ - + /systems/fire/engine1/temperature @@ -22,7 +22,7 @@ /systems/fire/engine1/temperature - + /systems/fire/engine2/temperature