diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas index d7a6f042..dedcd4e3 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas @@ -30,6 +30,9 @@ var ECAM_line5rc = props.globals.getNode("/ECAM/rightmsg/linec5", 1); var ECAM_line6rc = props.globals.getNode("/ECAM/rightmsg/linec6", 1); var ECAM_line7rc = props.globals.getNode("/ECAM/rightmsg/linec7", 1); var ECAM_line8rc = props.globals.getNode("/ECAM/rightmsg/linec8", 1); +var enginesBothAtIdle = props.globals.getNode("/fdm/jsbsim/fadec/both-at-idle"); +var enginesBothAtIdleTime = props.globals.initNode("/ECAM/Upper/idle-time", 0.0, "DOUBLE"); +var enginesBothAtIdleTimeSaved = props.globals.initNode("/ECAM/Upper/idle-time-saved", 0.0, "DOUBLE"); var canvas_upperECAM = { new: func(svg, name, type) { @@ -496,7 +499,7 @@ var canvas_upperECAM = { "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","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","ECAMR1","ECAMR2","ECAMR3","ECAMR4","ECAMR5","ECAMR6","ECAMR7","ECAMR8","ECAM_Right","FOB-weight-unit","FFlow-weight-unit","SlatAlphaLock", - "SlatIndicator","FlapIndicator","SlatLine","FlapLine","aFloor","FlxLimDegreesC","FlxLimTemp"]; + "SlatIndicator","FlapIndicator","SlatLine","FlapLine","aFloor","FlxLimDegreesC","FlxLimTemp","idleIndication"]; }, getKeysIAE: func() { 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", @@ -504,7 +507,7 @@ var canvas_upperECAM = { "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","FlapTxt","FlapDots","EPRLim-mode","EPRLim","EPRLim-decpnt","EPRLim-decimal","EPRLim-XX","EPRLim-XX2","EPRMode", "N1Lim-mode","N1Lim","N1Lim-decpnt","N1Lim-decimal","N1Lim-percent","N1Lim-XX","N1Lim-XX2","N1Mode","REV1","REV1-box","REV2","REV2-box","ECAM_Left","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8","ECAMR1","ECAMR2","ECAMR3", - "ECAMR4","ECAMR5","ECAMR6","ECAMR7","ECAMR8","ECAM_Right","FFlow1-weight-unit", "FFlow2-weight-unit", "FOB-weight-unit","SlatAlphaLock","SlatIndicator","FlapIndicator","SlatLine","FlapLine","aFloor","FlxLimDegreesC","FlxLimTemp"]; + "ECAMR4","ECAMR5","ECAMR6","ECAMR7","ECAMR8","ECAM_Right","FFlow1-weight-unit", "FFlow2-weight-unit", "FOB-weight-unit","SlatAlphaLock","SlatIndicator","FlapIndicator","SlatLine","FlapLine","aFloor","FlxLimDegreesC","FlxLimTemp","idleIndication"]; }, getKeysTest: func() { return ["Test_white","Test_text"]; @@ -531,6 +534,9 @@ var canvas_upperECAM = { me[key].setColor(me.getColorString(node.getValue())); }, 0, 0); }, + displayIdle: 0, + displayIdleDim: 0, + displayIdleTrigger: 0, updateCommon: func(notification) { me.updatePower(); @@ -542,6 +548,37 @@ var canvas_upperECAM = { return; } + if (enginesBothAtIdle.getValue() and !me["aFloor"].getVisible() and !notification.gear1Wow and notification.athr) { + if (!me.displayIdleTrigger) { + enginesBothAtIdleTime.setValue(notification.elapsedTime); + me.displayIdleTrigger = 1; + } + if ((notification.elapsedTime - enginesBothAtIdleTime.getValue()) < 10) { + if ((notification.elapsedTime - enginesBothAtIdleTimeSaved.getValue()) > 1) { + enginesBothAtIdleTimeSaved.setValue(notification.elapsedTime); + me.displayIdleDim = !me.displayIdleDim; + } + } + me.displayIdle = 1; + } else { + me.displayIdle = 0; + me.displayIdleDim = 0; + me.displayIdleTrigger = 0; + enginesBothAtIdleTime.setValue(0); + enginesBothAtIdleTimeSaved.setValue(0); + } + + if (me.displayIdle) { + me["idleIndication"].show(); + if (me.displayIdleDim) { + me["idleIndication"].setColor(0.0509,0.7529,0.2941,0.5); + } else { + me["idleIndication"].setColor(0.0509,0.7529,0.2941,1); + } + } else { + me["idleIndication"].hide(); + } + foreach(var update_item; me.update_items) { update_item.update(notification); diff --git a/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg b/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg index 1362ab37..7470c948 100644 --- a/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg +++ b/Models/Instruments/Upper-ECAM/res/cfm-eis2.svg @@ -1476,4 +1476,17 @@ x="111.21719" id="tspan3554" sodipodi:role="line">A FLOOR + IDLE diff --git a/Models/Instruments/Upper-ECAM/res/iae-eis2.svg b/Models/Instruments/Upper-ECAM/res/iae-eis2.svg index cc232e0b..dccad437 100644 --- a/Models/Instruments/Upper-ECAM/res/iae-eis2.svg +++ b/Models/Instruments/Upper-ECAM/res/iae-eis2.svg @@ -1971,4 +1971,17 @@ inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> + IDLE