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 -