diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas index 02db733e..c72bae5a 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas @@ -7,6 +7,7 @@ var upperECAM_cfm_eis1 = nil; var upperECAM_cfm_eis2 = nil; +var upperECAM_iae_eis1 = nil; var upperECAM_iae_eis2 = nil; var upperECAM_display = nil; setprop("/engines/engine[0]/epr-actual", 1); @@ -53,19 +54,28 @@ var canvas_upperECAM_base = { if (getprop("/options/eng") == "CFM" and getprop("/options/EIS2") == 0) { upperECAM_cfm_eis1.page.show(); upperECAM_cfm_eis2.page.hide(); + upperECAM_iae_eis1.page.hide(); upperECAM_iae_eis2.page.hide(); } else if (getprop("/options/eng") == "CFM" and getprop("/options/EIS2") == 1) { upperECAM_cfm_eis1.page.hide(); upperECAM_cfm_eis2.page.show(); + upperECAM_iae_eis1.page.hide(); upperECAM_iae_eis2.page.hide(); - } else if (getprop("/options/eng") == "IAE") { + } else if (getprop("/options/eng") == "IAE" and getprop("/options/EIS2") == 0) { upperECAM_cfm_eis1.page.hide(); upperECAM_cfm_eis2.page.hide(); + upperECAM_iae_eis1.page.show(); + upperECAM_iae_eis2.page.hide(); + } else if (getprop("/options/eng") == "IAE" and getprop("/options/EIS2") == 1) { + upperECAM_cfm_eis1.page.hide(); + upperECAM_cfm_eis2.page.hide(); + upperECAM_iae_eis1.page.hide(); upperECAM_iae_eis2.page.show(); } } else { upperECAM_cfm_eis1.page.hide(); upperECAM_cfm_eis2.page.hide(); + upperECAM_iae_eis1.page.hide(); upperECAM_iae_eis2.page.hide(); } @@ -669,6 +679,265 @@ var canvas_upperECAM_cfm_eis2 = { }, }; +var canvas_upperECAM_iae_eis1 = { + new: func(canvas_group, file) { + var m = { parents: [canvas_upperECAM_iae_eis1 , canvas_upperECAM_base] }; + m.init(canvas_group, file); + + return m; + }, + getKeys: func() { + return ["EPR1-needle","EPR1-thr","EPR1-ylim","EPR1","EPR1-box","EPR1-scale","EPR1-scalenum","EPR1-XX","EPR1-XX2","EGT1-needle","EGT1","EGT1-scale","EGT1-box","EGT1-scale2","EGT1-scalenum","EGT1-XX","N11-needle","N11-thr","N11-ylim","N11","N11-decpnt", + "N11-decimal","N11-scale","N11-scale2","N11-scalenum","N11-XX","N21","N21-decpnt","N21-decimal","N21-XX","FF1","FF1-XX","EPR2-needle","EPR2-thr","EPR2-ylim","EPR2","EPR2-box","EPR2-scale","EPR2-scalenum","EPR2-XX","EPR2-XX2","EGT2-needle","EGT2", + "EGT2-scale","EGT2-box","EGT2-scale2","EGT2-scalenum","EGT2-XX","N12-needle","N12-thr","N12-ylim","N12","N12-decpnt","N12-decimal","N12-scale","N12-scale2","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-XX","EPRLim-XX2","REV1","REV1-box","REV2","REV2-box"]; + }, + update: func() { + # EPR + me["EPR1"].setText(sprintf("%1.3f", getprop("/engines/engine[0]/epr-actual"))); + me["EPR2"].setText(sprintf("%1.3f", getprop("/engines/engine[1]/epr-actual"))); + + me["EPR1-needle"].setRotation((getprop("/ECAM/Upper/EPR[0]") + 90)*D2R); + me["EPR1-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[0]") + 90)*D2R); + me["EPR1-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90)*D2R); + me["EPR2-needle"].setRotation((getprop("/ECAM/Upper/EPR[1]") + 90)*D2R); + me["EPR2-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[1]") + 90)*D2R); + me["EPR2-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90)*D2R); + + if (getprop("/systems/fadec/eng1/epr") == 1) { + me["EPR1-scale"].setColor(1,1,1); + me["EPR1"].show(); + me["EPR1-needle"].show(); + me["EPR1-ylim"].show(); + me["EPR1-scalenum"].show(); + me["EPR1-box"].show(); + me["EPR1-XX"].hide(); + me["EPR1-XX2"].hide(); + } else { + me["EPR1-scale"].setColor(1,0.6,0); + me["EPR1"].hide(); + me["EPR1-needle"].hide(); + me["EPR1-ylim"].hide(); + me["EPR1-scalenum"].hide(); + me["EPR1-box"].hide(); + me["EPR1-XX"].show(); + me["EPR1-XX2"].show(); + } + + if (getprop("/engines/engine[0]/reverser-pos-norm") < 0.01 and getprop("/systems/fadec/eng1/epr") == 1) { + me["EPR1-thr"].show(); + } else { + me["EPR1-thr"].hide(); + } + + if (getprop("/systems/fadec/eng2/epr") == 1) { + me["EPR2-scale"].setColor(1,1,1); + me["EPR2"].show(); + me["EPR2-needle"].show(); + me["EPR2-ylim"].show(); + me["EPR2-scalenum"].show(); + me["EPR2-box"].show(); + me["EPR2-XX"].hide(); + me["EPR2-XX2"].hide(); + } else { + me["EPR2-scale"].setColor(1,0.6,0); + me["EPR2"].hide(); + me["EPR2-needle"].hide(); + me["EPR2-ylim"].hide(); + me["EPR2-scalenum"].hide(); + me["EPR2-box"].hide(); + me["EPR2-XX"].show(); + me["EPR2-XX2"].show(); + } + + if (getprop("/engines/engine[1]/reverser-pos-norm") < 0.01 and getprop("/systems/fadec/eng2/epr") == 1) { + me["EPR2-thr"].show(); + } else { + me["EPR2-thr"].hide(); + } + + # EGT + me["EGT1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/egt-actual")))); + me["EGT2"].setText(sprintf("%s", math.round(getprop("/engines/engine[1]/egt-actual")))); + + me["EGT1-needle"].setRotation((getprop("/ECAM/Upper/EGT[0]") + 90)*D2R); + me["EGT2-needle"].setRotation((getprop("/ECAM/Upper/EGT[1]") + 90)*D2R); + + if (getprop("/systems/fadec/eng1/egt") == 1) { + me["EGT1-scale"].setColor(1,1,1); + me["EGT1-scale2"].show(); + me["EGT1"].show(); + me["EGT1-needle"].show(); + me["EGT1-scalenum"].show(); + me["EGT1-XX"].hide(); + } else { + me["EGT1-scale"].setColor(1,0.6,0); + me["EGT1-scale2"].hide(); + me["EGT1"].hide(); + me["EGT1-needle"].hide(); + me["EGT1-scalenum"].hide(); + me["EGT1-XX"].show(); + } + + if (getprop("/systems/fadec/eng2/egt") == 1) { + me["EGT2-scale"].setColor(1,1,1); + me["EGT2-scale2"].show(); + me["EGT2"].show(); + me["EGT2-needle"].show(); + me["EGT2-scalenum"].show(); + me["EGT2-XX"].hide(); + } else { + me["EGT2-scale"].setColor(1,0.6,0); + me["EGT2-scale2"].hide(); + me["EGT2"].hide(); + me["EGT2-needle"].hide(); + me["EGT2-scalenum"].hide(); + me["EGT2-XX"].show(); + } + + # N1 + me["N11"].setText(sprintf("%s", math.floor(getprop("/engines/engine[0]/n1") + 0.05))); + me["N11-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[0]/n1") + 0.05,1)))); + + me["N12"].setText(sprintf("%s", math.floor(getprop("/engines/engine[1]/n1") + 0.05))); + me["N12-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[1]/n1") + 0.05,1)))); + + me["N11-needle"].setRotation((getprop("/ECAM/Upper/N1[0]") + 90)*D2R); + me["N11-thr"].setRotation((getprop("/ECAM/Upper/N1thr[0]") + 90)*D2R); + me["N11-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + + me["N12-needle"].setRotation((getprop("/ECAM/Upper/N1[1]") + 90)*D2R); + me["N12-thr"].setRotation((getprop("/ECAM/Upper/N1thr[1]") + 90)*D2R); + me["N12-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + + if (getprop("/systems/fadec/eng1/n1") == 1) { + me["N11-scale"].setColor(1,1,1); + me["N11-scale2"].setColor(1,0,0); + me["N11"].show(); + me["N11-decimal"].show(); + me["N11-decpnt"].show(); + me["N11-needle"].show(); + me["N11-scalenum"].show(); + me["N11-XX"].hide(); + } else { + me["N11-scale"].setColor(1,0.6,0); + me["N11-scale2"].setColor(1,0.6,0); + me["N11"].hide(); + me["N11-decimal"].hide(); + me["N11-decpnt"].hide(); + me["N11-needle"].hide(); + me["N11-scalenum"].hide(); + me["N11-XX"].show(); + } + + if (getprop("/systems/fadec/eng2/n1") == 1) { + me["N12-scale"].setColor(1,1,1); + me["N12-scale2"].setColor(1,0,0); + me["N12"].show(); + me["N12-decimal"].show(); + me["N12-decpnt"].show(); + me["N12-needle"].show(); + me["N12-scalenum"].show(); + me["N12-XX"].hide(); + } else { + me["N12-scale"].setColor(1,0.6,0); + me["N12-scale2"].setColor(1,0.6,0); + me["N12"].hide(); + me["N12-decimal"].hide(); + me["N12-decpnt"].hide(); + me["N12-needle"].hide(); + me["N12-scalenum"].hide(); + me["N12-XX"].show(); + } + + if (getprop("/systems/fadec/eng1/n1") == 1 and getprop("/systems/fadec/n1mode1") == 1) { + me["N11-thr"].show(); + me["N11-ylim"].hide(); # Keep it hidden, since N1 mode limit calculation is not done yet + } else { + me["N11-thr"].hide(); + me["N11-ylim"].hide(); + } + + if (getprop("/systems/fadec/eng1/n2") == 1 and getprop("/systems/fadec/n1mode2") == 1) { + me["N12-thr"].show(); + me["N12-ylim"].hide(); # Keep it hidden, since N1 mode limit calculation is not done yet + } else { + me["N12-thr"].hide(); + me["N12-ylim"].hide(); + } + + # N2 + me["N21"].setText(sprintf("%s", math.floor(getprop("/engines/engine[0]/n2") + 0.05))); + me["N21-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[0]/n2") + 0.05,1)))); + me["N22"].setText(sprintf("%s", math.floor(getprop("/engines/engine[1]/n2") + 0.05))); + me["N22-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[1]/n2") + 0.05,1)))); + + if (getprop("/systems/fadec/eng1/n2") == 1) { + me["N21"].show(); + me["N21-decimal"].show(); + me["N21-decpnt"].show(); + me["N21-XX"].hide(); + } else { + me["N21"].hide(); + me["N21-decimal"].hide(); + me["N21-decpnt"].hide(); + me["N21-XX"].show(); + } + + if (getprop("/systems/fadec/eng2/n2") == 1) { + me["N22"].show(); + me["N22-decimal"].show(); + me["N22-decpnt"].show(); + me["N22-XX"].hide(); + } else { + me["N22"].hide(); + me["N22-decimal"].hide(); + me["N22-decpnt"].hide(); + me["N22-XX"].show(); + } + + # FF + me["FF1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/fuel-flow_actual")))); + me["FF2"].setText(sprintf("%s", math.round(getprop("/engines/engine[1]/fuel-flow_actual")))); + + if (getprop("/systems/fadec/eng1/ff") == 1) { + me["FF1"].show(); + me["FF1-XX"].hide(); + } else { + me["FF1"].hide(); + me["FF1-XX"].show(); + } + + if (getprop("/systems/fadec/eng2/ff") == 1) { + me["FF2"].show(); + me["FF2-XX"].hide(); + } else { + me["FF2"].hide(); + me["FF2-XX"].show(); + } + + # EPR Limit + me["EPRLim-mode"].setText(sprintf("%s", getprop("/controls/engines/thrust-limit"))); + me["EPRLim"].setText(sprintf("%1.3f", getprop("/controls/engines/epr-limit"))); + + if (getprop("/systems/fadec/powered1") == 1 or getprop("/systems/fadec/powered2") == 1) { + me["EPRLim-mode"].show(); + me["EPRLim"].show(); + me["EPRLim-XX"].hide(); + me["EPRLim-XX2"].hide(); + } else { + me["EPRLim-mode"].hide(); + me["EPRLim"].hide(); + me["EPRLim-XX"].show(); + me["EPRLim-XX2"].show(); + } + + me.updateBase(); + + settimer(func me.update(), 0.02); + }, +}; + var canvas_upperECAM_iae_eis2 = { new: func(canvas_group, file) { var m = { parents: [canvas_upperECAM_iae_eis2 , canvas_upperECAM_base] }; @@ -942,14 +1211,17 @@ setlistener("sim/signals/fdm-initialized", func { upperECAM_display.addPlacement({"node": "uecam.screen"}); var group_cfm_eis1 = upperECAM_display.createGroup(); var group_cfm_eis2 = upperECAM_display.createGroup(); + var group_iae_eis1 = upperECAM_display.createGroup(); var group_iae_eis2 = upperECAM_display.createGroup(); upperECAM_cfm_eis1 = canvas_upperECAM_cfm_eis1.new(group_cfm_eis1, "Aircraft/A320Family/Models/Instruments/Upper-ECAM/res/cfm-eis1.svg"); upperECAM_cfm_eis2 = canvas_upperECAM_cfm_eis2.new(group_cfm_eis2, "Aircraft/A320Family/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg"); + upperECAM_iae_eis1 = canvas_upperECAM_iae_eis1.new(group_iae_eis1, "Aircraft/A320Family/Models/Instruments/Upper-ECAM/res/iae-eis1.svg"); upperECAM_iae_eis2 = canvas_upperECAM_iae_eis2.new(group_iae_eis2, "Aircraft/A320Family/Models/Instruments/Upper-ECAM/res/iae-eis2.svg"); upperECAM_cfm_eis1.update(); upperECAM_cfm_eis2.update(); + upperECAM_iae_eis1.update(); upperECAM_iae_eis2.update(); canvas_upperECAM_base.update(); }); diff --git a/Models/Instruments/Upper-ECAM/res/iae-eis1-wip.svg b/Models/Instruments/Upper-ECAM/res/iae-eis1.svg similarity index 76% rename from Models/Instruments/Upper-ECAM/res/iae-eis1-wip.svg rename to Models/Instruments/Upper-ECAM/res/iae-eis1.svg index 167fe839..55a0636e 100644 --- a/Models/Instruments/Upper-ECAM/res/iae-eis1-wip.svg +++ b/Models/Instruments/Upper-ECAM/res/iae-eis1.svg @@ -13,7 +13,7 @@ version="1.1" id="svg2" inkscape:version="0.91 r13725" - sodipodi:docname="cfm-eis1.svg"> + sodipodi:docname="iae-eis1.svg"> @@ -41,9 +41,9 @@ inkscape:window-height="1030" id="namedview371" showgrid="true" - inkscape:zoom="1.4142136" - inkscape:cx="876.81864" - inkscape:cy="745.79786" + inkscape:zoom="2.8284271" + inkscape:cx="390.77854" + inkscape:cy="706.48298" inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -56,25 +56,13 @@ - - @@ -103,97 +91,97 @@ EGT °C N1 % % N2 F.F LBS/H LBS + transform="translate(-188.40756,-16.758787)"> + + 1 + 1.2 + 1.4 + 1.6 + + + inkscape:transform-center-x="98.43003" /> + transform="translate(-153.72379,4.9686302)"> - - 5 - 10 - 5 - 000 00 - 00000 - - 0 00 0 - XX XX @@ -454,12 +414,12 @@ inkscape:label="#text4219" sodipodi:linespacing="125%" id="N21-XX" - y="489.40976" + y="617.00977" x="64.987556" style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff9a00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve">XX @@ -582,15 +542,16 @@ sodipodi:role="line">LINE 8 + inkscape:label="#EPR1-thr" /> + inkscape:label="#g4433" + transform="translate(0,-26.409754)"> 10 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:Arial;-inkscape-font-specification:Arial;fill:#ffffff">8 5 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;font-family:Arial;-inkscape-font-specification:Arial;fill:#ffffff">4 - TOGA - XX - 00 - - 0 - XX 00 0 @@ -750,99 +638,66 @@ xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ff9a00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="493.73682" - y="489.40958" + y="617.00958" id="N22-XX" sodipodi:linespacing="125%" inkscape:label="#text4219">XX - - REV 00000 XX XX - - - % - - - - - - - - - - - - - - - - - - - 5 - 10 - 5 - - 000 - 00 - - 0 - XX - XX - - - 10 - 5 - - - - REV - F + TOGA + 1.000 + XX + XX + 1.000 + XX + XX + + REV + + + 4 + 10 + + + 00 + + 0 + XX + + + + + + + + + + + + + 1 + 1.2 + 1.4 + 1.6 + + + + + + + + + + 000 + XX + + + 8 + 4 + + + + 1.000 + XX + XX + + REV + + + 4 + 10 + + + 00 + + 0 + XX + + + + EPR diff --git a/Systems/upper-ecam.xml b/Systems/upper-ecam.xml index 53f3b2af..0fd83908 100644 --- a/Systems/upper-ecam.xml +++ b/Systems/upper-ecam.xml @@ -14,10 +14,35 @@ 1 - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + + + /engines/engine[0]/epr-actual + 0.990-122 + 1.000-115 + 1.200 -46 + 1.400 16 + 1.600 68 + 1.650 81 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -41,10 +66,35 @@ 1 - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[0]/epr-cmd + 0.990-122 + 1.000-115 + 1.200 -46 + 1.400 16 + 1.600 68 + 1.650 81 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -68,10 +118,35 @@ 1 - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[1]/epr-actual + 0.990-122 + 1.000-115 + 1.200 -46 + 1.400 16 + 1.600 68 + 1.650 81 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -95,10 +170,35 @@ 1 - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[1]/epr-cmd + 0.990-122 + 1.000-115 + 1.200 -46 + 1.400 16 + 1.600 68 + 1.650 81 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -122,10 +222,35 @@ 1 - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /systems/thrust/epr/toga-lim + 0.990-122 + 1.000-115 + 1.200 -46 + 1.400 16 + 1.600 68 + 1.650 81 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -187,10 +312,32 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[0]/egt-actual + 0-111 + 400 -35 + 800 51 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -248,10 +395,32 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[1]/egt-actual + 0-111 + 400 -35 + 800 51 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -311,10 +480,33 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[0]/n1 + 22.4-111 + 40.0 -67 + 100.0 54 + 110.0 70 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -375,10 +567,33 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[0]/n1-cmd + 22.4-111 + 40.0 -67 + 100.0 54 + 110.0 70 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -439,10 +654,33 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[1]/n1 + 22.4-111 + 40.0 -67 + 100.0 54 + 110.0 70 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + + @@ -503,10 +741,33 @@ - - /options/eng - IAE - + + /options/EIS2 + + /options/eng + IAE + + + + +
+ /engines/engine[1]/n1-cmd + 22.4-111 + 40.0 -67 + 100.0 54 + 110.0 70 +
+
+ + + + + /options/EIS2 + + /options/eng + IAE + +