1
0
Fork 0

Improve ATT RESET / ATT 10S messages

This commit is contained in:
Jonathan Redpath 2021-11-06 16:50:56 +00:00
parent 668030b515
commit 01ec6a06b7
2 changed files with 57 additions and 60 deletions

View file

@ -6,11 +6,6 @@
var iesi_init = props.globals.initNode("/instrumentation/iesi/iesi-init", 0, "BOOL");
var iesi_reset = props.globals.initNode("/instrumentation/iesi/att-reset", 0, "DOUBLE");
var ASI = 0;
var _showIESI = 0;
var _fast = 0;
var _IESITime = 0;
var pinPrograms = {
metricAltitude: 1,
showInHg: 1,
@ -54,23 +49,27 @@ var canvas_IESI = {
obj.AI_horizon_trans = obj["AI_horizon"].createTransform();
obj.AI_horizon_rot = obj["AI_horizon"].createTransform();
obj.middleAltOffset = nil;
obj._cachedInhg = nil;
obj._excessMotion = 0;
obj._fast = 0;
obj._IESITime = 0;
obj._showIESI = 0;
obj.ASI = 0;
obj.canReset = 0;
obj.isNegativeAlt = 0;
obj.att10s.hide();
obj.middleAltOffset = nil;
obj.update_items = [
props.UpdateManager.FromHashValue("airspeed", nil, func(val) {
# Subtract 30, since the scale starts at 30, but don't allow less than 0, or more than 520 knots
if (val <= 30) {
ASI = 0;
obj.ASI = 0;
} else if (val >= 520) {
ASI = 490;
obj.ASI = 490;
} else {
ASI = val - 30;
obj.ASI = val - 30;
}
obj["ASI_scale"].setTranslation(0, ASI * 8.295);
obj["ASI_scale"].setTranslation(0, obj.ASI * 8.295);
}),
props.UpdateManager.FromHashList(["altitude","altitude_ind"], nil, func(val) {
if (val.altitude > 50000) {
@ -154,16 +153,10 @@ var canvas_IESI = {
obj.updateQNH(val);
}),
];
_showIESI = 0;
_fast = 0;
_IESITime = 0.0;
obj._cachedInhg = nil;
return obj;
},
getKeys: func() {
return ["IESI","IESI_Init","att90s","att10s","ATTflag","ALTwarn","SPDwarn","ASI_scale","ASI_mach","ASI_mach_decimal","AI_center","AI_index","AI_horizon","AI_sky_bank","AI_bank","AI_bank_center","AI_slipskid","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_meters","QNH_setting","QNH_std","negText","negText2","AI_bank_scale","metricM","metricBox"];
return ["IESI","IESI_Init","attRst","attRstRect","att90s","ATTflag","ATTflag_rect","ATTflag_text","ALTwarn","SPDwarn","ASI_scale","ASI_mach","ASI_mach_decimal","AI_center","AI_index","AI_horizon","AI_sky_bank","AI_bank","AI_bank_center","AI_slipskid","ALT_scale","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_meters","QNH_setting","QNH_std","negText","negText2","AI_bank_scale","metricM","metricBox"];
},
update: func(notification) {
if (notification.qnh_inhg != me._cachedInhg) {
@ -176,21 +169,33 @@ var canvas_IESI = {
return;
}
if (_IESITime + 90 >= notification.elapsedTime) {
if (me._IESITime + 90 >= notification.elapsedTime) {
if (notification.groundspeed > 2) {
me._excessMotion = 1;
}
me["IESI"].hide();
me["IESI_Init"].show();
if (_fast) {
me["att10s"].show();
me["att90s"].hide();
if (me._fast) {
me["IESI"].show();
me["IESI_Init"].hide();
me["AI_bank"].hide();
me["AI_bank_center"].hide();
me["AI_bank_scale"].hide();
me["AI_horizon"].hide();
me["AI_sky_bank"].hide();
me["ATTflag_text"].setText("ATT 10s");
me["ATTflag_text"].setColor(0,0,0);
me["ATTflag_rect"].setScale(1.5,1);
me["ATTflag_rect"].setTranslation(-250,0);
me["ATTflag_rect"].setColorFill(1,1,0);
me["ATTflag_rect"].setColor(1,1,0);
me["ATTflag"].show();
me["attRst"].hide();
me["attRstRect"].hide();
} else {
me["att10s"].hide();
me["att90s"].show();
me["IESI"].hide();
me["IESI_Init"].show();
me["ATTflag"].hide();
}
me["ATTflag"].hide();
return;
} else {
if (pinPrograms.metricAltitude) {
@ -209,7 +214,6 @@ var canvas_IESI = {
me["metricBox"].hide();
me["negText2"].hide();
}
_fast = 0;
if (!me._excessMotion) {
me["IESI_Init"].hide();
@ -227,10 +231,17 @@ var canvas_IESI = {
me["AI_bank"].hide();
me["AI_bank_center"].hide();
me["AI_bank_scale"].hide();
me["AI_index"].hide();
me["AI_horizon"].hide();
me["AI_sky_bank"].hide();
me["ATTflag_text"].setText("ATT");
me["ATTflag_text"].setColor(1,0,0);
me["ATTflag_rect"].setScale(1,1);
me["ATTflag_rect"].setTranslation(0,0);
me["ATTflag_rect"].setColorFill(0,0,0);
me["ATTflag_rect"].setColor(0,0,0);
me["ATTflag"].show();
me["attRst"].show();
me["attRstRect"].show();
}
}
@ -257,30 +268,26 @@ var canvas_IESI = {
updatePower: func(notification) {
# todo 20W power consumption
if (notification.attReset == 1 and me.canReset) {
if (notification.iesiInit and _IESITime + 90 >= notification.elapsedTime and !me._excessMotion) {
_fast = 1;
} else {
_fast = 0;
}
me._excessMotion = 0;
iesi_init.setBoolValue(0);
me.canReset = 0;
} else if (_IESITime + 90 < notification.elapsedTime and notification.iesiInit and !me.canReset) {
me._excessMotion = 0;
me._fast = 1;
iesi_init.setBoolValue(0);
} else if (me._IESITime + 90 < notification.elapsedTime and notification.iesiInit and !me.canReset) {
me.canReset = 1;
}
if (notification.dcEss >= 25 or (notification.relay7XB and notification.dcHot1703 >= 25)) {
_showIESI = 1;
me._showIESI = 1;
if (notification.acconfig != 1 and notification.iesiInit != 1) {
iesi_init.setBoolValue(1);
if (_fast) {
_IESITime = notification.elapsedTime - 80;
if (me._fast) {
me._IESITime = notification.elapsedTime - 80;
} else {
_IESITime = notification.elapsedTime;
me._IESITime = notification.elapsedTime;
}
} else if (notification.acconfig == 1 and notification.iesiInit != 1) {
iesi_init.setBoolValue(1);
_IESITime = notification.elapsedTime - 87;
me._IESITime = notification.elapsedTime - 87;
}
} elsif (notification.iesiInit) {
if (!me._transientVar) {
@ -289,15 +296,18 @@ var canvas_IESI = {
if (systems.ELEC.Bus.dcEss.getValue() >= 25 or (systems.ELEC.Bus.dcHot1703.getValue() >= 25 and systems.ELEC.Relay.relay7XB.getValue())) {
me._transientVar = 0;
} else {
_showIESI = 0;
iesi_init.setBoolValue(0);
me.canReset = 0;
me._excessMotion = 0;
me._fast = 0;
me._showIESI = 0;
me._transientVar = 0;
iesi_init.setBoolValue(0);
}
}, 0.2); # 200ms delay power transients
}
}
if (_showIESI and notification.iesiBrt > 0.01) {
if (me._showIESI and notification.iesiBrt > 0.01) {
me.group.setVisible(1);
} else {
me.group.setVisible(0);

View file

@ -43,7 +43,7 @@
showgrid="true"
inkscape:zoom="0.93517029"
inkscape:cx="815.35952"
inkscape:cy="847.9739"
inkscape:cy="762.42799"
inkscape:window-x="-11"
inkscape:window-y="-11"
inkscape:window-maximized="1"
@ -170,7 +170,7 @@
x="304.32764"
height="91.330338"
width="406.27161"
id="rect12278"
id="attRstRect"
style="fill:#c9d121;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.17302;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" />
<text
inkscape:label="#text979"
@ -2041,17 +2041,4 @@
x="487.22318"
id="tspan4618"
sodipodi:role="line">STD</tspan></text>
<text
inkscape:label="#text979"
transform="scale(1.0000144,0.9999856)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:0.75"
x="510.22949"
y="796.4032"
id="att10s"><tspan
sodipodi:role="line"
id="tspan1131"
x="510.22949"
y="796.4032"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:86px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke-width:0.75">ATT 10s</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB