diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-APU.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-APU.nas
index 6f07e897..b45a809b 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-APU.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-APU.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-bleed.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-bleed.nas
index 2ce9816b..61f8a7f1 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-bleed.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-bleed.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-cond.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-cond.nas
index b0e7edaf..74b0732a 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-cond.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-cond.nas
@@ -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)) {
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-cruise.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-cruise.nas
index b0aa10f2..5548d196 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-cruise.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-cruise.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
index f01f9f09..acaa3f50 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-elec.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-elec.nas
index c33f4446..c6f4a8b6 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-elec.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-elec.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-eng.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-eng.nas
index 85a783d3..76de7471 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-eng.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-eng.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-fctl.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-fctl.nas
index c005d270..e29125f1 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-fctl.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-fctl.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-fuel.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-fuel.nas
index ff97a04b..ea3ca35b 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-fuel.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-fuel.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-hyd.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-hyd.nas
index 9c2ad593..f9673996 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-hyd.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-hyd.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-old.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-old.nas
index fc90f10a..b181dfbf 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-old.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-old.nas
@@ -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);
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-press.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-press.nas
index d89bbfe2..5dceb154 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-press.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-press.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-sts.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-sts.nas
index 7ca3bbff..009176d4 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-sts.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-sts.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-wheel.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-wheel.nas
index 7cfe1a88..87332924 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-wheel.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-wheel.nas
@@ -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
}
},
};
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
index 625f3283..02c0bc3f 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
@@ -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);
\ No newline at end of file
diff --git a/Models/Instruments/Lower-ECAM/res/cond.svg b/Models/Instruments/Lower-ECAM/res/cond.svg
index c8319978..20918f92 100644
--- a/Models/Instruments/Lower-ECAM/res/cond.svg
+++ b/Models/Instruments/Lower-ECAM/res/cond.svg
@@ -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" />
00
-