From 1371b02ea5d26234bc02d8133b7bb94dbcde4659 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Mon, 6 Nov 2017 17:45:50 -0400 Subject: [PATCH] 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 +