From 78c098d915387f4fcd09993b852527528468d0bd Mon Sep 17 00:00:00 2001 From: Joshua Davidson Date: Mon, 3 Jul 2017 14:26:43 -0400 Subject: [PATCH] A3XX: Manual Start now working --- AircraftConfig/acconfig.nas | 1 + Models/Instruments/OHpanel/OHpanel.xml | 211 +++++++++++++++++++++- Models/Instruments/OHpanel/res/ohpanel.ac | 94 +++++++++- Nasal/engines.nas | 45 +++++ Nasal/libraries.nas | 1 + 5 files changed, 350 insertions(+), 2 deletions(-) diff --git a/AircraftConfig/acconfig.nas b/AircraftConfig/acconfig.nas index d566f8d5..e26f5a49 100644 --- a/AircraftConfig/acconfig.nas +++ b/AircraftConfig/acconfig.nas @@ -99,6 +99,7 @@ var systemsReset = func { systems.pneu_init(); systems.hyd_init(); systems.fuel_init(); + systems.eng_init(); fmgc.FMGCinit(); mcdu1.MCDU_reset(); mcdu2.MCDU_reset(); diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml index 7e74e9e6..8f654eeb 100644 --- a/Models/Instruments/OHpanel/OHpanel.xml +++ b/Models/Instruments/OHpanel/OHpanel.xml @@ -79,8 +79,10 @@ Eng2AntiIceBtn2O Eng1BleedBtn1F Eng1BleedBtn2O + Eng1ManStartBtn2O Eng2BleedBtn1F Eng2BleedBtn2O + Eng2ManStartBtn2O FuelModeBtn1F FuelModeBtn2O FuelXfeedBtn1A @@ -4322,7 +4324,214 @@ - + + + + pick + Eng1ManStartBtn1 + Eng1ManStartBtn2 + Eng1ManStartBtn2O + + + false + + + + + /controls/OH/protectors/eng1-manstart + 1 + + + + /systems/electrical/bus/dc1 + 25 + + + /systems/electrical/bus/dc2 + 25 + + + + + property-toggle + /controls/engines/engine[0]/man-start + + + + + /controls/OH/protectors/eng1-manstart + 1 + + + nasal + + + + + + + pick + Eng1ManStartBtn1 + Eng1ManStartBtn2 + Eng1ManStartBtn2O + Eng1ManStartProt + + + false + + property-assign + /controls/OH/protectors/eng1-manstart + 1 + + + + property-assign + /controls/OH/protectors/eng1-manstart + 0 + + + nasal + + + + + + + + rotate + Eng1ManStartProt + /controls/OH/protectors/eng1-manstart + -145 + + -0.00641 + 0.18647 + -0.20418 + -0.00353 + 0.20925 + -0.20418 + + + + + select + Eng1ManStartBtn2O + + + + /controls/engines/engine[0]/man-start + 1 + + + /controls/switches/annun-test + 1 + + + + + + + pick + Eng2ManStartBtn1 + Eng2ManStartBtn2 + Eng2ManStartBtn2O + + + false + + + + + /controls/OH/protectors/eng2-manstart + 1 + + + + /systems/electrical/bus/dc1 + 25 + + + /systems/electrical/bus/dc2 + 25 + + + + + property-toggle + /controls/engines/engine[1]/man-start + + + + + /controls/OH/protectors/eng2-manstart + 1 + + + nasal + + + + + + + pick + Eng2ManStartBtn1 + Eng2ManStartBtn2 + Eng2ManStartBtn2O + Eng2ManStartProt + + + false + + property-assign + /controls/OH/protectors/eng2-manstart + 1 + + + + property-assign + /controls/OH/protectors/eng2-manstart + 0 + + + nasal + + + + + + + + rotate + Eng2ManStartProt + /controls/OH/protectors/eng2-manstart + -145 + + -0.00226 + 0.21793 + -0.20418 + 0.00062 + 0.24071 + -0.20418 + + + + + select + Eng2ManStartBtn2O + + + + /controls/engines/engine[1]/man-start + 1 + + + /controls/switches/annun-test + 1 + + + + + Overhead panel light pick diff --git a/Models/Instruments/OHpanel/res/ohpanel.ac b/Models/Instruments/OHpanel/res/ohpanel.ac index 2d116d51..21f76f46 100644 --- a/Models/Instruments/OHpanel/res/ohpanel.ac +++ b/Models/Instruments/OHpanel/res/ohpanel.ac @@ -9,7 +9,99 @@ MATERIAL "Switch" rgb 0.678431 0.678431 0.678431 amb 0.678431 0.678431 0.678431 MATERIAL "ac3dmat1" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 1 1 1 shi 128 trans 0 MATERIAL "DefaultWhite.002" rgb 1 1 1 amb 1 1 1 emis 0 0 0 spec 0.0015 0.0015 0.0015 shi 50 trans 0 OBJECT world -kids 285 +kids 287 +OBJECT poly +name "Eng1ManStartBtn2O" +loc 0.000119683 -5.00064e-005 -4.99785e-005 +data 8 +Cube.027 +texture "buttons2.png" +crease 30.000000 +numvert 8 +-0.001687 -0.2257 -0.207197 +-0.004168 -0.2257 -0.187351 +-0.007144 -0.2257 -0.187723 +-0.004664 -0.2257 -0.207569 +-0.001687 -0.2157 -0.207197 +-0.004168 -0.2157 -0.187351 +-0.007144 -0.2157 -0.187723 +-0.004664 -0.2157 -0.207569 +numsurf 4 +SURF 0x0 +mat 4 +refs 4 +0 0.5 0.5 +1 0 0.5 +2 0 0.5 +3 0.5 0.5 +SURF 0x0 +mat 4 +refs 4 +0 0.5 0.5 +4 0.5 0.75 +5 9.31321e-008 0.75 +1 0 0.5 +SURF 0x0 +mat 4 +refs 4 +1 0 0.5 +5 9.31321e-008 0.75 +6 9.31321e-008 0.75 +2 0 0.5 +SURF 0x0 +mat 4 +refs 4 +4 0.5 0.75 +0 0.5 0.5 +3 0.5 0.5 +7 0.5 0.75 +kids 0 +OBJECT poly +name "Eng2ManStartBtn2O" +loc 0.000119683 -5.00064e-005 -4.99785e-005 +data 8 +Cube.090 +texture "buttons2.png" +crease 30.000000 +numvert 8 +0.002245 -0.2257 -0.238652 +-0.000235999 -0.2257 -0.218806 +-0.003213 -0.2257 -0.219178 +-0.000731999 -0.2257 -0.239024 +0.002245 -0.2157 -0.238652 +-0.000235999 -0.2157 -0.218806 +-0.003213 -0.2157 -0.219178 +-0.000731999 -0.2157 -0.239024 +numsurf 4 +SURF 0x0 +mat 4 +refs 4 +0 0.5 0.5 +1 0 0.5 +2 0 0.5 +3 0.5 0.5 +SURF 0x0 +mat 4 +refs 4 +0 0.5 0.5 +4 0.5 0.75 +5 9.31321e-008 0.75 +1 0 0.5 +SURF 0x0 +mat 4 +refs 4 +1 0 0.5 +5 9.31321e-008 0.75 +6 9.31321e-008 0.75 +2 0 0.5 +SURF 0x0 +mat 4 +refs 4 +4 0.5 0.75 +0 0.5 0.5 +3 0.5 0.5 +7 0.5 0.75 +kids 0 OBJECT poly name "Eng1ManStartProt" loc 7.05261 -5.75766 0.649317 diff --git a/Nasal/engines.nas b/Nasal/engines.nas index 822235a2..5810cb80 100644 --- a/Nasal/engines.nas +++ b/Nasal/engines.nas @@ -32,6 +32,11 @@ setprop("/systems/apu/egt", 42); setprop("/controls/engines/engine[0]/reverser", 0); setprop("/controls/engines/engine[1]/reverser", 0); +var eng_init = func { + setprop("/controls/engines/engine[0]/man-start", 0); + setprop("/controls/engines/engine[1]/man-start", 0); +} + ############################## # Trigger Startups and Stops # ############################## @@ -45,6 +50,7 @@ setlistener("/controls/engines/engine[0]/cutoff-switch", func { eng_one_man_startt.start(); } } else if (getprop("/controls/engines/engine[0]/cutoff-switch") == 1) { + setprop("/controls/engines/engine[0]/man-start", 0); setprop("/systems/pneumatic/eng1-starter", 0); setprop("/controls/engines/engine[0]/starter", 0); setprop("/controls/engines/engine[0]/cutoff", 1); @@ -54,6 +60,24 @@ setlistener("/controls/engines/engine[0]/cutoff-switch", func { } }); +setlistener("/controls/engines/engine[0]/man-start", func { + start_one_mancheck(); +}); + +var start_one_mancheck = func { + if (getprop("/controls/engines/engine[0]/man-start") == 1) { + if ((getprop("/controls/engines/engine-start-switch") == 2) and (getprop("/systems/pneumatic/total-psi") >= 28) and (getprop("/controls/engines/engine[0]/cutoff-switch") == 1)) { + setprop("/engines/engine[0]/state", 1); + setprop("/controls/engines/engine[0]/starter", 1); + } + } else { + if (getprop("/engines/engine[0]/state") == 1 or getprop("/engines/engine[0]/state") == 2) { + setprop("/engines/engine[0]/state", 0); + setprop("/controls/engines/engine[0]/starter", 0); + } + } +} + var start_one_check = func { settimer(start_one_check_b, 0.3); } @@ -73,6 +97,7 @@ setlistener("/controls/engines/engine[1]/cutoff-switch", func { eng_two_man_startt.start(); } } else if (getprop("/controls/engines/engine[1]/cutoff-switch") == 1) { + setprop("/controls/engines/engine[1]/man-start", 0); setprop("/systems/pneumatic/eng2-starter", 0); setprop("/controls/engines/engine[1]/starter", 0); setprop("/controls/engines/engine[1]/cutoff", 1); @@ -81,6 +106,24 @@ setlistener("/controls/engines/engine[1]/cutoff-switch", func { } }); +setlistener("/controls/engines/engine[1]/man-start", func { + start_two_mancheck(); +}); + +var start_two_mancheck = func { + if (getprop("/controls/engines/engine[1]/man-start") == 1) { + if ((getprop("/controls/engines/engine-start-switch") == 2) and (getprop("/systems/pneumatic/total-psi") >= 28) and (getprop("/controls/engines/engine[1]/cutoff-switch") == 1)) { + setprop("/engines/engine[1]/state", 1); + setprop("/controls/engines/engine[1]/starter", 1); + } + } else { + if (getprop("/engines/engine[1]/state") == 1 or getprop("/engines/engine[1]/state") == 2) { + setprop("/engines/engine[1]/state", 0); + setprop("/controls/engines/engine[1]/starter", 0); + } + } +} + var start_two_check = func { settimer(start_two_check_b, 0.3); } @@ -215,9 +258,11 @@ var apu_stop = func { setlistener("/controls/engines/engine-start-switch", func { if (getprop("/engines/engine[0]/state") == 0) { start_one_check(); + start_one_mancheck(); } if (getprop("/engines/engine[1]/state") == 0) { start_two_check(); + start_two_mancheck(); } if ((getprop("/controls/engines/engine-start-switch") == 0) or (getprop("/controls/engines/engine-start-switch") == 1)) { if (getprop("/engines/engine[0]/state") == 1 or getprop("/engines/engine[0]/state") == 2) { diff --git a/Nasal/libraries.nas b/Nasal/libraries.nas index f2471cde..8955d813 100644 --- a/Nasal/libraries.nas +++ b/Nasal/libraries.nas @@ -186,6 +186,7 @@ setlistener("/sim/signals/fdm-initialized", func { systems.pneu_init(); systems.hyd_init(); systems.fuel_init(); + systems.eng_init(); fmgc.APinit(); librariesLoop.start(); fmgc.FMGCinit();