diff --git a/AircraftConfig/acconfig.nas b/AircraftConfig/acconfig.nas index 47205586..69a20ab8 100644 --- a/AircraftConfig/acconfig.nas +++ b/AircraftConfig/acconfig.nas @@ -150,26 +150,6 @@ var saveSettings = func { saveSettings(); -var systemsReset = func { - fbw.fctlInit(); - systems.ELEC.init(); - systems.PNEU.init(); - systems.HYD.init(); - systems.FUEL.init(); - systems.ADIRS.init(); - systems.eng_init(); - systems.autobrake_init(); - fmgc.FMGCinit(); - mcdu1.MCDU_reset(); - mcdu2.MCDU_reset(); - icing.icingInit(); - fmgc.APinit(); - setprop("/it-autoflight/input/fd1", 1); - setprop("/it-autoflight/input/fd2", 1); - libraries.ECAMinit(); - libraries.variousReset(); -} - ################ # Panel States # ################ @@ -194,7 +174,7 @@ var colddark = func { setprop("/controls/flight/speedbrake-arm", 0); setprop("/controls/gear/gear-down", 1); setprop("/controls/flight/elevator-trim", 0); - systemsReset(); + libraries.systemsInit(); failReset(); if (getprop("/engines/engine[1]/n2-actual") < 2) { colddark_b(); @@ -242,7 +222,7 @@ var beforestart = func { setprop("/controls/flight/speedbrake-arm", 0); setprop("/controls/gear/gear-down", 1); setprop("/controls/flight/elevator-trim", 0); - systemsReset(); + libraries.systemsInit(); failReset(); setprop("/controls/APU/master", 0); setprop("/controls/APU/start", 0); @@ -316,7 +296,7 @@ var taxi = func { setprop("/controls/flight/speedbrake-arm", 0); setprop("/controls/gear/gear-down", 1); setprop("/controls/flight/elevator-trim", 0); - systemsReset(); + libraries.systemsInit(); failReset(); setprop("/controls/APU/master", 0); setprop("/controls/APU/start", 0); diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas index eb24d87e..9afd5c88 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas @@ -133,129 +133,161 @@ var canvas_upperECAM_base = { me["FOB-LBS"].setText(sprintf("%s", math.round(getprop("/consumables/fuel/total-fuel-lbs"), 10))); # Left ECAM Messages - me["ECAML1"].setText(sprintf("%s", getprop("/ECAM/msg/line1"))); - me["ECAML2"].setText(sprintf("%s", getprop("/ECAM/msg/line2"))); - me["ECAML3"].setText(sprintf("%s", getprop("/ECAM/msg/line3"))); - me["ECAML4"].setText(sprintf("%s", getprop("/ECAM/msg/line4"))); - me["ECAML5"].setText(sprintf("%s", getprop("/ECAM/msg/line5"))); - me["ECAML6"].setText(sprintf("%s", getprop("/ECAM/msg/line6"))); - me["ECAML7"].setText(sprintf("%s", getprop("/ECAM/msg/line7"))); - me["ECAML8"].setText(sprintf("%s", getprop("/ECAM/msg/line8"))); - - if (getprop("/ECAM/msg/line1c") == "w") { - me["ECAML1"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line1c") == "b") { - me["ECAML1"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line1c") == "g") { - me["ECAML1"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line1c") == "a") { - me["ECAML1"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line1c") == "r") { - me["ECAML1"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line2c") == "w") { - me["ECAML2"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line2c") == "b") { - me["ECAML2"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line2c") == "g") { - me["ECAML2"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line2c") == "a") { - me["ECAML2"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line2c") == "r") { - me["ECAML2"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line3c") == "w") { - me["ECAML3"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line3c") == "b") { - me["ECAML3"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line3c") == "g") { - me["ECAML3"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line3c") == "a") { - me["ECAML3"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line3c") == "r") { - me["ECAML3"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line4c") == "w") { - me["ECAML4"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line4c") == "b") { - me["ECAML4"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line4c") == "g") { - me["ECAML4"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line4c") == "a") { - me["ECAML4"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line4c") == "r") { - me["ECAML4"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line5c") == "w") { - me["ECAML5"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line5c") == "b") { - me["ECAML5"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line5c") == "g") { - me["ECAML5"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line5c") == "a") { - me["ECAML5"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line5c") == "r") { - me["ECAML5"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line6c") == "w") { - me["ECAML6"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line6c") == "b") { - me["ECAML6"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line6c") == "g") { - me["ECAML6"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line6c") == "a") { - me["ECAML6"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line6c") == "r") { - me["ECAML6"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line7c") == "w") { - me["ECAML7"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line7c") == "b") { - me["ECAML7"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line7c") == "g") { - me["ECAML7"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line7c") == "a") { - me["ECAML7"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line7c") == "r") { - me["ECAML7"].setColor(1,0,0); - } - - if (getprop("/ECAM/msg/line8c") == "w") { - me["ECAML8"].setColor(0.8078,0.8039,0.8078); - } else if (getprop("/ECAM/msg/line8c") == "b") { - me["ECAML8"].setColor(0.0901,0.6039,0.7176); - } else if (getprop("/ECAM/msg/line8c") == "g") { - me["ECAML8"].setColor(0.0509,0.7529,0.2941); - } else if (getprop("/ECAM/msg/line8c") == "a") { - me["ECAML8"].setColor(0.7333,0.3803,0); - } else if (getprop("/ECAM/msg/line8c") == "r") { - me["ECAML8"].setColor(1,0,0); - } - if (getprop("/ECAM/left-msg") == "MSG") { - me["ECAML1"].show(); - me["ECAML2"].show(); - me["ECAML3"].show(); - me["ECAML4"].show(); - me["ECAML5"].show(); - me["ECAML6"].show(); - me["ECAML7"].show(); - me["ECAML8"].show(); + me["ECAML1"].setText(sprintf("%s", getprop("/ECAM/msg/line1"))); + me["ECAML2"].setText(sprintf("%s", getprop("/ECAM/msg/line2"))); + me["ECAML3"].setText(sprintf("%s", getprop("/ECAM/msg/line3"))); + me["ECAML4"].setText(sprintf("%s", getprop("/ECAM/msg/line4"))); + me["ECAML5"].setText(sprintf("%s", getprop("/ECAM/msg/line5"))); + me["ECAML6"].setText(sprintf("%s", getprop("/ECAM/msg/line6"))); + me["ECAML7"].setText(sprintf("%s", getprop("/ECAM/msg/line7"))); + me["ECAML8"].setText(sprintf("%s", getprop("/ECAM/msg/line8"))); + + if (getprop("/ECAM/msg/line1c") == "w") { + me["ECAML1"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line1c") == "b") { + me["ECAML1"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line1c") == "g") { + me["ECAML1"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line1c") == "a") { + me["ECAML1"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line1c") == "r") { + me["ECAML1"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line2c") == "w") { + me["ECAML2"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line2c") == "b") { + me["ECAML2"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line2c") == "g") { + me["ECAML2"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line2c") == "a") { + me["ECAML2"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line2c") == "r") { + me["ECAML2"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line3c") == "w") { + me["ECAML3"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line3c") == "b") { + me["ECAML3"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line3c") == "g") { + me["ECAML3"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line3c") == "a") { + me["ECAML3"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line3c") == "r") { + me["ECAML3"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line4c") == "w") { + me["ECAML4"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line4c") == "b") { + me["ECAML4"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line4c") == "g") { + me["ECAML4"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line4c") == "a") { + me["ECAML4"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line4c") == "r") { + me["ECAML4"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line5c") == "w") { + me["ECAML5"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line5c") == "b") { + me["ECAML5"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line5c") == "g") { + me["ECAML5"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line5c") == "a") { + me["ECAML5"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line5c") == "r") { + me["ECAML5"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line6c") == "w") { + me["ECAML6"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line6c") == "b") { + me["ECAML6"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line6c") == "g") { + me["ECAML6"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line6c") == "a") { + me["ECAML6"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line6c") == "r") { + me["ECAML6"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line7c") == "w") { + me["ECAML7"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line7c") == "b") { + me["ECAML7"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line7c") == "g") { + me["ECAML7"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line7c") == "a") { + me["ECAML7"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line7c") == "r") { + me["ECAML7"].setColor(1,0,0); + } + + if (getprop("/ECAM/msg/line8c") == "w") { + me["ECAML8"].setColor(0.8078,0.8039,0.8078); + } else if (getprop("/ECAM/msg/line8c") == "b") { + me["ECAML8"].setColor(0.0901,0.6039,0.7176); + } else if (getprop("/ECAM/msg/line8c") == "g") { + me["ECAML8"].setColor(0.0509,0.7529,0.2941); + } else if (getprop("/ECAM/msg/line8c") == "a") { + me["ECAML8"].setColor(0.7333,0.3803,0); + } else if (getprop("/ECAM/msg/line8c") == "r") { + me["ECAML8"].setColor(1,0,0); + } + + me["TO_Memo"].hide(); + me["ECAM_Left"].show(); + } else if (getprop("/ECAM/left-msg") == "TO-MEMO") { + if (getprop("/controls/autobrake/mode") == 3) { + me["TO_Autobrake"].setText("AUTO BRK MAX"); + me["TO_Autobrake_B"].hide(); + } else { + me["TO_Autobrake"].setText("AUTO BRK"); + me["TO_Autobrake_B"].show(); + } + + if (getprop("/controls/switches/no-smoking-sign") == 1 and getprop("/controls/switches/seatbelt-sign") == 1) { + me["TO_Signs"].setText("SIGNS ON"); + me["TO_Signs_B"].hide(); + } else { + me["TO_Signs"].setText("SIGNS"); + me["TO_Signs_B"].show(); + } + + if (getprop("/controls/flight/speedbrake-arm") == 1) { + me["TO_Spoilers"].setText("SPLRS ARM"); + me["TO_Spoilers_B"].hide(); + } else { + me["TO_Spoilers"].setText("SPLRS"); + me["TO_Spoilers_B"].show(); + } + + if (getprop("/controls/flight/flap-pos") > 0 and getprop("/controls/flight/flap-pos") < 5) { + me["TO_Flaps"].setText("FLAPS T.O"); + me["TO_Flaps_B"].hide(); + } else { + me["TO_Flaps"].setText("FLAPS"); + me["TO_Flaps_B"].show(); + } + + if (getprop("/controls/autobrake/mode") == 3 and getprop("/controls/switches/no-smoking-sign") == 1 and getprop("/controls/switches/seatbelt-sign") == 1 and getprop("/controls/flight/speedbrake-arm") == 1 and getprop("/controls/flight/flap-pos") > 0 + and getprop("/controls/flight/flap-pos") < 5) { + me["TO_Config"].setText("T.O CONFIG NORMAL"); + me["TO_Config_B"].hide(); + } else { + me["TO_Config"].setText("T.O CONFIG"); + me["TO_Config_B"].show(); + } + + me["ECAM_Left"].hide(); + me["TO_Memo"].show(); } else { - me["ECAML1"].hide(); - me["ECAML2"].hide(); - me["ECAML3"].hide(); - me["ECAML4"].hide(); - me["ECAML5"].hide(); - me["ECAML6"].hide(); - me["ECAML7"].hide(); - me["ECAML8"].hide(); + me["ECAM_Left"].hide(); + me["TO_Memo"].hide(); } }, }; @@ -270,8 +302,9 @@ var canvas_upperECAM_cfm_eis2 = { getKeys: func() { return ["N11-needle","N11-thr","N11-ylim","N11","N11-decpnt","N11-decimal","N11-box","N11-scale","N11-scale2","N11-scaletick","N11-scalenum","N11-XX","N11-XX2","N11-XX-box","EGT1-needle","EGT1","EGT1-scale","EGT1-box","EGT1-scale2","EGT1-scaletick", "EGT1-XX","N21","N21-decpnt","N21-decimal","N21-XX","FF1","FF1-XX","N12-needle","N12-thr","N12-ylim","N12","N12-decpnt","N12-decimal","N12-box","N12-scale","N12-scale2","N12-scaletick","N12-scalenum","N12-XX","N12-XX2","N12-XX-box","EGT2-needle","EGT2", - "EGT2-scale","EGT2-box","EGT2-scale2","EGT2-scaletick","EGT2-XX","N22","N22-decpnt","N22-decimal","N22-XX","FF2","FF2-XX","FOB-LBS","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8","FlapTxt","FlapDots","N1Lim-mode","N1Lim", - "N1Lim-decpnt","N1Lim-decimal","N1Lim-percent","N1Lim-XX","N1Lim-XX2","REV1","REV1-box","REV2","REV2-box"]; + "EGT2-scale","EGT2-box","EGT2-scale2","EGT2-scaletick","EGT2-XX","N22","N22-decpnt","N22-decimal","N22-XX","FF2","FF2-XX","FOB-LBS","FlapTxt","FlapDots","N1Lim-mode","N1Lim","N1Lim-decpnt","N1Lim-decimal","N1Lim-percent","N1Lim-XX","N1Lim-XX2","REV1", + "REV1-box","REV2","REV2-box","ECAM_Left","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8","TO_Memo","TO_Autobrake","TO_Signs","TO_Spoilers","TO_Flaps","TO_Config","TO_Autobrake_B","TO_Signs_B","TO_Spoilers_B","TO_Flaps_B", + "TO_Config_B"]; }, update: func() { # N1 @@ -496,8 +529,8 @@ var canvas_upperECAM_iae_eis2 = { return ["EPR1-needle","EPR1-thr","EPR1-ylim","EPR1","EPR1-decpnt","EPR1-decimal","EPR1-box","EPR1-scale","EPR1-scaletick","EPR1-scalenum","EPR1-XX","EPR1-XX2","EGT1-needle","EGT1","EGT1-scale","EGT1-box","EGT1-scale2","EGT1-scaletick","EGT1-XX", "N11-needle","N11-thr","N11-ylim","N11","N11-decpnt","N11-decimal","N11-scale","N11-scale2","N11-scaletick","N11-scalenum","N11-XX","N21","N21-decpnt","N21-decimal","N21-XX","FF1","FF1-XX","EPR2-needle","EPR2-thr","EPR2-ylim","EPR2","EPR2-decpnt", "EPR2-decimal","EPR2-box","EPR2-scale","EPR2-scaletick","EPR2-scalenum","EPR2-XX","EPR2-XX2","EGT2-needle","EGT2","EGT2-scale","EGT2-scale2","EGT2-box","EGT2-scaletick","EGT2-XX","N12-needle","N12-thr","N12-ylim","N12","N12-decpnt","N12-decimal", - "N12-scale","N12-scale2","N12-scaletick","N12-scalenum","N12-XX","N22","N22-decpnt","N22-decimal","N22-XX","FF2","FF2-XX","FOB-LBS","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8","FlapTxt","FlapDots","EPRLim-mode","EPRLim", - "EPRLim-decpnt","EPRLim-decimal","EPRLim-XX","EPRLim-XX2","REV1","REV1-box","REV2","REV2-box"]; + "N12-scale","N12-scale2","N12-scaletick","N12-scalenum","N12-XX","N22","N22-decpnt","N22-decimal","N22-XX","FF2","FF2-XX","FOB-LBS","FlapTxt","FlapDots","EPRLim-mode","EPRLim","EPRLim-decpnt","EPRLim-decimal","EPRLim-XX","EPRLim-XX2","REV1","REV1-box", + "REV2","REV2-box","ECAM_Left","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8","TO_Memo","TO_Autobrake","TO_Signs","TO_Spoilers","TO_Flaps","TO_Config","TO_Autobrake_B","TO_Signs_B","TO_Spoilers_B","TO_Flaps_B","TO_Config_B"]; }, update: func() { # EPR diff --git a/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg b/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg index 1d07d1bb..b70f3bbf 100644 --- a/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg +++ b/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg @@ -41,9 +41,9 @@ inkscape:window-height="1030" id="namedview371" showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="520.85242" - inkscape:cy="1094.6024" + inkscape:zoom="0.50000001" + inkscape:cx="531.17625" + inkscape:cy="512.09207" inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -197,34 +197,6 @@ x="384.25583" id="tspan4435" sodipodi:role="line">LBS - LINE 1 - LINE 2 - + LINE 1 + LINE 2 + LINE 3 - LINE 3 + LINE 4 - LINE 4 + LINE 5 - LINE 5 + LINE 6 - LINE 6 + LINE 7 - LINE 8 + style="font-style:normal;font-weight:normal;font-size:11.15495205px;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve">LINE 7 + LINE 8 + + + T.O + + AUTO BRK + SIGNS + SPLRS + FLAPS + T.O CONFIG + + MAX + . . . . . + + + ON + . . . . . . . . . . + + + ARM + . . . . . . . . . + + + T.O + . . . . . . . . . . + + + TEST + . . . + + diff --git a/Models/Instruments/Upper-ECAM/res/iae-eis2.svg b/Models/Instruments/Upper-ECAM/res/iae-eis2.svg index c37354ac..2428f0d2 100644 --- a/Models/Instruments/Upper-ECAM/res/iae-eis2.svg +++ b/Models/Instruments/Upper-ECAM/res/iae-eis2.svg @@ -41,14 +41,14 @@ inkscape:window-height="1030" id="namedview371" showgrid="false" - inkscape:zoom="3.0622118" - inkscape:cx="1105.0255" - inkscape:cy="1220.4997" + inkscape:zoom="1.5311059" + inkscape:cx="247.80484" + inkscape:cy="355.57872" inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2" - showguides="false" + showguides="true" inkscape:snap-global="false"> LBS - LINE 1 - LINE 2 - LINE 3 - LINE 4 - LINE 5 - LINE 6 - LINE 7 - LINE 8 REV + + LINE 1 + LINE 2 + LINE 3 + LINE 4 + LINE 5 + LINE 6 + LINE 7 + LINE 8 + + + T.O + + AUTO BRK + SIGNS + SPLRS + FLAPS + T.O CONFIG + + MAX + . . . . . + + + ON + . . . . . . . . . . + + + ARM + . . . . . . . . . + + + T.O + . . . . . . . . . . + + + TEST + . . . + + diff --git a/Nasal/ECAM.nas b/Nasal/ECAM.nas index 53db940e..ff4950fb 100644 --- a/Nasal/ECAM.nas +++ b/Nasal/ECAM.nas @@ -5,194 +5,46 @@ # Copyright (c) Joshua Davidson (it0uchpods) # ############################################## -# It no works yet, so please don't touch a thing until it works. Thanks -JD - -################## -# Init Functions # -################## - +setprop("/ECAM/left-msg", "NONE"); setprop("/position/gear-agl-ft", 0); -setprop("/ECAM/noupdate", 0); -setprop("/ECAM/donotrevert", 0); -setprop("/ECAM/Lower/page", "eng"); +setprop("/ECAM/Lower/page", "fctl"); +# w = White, b = Blue, g = Green, a = Amber, r = Red -########################################################### -# w = White, b = Blue, g = Green, a = Amber, r = Red # -########################################################### - -var ECAMinit = func { - if (getprop("/options/enable-ecam-actions") == 1) { - ECAMloop.start(); - setprop("/ECAM/phase-1-inhibit", 0); - setprop("/ECAM/phase-2-inhibit", 0); - setprop("/ECAM/phase-3-inhibit", 0); - setprop("/ECAM/phase-4-inhibit", 0); - setprop("/ECAM/phase-5-inhibit", 0); - setprop("/ECAM/phase-6-inhibit", 0); - setprop("/ECAM/phase-7-inhibit", 0); - setprop("/ECAM/phase-8-inhibit", 0); - setprop("/ECAM/phase-9-inhibit", 0); - setprop("/ECAM/phase-10-inhibit", 0); - var stateL = getprop("/engines/engine[0]/state"); - var stateR = getprop("/engines/engine[1]/state"); - var thrustL = getprop("/systems/thrust/state1"); - var thrustR = getprop("/systems/thrust/state2"); - var elec = getprop("/systems/electrical/on"); - var speed = getprop("/velocities/airspeed-kt"); - var wowL = getprop("/gear/gear[1]/wow"); - var altitude = getprop("/position/gear-agl-ft"); - var phase1inhibit = getprop("/ECAM/phase-1-inhibit"); - var phase2inhibit = getprop("/ECAM/phase-2-inhibit"); - var phase3inhibit = getprop("/ECAM/phase-3-inhibit"); - var phase4inhibit = getprop("/ECAM/phase-4-inhibit"); - var phase5inhibit = getprop("/ECAM/phase-5-inhibit"); - var phase6inhibit = getprop("/ECAM/phase-6-inhibit"); - var phase7inhibit = getprop("/ECAM/phase-7-inhibit"); - var phase8inhibit = getprop("/ECAM/phase-8-inhibit"); - var phase9inhibit = getprop("/ECAM/phase-9-inhibit"); - var phase10inhibit = getprop("/ECAM/phase-10-inhibit"); - } -} - -# setlistener("/ECAM/phase-10-inhibit", func { -# phase10inhibit = getprop("/ECAM/phase-10-inhibit"); -# if (phase10inhibit) { -# settimer(func { -# setprop("/ECAM/phase-10-inhibit", 0); -# }, 300); -# } -#}); - -var MSGclr = func { - setprop("/ECAM/ecam-checklist-active", 0); - setprop("/ECAM/left-msg", "NONE"); - setprop("/ECAM/msg/line1", ""); - setprop("/ECAM/msg/line2", ""); - setprop("/ECAM/msg/line3", ""); - setprop("/ECAM/msg/line4", ""); - setprop("/ECAM/msg/line5", ""); - setprop("/ECAM/msg/line6", ""); - setprop("/ECAM/msg/line7", ""); - setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "w"); - setprop("/ECAM/msg/line2c", "w"); - setprop("/ECAM/msg/line3c", "w"); - setprop("/ECAM/msg/line4c", "w"); - setprop("/ECAM/msg/line5c", "w"); - setprop("/ECAM/msg/line6c", "w"); - setprop("/ECAM/msg/line7c", "w"); - setprop("/ECAM/msg/line8c", "w"); -} - -MSGclr(); - -var ECAMloop = maketimer(0.2, func { - - stateL = getprop("/engines/engine[0]/state"); - stateR = getprop("/engines/engine[1]/state"); - thrustL = getprop("/systems/thrust/state1"); - thrustR = getprop("/systems/thrust/state2"); - elec = getprop("/systems/electrical/on"); - speed = getprop("/velocities/airspeed-kt"); - wowL = getprop("/gear/gear[1]/wow"); - altitude = getprop("/position/gear-agl-ft"); - phase1inhibit = getprop("/ECAM/phase-1-inhibit"); - phase2inhibit = getprop("/ECAM/phase-2-inhibit"); - phase3inhibit = getprop("/ECAM/phase-3-inhibit"); - phase4inhibit = getprop("/ECAM/phase-4-inhibit"); - phase5inhibit = getprop("/ECAM/phase-5-inhibit"); - phase6inhibit = getprop("/ECAM/phase-6-inhibit"); - phase7inhibit = getprop("/ECAM/phase-7-inhibit"); - phase8inhibit = getprop("/ECAM/phase-8-inhibit"); - phase9inhibit = getprop("/ECAM/phase-9-inhibit"); - phase10inhibit = getprop("/ECAM/phase-10-inhibit"); - - var noUpdate = getprop("/ECAM/noupdate"); - var doNotRevert = getprop("/ECAM/donotrevert"); - if (getprop("/FMGC/status/phase") == 0 and getprop("/engines/engine[0]/state") == 3 and getprop("/engines/engine[1]/state") == 3) { - setprop("/ECAM/left-msg", "TO-MEMO"); - } else if (!doNotRevert) { - setprop("/ECAM/left-msg", "NONE"); - } - - var leftMSG = getprop("/ECAM/left-msg"); - - if (leftMSG == "TO-MEMO" and !noUpdate) { - setprop("/ECAM/msg/line1", " AUTO BRK"); - setprop("/ECAM/msg/line2", " SIGNS"); - setprop("/ECAM/msg/line3", " CABIN"); - setprop("/ECAM/msg/line4", " SPLRS"); - setprop("/ECAM/msg/line5", " FLAPS"); - setprop("/ECAM/msg/line6", ""); - setprop("/ECAM/msg/line7", ""); - setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "g"); - setprop("/ECAM/msg/line2c", "g"); - setprop("/ECAM/msg/line3c", "g"); - setprop("/ECAM/msg/line4c", "g"); - setprop("/ECAM/msg/line5c", "g"); - setprop("/ECAM/msg/line6c", "g"); - setprop("/ECAM/msg/line7c", "g"); - setprop("/ECAM/msg/line8c", "g"); - } - - ########### - # Inhibit # - ########### - if (elec == 1 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { - setprop("/ECAM/phase-1-inhibit", 1); - } else if (stateL == 3 or stateR == 3 and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { +var ECAM = { + init: func() { setprop("/ECAM/phase-1-inhibit", 0); - setprop("/ECAM/phase-2-inhibit", 1); - } else if (thrustL == "FLX" or thrustL == "TOGA" or thrustR == "FLX" or thrustR == "TOGA" and speed < 80 and !phase1inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-2-inhibit", 0); - setprop("/ECAM/phase-3-inhibit", 1); - } else if (thrustL == "FLX" or thrustL == "TOGA" or thrustR == "FLX" or thrustR == "TOGA" and speed > 80 and wowL and !phase1inhibit and !phase2inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-3-inhibit", 0); - setprop("/ECAM/phase-4-inhibit", 1); - } else if (speed > 80 and !wowL and altitude < 1501 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-4-inhibit", 0); - setprop("/ECAM/phase-5-inhibit", 1); - } else if (speed > 80 and !wowL and altitude > 1501 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-5-inhibit", 0); - setprop("/ECAM/phase-6-inhibit", 1); - } else if (speed > 80 and !wowL and altitude < 801 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-6-inhibit", 0); - setprop("/ECAM/phase-7-inhibit", 1); - } else if (speed > 80 and wowL and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-7-inhibit", 0); - setprop("/ECAM/phase-8-inhibit", 1); - } else if (speed < 80 and wowL and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase9inhibit and !phase10inhibit) { setprop("/ECAM/phase-8-inhibit", 0); - setprop("/ECAM/phase-9-inhibit", 1); - } else if (stateL == 0 and stateR == 0 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase10inhibit) { setprop("/ECAM/phase-9-inhibit", 0); - setprop("/ECAM/phase-10-inhibit", 1); - } - ############ - # Air Cond # - ############ - - if (getprop("/systems/failures/pack1") == 1 and getprop("/systems/failures/pack2") == 0 and getprop("/controls/pneumatic/switches/pack1") == 1 and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit) { - setprop("/ECAM/msg/line1", "AIR PACK 1 FAULT"); - setprop("/ECAM/msg/line2", " - PACK 1: OFF"); - setprop("/ECAM/msg/line3", ""); - setprop("/ECAM/msg/line4", ""); - setprop("/ECAM/msg/line5", ""); - setprop("/ECAM/msg/line6", ""); - setprop("/ECAM/msg/line7", ""); - setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "a"); - setprop("/ECAM/msg/line2c", "b"); - setprop("/ECAM/msg/line3c", "g"); - setprop("/ECAM/msg/line4c", "g"); - setprop("/ECAM/msg/line5c", "g"); - setprop("/ECAM/msg/line6c", "g"); - setprop("/ECAM/msg/line7c", "g"); - setprop("/ECAM/msg/line8c", "g"); - setprop("/ECAM/left-msg", "MSG"); - } else if (getprop("/systems/failures/pack1") == 1 and getprop("/systems/failures/pack2") == 0 and getprop("/controls/pneumatic/switches/pack1") == 0 and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit) { - setprop("/ECAM/msg/line1", "AIR PACK 1 FAULT"); + setprop("/ECAM/phase-10-inhibit", 0); + var stateL = getprop("/engines/engine[0]/state"); + var stateR = getprop("/engines/engine[1]/state"); + var thrustL = getprop("/systems/thrust/state1"); + var thrustR = getprop("/systems/thrust/state2"); + var elec = getprop("/systems/electrical/on"); + var speed = getprop("/velocities/airspeed-kt"); + var wowL = getprop("/gear/gear[1]/wow"); + var altitude = getprop("/position/gear-agl-ft"); + var phase1inhibit = getprop("/ECAM/phase-1-inhibit"); + var phase2inhibit = getprop("/ECAM/phase-2-inhibit"); + var phase3inhibit = getprop("/ECAM/phase-3-inhibit"); + var phase4inhibit = getprop("/ECAM/phase-4-inhibit"); + var phase5inhibit = getprop("/ECAM/phase-5-inhibit"); + var phase6inhibit = getprop("/ECAM/phase-6-inhibit"); + var phase7inhibit = getprop("/ECAM/phase-7-inhibit"); + var phase8inhibit = getprop("/ECAM/phase-8-inhibit"); + var phase9inhibit = getprop("/ECAM/phase-9-inhibit"); + var phase10inhibit = getprop("/ECAM/phase-10-inhibit"); + }, + MSGclr: func() { + setprop("/ECAM/ecam-checklist-active", 0); + setprop("/ECAM/left-msg", "NONE"); + setprop("/ECAM/msg/line1", ""); setprop("/ECAM/msg/line2", ""); setprop("/ECAM/msg/line3", ""); setprop("/ECAM/msg/line4", ""); @@ -200,59 +52,72 @@ var ECAMloop = maketimer(0.2, func { setprop("/ECAM/msg/line6", ""); setprop("/ECAM/msg/line7", ""); setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "a"); - setprop("/ECAM/msg/line2c", "g"); - setprop("/ECAM/msg/line3c", "g"); - setprop("/ECAM/msg/line4c", "g"); - setprop("/ECAM/msg/line5c", "g"); - setprop("/ECAM/msg/line6c", "g"); - setprop("/ECAM/msg/line7c", "g"); - setprop("/ECAM/msg/line8c", "g"); - setprop("/ECAM/left-msg", "MSG"); - } else { - # MSGclr(); - } - - if (getprop("/systems/failures/pack1") == 0 and getprop("/systems/failures/pack2") == 1 and getprop("/controls/pneumatic/switches/pack2") == 1 and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit) { - setprop("/ECAM/msg/line1", "AIR PACK 2 FAULT"); - setprop("/ECAM/msg/line2", " - PACK 2: OFF"); - setprop("/ECAM/msg/line3", ""); - setprop("/ECAM/msg/line4", ""); - setprop("/ECAM/msg/line5", ""); - setprop("/ECAM/msg/line6", ""); - setprop("/ECAM/msg/line7", ""); - setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "a"); - setprop("/ECAM/msg/line2c", "b"); - setprop("/ECAM/msg/line3c", "g"); - setprop("/ECAM/msg/line4c", "g"); - setprop("/ECAM/msg/line5c", "g"); - setprop("/ECAM/msg/line6c", "g"); - setprop("/ECAM/msg/line7c", "g"); - setprop("/ECAM/msg/line8c", "g"); - setprop("/ECAM/left-msg", "MSG"); - } else if (getprop("/systems/failures/pack1") == 0 and getprop("/systems/failures/pack2") == 1 and getprop("/controls/pneumatic/switches/pack2") == 0 and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit) { - setprop("/ECAM/msg/line1", "AIR PACK 2 FAULT"); - setprop("/ECAM/msg/line2", ""); - setprop("/ECAM/msg/line3", ""); - setprop("/ECAM/msg/line4", ""); - setprop("/ECAM/msg/line5", ""); - setprop("/ECAM/msg/line6", ""); - setprop("/ECAM/msg/line7", ""); - setprop("/ECAM/msg/line8", ""); - setprop("/ECAM/msg/line1c", "a"); - setprop("/ECAM/msg/line2c", "g"); - setprop("/ECAM/msg/line3c", "g"); - setprop("/ECAM/msg/line4c", "g"); - setprop("/ECAM/msg/line5c", "g"); - setprop("/ECAM/msg/line6c", "g"); - setprop("/ECAM/msg/line7c", "g"); - setprop("/ECAM/msg/line8c", "g"); - setprop("/ECAM/left-msg", "MSG"); - } else { - # MSGclr(); - } - -}); - + setprop("/ECAM/msg/line1c", "w"); + setprop("/ECAM/msg/line2c", "w"); + setprop("/ECAM/msg/line3c", "w"); + setprop("/ECAM/msg/line4c", "w"); + setprop("/ECAM/msg/line5c", "w"); + setprop("/ECAM/msg/line6c", "w"); + setprop("/ECAM/msg/line7c", "w"); + setprop("/ECAM/msg/line8c", "w"); + }, + loop: func() { + stateL = getprop("/engines/engine[0]/state"); + stateR = getprop("/engines/engine[1]/state"); + thrustL = getprop("/systems/thrust/state1"); + thrustR = getprop("/systems/thrust/state2"); + elec = getprop("/systems/electrical/on"); + speed = getprop("/velocities/airspeed-kt"); + wowL = getprop("/gear/gear[1]/wow"); + altitude = getprop("/position/gear-agl-ft"); + phase1inhibit = getprop("/ECAM/phase-1-inhibit"); + phase2inhibit = getprop("/ECAM/phase-2-inhibit"); + phase3inhibit = getprop("/ECAM/phase-3-inhibit"); + phase4inhibit = getprop("/ECAM/phase-4-inhibit"); + phase5inhibit = getprop("/ECAM/phase-5-inhibit"); + phase6inhibit = getprop("/ECAM/phase-6-inhibit"); + phase7inhibit = getprop("/ECAM/phase-7-inhibit"); + phase8inhibit = getprop("/ECAM/phase-8-inhibit"); + phase9inhibit = getprop("/ECAM/phase-9-inhibit"); + phase10inhibit = getprop("/ECAM/phase-10-inhibit"); + + if (getprop("/FMGC/status/phase") == 0 and getprop("/engines/engine[0]/state") == 3 and getprop("/engines/engine[1]/state") == 3) { + setprop("/ECAM/left-msg", "TO-MEMO"); + } else { + setprop("/ECAM/left-msg", "NONE"); + } + + if (elec == 1 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-1-inhibit", 1); + } else if (stateL == 3 or stateR == 3 and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-1-inhibit", 0); + setprop("/ECAM/phase-2-inhibit", 1); + } else if (thrustL == "FLX" or thrustL == "TOGA" or thrustR == "FLX" or thrustR == "TOGA" and speed < 80 and !phase1inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-2-inhibit", 0); + setprop("/ECAM/phase-3-inhibit", 1); + } else if (thrustL == "FLX" or thrustL == "TOGA" or thrustR == "FLX" or thrustR == "TOGA" and speed > 80 and wowL and !phase1inhibit and !phase2inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-3-inhibit", 0); + setprop("/ECAM/phase-4-inhibit", 1); + } else if (speed > 80 and !wowL and altitude < 1501 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-4-inhibit", 0); + setprop("/ECAM/phase-5-inhibit", 1); + } else if (speed > 80 and !wowL and altitude > 1501 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-5-inhibit", 0); + setprop("/ECAM/phase-6-inhibit", 1); + } else if (speed > 80 and !wowL and altitude < 801 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase7inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-6-inhibit", 0); + setprop("/ECAM/phase-7-inhibit", 1); + } else if (speed > 80 and wowL and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase8inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-7-inhibit", 0); + setprop("/ECAM/phase-8-inhibit", 1); + } else if (speed < 80 and wowL and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase9inhibit and !phase10inhibit) { + setprop("/ECAM/phase-8-inhibit", 0); + setprop("/ECAM/phase-9-inhibit", 1); + } else if (stateL == 0 and stateR == 0 and !phase1inhibit and !phase2inhibit and !phase3inhibit and !phase4inhibit and !phase5inhibit and !phase6inhibit and !phase7inhibit and !phase8inhibit and !phase10inhibit) { + setprop("/ECAM/phase-9-inhibit", 0); + setprop("/ECAM/phase-10-inhibit", 1); + } + }, +}; +ECAM.MSGclr(); diff --git a/Nasal/libraries.nas b/Nasal/libraries.nas index 64802438..1653ce3b 100644 --- a/Nasal/libraries.nas +++ b/Nasal/libraries.nas @@ -167,8 +167,8 @@ var triggerDoor = func(door, doorName, doorDesc) { ####################### # Various Other Stuff # ####################### - -setlistener("/sim/signals/fdm-initialized", func { + +var systemsInit = func { fbw.fctlInit(); systems.ELEC.init(); systems.PNEU.init(); @@ -189,8 +189,12 @@ setlistener("/sim/signals/fdm-initialized", func { var autopilot = gui.Dialog.new("sim/gui/dialogs/autopilot/dialog", "Aircraft/IDG-A32X/Systems/autopilot-dlg.xml"); setprop("/it-autoflight/input/fd1", 1); setprop("/it-autoflight/input/fd2", 1); - libraries.ECAMinit(); + libraries.ECAM.init(); libraries.variousReset(); +} + +setlistener("/sim/signals/fdm-initialized", func { + systemsInit(); }); var systemsLoop = maketimer(0.1, func { @@ -199,6 +203,7 @@ var systemsLoop = maketimer(0.1, func { systems.HYD.loop(); systems.FUEL.loop(); systems.ADIRS.loop(); + libraries.ECAM.loop(); if ((getprop("/controls/pneumatic/switches/groundair") or getprop("/controls/switches/cart")) and ((getprop("/velocities/groundspeed-kt") > 2) or getprop("/controls/gear/brake-parking") == 0)) { setprop("/controls/switches/cart", 0); diff --git a/revision.txt b/revision.txt index d16f7773..549d0ba3 100644 --- a/revision.txt +++ b/revision.txt @@ -1 +1 @@ -4204 \ No newline at end of file +4205 \ No newline at end of file