COND / PRESS pages completed; fix bug in system display controller
This commit is contained in:
parent
4073c0ca79
commit
825b002e02
17 changed files with 94 additions and 114 deletions
|
@ -282,7 +282,7 @@ var canvas_lowerECAMPageApu =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageBleed =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -21,8 +21,59 @@ var canvas_lowerECAMPageCond =
|
|||
obj.units = acconfig_weight_kgs.getValue();
|
||||
|
||||
# init
|
||||
obj["CONDFanFwdFault"].hide();
|
||||
obj["CONDFanAftFault"].hide();
|
||||
|
||||
# aft cargo ventilation disabled
|
||||
obj["CargoCond"].hide();
|
||||
|
||||
obj.update_items = [
|
||||
props.UpdateManager.FromHashValue("condDuctTempCockpit", 0.5, func(val) {
|
||||
obj["CONDDuctTempCKPT"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condDuctTempAft", 0.5, func(val) {
|
||||
obj["CONDDuctTempAFT"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condDuctTempFwd", 0.5, func(val) {
|
||||
obj["CONDDuctTempFWD"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTempCockpit", 0.5, func(val) {
|
||||
obj["CONDTempCKPT"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTempAft", 0.5, func(val) {
|
||||
obj["CONDTempAFT"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTempFwd", 0.5, func(val) {
|
||||
obj["CONDTempFWD"].setText(sprintf("%2.0f",val));
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTrimCockpit", 0.01, func(val) {
|
||||
obj["CONDTrimValveCKPT"].setRotation(val * D2R);
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTrimAft", 0.01, func(val) {
|
||||
obj["CONDTrimValveAFT"].setRotation(val * D2R);
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("condTrimFwd", 0.01, func(val) {
|
||||
obj["CONDTrimValveFWD"].setRotation(val * D2R);
|
||||
}),
|
||||
props.UpdateManager.FromHashList(["condHotAirSwitch","condHotAirValve","condHotAirCmd"], nil, func(val) {
|
||||
if (!val.condHotAirSwitch or (val.condHotAirCmd == 1 and val.condHotAirValve == 0)) {
|
||||
obj["CONDHotAirValve"].setRotation(90 * D2R);
|
||||
obj["CONDHotAirValve"].setColor(0.7333,0.3803,0);
|
||||
obj["CONDHotAirValveCross"].setColorFill(0.7333,0.3803,0);
|
||||
} elsif (val.condHotAirCmd == 0 and val.condHotAirValve == 0) {
|
||||
obj["CONDHotAirValve"].setRotation(90 * D2R);
|
||||
obj["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["CONDHotAirValveCross"].setColorFill(0.0509,0.7529,0.2941);
|
||||
} elsif (val.condHotAirCmd == 0 and val.condHotAirValve != 0) {
|
||||
obj["CONDHotAirValve"].setRotation(0);
|
||||
obj["CONDHotAirValve"].setColor(0.7333,0.3803,0);
|
||||
obj["CONDHotAirValveCross"].setColorFill(0.7333,0.3803,0);
|
||||
} else {
|
||||
obj["CONDHotAirValve"].setRotation(0);
|
||||
obj["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941);
|
||||
obj["CONDHotAirValveCross"].setColorFill(0.0509,0.7529,0.2941);
|
||||
}
|
||||
}),
|
||||
];
|
||||
|
||||
obj.displayedGForce = 0;
|
||||
|
@ -62,10 +113,9 @@ var canvas_lowerECAMPageCond =
|
|||
return ["TAT","SAT","GW","UTCh","UTCm","GLoad","GW-weight-unit"];
|
||||
},
|
||||
getKeys: func() {
|
||||
return["Bulk","BulkLine","BulkLbl","Exit1L","Exit1R","Cabin1Left","Cabin1LeftLbl","Cabin1LeftLine","Cabin1LeftSlide","Cabin1Right","Cabin1RightLbl","Cabin1RightLine","Cabin1RightSlide","Cabin2Left","Cabin2LeftLbl",
|
||||
"Cabin2LeftLine","Cabin2LeftSlide","Cabin2Right","Cabin2RightLbl","Cabin2RightLine","Cabin2RightSlide","Cabin3Left","Cabin3LeftLbl","Cabin3LeftLine","Cabin3LeftSlide","Cabin3Right","Cabin3RightLbl","Cabin3RightLine","Cabin3RightSlide","AvionicsLine1",
|
||||
"AvionicsLbl1","AvionicsLine2","AvionicsLbl2","Cargo1Line","Cargo1Lbl","Cargo1Door","Cargo2Line","Cargo2Lbl","Cargo2Door","ExitLSlide","ExitLLine","ExitLLbl","ExitRSlide","ExitRLine","ExitRLbl","Cabin4Left","Cabin4LeftLbl","Cabin4LeftLine",
|
||||
"Cabin4LeftSlide","Cabin4Right","Cabin4RightLbl","Cabin4RightLine","Cabin4RightSlide","DOOROXY-REGUL-LO-PR"];},
|
||||
return["CargoCond","CONDHotAirValve","CONDFanFwdFault","CONDFanAftFault","CONDTrimValveCKPT","CONDTrimValveAFT","CONDTrimValveFWD","CONDDuctTempCKPT",
|
||||
"CONDDuctTempAFT","CONDDuctTempFWD","CONDTempCKPT","CONDTempAFT","CONDTempFWD","CONDHotAirValveCross"];
|
||||
},
|
||||
updateBottom: func(notification) {
|
||||
foreach(var update_item_bottom; me.updateItemsBottom)
|
||||
{
|
||||
|
@ -134,12 +184,24 @@ var canvas_lowerECAMPageCond =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var input = {
|
||||
condDuctTempCockpit: "/systems/air-conditioning/temperatures/cockpit-duct",
|
||||
condDuctTempAft: "/systems/air-conditioning/temperatures/cabin-aft-duct",
|
||||
condDuctTempFwd: "/systems/air-conditioning/temperatures/cabin-fwd-duct",
|
||||
condTempCockpit: "/systems/air-conditioning/temperatures/cockpit-temp",
|
||||
condTempAft: "/systems/air-conditioning/temperatures/cabin-aft-temp",
|
||||
condTempFwd: "/systems/air-conditioning/temperatures/cabin-fwd-temp",
|
||||
condTrimCockpit: "/ECAM/Lower/trim-cockpit-output",
|
||||
condTrimAft: "/ECAM/Lower/trim-aft-output",
|
||||
condTrimFwd: "/ECAM/Lower/trim-fwd-output",
|
||||
condHotAirCmd: "/systems/air-conditioning/valves/hot-air-cmd",
|
||||
condHotAirSwitch: "/controls/pneumatics/switches/hot-air",
|
||||
condHotAirValve: "/systems/air-conditioning/valves/hot-air"
|
||||
};
|
||||
|
||||
foreach (var name; keys(input)) {
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageCruise =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageDoor =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageElec =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageEng =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageFctl =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageFuel =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageHyd =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -800,55 +800,6 @@ var canvas_lowerECAM_bleed = {
|
|||
},
|
||||
};
|
||||
|
||||
var canvas_lowerECAM_cond = {
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_lowerECAM_cond, canvas_lowerECAM_base]};
|
||||
m.init(canvas_group, file);
|
||||
|
||||
return m;
|
||||
},
|
||||
getKeys: func() {
|
||||
return ["TAT","SAT","GW","UTCh","UTCm","GLoad","GW-weight-unit","CargoCond","CONDHotAirValve","CONDFanFwdFault","CONDFanAftFault",
|
||||
"CONDTrimValveCKPT","CONDTrimValveAFT","CONDTrimValveFWD","CONDDuctTempCKPT","CONDDuctTempAFT","CONDDuctTempFWD","CONDTempCKPT","CONDTempAFT","CONDTempFWD"];
|
||||
},
|
||||
update: func() {
|
||||
if (systems.PNEU.Valves.hotAir.getValue() == 0) {
|
||||
me["CONDHotAirValve"].setRotation(90 * D2R);
|
||||
if (systems.PNEU.Switch.hotAir.getBoolValue()) {
|
||||
me["CONDHotAirValve"].setColor(0.7333,0.3803,0);
|
||||
} else {
|
||||
me["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941);
|
||||
}
|
||||
} else {
|
||||
me["CONDHotAirValve"].setRotation(0); # doesn't show rotation in transit
|
||||
if (systems.PNEU.Switch.hotAir.getBoolValue()) {
|
||||
me["CONDHotAirValve"].setColor(0.0509,0.7529,0.2941);
|
||||
} else {
|
||||
me["CONDHotAirValve"].setColor(0.7333,0.3803,0);
|
||||
}
|
||||
}
|
||||
|
||||
me["CONDTrimValveCKPT"].setRotation(systems.PNEU.Packs.trimCockpit.getValue() * D2R);
|
||||
me["CONDTrimValveAFT"].setRotation(systems.PNEU.Packs.trimAft.getValue() * D2R);
|
||||
me["CONDTrimValveFWD"].setRotation(systems.PNEU.Packs.trimFwd.getValue() * D2R);
|
||||
|
||||
me["CONDDuctTempCKPT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cockpitDuctTemp.getValue())));
|
||||
me["CONDDuctTempAFT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinAftDuctTemp.getValue())));
|
||||
me["CONDDuctTempFWD"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinFwdDuctTemp.getValue())));
|
||||
|
||||
me["CONDTempCKPT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cockpitTemp.getValue())));
|
||||
me["CONDTempAFT"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinAftTemp.getValue())));
|
||||
me["CONDTempFWD"].setText(sprintf("%2.0f",math.round(systems.PNEU.Packs.cabinFwdTemp.getValue())));
|
||||
|
||||
# fans faults not implemented
|
||||
me["CONDFanFwdFault"].hide();
|
||||
me["CONDFanAftFault"].hide();
|
||||
|
||||
# aft cargo ventilation disabled
|
||||
me["CargoCond"].hide();
|
||||
me.updateBottomStatus();
|
||||
},
|
||||
};
|
||||
|
||||
var canvas_lowerECAM_crz = {
|
||||
new: func(canvas_group, file) {
|
||||
|
@ -2466,41 +2417,6 @@ var canvas_lowerECAM_fuel = {
|
|||
},
|
||||
};
|
||||
|
||||
var canvas_lowerECAM_press = {
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_lowerECAM_press, canvas_lowerECAM_base]};
|
||||
m.init(canvas_group, file);
|
||||
|
||||
return m;
|
||||
},
|
||||
getKeys: func() {
|
||||
return ["TAT","SAT","GW","UTCh","UTCm","GLoad","GW-weight-unit"];
|
||||
},
|
||||
update: func() {
|
||||
me["PRESS-Cab-VS"].setText(sprintf("%4.0f", press_vs_norm.getValue()));
|
||||
me["PRESS-Cab-Alt"].setText(sprintf("%4.0f", cabinalt.getValue()));
|
||||
|
||||
|
||||
me.updateBottomStatus();
|
||||
},
|
||||
};
|
||||
|
||||
var canvas_lowerECAM_status = {
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_lowerECAM_status, canvas_lowerECAM_base]};
|
||||
m.init(canvas_group, file);
|
||||
|
||||
return m;
|
||||
},
|
||||
getKeys: func() {
|
||||
return ["TAT","SAT","GW","UTCh","UTCm","GLoad","GW-weight-unit"];
|
||||
},
|
||||
update: func() {
|
||||
|
||||
me.updateBottomStatus();
|
||||
},
|
||||
};
|
||||
|
||||
var canvas_lowerECAM_hyd = {
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_lowerECAM_hyd, canvas_lowerECAM_base]};
|
||||
|
@ -3401,11 +3317,6 @@ var lowerECAM_update = maketimer(0.05, func {
|
|||
canvas_lowerECAM_base.update();
|
||||
});
|
||||
|
||||
var showLowerECAM = func {
|
||||
var dlg = canvas.Window.new([512, 512], "dialog").set("resize", 1);
|
||||
dlg.setCanvas(lowerECAM_display);
|
||||
}
|
||||
|
||||
setlistener("/systems/electrical/bus/ac-2", func() {
|
||||
canvas_lowerECAM_base.updateDu4();
|
||||
}, 0, 0);
|
||||
|
|
|
@ -80,7 +80,7 @@ var canvas_lowerECAMPagePress =
|
|||
obj["PRESS-Sys-1"].hide();
|
||||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("flowCtlValve1", 0.1, func(val) {
|
||||
props.UpdateManager.FromHashValue("flowCtlValve1", nil, func(val) {
|
||||
if (val == 0) {
|
||||
obj["PRESS-Pack-1-Triangle"].setColor(0.7333,0.3803,0);
|
||||
obj["PRESS-Pack-1"].setColor(0.7333,0.3803,0);
|
||||
|
@ -89,7 +89,7 @@ var canvas_lowerECAMPagePress =
|
|||
obj["PRESS-Pack-1"].setColor(0.8078,0.8039,0.8078);
|
||||
}
|
||||
}),
|
||||
props.UpdateManager.FromHashValue("flowCtlValve2", 0.1, func(val) {
|
||||
props.UpdateManager.FromHashValue("flowCtlValve2", nil, func(val) {
|
||||
if (val == 0) {
|
||||
obj["PRESS-Pack-2-Triangle"].setColor(0.7333,0.3803,0);
|
||||
obj["PRESS-Pack-2"].setColor(0.7333,0.3803,0);
|
||||
|
@ -209,7 +209,7 @@ var canvas_lowerECAMPagePress =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageSts =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -134,7 +134,7 @@ var canvas_lowerECAMPageWheel =
|
|||
}
|
||||
} else {
|
||||
me.group.setVisible(0);
|
||||
me.test.setVisible(0);
|
||||
# don't hide the test group; just let whichever page is active control it
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -67,6 +67,11 @@ foreach (var name; keys(input)) {
|
|||
emesary.GlobalTransmitter.NotifyAll(notifications.FrameNotificationAddProperty.new("A320 System Display", name, input[name]));
|
||||
}
|
||||
|
||||
var showLowerECAM = func {
|
||||
var dlg = canvas.Window.new([512, 512], "dialog").set("resize", 1);
|
||||
dlg.setCanvas(canvas_lowerECAM_base.canvas);
|
||||
}
|
||||
|
||||
setlistener("/systems/electrical/bus/ac-2", func() {
|
||||
A320SD.MainScreen.powerTransient();
|
||||
}, 0, 0);
|
|
@ -41,9 +41,9 @@
|
|||
inkscape:window-height="705"
|
||||
id="namedview371"
|
||||
showgrid="false"
|
||||
inkscape:zoom="163.84"
|
||||
inkscape:cx="931.44175"
|
||||
inkscape:cy="894.81836"
|
||||
inkscape:zoom="0.64"
|
||||
inkscape:cx="695.07573"
|
||||
inkscape:cy="944.3933"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
|
@ -116,8 +116,9 @@
|
|||
x="817.61298"
|
||||
height="5.1203089"
|
||||
width="53.195583"
|
||||
id="rect5105-2"
|
||||
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
id="CONDHotAirValveCross"
|
||||
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:label="#rect5105-2" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
|
@ -987,7 +988,7 @@
|
|||
x="560.88452"
|
||||
y="976.25214"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#0dc04b">00</tspan></text>
|
||||
<text
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="512.93152"
|
||||
|
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
@ -37,6 +37,7 @@ var SystemDisplayController = {
|
|||
ECAMTimer.start();
|
||||
},
|
||||
autoCallLoop: func() {
|
||||
if (me.mode != 3) { return; }
|
||||
me.tempFWCPhase = pts.ECAM.fwcWarningPhase.getValue();
|
||||
|
||||
if (me.Display.APU) {
|
||||
|
|
Loading…
Reference in a new issue