From f3dc3c069abecdef1b19c6f2c633e5394684506a Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 11:21:55 +0000 Subject: [PATCH 01/13] ELEC ECAM page - complete --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 27 + Models/Instruments/Lower-ECAM/res/elec.svg | 1305 ++++++++++++++++++ 2 files changed, 1332 insertions(+) create mode 100644 Models/Instruments/Lower-ECAM/res/elec.svg diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 8e4c3fbc..ed5707b5 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -9,6 +9,7 @@ var lowerECAM_apu = nil; var lowerECAM_eng = nil; var lowerECAM_fctl = nil; var lowerECAM_wheel = nil; +var lowerECAM_elec = nil; var lowerECAM_display = nil; var page = "eng"; var oat = getprop("/environment/temperature-degc"); @@ -109,17 +110,26 @@ var canvas_lowerECAM_base = { lowerECAM_fctl.page.hide(); lowerECAM_wheel.page.show(); lowerECAM_wheel.update(); + } else if (page == "elec") { + lowerECAM_apu.page.hide(); + lowerECAM_eng.page.hide(); + lowerECAM_fctl.page.hide(); + lowerECAM_wheel.page.hide(); + lowerECAM_elec.page.show(); + lowerECAM_elec.update(); } else { lowerECAM_apu.page.hide(); lowerECAM_eng.page.hide(); lowerECAM_fctl.page.hide(); lowerECAM_wheel.page.hide(); + lowerECAM_elec.page.hide(); } } else { lowerECAM_apu.page.hide(); lowerECAM_eng.page.hide(); lowerECAM_fctl.page.hide(); lowerECAM_wheel.page.hide(); + lowerECAM_elec.page.hide(); } }, updateBottomStatus: func() { @@ -1133,6 +1143,21 @@ var canvas_lowerECAM_wheel = { }, }; +var canvas_lowerECAM_elec = { + new: func(canvas_group, file) { + var m = {parents: [canvas_lowerECAM_elec, canvas_lowerECAM_base]}; + m.init(canvas_group, file); + + return m; + }, + getKeys: func() { + return ["TAT","SAT","GW"]; + }, + update: func() { + me.updateBottomStatus(); + }, +}; + setlistener("sim/signals/fdm-initialized", func { lowerECAM_display = canvas.new({ "name": "lowerECAM", @@ -1145,11 +1170,13 @@ setlistener("sim/signals/fdm-initialized", func { var groupEng = lowerECAM_display.createGroup(); var groupFctl = lowerECAM_display.createGroup(); var groupWheel = lowerECAM_display.createGroup(); + var groupElec = lowerECAM_display.createGroup(); lowerECAM_apu = canvas_lowerECAM_apu.new(groupApu, "Aircraft/IDG-A32X/Models/Instruments/Lower-ECAM/res/apu.svg"); lowerECAM_eng = canvas_lowerECAM_eng.new(groupEng, "Aircraft/IDG-A32X/Models/Instruments/Lower-ECAM/res/eng-eis2.svg"); lowerECAM_fctl = canvas_lowerECAM_fctl.new(groupFctl, "Aircraft/IDG-A32X/Models/Instruments/Lower-ECAM/res/fctl.svg"); lowerECAM_wheel = canvas_lowerECAM_wheel.new(groupWheel, "Aircraft/IDG-A32X/Models/Instruments/Lower-ECAM/res/wheel.svg"); + lowerECAM_elec = canvas_lowerECAM_elec.new(groupElec, "Aircraft/IDG-A32X/Models/Instruments/Lower-ECAM/res/elec.svg"); lowerECAM_update.start(); }); diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg new file mode 100644 index 00000000..d635d193 --- /dev/null +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -0,0 +1,1305 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + °C + H + °C + LBS + GW + TAT + SAT + 25 + 25 + 120000 + ELEC + + + IDG 1 000°C + LO PR + DISC + GALLEY SHED + 000°C IDG2 + LO PR + DISC + GEN + OFF + 0 + 2 + % + V + HZ + 0 + 0 + + GEN + OFF + 0 + 1 + % + V + HZ + 0 + 0 + + + + + + + AC 1 + + AC ESS + AC ESS SHED + + + AC 2 + + + V + HZ + 0 + 0 + EXT PWR + + + 0 + 0 + 0 + V + HZ + % + APU + OFF + GEN + + + + + + + + + + + + + + + DC 1 + + DC 2 + + DC ESS + SHED + V + V + V + V + A + A + A + HZ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + TR + 1 + TR + 2 + ESS TR + EMER GEN + + DC BAT + + + + From 993eb40d47dded0bfd12702acce8c4d0b381f2db Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 11:24:09 +0000 Subject: [PATCH 02/13] Forgot to save the page before pushing! --- Models/Instruments/Lower-ECAM/res/elec.svg | 319 ++++++++++++++------- 1 file changed, 218 insertions(+), 101 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index d635d193..90d4728c 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -5,7 +5,6 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="1024pt" @@ -42,9 +41,9 @@ inkscape:window-height="706" id="namedview371" showgrid="false" - inkscape:zoom="1.2803902" - inkscape:cx="979.10882" - inkscape:cy="1003.8031" + inkscape:zoom="0.32153204" + inkscape:cx="594.51813" + inkscape:cy="568.67245" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -53,14 +52,12 @@ type="xygrid" id="grid5153" /> - + IDG 1 000°C + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#cdcecd;fill-opacity:1">IDG 000°C LO PR 000°C IDG2 + sodipodi:role="line">000°C IDG AC ESS 0 % - APU + OFF - GEN 0 + + TR - 1 - TR - 2 - ESS TR + style="fill:#cdcecd;fill-opacity:1;">ESS TR + + V + A + 0 + 0 + + + V + A + 0 + 0 + + + OFF + OFF + + + 2 + 1 From cfb9b2eae340c991f82ad6a0a96940dd34bb9850 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 12:09:28 +0000 Subject: [PATCH 03/13] Add battery indications to ECAM, rename all objects --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 28 +- Models/Instruments/Lower-ECAM/res/elec.svg | 613 +++++++++++-------- 2 files changed, 398 insertions(+), 243 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index f81d5ee2..4344d767 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1151,9 +1151,35 @@ var canvas_lowerECAM_elec = { return m; }, getKeys: func() { - return ["TAT","SAT","GW"]; + return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off"]; }, update: func() { + if (getprop("/controls/electrical/switches/battery1") == 0) { + me["BAT1volts"].hide(); + me["BAT1amps"].hide(); + me["BAT1v"].hide(); + me["BAT1a"].hide(); + me["BAT1off"].show(); + } else { + me["BAT1volts"].show(); + me["BAT1amps"].show(); + me["BAT1v"].show(); + me["BAT1a"].show(); + me["BAT1off"].hide(); + } + if (getprop("/controls/electrical/switches/battery2") == 0) { + me["BAT2volts"].hide(); + me["BAT2amps"].hide(); + me["BAT2v"].hide(); + me["BAT2a"].hide(); + me["BAT2off"].show(); + } else { + me["BAT2volts"].show(); + me["BAT2amps"].show(); + me["BAT2v"].show(); + me["BAT2a"].show(); + me["BAT2off"].hide(); + } me.updateBottomStatus(); }, }; diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index 90d4728c..46ae97a1 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -41,9 +41,9 @@ inkscape:window-height="706" id="namedview371" showgrid="false" - inkscape:zoom="0.32153204" - inkscape:cx="594.51813" - inkscape:cy="568.67245" + inkscape:zoom="0.49" + inkscape:cx="838.86158" + inkscape:cy="803.35319" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -53,25 +53,28 @@ id="grid5153" /> + sodipodi:nodetypes="cccccccc" + inkscape:label="#path4406" /> + id="ACESSrect" + style="opacity:1;fill:#898989;fill-opacity:1;stroke:#898989;stroke-width:2.76148129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#rect4228" /> + y="487.30753" + inkscape:label="#rect4220" /> + sodipodi:nodetypes="cccccc" + inkscape:label="#path4311" /> GEN 0 1 + style="fill:none;fill-rule:evenodd;stroke:#cdcecd;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4349" /> + id="ACbustie" + inkscape:connector-curvature="0" + inkscape:label="#path4351" /> + id="GEN2connector" + inkscape:connector-curvature="0" + inkscape:label="#path4355" /> + sodipodi:nodetypes="cccccccc" + inkscape:label="#path4357" /> + style="fill:none;fill-rule:evenodd;stroke:#11ba50;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4362" /> + sodipodi:nodetypes="cccccccc" + inkscape:label="#path4364" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4226" /> + style="fill:none;fill-rule:evenodd;stroke:#11ba50;stroke-width:2.51326656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4238" /> + id="AC2rect" + style="opacity:1;fill:#898989;fill-opacity:1;stroke:#898989;stroke-width:2.4000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#rect4240" /> + sodipodi:nodetypes="ccccccccc" + inkscape:label="#path4246" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4251" /> + style="fill:none;fill-rule:evenodd;stroke:#cdcecd;stroke-width:2.61324215;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4275" /> + id="APUgenconnector" + inkscape:label="#path4277" /> HZ + id="APUgenlabel" + inkscape:label="#text4306" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4266" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4268" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4270" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4272" /> + style="fill:none;fill-rule:evenodd;stroke:#cdcecd;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4271" /> + style="fill:none;fill-rule:evenodd;stroke:#11ba50;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4273" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4276" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4278" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4280" /> + id="ESSTRtoDCESSconnector" + inkscape:label="#path4282" /> + sodipodi:nodetypes="cccccccc" + inkscape:label="#path4288" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4279" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4281" /> + id="DC1rect" + style="opacity:1;fill:#898989;fill-opacity:1;stroke:#898989;stroke-width:2.4000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#rect4283" /> DC 1 + y="211.23915" + inkscape:label="#rect4289" /> + id="DCESSrect" + style="opacity:1;fill:#898989;fill-opacity:1;stroke:#898989;stroke-width:2.4000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#rect4300" /> + id="TR1label" + inkscape:label="#text4380" /> + id="TR2text" + inkscape:label="#text4388" /> EMER GEN + y="128.68787" + inkscape:label="#rect4335" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4342" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4344" /> + sodipodi:nodetypes="ccc" + inkscape:label="#path4346" /> + sodipodi:nodetypes="ccccc" + inkscape:label="#path4348" /> + id="BAT1text" + inkscape:label="#text4366" /> + style="fill:none;fill-rule:evenodd;stroke:#cdcecd;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="#path4374" /> + id="BAT2text" + inkscape:label="#text4393" /> + sodipodi:nodetypes="ccccccc" + inkscape:label="#path4401" /> OFF + sodipodi:nodetypes="cc" + inkscape:label="#path4418" /> + sodipodi:nodetypes="cc" + inkscape:label="#path4420" /> 1 + From fba8e3d90951be12be800b5e5bff11c42bcd975f Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 12:33:24 +0000 Subject: [PATCH 04/13] Bugfix --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 4344d767..94110328 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1151,7 +1151,7 @@ var canvas_lowerECAM_elec = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off"]; + return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off"]; }, update: func() { if (getprop("/controls/electrical/switches/battery1") == 0) { From 2f6186ce30888d3e7bbfa26aa467d9f7869e9688 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 15:55:16 +0000 Subject: [PATCH 05/13] Improve Electrical System --- AircraftConfig/fail.xml | 10 ++++++ Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 5 +++ Models/Instruments/OHpanel/OHpanel.xml | 36 +++++++++++++++----- Nasal/electrical.nas | 35 +++++++++++++++++-- Nasal/libraries.nas | 2 ++ Nasal/pneumatics.nas | 4 +-- 6 files changed, 79 insertions(+), 13 deletions(-) diff --git a/AircraftConfig/fail.xml b/AircraftConfig/fail.xml index ca52e330..123163b5 100644 --- a/AircraftConfig/fail.xml +++ b/AircraftConfig/fail.xml @@ -203,6 +203,16 @@ true + + + left + /systems/failures/ventfan + + dialog-apply + + true + + diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 94110328..28a17ef5 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1180,6 +1180,11 @@ var canvas_lowerECAM_elec = { me["BAT2a"].show(); me["BAT2off"].hide(); } + + me["BAT1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-volts"))); + me["BAT2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-volts"))); + me["BAT1amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-amps"))); + me["BAT2amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-amps"))); me.updateBottomStatus(); }, }; diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml index 71c6f0f3..aff098a3 100644 --- a/Models/Instruments/OHpanel/OHpanel.xml +++ b/Models/Instruments/OHpanel/OHpanel.xml @@ -17,9 +17,7 @@ select ACESSFeedBtn1F ACESSFeedBtn2O - ACPack1Btn1F ACPack1Btn2O - ACPack2Btn1F ACPack2Btn2O APUBleedBtn1F APUBleedBtn2O @@ -47,11 +45,19 @@ Eng2FireAgt2Btn1S Eng2FireAgt2Btn2D ExtPwrBtn2O - Gen1Btn1F Gen1Btn2O - Gen2Btn1F Gen2Btn2O RamAirBtn2O + + + ELAC1Btn1F + FAC1Btn1F + SECBtn1F + VentBlowBtn1F + Gen1Btn1F + Gen2Btn1F + ACPack1Btn1F + ACPack2Btn1F @@ -98,7 +104,6 @@ CFuelTank2Btn1F CFuelTank2Btn2O CrewOxyBtn2O - ELAC1Btn1F ELAC1Btn2O ELAC2Btn1F ELAC2Btn2O @@ -117,7 +122,6 @@ Eng2ManStartBtn2O EvacCommandBtn1E EvacCommandBtn2O - FAC1Btn1F FAC1Btn2O FAC2Btn1F FAC2Btn2O @@ -165,13 +169,11 @@ RFuelTank1Btn2O RFuelTank2Btn1F RFuelTank2Btn2O - SEC1Btn1F SEC1Btn2O SEC2Btn1F SEC2Btn2O SEC3Btn1F SEC3Btn2O - VentBlowBtn1F VentBlowBtn2O VentExtractBtn1F VentExtractBtn2O @@ -220,7 +222,6 @@ Gen1LineBtn1S Gen1LineBtn2O RcdrGndCtlBtn2O - VentBlowBtn1F VentBlowBtn2O VentExtractBtn1F VentExtractBtn2O @@ -248,6 +249,23 @@ + + + select + VentBlowBtn1F + + + + /systems/ventilation/ventfan-fault + 1 + + + controls/switches/annun-test + 1 + + + + select diff --git a/Nasal/electrical.nas b/Nasal/electrical.nas index 3c852c16..cd0dc3ef 100644 --- a/Nasal/electrical.nas +++ b/Nasal/electrical.nas @@ -538,7 +538,7 @@ var master_elec = func { setprop("/systems/electrical/batt2-fault", 0); } - if ((gen1_fail and gen1_sw) or (gen1_sw and stateL != 3)) { + if (getprop("systems/electrical/battery2-amps") > 120 and (gen1_fail and gen1_sw) or (gen1_sw and stateL != 3)) { setprop("/systems/electrical/gen1-fault", 1); } else { setprop("/systems/electrical/gen1-fault", 0); @@ -556,13 +556,44 @@ var master_elec = func { setprop("/systems/electrical/apugen-fault", 0); } - if ((gen2_fail and gen2_sw) or (gen2_sw and stateR != 3)) { + if (getprop("systems/electrical/battery2-amps") > 120 and (gen2_fail and gen2_sw) or (gen2_sw and stateR != 3)) { setprop("/systems/electrical/gen2-fault", 1); } else { setprop("/systems/electrical/gen2-fault", 0); } + + if (getprop("/systems/failures/sec1-fail-time") + 5 >= getprop("/sim/time/elapsed-sec")) { + setprop("/systems/failures/sec1", 1); + } else { + setprop("/systems/failures/sec1", 0); + setprop("/systems/failures/sec1-fail-time", 0); + } + + if (getprop("/systems/electrical/bus/ac1") >= 110 or getprop("/systems/electrical/bus/dc1") >= 25 or getprop("/systems/failures/ventfan") == 1) { + setprop("/systems/ventilation/ventfan-fault", 0); + } else if (getprop("/systems/electrical/battery2-amps") > 120) { + setprop("/systems/ventilation/ventfan-fault", 1); + } } +setlistener("/controls/electrical/switches/battery2", func { + if (getprop("/controls/electrical/switches/battery2") == 1) { + setprop("/systems/failures/elac1", 1); + setprop("/systems/failures/sec1", 1); + setprop("/systems/failures/fac1", 1); + + setprop("/systems/failures/sec1-fail-time", getprop("/sim/time/elapsed-sec")); + } else if (getprop("/systems/electrical/bus/dc-ess") >= 25 or getprop("/systems/electrical/bus/ac-ess") >= 25) { + setprop("/systems/failures/elac1", 0); + setprop("/systems/failures/sec1", 0); + setprop("/systems/failures/fac1", 0); + } else { + setprop("/systems/failures/elac1", 1); + setprop("/systems/failures/sec1", 1); + setprop("/systems/failures/fac1", 1); + } + +}); ################### # Update Function # ################### diff --git a/Nasal/libraries.nas b/Nasal/libraries.nas index 8bf5971b..2e66f63d 100644 --- a/Nasal/libraries.nas +++ b/Nasal/libraries.nas @@ -27,6 +27,8 @@ var qty2 = math.round((rand() * 5 ) + 20, 0.1); setprop("/engines/engine[0]/oil-qt-actual", qty1); setprop("/engines/engine[1]/oil-qt-actual", qty2); +# Failures +setprop("/systems/failures/sec1-fail-time", 0); ########## # Lights # ########## diff --git a/Nasal/pneumatics.nas b/Nasal/pneumatics.nas index 22f82c77..0fc14d44 100644 --- a/Nasal/pneumatics.nas +++ b/Nasal/pneumatics.nas @@ -369,13 +369,13 @@ var master_pneu = func { setprop("/systems/pneumatic/bleedapu-fault", 0); } - if ((pack1_fail and pack1_sw) or (pack1_sw and pack1 <= 5)) { + if (getprop("systems/electrical/battery2-amps") > 120 and (pack1_fail and pack1_sw) or (pack1_sw and pack1 <= 5)) { setprop("/systems/pneumatic/pack1-fault", 1); } else { setprop("/systems/pneumatic/pack1-fault", 0); } - if ((pack2_fail and pack2_sw) or (pack2_sw and pack2 <= 5)) { + if (getprop("systems/electrical/battery2-amps") > 120 and (pack2_fail and pack2_sw) or (pack2_sw and pack2 <= 5)) { setprop("/systems/pneumatic/pack2-fault", 1); } else { setprop("/systems/pneumatic/pack2-fault", 0); From d1f1072db169adf230e818eedbe47144156ddf32 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Tue, 31 Oct 2017 16:40:40 +0000 Subject: [PATCH 06/13] Add Battery Contatcors --- Nasal/electrical.nas | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/Nasal/electrical.nas b/Nasal/electrical.nas index cd0dc3ef..ede76155 100644 --- a/Nasal/electrical.nas +++ b/Nasal/electrical.nas @@ -30,6 +30,8 @@ setlistener("/sim/signals/fdm-initialized", func { var battery2_sw = getprop("/controls/electrical/switches/battery2"); var battery1_volts = getprop("/systems/electrical/battery1-volts"); var battery2_volts = getprop("/systems/electrical/battery2-volts"); + var bat1_cont = getprop("/systems/electrical/battery1-contact"); + var bat2_cont = getprop("/systems/electrical/battery2-contact"); var rpmapu = getprop("/systems/apu/rpm"); var extpwr_on = getprop("/controls/switches/cart"); var stateL = getprop("/engines/engine[0]/state"); @@ -60,6 +62,7 @@ setlistener("/sim/signals/fdm-initialized", func { var bat1_volts = getprop("/systems/electrical/battery1-volts"); var bat2_volts = getprop("/systems/electrical/battery2-volts"); var replay = getprop("/sim/replay/replay-state"); + var wow = getprop("/gear/gear[1]/wow"); }); var elec_init = func { @@ -80,6 +83,8 @@ var elec_init = func { setprop("/systems/electrical/battery2-volts", 25.9); setprop("/systems/electrical/battery1-amps", 0); setprop("/systems/electrical/battery2-amps", 0); + setprop("/systems/electrical/battery1-contact", 0); + setprop("/systems/electrical/battery2-contact", 0); setprop("/systems/electrical/bus/dc1", 0); setprop("/systems/electrical/bus/dc2", 0); setprop("/systems/electrical/bus/dcbat", 0); @@ -191,6 +196,9 @@ var master_elec = func { gen1_fail = getprop("/systems/failures/elec-gen1"); gen2_fail = getprop("/systems/failures/elec-gen2"); replay = getprop("/sim/replay/replay-state"); + bat1_cont = getprop("/systems/electrical/battery1-contact"); + bat2_cont = getprop("/systems/electrical/battery2-contact"); + wow = getprop("/gear/gear[1]/wow"); if (extpwr_on and gen_ext_sw) { setprop("/systems/electrical/gen-ext", 1); @@ -403,16 +411,32 @@ var master_elec = func { setprop("/systems/electrical/battery2-amps", 0); } - if ((getprop("/systems/electrical/battery1-amps") > 120) or (getprop("/systems/electrical/battery2-amps") > 120)) { + dc1 = getprop("/systems/electrical/bus/dc1"); + dc2 = getprop("/systems/electrical/bus/dc2"); + + if ((getprop("/systems/electrical/battery1-amps") > 120) or (getprop("/systems/electrical/battery2-amps") > 120) or dc1 > 25 or dc2 > 25) { setprop("/systems/electrical/bus/dcbat", dc_volt_std); } else { setprop("/systems/electrical/bus/dcbat", 0); } - dc1 = getprop("/systems/electrical/bus/dc1"); - dc2 = getprop("/systems/electrical/bus/dc2"); + if (battery1_volts < 26.5 or (rpmapu < 95 and getprop("/controls/APU/master") == 1) or (ac1 == 0 and ac2 == 0 and ias < 100)) { + setprop("/systems/electrical/battery1-contact", 1); + } else if (battery1_sw and wow and battery1_volts < 24.9 and !gen_apu_sw and !gen_ext_sw) { + setprop("/systems/electrical/battery1-contact", 0); + } else { + setprop("/systems/electrical/battery1-contact", 0); + } - if (battery1_volts < 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { + if (battery2_volts < 26.5 or (rpmapu < 95 and getprop("/controls/APU/master") == 1) or (ac1 == 0 and ac2 == 0 and ias < 100)) { + setprop("/systems/electrical/battery2-contact", 1); + } else if (battery2_sw and wow and battery2_volts < 24.9 and !gen_apu_sw and !gen_ext_sw) { + setprop("/systems/electrical/battery2-contact", 0); + } else { + setprop("/systems/electrical/battery2-contact", 0); + } + + if (battery1_volts < 26.5 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { decharge1.stop(); charge1.start(); } else if (battery1_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { @@ -426,7 +450,7 @@ var master_elec = func { charge1.stop(); } - if (battery2_volts < 27.9 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { + if (battery2_volts < 26.5 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { decharge2.stop(); charge2.start(); } else if (battery2_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { From 218d52d394c1a6da0f0832ce4995205d1fb2c136 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Wed, 1 Nov 2017 20:02:38 -0400 Subject: [PATCH 07/13] Fixes by Richard --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 9 ++- Models/Instruments/Lower-ECAM/res/elec.svg | 64 ++++++++++---------- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 28a17ef5..764930fa 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1151,7 +1151,7 @@ var canvas_lowerECAM_elec = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off"]; + return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","EMERGENvolts"]; }, update: func() { if (getprop("/controls/electrical/switches/battery1") == 0) { @@ -1183,8 +1183,11 @@ var canvas_lowerECAM_elec = { me["BAT1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-volts"))); me["BAT2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-volts"))); - me["BAT1amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-amps"))); - me["BAT2amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-amps"))); + me["BAT1amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery1-amps"))); + me["BAT2amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery2-amps"))); + + me["TR1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-volts"))); + me["EMERGENvolts"].setText(sprintf("%3.0f", "1")); me.updateBottomStatus(); }, }; diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index 46ae97a1..4ebd3931 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -41,9 +41,9 @@ inkscape:window-height="706" id="namedview371" showgrid="false" - inkscape:zoom="0.49" - inkscape:cx="838.86158" - inkscape:cy="803.35319" + inkscape:zoom="1.3859293" + inkscape:cx="713.20192" + inkscape:cy="765.07182" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -1160,18 +1160,18 @@ sodipodi:linespacing="125%" id="TR1volts" y="357.78845" - x="112.82855" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:43.94145203px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#11ba50;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="199.05309" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:43.94145203px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" xml:space="preserve" inkscape:label="#text4348"> 0 + sodipodi:role="line">000 0 + x="198.64162" + y="394.29761">000 0 + x="482.30896" + y="395.12476">000 0 + sodipodi:role="line">000 0 + sodipodi:role="line">000 0 + x="733.65741" + y="403.01285">000 Date: Fri, 3 Nov 2017 21:22:58 -0400 Subject: [PATCH 08/13] fix some things --- Models/Instruments/Lower-ECAM/res/elec.svg | 216 ++++++++++----------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index 4ebd3931..31336534 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -42,8 +42,8 @@ id="namedview371" showgrid="false" inkscape:zoom="1.3859293" - inkscape:cx="713.20192" - inkscape:cy="765.07182" + inkscape:cx="222.12227" + inkscape:cy="924.66459" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -52,6 +52,110 @@ type="xygrid" id="grid5153" /> + 000 + 000 + 000 + 000 + 000 + 000 + 000 + 000 000 000 - 000 - 000 - 000 - 000 A - 0 - 0 A - 0 - 0 Date: Sat, 4 Nov 2017 19:46:48 -0400 Subject: [PATCH 09/13] Fixing the alignment and expanding the function --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 11 ++- Models/Instruments/Lower-ECAM/res/elec.svg | 78 ++++++++++---------- 2 files changed, 47 insertions(+), 42 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 764930fa..44c92d4d 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1151,7 +1151,7 @@ var canvas_lowerECAM_elec = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","EMERGENvolts"]; + return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","TR1amps","TR2volts","TR2amps","EMERGENvolts","EXTvolts","EXThz"]; }, update: func() { if (getprop("/controls/electrical/switches/battery1") == 0) { @@ -1186,8 +1186,13 @@ var canvas_lowerECAM_elec = { me["BAT1amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery1-amps"))); me["BAT2amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery2-amps"))); - me["TR1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-volts"))); - me["EMERGENvolts"].setText(sprintf("%3.0f", "1")); + me["TR1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/dc1"))); + me["TR1amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc1-amps"))); + me["TR2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/dc2"))); + me["TR2amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc2-amps"))); + + me["EXTvolts"].setText(sprintf("%2.0f", getprop("/systems/electrical/extra/ext-volts"))); + me["EXThz"].setText(sprintf("%2.0f", getprop("/systems/electrical/extra/ext-hz"))); me.updateBottomStatus(); }, }; diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index 31336534..216fec36 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -41,9 +41,9 @@ inkscape:window-height="706" id="namedview371" showgrid="false" - inkscape:zoom="1.3859293" - inkscape:cx="222.12227" - inkscape:cy="924.66459" + inkscape:zoom="1.13" + inkscape:cx="790.96106" + inkscape:cy="891.32878" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -52,10 +52,36 @@ type="xygrid" id="grid5153" /> + 000 + 000 000 000 000 000 - 0 - 0 Date: Mon, 6 Nov 2017 17:45:50 -0400 Subject: [PATCH 10/13] Update ECAM to new colors (wheel SVG only, .nas is updated) and improve WHEEL ECAM --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 281 ++++++++++++------- Models/Instruments/Lower-ECAM/res/elec.svg | 247 ++++++++-------- Nasal/electrical.nas | 12 +- Systems/lower-ecam.xml | 32 +++ 4 files changed, 350 insertions(+), 222 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 44c92d4d..558b7e61 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -31,6 +31,10 @@ var accum = 0; setprop("/systems/electrical/extra/apu-load", 0); setprop("/systems/electrical/extra/apu-volts", 0); setprop("/systems/electrical/extra/apu-hz", 0); +setprop("/systems/electrical/bat1direction", 0); +setprop("/systems/electrical/bat2direction", 0); +setprop("/ECAM/Lower/bat1-contactrotation", 0); +setprop("/ECAM/Lower/bat2-contactrotation", 0); setprop("/systems/pneumatic/bleedapu", 0); setprop("/engines/engine[0]/oil-psi-actual", 0); setprop("/engines/engine[1]/oil-psi-actual", 0); @@ -174,13 +178,13 @@ var canvas_lowerECAM_apu = { # APU Gen if (getprop("/systems/electrical/extra/apu-volts") > 110) { - me["APUGenVolt"].setColor(0.0667,0.7294,0.3137); + me["APUGenVolt"].setColor(0.0667,0.9450,0.3686); } else { me["APUGenVolt"].setColor(0.7333,0.3803,0); } if (getprop("/systems/electrical/extra/apu-hz") > 380) { - me["APUGenHz"].setColor(0.0667,0.7294,0.3137); + me["APUGenHz"].setColor(0.0667,0.9450,0.3686); } else { me["APUGenHz"].setColor(0.7333,0.3803,0); } @@ -221,7 +225,7 @@ var canvas_lowerECAM_apu = { # APU Bleed if (getprop("/controls/adirs/ir[1]/knob") != 1 and (getprop("/controls/APU/master") == 1 or getprop("/systems/pneumatic/bleedapu") > 0)) { - me["APUBleedPSI"].setColor(0.0667,0.7294,0.3137); + me["APUBleedPSI"].setColor(0.0667,0.9450,0.3686); me["APUBleedPSI"].setText(sprintf("%s", math.round(getprop("/systems/pneumatic/bleedapu")))); } else { me["APUBleedPSI"].setColor(0.7333,0.3803,0); @@ -238,14 +242,14 @@ var canvas_lowerECAM_apu = { # APU N and EGT if (getprop("/controls/APU/master") == 1) { - me["APUN"].setColor(0.0667,0.7294,0.3137); + me["APUN"].setColor(0.0667,0.9450,0.3686); me["APUN"].setText(sprintf("%s", math.round(getprop("/systems/apu/rpm")))); - me["APUEGT"].setColor(0.0667,0.7294,0.3137); + me["APUEGT"].setColor(0.0667,0.9450,0.3686); me["APUEGT"].setText(sprintf("%s", math.round(getprop("/systems/apu/egt")))); } else if (getprop("/systems/apu/rpm") >= 1) { - me["APUN"].setColor(0.0667,0.7294,0.3137); + me["APUN"].setColor(0.0667,0.9450,0.3686); me["APUN"].setText(sprintf("%s", math.round(getprop("/systems/apu/rpm")))); - me["APUEGT"].setColor(0.0667,0.7294,0.3137); + me["APUEGT"].setColor(0.0667,0.9450,0.3686); me["APUEGT"].setText(sprintf("%s", math.round(getprop("/systems/apu/egt")))); } else { me["APUN"].setColor(0.7333,0.3803,0); @@ -282,16 +286,16 @@ var canvas_lowerECAM_eng = { # Oil Pressure if (getprop("/engines/engine[0]/oil-psi-actual") >= 20) { - me["OilPSI1"].setColor(0.0667,0.7294,0.3137); - me["OilPSI1-needle"].setColorFill(0.0667,0.7294,0.3137); + me["OilPSI1"].setColor(0.0667,0.9450,0.3686); + me["OilPSI1-needle"].setColorFill(0.0667,0.9450,0.3686); } else { me["OilPSI1"].setColor(1,0,0); me["OilPSI1-needle"].setColorFill(1,0,0); } if (getprop("/engines/engine[1]/oil-psi-actual") >= 20) { - me["OilPSI2"].setColor(0.0667,0.7294,0.3137); - me["OilPSI2-needle"].setColorFill(0.0667,0.7294,0.3137); + me["OilPSI2"].setColor(0.0667,0.9450,0.3686); + me["OilPSI2-needle"].setColorFill(0.0667,0.9450,0.3686); } else { me["OilPSI2"].setColor(1,0,0); me["OilPSI2-needle"].setColorFill(1,0,0); @@ -340,9 +344,9 @@ var canvas_lowerECAM_fctl = { me["PTupdn"].setColor(0.7333,0.3803,0); me["PTcc"].setColor(0.7333,0.3803,0); } else { - me["PT"].setColor(0.0667,0.7294,0.3137); - me["PTupdn"].setColor(0.0667,0.7294,0.3137); - me["PTcc"].setColor(0.0667,0.7294,0.3137); + me["PT"].setColor(0.0667,0.9450,0.3686); + me["PTupdn"].setColor(0.0667,0.9450,0.3686); + me["PTcc"].setColor(0.0667,0.9450,0.3686); } # Ailerons @@ -353,8 +357,8 @@ var canvas_lowerECAM_fctl = { me["ailL"].setColor(0.7333,0.3803,0); me["ailR"].setColor(0.7333,0.3803,0); } else { - me["ailL"].setColor(0.0667,0.7294,0.3137); - me["ailR"].setColor(0.0667,0.7294,0.3137); + me["ailL"].setColor(0.0667,0.9450,0.3686); + me["ailR"].setColor(0.0667,0.9450,0.3686); } # Elevators @@ -364,13 +368,13 @@ var canvas_lowerECAM_fctl = { if (blue_psi < 1500 and green_psi < 1500) { me["elevL"].setColor(0.7333,0.3803,0); } else { - me["elevL"].setColor(0.0667,0.7294,0.3137); + me["elevL"].setColor(0.0667,0.9450,0.3686); } if (blue_psi < 1500 and yellow_psi < 1500) { me["elevR"].setColor(0.7333,0.3803,0); } else { - me["elevR"].setColor(0.0667,0.7294,0.3137); + me["elevR"].setColor(0.0667,0.9450,0.3686); } # Rudder @@ -379,7 +383,7 @@ var canvas_lowerECAM_fctl = { if (blue_psi < 1500 and yellow_psi < 1500 and green_psi < 1500) { me["rudder"].setColor(0.7333,0.3803,0); } else { - me["rudder"].setColor(0.0667,0.7294,0.3137); + me["rudder"].setColor(0.0667,0.9450,0.3686); } # Spoilers @@ -473,8 +477,8 @@ var canvas_lowerECAM_fctl = { me["spoiler1Lf"].hide(); } } else { - me["spoiler1Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler1Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler1Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler1Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler1Lf"].hide(); } @@ -487,8 +491,8 @@ var canvas_lowerECAM_fctl = { me["spoiler2Lf"].hide(); } } else { - me["spoiler2Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler2Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler2Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler2Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler2Lf"].hide(); } @@ -501,8 +505,8 @@ var canvas_lowerECAM_fctl = { me["spoiler3Lf"].hide(); } } else { - me["spoiler3Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler3Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler3Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler3Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler3Lf"].hide(); } @@ -515,8 +519,8 @@ var canvas_lowerECAM_fctl = { me["spoiler4Lf"].hide(); } } else { - me["spoiler4Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler4Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler4Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler4Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler4Lf"].hide(); } @@ -529,8 +533,8 @@ var canvas_lowerECAM_fctl = { me["spoiler5Lf"].hide(); } } else { - me["spoiler5Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler5Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler5Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler5Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler5Lf"].hide(); } @@ -543,8 +547,8 @@ var canvas_lowerECAM_fctl = { me["spoiler1Rf"].hide(); } } else { - me["spoiler1Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler1Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler1Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler1Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler1Rf"].hide(); } @@ -557,8 +561,8 @@ var canvas_lowerECAM_fctl = { me["spoiler2Rf"].hide(); } } else { - me["spoiler2Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler2Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler2Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler2Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler2Rf"].hide(); } @@ -571,8 +575,8 @@ var canvas_lowerECAM_fctl = { me["spoiler3Rf"].hide(); } } else { - me["spoiler3Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler3Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler3Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler3Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler3Rf"].hide(); } @@ -585,8 +589,8 @@ var canvas_lowerECAM_fctl = { me["spoiler4Rf"].hide(); } } else { - me["spoiler4Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler4Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler4Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler4Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler4Rf"].hide(); } @@ -599,47 +603,47 @@ var canvas_lowerECAM_fctl = { me["spoiler5Rf"].hide(); } } else { - me["spoiler5Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler5Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler5Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler5Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler5Rf"].hide(); } # Flight Computers if (getprop("/systems/fctl/elac1")) { - me["elac1"].setColor(0.0667,0.7294,0.3137); - me["path4249"].setColor(0.0667,0.7294,0.3137); + me["elac1"].setColor(0.0667,0.9450,0.3686); + me["path4249"].setColor(0.0667,0.9450,0.3686); } else if ((getprop("/systems/fctl/elac1") == 0) or (getprop("/systems/failures/elac1") == 1)) { me["elac1"].setColor(0.7333,0.3803,0); me["path4249"].setColor(0.7333,0.3803,0); } if (getprop("/systems/fctl/elac2")) { - me["elac2"].setColor(0.0667,0.7294,0.3137); - me["path4249-3"].setColor(0.0667,0.7294,0.3137); + me["elac2"].setColor(0.0667,0.9450,0.3686); + me["path4249-3"].setColor(0.0667,0.9450,0.3686); } else if ((getprop("/systems/fctl/elac2") == 0) or (getprop("/systems/failures/elac2") == 1)) { me["elac2"].setColor(0.7333,0.3803,0); me["path4249-3"].setColor(0.7333,0.3803,0); } if (getprop("/systems/fctl/sec1")) { - me["sec1"].setColor(0.0667,0.7294,0.3137); - me["path4249-3-6-7"].setColor(0.0667,0.7294,0.3137); + me["sec1"].setColor(0.0667,0.9450,0.3686); + me["path4249-3-6-7"].setColor(0.0667,0.9450,0.3686); } else if ((getprop("/systems/fctl/sec1") == 0) or (getprop("/systems/failures/sec1") == 1)) { me["sec1"].setColor(0.7333,0.3803,0); me["path4249-3-6-7"].setColor(0.7333,0.3803,0); } if (getprop("/systems/fctl/sec2")) { - me["sec2"].setColor(0.0667,0.7294,0.3137); - me["path4249-3-6-7-5"].setColor(0.0667,0.7294,0.3137); + me["sec2"].setColor(0.0667,0.9450,0.3686); + me["path4249-3-6-7-5"].setColor(0.0667,0.9450,0.3686); } else if ((getprop("/systems/fctl/sec2") == 0) or (getprop("/systems/failures/sec2") == 1)) { me["sec2"].setColor(0.7333,0.3803,0); me["path4249-3-6-7-5"].setColor(0.7333,0.3803,0); } if (getprop("/systems/fctl/sec3")) { - me["sec3"].setColor(0.0667,0.7294,0.3137); - me["path4249-3-6"].setColor(0.0667,0.7294,0.3137); + me["sec3"].setColor(0.0667,0.9450,0.3686); + me["path4249-3-6"].setColor(0.0667,0.9450,0.3686); } else if ((getprop("/systems/fctl/sec3") == 0) or (getprop("/systems/failures/sec3") == 1)) { me["sec3"].setColor(0.7333,0.3803,0); me["path4249-3-6"].setColor(0.7333,0.3803,0); @@ -647,12 +651,12 @@ var canvas_lowerECAM_fctl = { # Hydraulic Indicators if (getprop("/systems/hydraulic/blue-psi") >= 1500) { - me["ailLblue"].setColor(0.0667,0.7294,0.3137); - me["ailRblue"].setColor(0.0667,0.7294,0.3137); - me["elevLblue"].setColor(0.0667,0.7294,0.3137); - me["elevRblue"].setColor(0.0667,0.7294,0.3137); - me["rudderblue"].setColor(0.0667,0.7294,0.3137); - me["spdbrkblue"].setColor(0.0667,0.7294,0.3137); + me["ailLblue"].setColor(0.0667,0.9450,0.3686); + me["ailRblue"].setColor(0.0667,0.9450,0.3686); + me["elevLblue"].setColor(0.0667,0.9450,0.3686); + me["elevRblue"].setColor(0.0667,0.9450,0.3686); + me["rudderblue"].setColor(0.0667,0.9450,0.3686); + me["spdbrkblue"].setColor(0.0667,0.9450,0.3686); } else { me["ailLblue"].setColor(0.7333,0.3803,0); me["ailRblue"].setColor(0.7333,0.3803,0); @@ -663,12 +667,12 @@ var canvas_lowerECAM_fctl = { } if (getprop("/systems/hydraulic/green-psi") >= 1500) { - me["ailLgreen"].setColor(0.0667,0.7294,0.3137); - me["ailRgreen"].setColor(0.0667,0.7294,0.3137); - me["elevLgreen"].setColor(0.0667,0.7294,0.3137); - me["ruddergreen"].setColor(0.0667,0.7294,0.3137); - me["PTgreen"].setColor(0.0667,0.7294,0.3137); - me["spdbrkgreen"].setColor(0.0667,0.7294,0.3137); + me["ailLgreen"].setColor(0.0667,0.9450,0.3686); + me["ailRgreen"].setColor(0.0667,0.9450,0.3686); + me["elevLgreen"].setColor(0.0667,0.9450,0.3686); + me["ruddergreen"].setColor(0.0667,0.9450,0.3686); + me["PTgreen"].setColor(0.0667,0.9450,0.3686); + me["spdbrkgreen"].setColor(0.0667,0.9450,0.3686); } else { me["ailLgreen"].setColor(0.7333,0.3803,0); me["ailRgreen"].setColor(0.7333,0.3803,0); @@ -679,10 +683,10 @@ var canvas_lowerECAM_fctl = { } if (getprop("/systems/hydraulic/yellow-psi") >= 1500) { - me["elevRyellow"].setColor(0.0667,0.7294,0.3137); - me["rudderyellow"].setColor(0.0667,0.7294,0.3137); - me["PTyellow"].setColor(0.0667,0.7294,0.3137); - me["spdbrkyellow"].setColor(0.0667,0.7294,0.3137); + me["elevRyellow"].setColor(0.0667,0.9450,0.3686); + me["rudderyellow"].setColor(0.0667,0.9450,0.3686); + me["PTyellow"].setColor(0.0667,0.9450,0.3686); + me["spdbrkyellow"].setColor(0.0667,0.9450,0.3686); } else { me["elevRyellow"].setColor(0.7333,0.3803,0); me["rudderyellow"].setColor(0.7333,0.3803,0); @@ -742,7 +746,7 @@ var canvas_lowerECAM_wheel = { } else if (!askidsw and yellow_psi >= 1500) { me["NWStext"].show(); me["NWS"].show(); - me["NWS"].setColor(0.0667,0.7294,0.3137); + me["NWS"].setColor(0.0667,0.9450,0.3686); me["NWSrect"].show(); me["antiskidtext"].show(); me["antiskidtext"].setColor(0.7333,0.3803,0); @@ -771,7 +775,7 @@ var canvas_lowerECAM_wheel = { me["NORMbrk"].show(); me["normbrk-rect"].show(); me["NORMbrk"].setColor(0.7333,0.3803,0); - me["normbrkhyd"].setColor(0.0667,0.7294,0.3137); + me["normbrkhyd"].setColor(0.0667,0.9450,0.3686); } else if (green_psi < 1500 or !askidsw) { me["NORMbrk"].show(); me["normbrk-rect"].show(); @@ -786,7 +790,7 @@ var canvas_lowerECAM_wheel = { } else if (yellow_psi >= 1500) { me["ALTNbrk"].show(); me["altnbrk-rect"].show(); - me["altnbrkhyd"].setColor(0.0667,0.7294,0.3137); + me["altnbrkhyd"].setColor(0.0667,0.9450,0.3686); } else { me["ALTNbrk"].show(); me["altnbrk-rect"].show(); @@ -800,7 +804,7 @@ var canvas_lowerECAM_wheel = { } else if (brakemode == 2 and accum > 200 and yellow_psi >= 1500){ me["accupress_text"].show(); me["brakearrow"].show(); - me["accupress_text"].setColor(0.0667,0.7294,0.3137); + me["accupress_text"].setColor(0.0667,0.9450,0.3686); } else if (brakemode == 2 and accum > 200 and yellow_psi < 1500) { me["accuonlyarrow"].show(); me["accuonly"].show(); @@ -820,21 +824,21 @@ var canvas_lowerECAM_wheel = { me["nosegeardoorR"].setRotation(getprop("/ECAM/Lower/door-nose-right") * D2R); if (nosedoor == 0) { - me["nosegeardoorL"].setColorFill(0.0667,0.7294,0.3137); - me["nosegeardoorR"].setColorFill(0.0667,0.7294,0.3137); + me["nosegeardoorL"].setColorFill(0.0667,0.9450,0.3686); + me["nosegeardoorR"].setColorFill(0.0667,0.9450,0.3686); } else { me["nosegeardoorL"].setColorFill(0.7333,0.3803,0); me["nosegeardoorR"].setColorFill(0.7333,0.3803,0); } if (leftdoor == 0) { - me["leftdoor"].setColorFill(0.0667,0.7294,0.3137); + me["leftdoor"].setColorFill(0.0667,0.9450,0.3686); } else { me["leftdoor"].setColorFill(0.7333,0.3803,0); } if (rightdoor == 0) { - me["rightdoor"].setColorFill(0.0667,0.7294,0.3137); + me["rightdoor"].setColorFill(0.0667,0.9450,0.3686); } else { me["rightdoor"].setColorFill(0.7333,0.3803,0); } @@ -849,8 +853,8 @@ var canvas_lowerECAM_wheel = { } if (leftgear == 1) { - me["Triangle-Left1"].setColor(0.0667,0.7294,0.3137); - me["Triangle-Left2"].setColor(0.0667,0.7294,0.3137); + me["Triangle-Left1"].setColor(0.0667,0.9450,0.3686); + me["Triangle-Left2"].setColor(0.0667,0.9450,0.3686); } else { me["Triangle-Left1"].setColor(1,0,0); me["Triangle-Left2"].setColor(1,0,0); @@ -865,8 +869,8 @@ var canvas_lowerECAM_wheel = { } if (nosegear == 1) { - me["Triangle-Nose1"].setColor(0.0667,0.7294,0.3137); - me["Triangle-Nose2"].setColor(0.0667,0.7294,0.3137); + me["Triangle-Nose1"].setColor(0.0667,0.9450,0.3686); + me["Triangle-Nose2"].setColor(0.0667,0.9450,0.3686); } else { me["Triangle-Nose1"].setColor(1,0,0); me["Triangle-Nose2"].setColor(1,0,0); @@ -881,8 +885,8 @@ var canvas_lowerECAM_wheel = { } if (rightgear == 1) { - me["Triangle-Right1"].setColor(0.0667,0.7294,0.3137); - me["Triangle-Right2"].setColor(0.0667,0.7294,0.3137); + me["Triangle-Right1"].setColor(0.0667,0.9450,0.3686); + me["Triangle-Right2"].setColor(0.0667,0.9450,0.3686); } else { me["Triangle-Right1"].setColor(1,0,0); me["Triangle-Right2"].setColor(1,0,0); @@ -999,8 +1003,8 @@ var canvas_lowerECAM_wheel = { me["spoiler1Lf"].hide(); } } else { - me["spoiler1Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler1Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler1Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler1Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler1Lf"].hide(); } @@ -1013,8 +1017,8 @@ var canvas_lowerECAM_wheel = { me["spoiler2Lf"].hide(); } } else { - me["spoiler2Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler2Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler2Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler2Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler2Lf"].hide(); } @@ -1027,8 +1031,8 @@ var canvas_lowerECAM_wheel = { me["spoiler3Lf"].hide(); } } else { - me["spoiler3Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler3Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler3Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler3Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler3Lf"].hide(); } @@ -1041,8 +1045,8 @@ var canvas_lowerECAM_wheel = { me["spoiler4Lf"].hide(); } } else { - me["spoiler4Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler4Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler4Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler4Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler4Lf"].hide(); } @@ -1055,8 +1059,8 @@ var canvas_lowerECAM_wheel = { me["spoiler5Lf"].hide(); } } else { - me["spoiler5Lex"].setColor(0.0667,0.7294,0.3137); - me["spoiler5Lrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler5Lex"].setColor(0.0667,0.9450,0.3686); + me["spoiler5Lrt"].setColor(0.0667,0.9450,0.3686); me["spoiler5Lf"].hide(); } @@ -1069,8 +1073,8 @@ var canvas_lowerECAM_wheel = { me["spoiler1Rf"].hide(); } } else { - me["spoiler1Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler1Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler1Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler1Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler1Rf"].hide(); } @@ -1083,8 +1087,8 @@ var canvas_lowerECAM_wheel = { me["spoiler2Rf"].hide(); } } else { - me["spoiler2Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler2Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler2Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler2Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler2Rf"].hide(); } @@ -1097,8 +1101,8 @@ var canvas_lowerECAM_wheel = { me["spoiler3Rf"].hide(); } } else { - me["spoiler3Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler3Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler3Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler3Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler3Rf"].hide(); } @@ -1111,8 +1115,8 @@ var canvas_lowerECAM_wheel = { me["spoiler4Rf"].hide(); } } else { - me["spoiler4Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler4Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler4Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler4Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler4Rf"].hide(); } @@ -1125,8 +1129,8 @@ var canvas_lowerECAM_wheel = { me["spoiler5Rf"].hide(); } } else { - me["spoiler5Rex"].setColor(0.0667,0.7294,0.3137); - me["spoiler5Rrt"].setColor(0.0667,0.7294,0.3137); + me["spoiler5Rex"].setColor(0.0667,0.9450,0.3686); + me["spoiler5Rrt"].setColor(0.0667,0.9450,0.3686); me["spoiler5Rf"].hide(); } @@ -1151,7 +1155,8 @@ var canvas_lowerECAM_elec = { return m; }, getKeys: func() { - return ["TAT","SAT","GW","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","TR1amps","TR2volts","TR2amps","EMERGENvolts","EXTvolts","EXThz"]; + return ["TAT","SAT","GW","BAT1connectorA","BAT1connectorB","BAT2connectorA","BAT2connectorB","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","TR1amps","TR2volts","TR2amps","EMERGENvolts","EXTvolts","EXThz", + "DCbattext"]; }, update: func() { if (getprop("/controls/electrical/switches/battery1") == 0) { @@ -1181,18 +1186,90 @@ var canvas_lowerECAM_elec = { me["BAT2off"].hide(); } + if (getprop("/systems/electrical/battery1-contact") == 0 and getprop("/systems/electrical/bat1direction") == 0) { + me["BAT1connectorA"].hide(); + me["BAT1connectorB"].hide(); + } else if (getprop("/systems/electrical/battery1-contact") == 1 and getprop("/systems/electrical/bat1direction") == -1) { + me["BAT1connectorA"].hide(); + me["BAT1connectorB"].show(); + me["BAT1connectorB"].setRotation(getprop("/ECAM/Lower/bat1-contactrotation") * D2R); + } else if (getprop("/systems/electrical/battery1-contact") == 1 and getprop("/systems/electrical/bat1direction") == 2) { + me["BAT1connectorA"].show(); + me["BAT1connectorB"].hide(); + } else if (getprop("/systems/electrical/battery1-contact") == 1 and getprop("/systems/electrical/bat1direction") == 1) { + me["BAT1connectorA"].hide(); + me["BAT1connectorB"].show(); + me["BAT1connectorB"].setRotation(getprop("/ECAM/Lower/bat2-contactrotation") * D2R); + } + + if (getprop("/systems/electrical/battery2-contact") == 0 and getprop("/systems/electrical/bat2direction") == 0) { + me["BAT2connectorA"].hide(); + me["BAT2connectorB"].hide(); + } else if (getprop("/systems/electrical/battery2-contact") == 1 and getprop("/systems/electrical/bat2direction") == -1) { + me["BAT2connectorA"].hide(); + me["BAT2connectorB"].show(); + me["BAT2connectorB"].setRotation(getprop("/ECAM/Lower/bat2-contactrotation") * D2R); + } else if (getprop("/systems/electrical/battery2-contact") == 1 and getprop("/systems/electrical/bat2direction") == 2) { + me["BAT2connectorA"].show(); + me["BAT2connectorB"].hide(); + } else if (getprop("/systems/electrical/battery2-contact") == 1 and getprop("/systems/electrical/bat2direction") == 1) { + me["BAT2connectorA"].hide(); + me["BAT2connectorB"].show(); + me["BAT2connectorB"].setRotation(getprop("/ECAM/Lower/bat2-contactrotation") * D2R); + } + + if (getprop("/systems/electrical/bus/dcbat") < 25) { + me["DCbattext"].setColor(0.7333,0.3803,0); + } else { + me["DCbattext"].setColor(0.0667,0.9450,0.3686); + } + + if (getprop("/systems/electrical/bus/dc1") < 25) { + me["TR1volts"].setColor(0.7333,0.3803,0); + } else { + me["TR1volts"].setcolor(0.0667,0.9450,0.3686); + } + + if (getprop("/systems/electrical/bus/dc2") < 25) { + me["TR2volts"].setColor(0.7333,0.3803,0); + } else { + me["TR2volts"].setcolor(0.0667,0.9450,0.3686); + } + + if (getprop("/systems/electrical/bus/dc1-amps") <= 5) { + me["TR1amps"].setColor(0.7333,0.3803,0); + } else { + me["TR1amps"].setcolor(0.0667,0.9450,0.3686); + } + + if (getprop("/systems/electrical/bus/dc2-amps") <= 5) { + me["TR2amps"].setColor(0.7333,0.3803,0); + } else { + me["TR2amps"].setcolor(0.0667,0.9450,0.3686); + } + me["BAT1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-volts"))); me["BAT2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery2-volts"))); me["BAT1amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery1-amps"))); me["BAT2amps"].setText(sprintf("%3.0f", getprop("/systems/electrical/battery2-amps"))); - me["TR1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/dc1"))); + me["TR1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc1"))); me["TR1amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc1-amps"))); - me["TR2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/dc2"))); + me["TR2volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc2"))); me["TR2amps"].setText(sprintf("%2.0f", getprop("/systems/electrical/bus/dc2-amps"))); + me["EXTvolts"].setText(sprintf("%2.0f", getprop("/systems/electrical/extra/ext-volts"))); me["EXThz"].setText(sprintf("%2.0f", getprop("/systems/electrical/extra/ext-hz"))); + + me["ESSTRvolts"].hide(); + me["ESSTRv"].hide(); + me["ESSTRamps"].hide(); + me["ESSTRa"].hide(); + me["ESSTRvolts"].hide(); + me["ESSTRbox"].hide(); + me["EMERGENtoESSTRarrow"].hide(); + me["ESSTRtoDCESSline"].hide(); me.updateBottomStatus(); }, }; diff --git a/Models/Instruments/Lower-ECAM/res/elec.svg b/Models/Instruments/Lower-ECAM/res/elec.svg index 216fec36..460b044f 100644 --- a/Models/Instruments/Lower-ECAM/res/elec.svg +++ b/Models/Instruments/Lower-ECAM/res/elec.svg @@ -41,9 +41,9 @@ inkscape:window-height="706" id="namedview371" showgrid="false" - inkscape:zoom="1.13" - inkscape:cx="790.96106" - inkscape:cy="891.32878" + inkscape:zoom="1.06" + inkscape:cx="602.52814" + inkscape:cy="188.23734" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -52,6 +52,13 @@ type="xygrid" id="grid5153" /> + 000 000 + AC ESS SHED + id="g913" + style="stroke:none;stroke-opacity:1;fill:#4d4d4d;fill-opacity:1"> + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-opacity:1" /> + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-opacity:1" /> + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-opacity:1" /> °C + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;fill:#1ca8d2;fill-opacity:1;">°C H + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;fill:#1ca8d2;fill-opacity:1;">H °C + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;fill:#1ca8d2;fill-opacity:1;">°C LBS + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:1.25;font-family:Arial;-inkscape-font-specification:Arial;fill:#1ca8d2;fill-opacity:1;">LBS SAT 25 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;text-anchor:end;fill:#11f15e;fill-opacity:1;">25 25 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;text-anchor:end;fill:#11f15e;fill-opacity:1;">25 120000 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;text-anchor:end;fill:#11f15e;fill-opacity:1;">120000 OFF 2 % V HZ + style="-inkscape-font-specification:'Liberation Sans';font-family:'Liberation Sans';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#1ca8d2;fill-opacity:1;">HZ 0 AC 1 AC ESS - AC ESS SHED AC 2 0 0 0 V HZ + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#1ca8d2;fill-opacity:1;">HZ OFF - SHED V V A A HZ + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#1ca8d2;fill-opacity:1;">HZ 000 DC BAT V 1 + diff --git a/Nasal/electrical.nas b/Nasal/electrical.nas index ede76155..01bf3d94 100644 --- a/Nasal/electrical.nas +++ b/Nasal/electrical.nas @@ -117,6 +117,8 @@ var elec_init = func { setprop("/systems/electrical/idg2-fault", 0); setprop("/controls/electrical/xtie/xtieL", 0); setprop("/controls/electrical/xtie/xtieR", 0); + setprop("/systems/electrical/bat1direction", 0); # - 1 = charge, 0 = disconnected, 1 = discharge + setprop("/systems/electrical/bat2direction", 0); # - 1 = charge, 0 = disconnected, 1 = discharge # Below are standard FG Electrical stuff to keep things working when the plane is powered setprop("/systems/electrical/outputs/adf", 0); setprop("/systems/electrical/outputs/audio-panel", 0); @@ -439,29 +441,37 @@ var master_elec = func { if (battery1_volts < 26.5 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { decharge1.stop(); charge1.start(); - } else if (battery1_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { + setprop("/systems/electrical/bat1direction", -1); + } else if (battery1_volts < 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { charge1.stop(); decharge1.stop(); + setprop("/systems/electrical/bat1direction", 2); # this is when it is connected, but is not charging or discharging } else if (battery1_sw and !batt1_fail) { charge1.stop(); decharge1.start(); + setprop("/systems/electrical/bat1direction", 1); } else { decharge1.stop(); charge1.stop(); + setprop("/systems/electrical/bat1direction", 0); } if (battery2_volts < 26.5 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { decharge2.stop(); charge2.start(); + setprop("/systems/electrical/bat1direction", 0); } else if (battery2_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { charge2.stop(); decharge2.stop(); + setprop("/systems/electrical/bat2direction", 2); # this is when it is connected, but is not charging or discharging } else if (battery2_sw and !batt2_fail) { charge2.stop(); decharge2.start(); + setprop("/systems/electrical/bat2direction", 1); } else { decharge2.stop(); charge2.stop(); + setprop("/systems/electrical/bat2direction", 0); } if (getprop("/systems/electrical/bus/ac-ess") < 110) { diff --git a/Systems/lower-ecam.xml b/Systems/lower-ecam.xml index a6cb0100..1da513e4 100644 --- a/Systems/lower-ecam.xml +++ b/Systems/lower-ecam.xml @@ -199,5 +199,37 @@ /ECAM/Lower/elevator-trim-deg + + + Battery 1 Contact Rotation + gain + 1 + + + + /systems/electrical/battery1-contact + -1 0 + 1180 +
+
+ + /ECAM/Lower/bat1-contactrotation +
+ + + Battery 2 Contact Rotation + gain + 1 + + + + /systems/electrical/battery2-contact + -1 0 + 1180 +
+
+ + /ECAM/Lower/bat2-contactrotation +
From fdc744be4f71881c7ffaf0b22fccff71ac94ebb1 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Mon, 6 Nov 2017 17:48:29 -0400 Subject: [PATCH 11/13] Bugfix --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 558b7e61..6ead1eb9 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1239,13 +1239,13 @@ var canvas_lowerECAM_elec = { if (getprop("/systems/electrical/bus/dc1-amps") <= 5) { me["TR1amps"].setColor(0.7333,0.3803,0); } else { - me["TR1amps"].setcolor(0.0667,0.9450,0.3686); + me["TR1amps"].setColor(0.0667,0.9450,0.3686); } if (getprop("/systems/electrical/bus/dc2-amps") <= 5) { me["TR2amps"].setColor(0.7333,0.3803,0); } else { - me["TR2amps"].setcolor(0.0667,0.9450,0.3686); + me["TR2amps"].setColor(0.0667,0.9450,0.3686); } me["BAT1volts"].setText(sprintf("%2.0f", getprop("/systems/electrical/battery1-volts"))); From 9f0664f6525794dbe1b2496384d999e8b6edfb9c Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Mon, 6 Nov 2017 17:52:11 -0400 Subject: [PATCH 12/13] Bugfix --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 6ead1eb9..52c8975f 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1227,13 +1227,13 @@ var canvas_lowerECAM_elec = { if (getprop("/systems/electrical/bus/dc1") < 25) { me["TR1volts"].setColor(0.7333,0.3803,0); } else { - me["TR1volts"].setcolor(0.0667,0.9450,0.3686); + me["TR1volts"].setColor(0.0667,0.9450,0.3686); } if (getprop("/systems/electrical/bus/dc2") < 25) { me["TR2volts"].setColor(0.7333,0.3803,0); } else { - me["TR2volts"].setcolor(0.0667,0.9450,0.3686); + me["TR2volts"].setColor(0.0667,0.9450,0.3686); } if (getprop("/systems/electrical/bus/dc1-amps") <= 5) { From ec4a921b3e183a87f8b8cff22509787a1783534a Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Mon, 6 Nov 2017 17:55:59 -0400 Subject: [PATCH 13/13] Add the inkscape objects to the hash containing the keys... --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 52c8975f..3a03c709 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -1156,7 +1156,7 @@ var canvas_lowerECAM_elec = { }, getKeys: func() { return ["TAT","SAT","GW","BAT1connectorA","BAT1connectorB","BAT2connectorA","BAT2connectorB","BAT1volts","BAT1amps","BAT1v","BAT1a","BAT1off","BAT2volts","BAT2amps","BAT2v","BAT2a","BAT2off","TR1volts","TR1amps","TR2volts","TR2amps","EMERGENvolts","EXTvolts","EXThz", - "DCbattext"]; + "DCbattext","ESSTRvolts","ESSTRv","ESSTRamps","ESSTRa","ESSTRvolts","ESSTRbox","EMERGENtoESSTRarrow","ESSTRtoDCESSline"]; }, update: func() { if (getprop("/controls/electrical/switches/battery1") == 0) {