A3XX: Update the WIP Upper ECAM -- 95% complete

This commit is contained in:
Joshua Davidson 2017-07-30 12:57:23 -04:00
parent bdccaadde6
commit d6536c5242
5 changed files with 1129 additions and 81 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -11,18 +11,20 @@ setprop("/engines/engine[0]/epr-actual", 1);
setprop("/engines/engine[1]/epr-actual", 1);
setprop("/engines/engine[0]/egt-actual", 1);
setprop("/engines/engine[1]/egt-actual", 1);
setprop("/engines/engine[0]/ff-actual", 0);
setprop("/engines/engine[1]/ff-actual", 0);
setprop("/engines/engine[0]/fuel-flow_actual", 0);
setprop("/engines/engine[1]/fuel-flow_actual", 0);
setprop("/ECAM/Upper/EPR[0]", 0);
setprop("/ECAM/Upper/EPR[1]", 0);
setprop("/ECAM/Upper/EPRthr[0]", 0);
setprop("/ECAM/Upper/ERPthr[1]", 0);
setprop("/ECAM/Upper/EPRylim[0]", 0);
setprop("/ECAM/Upper/EPRylim[1]", 0);
setprop("/ECAM/Upper/EPRthr[1]", 0);
setprop("/ECAM/Upper/EPRylim", 0);
setprop("/ECAM/Upper/EGT[0]", 0);
setprop("/ECAM/Upper/EGT[1]", 0);
setprop("/ECAM/Upper/N1[0]", 0);
setprop("/ECAM/Upper/N1[1]", 0);
setprop("/ECAM/Upper/N1thr[0]", 0);
setprop("/ECAM/Upper/N1thr[1]", 0);
setprop("/ECAM/Upper/N1ylim", 0);
var canvas_upperECAM_base = {
init: func(canvas_group, file) {
@ -78,21 +80,29 @@ var canvas_upperECAM_iae_eis2 = {
return m;
},
getKeys: func() {
return ["EPR1-needle","EPR1-thr","EPR1","EPR1-box","EPR1-scale","EPR1-scalenum","EPR1-XX","EPR1-XX2","EGT1-needle","EGT1","EGT1-scale","EGT1-box","EGT1-scale2","EGT1-scaletick","EGT1-XX","N11-needle","N11","N11-decpnt","N11-decimal","N11-scale",
"N11-scale2","N11-scalenum","N11-XX","N21","N21-decpnt","N21-decimal","N21-XX","FF1","FF1-XX","FOB-LBS","ECAML1","ECAML2","ECAML3","ECAML4","ECAML5","ECAML6","ECAML7","ECAML8"];
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-scaletick","EGT1-XX","N11-needle","N11-thr","N11-ylim","N11","N11-decpnt",
"N11-decimal","N11-scale","N11-scale2","N11-scalenum","N11-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-scaletick","EGT2-XX",
"N12-needle","N12-thr","N12-ylim","N12","N12-decpnt","N12-decimal","N12-scale","N12-scale2","N12-scalenum","N12-XX","N21","N21-decpnt","N21-decimal","N21-XX","FF1","FF1-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"];
},
update: func() {
# EPR 1
# 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-thr"].show();
me["EPR1-ylim"].show();
me["EPR1-scalenum"].show();
me["EPR1-box"].show();
me["EPR1-XX"].hide();
@ -102,16 +112,41 @@ var canvas_upperECAM_iae_eis2 = {
me["EPR1"].hide();
me["EPR1-needle"].hide();
me["EPR1-thr"].hide();
me["EPR1-ylim"].hide();
me["EPR1-scalenum"].hide();
me["EPR1-box"].hide();
me["EPR1-XX"].show();
me["EPR1-XX2"].show();
}
# EGT 1
if (getprop("/systems/fadec/eng2/epr") == 1) {
me["EPR2-scale"].setColor(1,1,1);
me["EPR2"].show();
me["EPR2-needle"].show();
me["EPR2-thr"].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-thr"].hide();
me["EPR2-ylim"].hide();
me["EPR2-scalenum"].hide();
me["EPR2-box"].hide();
me["EPR2-XX"].show();
me["EPR2-XX2"].show();
}
# 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);
@ -131,11 +166,38 @@ var canvas_upperECAM_iae_eis2 = {
me["EGT1-XX"].show();
}
# N1 1
if (getprop("/systems/fadec/eng2/egt") == 1) {
me["EGT2-scale"].setColor(1,1,1);
me["EGT2-scale2"].setColor(1,0,0);
me["EGT2"].show();
me["EGT2-needle"].show();
me["EGT2-scaletick"].show();
me["EGT2-box"].show();
me["EGT2-XX"].hide();
} else {
me["EGT2-scale"].setColor(1,0.6,0);
me["EGT2-scale2"].setColor(1,0.6,0);
me["EGT2"].hide();
me["EGT2-needle"].hide();
me["EGT2-scaletick"].hide();
me["EGT2-box"].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);
@ -157,9 +219,47 @@ var canvas_upperECAM_iae_eis2 = {
me["N11-XX"].show();
}
# N2 1
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();
@ -173,8 +273,21 @@ var canvas_upperECAM_iae_eis2 = {
me["N21-XX"].show();
}
# FF1
me["FF1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/ff-actual"))));
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();
@ -184,6 +297,39 @@ var canvas_upperECAM_iae_eis2 = {
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();
}
# Flap Indicator
me["FlapTxt"].setText(sprintf("%s", getprop("/controls/flight/flap-txt")));
if (getprop("/controls/flight/flap-pos") > 0) {
me["FlapDots"].show();
} else {
me["FlapDots"].hide();
}
me.updateBase();
settimer(func me.update(), 0.02);

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View file

@ -15,20 +15,20 @@ setprop("/systems/thrust/epr/clb-lim", 0.0);
setprop("/systems/thrust/n1/toga-lim", 95.9);
setprop("/systems/thrust/n1/flx-lim", 0.0);
setprop("/engines/flx-thr", 0.0);
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 95.9);
setprop("/systems/thrust/state1", "IDLE");
setprop("/systems/thrust/state2", "IDLE");
setprop("/systems/thrust/lvrclb", "0");
setprop("/systems/thrust/clbreduc-ft", "1500");
setprop("/systems/thrust/toga-lim", 0.0);
setprop("/systems/thrust/mct-lim", 0.0);
setprop("/systems/thrust/clb-lim", 0.0);
setprop("/systems/thrust/lim-flex", 0);
setprop("/engines/flex-derate", 0);
setlistener("/sim/signals/fdm-initialized", func {
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 95.9);
setprop("/systems/thrust/state1", "IDLE");
setprop("/systems/thrust/state2", "IDLE");
setprop("/systems/thrust/lvrclb", "0");
setprop("/systems/thrust/clbreduc-ft", "1500");
setprop("/systems/thrust/toga-lim", 0.0);
setprop("/systems/thrust/mct-lim", 0.0);
setprop("/systems/thrust/clb-lim", 0.0);
setprop("/systems/thrust/lim-flex", 0);
setprop("/engines/flex-derate", 0);
thrustt.start();
});

View file

@ -14,7 +14,13 @@
<gain>1</gain>
<input>
<condition>
<not><property>/options/EIS2</property></not>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -30,7 +36,13 @@
</input>
<input>
<condition>
<property>/options/EIS2</property>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -53,7 +65,13 @@
<gain>1</gain>
<input>
<condition>
<not><property>/options/EIS2</property></not>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -69,7 +87,13 @@
</input>
<input>
<condition>
<property>/options/EIS2</property>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -87,16 +111,22 @@
</filter>
<filter>
<name>EPR THR 1</name>
<name>EPR 2</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<not><property>/options/EIS2</property></not>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[0]/epr-cmd</property>
<property>/engines/engine[1]/epr-actual</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
@ -108,11 +138,17 @@
</input>
<input>
<condition>
<property>/options/EIS2</property>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[0]/epr-cmd</property>
<property>/engines/engine[1]/epr-actual</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
@ -122,7 +158,109 @@
</table>
</expression>
</input>
<output>/ECAM/Upper/EPRylim[0]</output>
<output>/ECAM/Upper/EPR[1]</output>
</filter>
<filter>
<name>EPR THR 2</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/epr-cmd</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
<entry><ind>1.400</ind><dep> 16</dep></entry>
<entry><ind>1.600</ind><dep> 82</dep></entry>
<entry><ind>1.650</ind><dep> 98</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/epr-cmd</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
<entry><ind>1.400</ind><dep> 16</dep></entry>
<entry><ind>1.600</ind><dep> 82</dep></entry>
<entry><ind>1.650</ind><dep> 98</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/EPRthr[1]</output>
</filter>
<filter>
<name>EPR LIMIT</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/systems/thrust/epr/toga-lim</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
<entry><ind>1.400</ind><dep> 16</dep></entry>
<entry><ind>1.600</ind><dep> 82</dep></entry>
<entry><ind>1.650</ind><dep> 98</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/systems/thrust/epr/toga-lim</property>
<entry><ind>0.990</ind><dep>-135</dep></entry>
<entry><ind>1.000</ind><dep>-125</dep></entry>
<entry><ind>1.200</ind><dep> -50</dep></entry>
<entry><ind>1.400</ind><dep> 16</dep></entry>
<entry><ind>1.600</ind><dep> 82</dep></entry>
<entry><ind>1.650</ind><dep> 98</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/EPRylim</output>
</filter>
<filter>
@ -131,7 +269,13 @@
<gain>1</gain>
<input>
<condition>
<not><property>/options/EIS2</property></not>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -144,7 +288,13 @@
</input>
<input>
<condition>
<property>/options/EIS2</property>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -158,13 +308,64 @@
<output>/ECAM/Upper/EGT[0]</output>
</filter>
<filter>
<name>EGT 2</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/egt-actual</property>
<entry><ind> 0</ind><dep>-90</dep></entry>
<entry><ind>400</ind><dep> 0</dep></entry>
<entry><ind>800</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/egt-actual</property>
<entry><ind> 0</ind><dep>-90</dep></entry>
<entry><ind>400</ind><dep> 0</dep></entry>
<entry><ind>800</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/EGT[1]</output>
</filter>
<filter>
<name>N1 1</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<not><property>/options/EIS2</property></not>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -178,7 +379,13 @@
</input>
<input>
<condition>
<property>/options/EIS2</property>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
@ -192,5 +399,146 @@
</input>
<output>/ECAM/Upper/N1[0]</output>
</filter>
<filter>
<name>N1 THR 1</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[0]/n1-cmd</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[0]/n1-cmd</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/N1thr[0]</output>
</filter>
<filter>
<name>N1 2</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/n1</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/n1</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/N1[1]</output>
</filter>
<filter>
<name>N1 THR 2</name>
<type>gain</type>
<gain>1</gain>
<input>
<condition>
<and>
<not><property>/options/EIS2</property></not>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/n1-cmd</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<and>
<property>/options/EIS2</property>
<equals>
<property>options/eng</property>
<value>IAE</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/engines/engine[1]/n1-cmd</property>
<entry><ind> 22.4</ind><dep>-107</dep></entry>
<entry><ind> 40.0</ind><dep> -61</dep></entry>
<entry><ind>100.0</ind><dep> 65</dep></entry>
<entry><ind>110.0</ind><dep> 90</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Upper/N1thr[1]</output>
</filter>
</PropertyList>