A3XX: Improve APU

This commit is contained in:
Joshua Davidson 2017-08-12 13:49:41 -04:00
parent 745c6f9e81
commit 1c60b820b1
3 changed files with 120 additions and 22 deletions

View file

@ -11,6 +11,7 @@ var lowerECAM_eng = nil;
var lowerECAM_fctl = nil;
var lowerECAM_display = nil;
var page = "eng";
var oat = getprop("/environment/temperature-degc");
setprop("/systems/electrical/extra/apu-load", 0);
setprop("/systems/electrical/extra/apu-volts", 0);
setprop("/systems/electrical/extra/apu-hz", 0);
@ -115,11 +116,13 @@ var canvas_lowerECAM_apu = {
return m;
},
getKeys: func() {
return ["APUN-needle","APUEGT-needle","APUN","APUEGT","APUAvail","APUFlapOpen","APUBleedValve","APUBleedOnline","APUGenLoad","APUGenVolt","APUGenHz","APUBleedPSI","GW","TAT","SAT"];
return ["APUN-needle","APUEGT-needle","APUN","APUEGT","APUAvail","APUFlapOpen","APUBleedValve","APUBleedOnline","APUGenOnline","APUGentext","APUGenLoad","APUGenbox","APUGenVolt","APUGenHz","APUBleedPSI","APUfuelLO","GW","TAT","SAT","text3724","text3728","text3732"];
},
update: func() {
oat = getprop("/environment/temperature-degc");
# Avail and Flap Open
if (getprop("/systems/apu/rpm") > 3.5 and getprop("/controls/APU/master") == 1) {
if (getprop("/systems/apu/flap") == 1) {
me["APUFlapOpen"].show();
} else {
me["APUFlapOpen"].hide();
@ -130,7 +133,13 @@ var canvas_lowerECAM_apu = {
} else {
me["APUAvail"].hide();
}
if (getprop("/fdm/jsbsim/propulsion/tank[2]/contents-lbs") < 100) {
me["APUfuelLO"].show();
} else {
me["APUfuelLO"].hide();
}
# APU Gen
if (getprop("/systems/electrical/extra/apu-volts") > 110) {
me["APUGenVolt"].setColor(0,1,0);
@ -143,13 +152,43 @@ var canvas_lowerECAM_apu = {
} else {
me["APUGenHz"].setColor(1,0.6,0);
}
if (getprop("/controls/APU/master") == 1 or getprop("/systems/apu/rpm") >= 94.9) {
me["APUGenbox"].show();
me["APUGenHz"].show();
me["APUGenVolt"].show();
me["APUGenLoad"].show();
me["text3724"].show();
me["text3728"].show();
me["text3732"].show();
} else {
me["APUGenbox"].hide();
me["APUGenHz"].hide();
me["APUGenVolt"].hide();
me["APUGenLoad"].hide();
me["text3724"].hide();
me["text3728"].hide();
me["text3732"].hide();
}
if ((getprop("/systems/apu/rpm") > 94.9) and (getprop("/controls/electrical/switches/gen-apu") == 1)) {
me["APUGenOnline"].show();
} else {
me["APUGenOnline"].hide();
}
if ((getprop("/controls/APU/master") == 0) or ((getprop("/controls/APU/master") == 1) and (getprop("/controls/electrical/switches/gen-apu") == 1) and (getprop("/systems/apu/rpm") > 94.9))) {
me["APUGentext"].setColor(1,1,1);
} else if ((getprop("/controls/APU/master") == 1) and (getprop("/controls/electrical/switches/gen-apu") == 0) and (getprop("/systems/apu/rpm") < 94.9)) {
me["APUGentext"].setColor(1,0.6,0);
}
me["APUGenLoad"].setText(sprintf("%s", math.round(getprop("/systems/electrical/extra/apu-load"))));
me["APUGenVolt"].setText(sprintf("%s", math.round(getprop("/systems/electrical/extra/apu-volts"))));
me["APUGenHz"].setText(sprintf("%s", math.round(getprop("/systems/electrical/extra/apu-hz"))));
# APU Bleed
if (getprop("/systems/apu/rpm") >= 94.9) {
if (getprop("/controls/adirs/ir[1]/knob") != 1 and (getprop("/controls/APU/master") == 1 or getprop("/systems/pneumatic/bleedapu") > 0)) {
me["APUBleedPSI"].setColor(0,1,0);
me["APUBleedPSI"].setText(sprintf("%s", math.round(getprop("/systems/pneumatic/bleedapu"))));
} else {
@ -157,7 +196,7 @@ var canvas_lowerECAM_apu = {
me["APUBleedPSI"].setText(sprintf("%s", "XX"));
}
if (getprop("/systems/pneumatic/bleedapu") > 0 and getprop("/controls/pneumatic/switches/bleedapu") == 1) {
if (getprop("/controls/pneumatic/switches/bleedapu") == 1) {
me["APUBleedValve"].setRotation(90*D2R);
me["APUBleedOnline"].show();
} else {
@ -166,8 +205,22 @@ var canvas_lowerECAM_apu = {
}
# APU N and EGT
me["APUN"].setText(sprintf("%s", math.round(getprop("/systems/apu/rpm"))));
me["APUEGT"].setText(sprintf("%s", math.round(getprop("/systems/apu/egt"))));
if (getprop("/controls/APU/master") == 1) {
me["APUN"].setColor(0,1,0);
me["APUN"].setText(sprintf("%s", math.round(getprop("/systems/apu/rpm"))));
me["APUEGT"].setColor(0,1,0);
me["APUEGT"].setText(sprintf("%s", math.round(getprop("/systems/apu/egt"))));
} else if (getprop("/systems/apu/rpm") >= 1) {
me["APUN"].setColor(0,1,0);
me["APUN"].setText(sprintf("%s", math.round(getprop("/systems/apu/rpm"))));
me["APUEGT"].setColor(0,1,0);
me["APUEGT"].setText(sprintf("%s", math.round(getprop("/systems/apu/egt"))));
} else {
me["APUN"].setColor(1,0.6,0);
me["APUN"].setText(sprintf("%s", "XX"));
me["APUEGT"].setColor(1,0.6,0);
me["APUEGT"].setText(sprintf("%s", "XX"));
}
me["APUN-needle"].setRotation((getprop("/ECAM/Lower/APU-N") + 90)*D2R);
me["APUEGT-needle"].setRotation((getprop("/ECAM/Lower/APU-EGT") + 90)*D2R);

View file

@ -37,14 +37,14 @@
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1030"
inkscape:window-width="1366"
inkscape:window-height="706"
id="namedview371"
showgrid="true"
inkscape:zoom="0.5"
inkscape:cx="840.634"
inkscape:cy="837.30899"
inkscape:window-x="1592"
inkscape:zoom="0.94"
inkscape:cx="-75.451106"
inkscape:cy="1080.5167"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
@ -78,8 +78,9 @@
style="font-style:normal;font-weight:normal;font-size:34px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="196.37218"
y="164.61017"
id="text3720"
sodipodi:linespacing="125%"><tspan
id="APUGentext"
sodipodi:linespacing="125%"
inkscape:label="#text3720"><tspan
sodipodi:role="line"
id="tspan3722"
x="196.37218"
@ -414,7 +415,8 @@
style="fill:#515256;fill-opacity:1" />
</g>
<g
id="g3460">
id="APUGenbox"
inkscape:label="#g3460">
<rect
y="123.87109"
x="99.823715"
@ -713,4 +715,47 @@
x="830.58368"
y="312.50412"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42px;font-family:Arial;-inkscape-font-specification:Arial;text-align:end;text-anchor:end;fill:#00ff00">34</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="579.20001"
y="537.60004"
id="APUfuelLO"
sodipodi:linespacing="125%"
inkscape:label="#text4237"><tspan
sodipodi:role="line"
id="tspan4239"
x="579.20001"
y="537.60004"
style="font-size:48px;fill:#ff9900;fill-opacity:1">FUEL LO PR</tspan></text>
<g
inkscape:label="#g3441"
id="APUGenOnline"
transform="translate(-651.2,-22.4)">
<rect
y="123.27498"
x="841.24066"
height="21.920309"
width="5.3955846"
id="rect4241"
style="fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:type="star"
style="fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:4.69756889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4243"
sodipodi:sides="3"
sodipodi:cx="788.80811"
sodipodi:cy="109.92132"
sodipodi:r1="14.398978"
sodipodi:r2="7.1544757"
sodipodi:arg1="2.6191108"
sodipodi:arg2="3.6663083"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 776.33019,117.10687 12.494,-21.584521 12.44575,21.612381 z"
inkscape:transform-center-x="-0.045894102"
inkscape:transform-center-y="-3.4535777"
transform="matrix(1.0702291,0,0,0.97557219,-0.2069507,6.7326558)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -23,9 +23,9 @@ var n2_max = 102.1;
var egt_max = 712;
var n1_wm = 0;
var n2_wm = 0;
var apu_max = 99.2;
var apu_egt_min = 496;
var apu_egt_max = 643;
var apu_max = 100;
var apu_egt_min = 352;
var apu_egt_max = 704;
var spinup_time = 49;
var start_time = 10;
var egt_lightup_time = 2;
@ -311,9 +311,9 @@ var apu_egt_check = func {
}
var apu_egt2_check = func {
if (getprop("/systems/apu/egt") >= 643) {
if (getprop("/systems/apu/egt") >= 701) {
apu_egt2_checkt.stop();
interpolate("/systems/apu/egt", apu_egt_min, 20);
interpolate("/systems/apu/egt", apu_egt_min, 30);
}
}
@ -332,7 +332,7 @@ setlistener("/controls/APU/master", func {
var apu_stop = func {
interpolate("/systems/apu/rpm", 0, 30);
interpolate("/systems/apu/egt", 42, 30);
interpolate("/systems/apu/egt", 42, 40);
}
#######################