From fd6981554b5db10c61b2228bc0bbba2f0b05d050 Mon Sep 17 00:00:00 2001 From: Joshua Davidson Date: Mon, 30 Oct 2017 15:40:48 -0400 Subject: [PATCH 1/2] A32X: Formatting --- Models/Instruments/Lower-ECAM/Lower-ECAM.nas | 22 +++++----- Models/Instruments/Upper-ECAM/Upper-ECAM.nas | 44 ++++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 8e4c3fbc..82a4854e 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -219,7 +219,7 @@ var canvas_lowerECAM_apu = { } if (getprop("/controls/pneumatic/switches/bleedapu") == 1) { - me["APUBleedValve"].setRotation(90*D2R); + me["APUBleedValve"].setRotation(90 * D2R); me["APUBleedOnline"].show(); } else { me["APUBleedValve"].setRotation(0); @@ -243,8 +243,8 @@ var canvas_lowerECAM_apu = { me["APUEGT"].setColor(0.7333,0.3803,0); me["APUEGT"].setText(sprintf("%s", "XX")); } - me["APUN-needle"].setRotation((getprop("/ECAM/Lower/APU-N") + 90)*D2R); - me["APUEGT-needle"].setRotation((getprop("/ECAM/Lower/APU-EGT") + 90)*D2R); + me["APUN-needle"].setRotation((getprop("/ECAM/Lower/APU-N") + 90) * D2R); + me["APUEGT-needle"].setRotation((getprop("/ECAM/Lower/APU-EGT") + 90) * D2R); me.updateBottomStatus(); }, @@ -267,8 +267,8 @@ var canvas_lowerECAM_eng = { me["OilQT1-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[0]/oil-qt-actual"),1)))); me["OilQT2-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[1]/oil-qt-actual"),1)))); - me["OilQT1-needle"].setRotation((getprop("/ECAM/Lower/Oil-QT[0]") + 90)*D2R); - me["OilQT2-needle"].setRotation((getprop("/ECAM/Lower/Oil-QT[1]") + 90)*D2R); + me["OilQT1-needle"].setRotation((getprop("/ECAM/Lower/Oil-QT[0]") + 90) * D2R); + me["OilQT2-needle"].setRotation((getprop("/ECAM/Lower/Oil-QT[1]") + 90) * D2R); # Oil Pressure if (getprop("/engines/engine[0]/oil-psi-actual") >= 20) { @@ -290,8 +290,8 @@ var canvas_lowerECAM_eng = { me["OilPSI1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/oil-psi-actual")))); me["OilPSI2"].setText(sprintf("%s", math.round(getprop("/engines/engine[1]/oil-psi-actual")))); - me["OilPSI1-needle"].setRotation((getprop("/ECAM/Lower/Oil-PSI[0]") + 90)*D2R); - me["OilPSI2-needle"].setRotation((getprop("/ECAM/Lower/Oil-PSI[1]") + 90)*D2R); + me["OilPSI1-needle"].setRotation((getprop("/ECAM/Lower/Oil-PSI[0]") + 90) * D2R); + me["OilPSI2-needle"].setRotation((getprop("/ECAM/Lower/Oil-PSI[1]") + 90) * D2R); me.updateBottomStatus(); }, @@ -804,10 +804,10 @@ var canvas_lowerECAM_wheel = { } # Gear Doors - me["leftdoor"].setRotation(getprop("/ECAM/Lower/door-left")*D2R); - me["rightdoor"].setRotation(getprop("/ECAM/Lower/door-right")*D2R); - me["nosegeardoorL"].setRotation(getprop("/ECAM/Lower/door-nose-left")*D2R); - me["nosegeardoorR"].setRotation(getprop("/ECAM/Lower/door-nose-right")*D2R); + me["leftdoor"].setRotation(getprop("/ECAM/Lower/door-left") * D2R); + me["rightdoor"].setRotation(getprop("/ECAM/Lower/door-right") * D2R); + me["nosegeardoorL"].setRotation(getprop("/ECAM/Lower/door-nose-left") * D2R); + me["nosegeardoorR"].setRotation(getprop("/ECAM/Lower/door-nose-right") * D2R); if (nosedoor == 0) { me["nosegeardoorL"].setColorFill(0.0667,0.7294,0.3137); diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas index f1384ac0..511ca411 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM.nas +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM.nas @@ -256,13 +256,13 @@ var canvas_upperECAM_cfm_eis2 = { me["N12"].setText(sprintf("%s", math.floor(getprop("/engines/engine[1]/n1-actual") + 0.05))); me["N12-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[1]/n1-actual") + 0.05,1)))); - me["N11-needle"].setRotation((getprop("/ECAM/Upper/N1[0]") + 90)*D2R); - me["N11-thr"].setRotation((getprop("/ECAM/Upper/N1thr[0]") + 90)*D2R); - me["N11-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + me["N11-needle"].setRotation((getprop("/ECAM/Upper/N1[0]") + 90) * D2R); + me["N11-thr"].setRotation((getprop("/ECAM/Upper/N1thr[0]") + 90) * D2R); + me["N11-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90) * D2R); - me["N12-needle"].setRotation((getprop("/ECAM/Upper/N1[1]") + 90)*D2R); - me["N12-thr"].setRotation((getprop("/ECAM/Upper/N1thr[1]") + 90)*D2R); - me["N12-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + me["N12-needle"].setRotation((getprop("/ECAM/Upper/N1[1]") + 90) * D2R); + me["N12-thr"].setRotation((getprop("/ECAM/Upper/N1thr[1]") + 90) * D2R); + me["N12-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90) * D2R); if (getprop("/systems/fadec/eng1/n1") == 1) { me["N11-scale"].setColor(0.8078,0.8039,0.8078); @@ -336,8 +336,8 @@ var canvas_upperECAM_cfm_eis2 = { me["EGT1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/egt-actual")))); me["EGT2"].setText(sprintf("%s", math.round(getprop("/engines/engine[1]/egt-actual")))); - me["EGT1-needle"].setRotation((getprop("/ECAM/Upper/EGT[0]") + 90)*D2R); - me["EGT2-needle"].setRotation((getprop("/ECAM/Upper/EGT[1]") + 90)*D2R); + me["EGT1-needle"].setRotation((getprop("/ECAM/Upper/EGT[0]") + 90) * D2R); + me["EGT2-needle"].setRotation((getprop("/ECAM/Upper/EGT[1]") + 90) * D2R); if (getprop("/systems/fadec/eng1/egt") == 1) { me["EGT1-scale"].setColor(0.8078,0.8039,0.8078); @@ -470,12 +470,12 @@ var canvas_upperECAM_iae_eis2 = { me["EPR1"].setText(sprintf("%1.3f", getprop("/engines/engine[0]/epr-actual"))); me["EPR2"].setText(sprintf("%1.3f", getprop("/engines/engine[1]/epr-actual"))); - me["EPR1-needle"].setRotation((getprop("/ECAM/Upper/EPR[0]") + 90)*D2R); - me["EPR1-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[0]") + 90)*D2R); - me["EPR1-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90)*D2R); - me["EPR2-needle"].setRotation((getprop("/ECAM/Upper/EPR[1]") + 90)*D2R); - me["EPR2-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[1]") + 90)*D2R); - me["EPR2-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90)*D2R); + me["EPR1-needle"].setRotation((getprop("/ECAM/Upper/EPR[0]") + 90) * D2R); + me["EPR1-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[0]") + 90) * D2R); + me["EPR1-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90) * D2R); + me["EPR2-needle"].setRotation((getprop("/ECAM/Upper/EPR[1]") + 90) * D2R); + me["EPR2-thr"].setRotation((getprop("/ECAM/Upper/EPRthr[1]") + 90) * D2R); + me["EPR2-ylim"].setRotation((getprop("/ECAM/Upper/EPRylim") + 90) * D2R); if (getprop("/systems/fadec/eng1/epr") == 1) { me["EPR1-scale"].setColor(0.8078,0.8039,0.8078); @@ -533,8 +533,8 @@ var canvas_upperECAM_iae_eis2 = { me["EGT1"].setText(sprintf("%s", math.round(getprop("/engines/engine[0]/egt-actual")))); me["EGT2"].setText(sprintf("%s", math.round(getprop("/engines/engine[1]/egt-actual")))); - me["EGT1-needle"].setRotation((getprop("/ECAM/Upper/EGT[0]") + 90)*D2R); - me["EGT2-needle"].setRotation((getprop("/ECAM/Upper/EGT[1]") + 90)*D2R); + me["EGT1-needle"].setRotation((getprop("/ECAM/Upper/EGT[0]") + 90) * D2R); + me["EGT2-needle"].setRotation((getprop("/ECAM/Upper/EGT[1]") + 90) * D2R); if (getprop("/systems/fadec/eng1/egt") == 1) { me["EGT1-scale"].setColor(0.8078,0.8039,0.8078); @@ -579,13 +579,13 @@ var canvas_upperECAM_iae_eis2 = { me["N12"].setText(sprintf("%s", math.floor(getprop("/engines/engine[1]/n1-actual") + 0.05))); me["N12-decimal"].setText(sprintf("%s", int(10*math.mod(getprop("/engines/engine[1]/n1-actual") + 0.05,1)))); - me["N11-needle"].setRotation((getprop("/ECAM/Upper/N1[0]") + 90)*D2R); - me["N11-thr"].setRotation((getprop("/ECAM/Upper/N1thr[0]") + 90)*D2R); - me["N11-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + me["N11-needle"].setRotation((getprop("/ECAM/Upper/N1[0]") + 90) * D2R); + me["N11-thr"].setRotation((getprop("/ECAM/Upper/N1thr[0]") + 90) * D2R); + me["N11-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90) * D2R); - me["N12-needle"].setRotation((getprop("/ECAM/Upper/N1[1]") + 90)*D2R); - me["N12-thr"].setRotation((getprop("/ECAM/Upper/N1thr[1]") + 90)*D2R); - me["N12-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90)*D2R); + me["N12-needle"].setRotation((getprop("/ECAM/Upper/N1[1]") + 90) * D2R); + me["N12-thr"].setRotation((getprop("/ECAM/Upper/N1thr[1]") + 90) * D2R); + me["N12-ylim"].setRotation((getprop("/ECAM/Upper/N1ylim") + 90) * D2R); if (getprop("/systems/fadec/eng1/n1") == 1) { me["N11-scale"].setColor(0.8078,0.8039,0.8078); From 6e035590c5cd528428e0d87208ddc9da26fef6e2 Mon Sep 17 00:00:00 2001 From: Joshua Davidson Date: Mon, 30 Oct 2017 16:35:09 -0400 Subject: [PATCH 2/2] A32X: Canvas PFD Improvements --- Models/Instruments/PFD-WIP/PFD1.nas | 37 +++- Models/Instruments/PFD-WIP/res/pfd.svg | 234 +++++++++++++++---------- 2 files changed, 169 insertions(+), 102 deletions(-) diff --git a/Models/Instruments/PFD-WIP/PFD1.nas b/Models/Instruments/PFD-WIP/PFD1.nas index e6f356f4..7c6c7de9 100644 --- a/Models/Instruments/PFD-WIP/PFD1.nas +++ b/Models/Instruments/PFD-WIP/PFD1.nas @@ -99,7 +99,7 @@ var canvas_PFD_1 = { getKeys: func() { return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd","FMA_athr", "FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box","FMA_Middle1", - "FMA_Middle2","ASI_scale","ASI_target","AI_center","AI_bank","AI_slipskid","FD_roll","FD_pitch","ALT_digits","ALT_tens","VS_pointer","QNH_setting","LOC_pointer","LOC_scale","GS_scale","GS_pointer"]; + "FMA_Middle2","ASI_scale","ASI_target","AI_center","AI_bank","AI_slipskid","FD_roll","FD_pitch","ALT_digits","ALT_tens","VS_pointer","QNH_setting","LOC_pointer","LOC_scale","GS_scale","GS_pointer","HDG_target"]; }, update: func() { state1 = getprop("/systems/thrust/state1"); @@ -327,7 +327,7 @@ var canvas_PFD_1 = { me["ASI_target"].setTranslation(0, ASItrgt * -6.6); # Attitude Indicator - me["AI_slipskid"].setTranslation(getprop("/instrumentation/slip-skid-ball/indicated-slip-skid") * -20, 0); + me["AI_slipskid"].setTranslation(getprop("/instrumentation/slip-skid-ball/indicated-slip-skid") * -15, 0); me["AI_bank"].setRotation(-roll * D2R); if (fd1 == 1 and ((!wow1 and !wow2 and roll_mode != " ") or roll_mode != " ") and getprop("/it-autoflight/custom/trk-fpa") == 0 and pitch < 25 and pitch > -13 and roll < 45 and roll > -45) { @@ -343,15 +343,15 @@ var canvas_PFD_1 = { } if (getprop("/it-autoflight/fd/roll-bar") != nil) { - me["FD_roll"].setTranslation((getprop("/it-autoflight/fd/roll-bar"))*2.0, 0); + me["FD_roll"].setTranslation((getprop("/it-autoflight/fd/roll-bar")) * 2.2, 0); } if (getprop("/it-autoflight/fd/pitch-bar") != nil) { - me["FD_pitch"].setTranslation(0, -(getprop("/it-autoflight/fd/pitch-bar"))*3.8); + me["FD_pitch"].setTranslation(0, -(getprop("/it-autoflight/fd/pitch-bar")) * 3.8); } # Altitude me["ALT_digits"].setText(sprintf("%s", getprop("/instrumentation/altimeter/indicated-altitude-ft-pfd"))); - altTens = num(right(sprintf("%02d", getprop("/instrumentation/altimeter/indicated-altitude-ft1")), 2)); + altTens = num(right(sprintf("%02d", getprop("/instrumentation/altimeter/indicated-altitude-ft")), 2)); me["ALT_tens"].setTranslation(0, altTens * 1.392); # QNH @@ -368,19 +368,38 @@ var canvas_PFD_1 = { # ILS if (getprop("/modes/pfd/ILS1") == 1) { - me["LOC_pointer"].show(); me["LOC_scale"].show(); - me["GS_pointer"].show(); me["GS_scale"].show(); } else { - me["LOC_pointer"].hide(); me["LOC_scale"].hide(); - me["GS_pointer"].hide(); me["GS_scale"].hide(); } + if (getprop("/modes/pfd/ILS1") == 1 and getprop("/instrumentation/nav[0]/in-range") == 1 and getprop("/instrumentation/nav[0]/nav-loc") == 1) { + me["LOC_pointer"].show(); + } else { + me["LOC_pointer"].hide(); + } + if (getprop("/modes/pfd/ILS1") == 1 and getprop("/instrumentation/nav[0]/gs-in-range") == 1 and getprop("/instrumentation/nav[0]/has-gs") == 1) { + me["GS_pointer"].show(); + } else { + me["GS_pointer"].hide(); + } + + me["LOC_pointer"].setTranslation(-(getprop("/instrumentation/nav[0]/heading-needle-deflection-norm")) * 197, 0); + + me["GS_pointer"].setTranslation(0, getprop("/instrumentation/nav[0]/gs-needle-deflection-norm") * 197); + + # Heading +# if (getprop("/it-autoflight/custom/show-hdg") == 1) { +# me["HDG_target"].show(); +# } else { + me["HDG_target"].hide(); +# } }, }; +setprop("/testing", 0); # REMOVE WHEN PFD FINISHED + setlistener("sim/signals/fdm-initialized", func { PFD_display = canvas.new({ "name": "PFD", diff --git a/Models/Instruments/PFD-WIP/res/pfd.svg b/Models/Instruments/PFD-WIP/res/pfd.svg index 643206b2..e5390eb6 100644 --- a/Models/Instruments/PFD-WIP/res/pfd.svg +++ b/Models/Instruments/PFD-WIP/res/pfd.svg @@ -38,14 +38,14 @@ guidetolerance="10" inkscape:pageopacity="1" inkscape:pageshadow="2" - inkscape:window-width="1600" - inkscape:window-height="850" + inkscape:window-width="1920" + inkscape:window-height="1030" id="namedview371" showgrid="true" - inkscape:zoom="1" - inkscape:cx="627.63171" - inkscape:cy="770.96194" - inkscape:window-x="-8" + inkscape:zoom="0.5" + inkscape:cx="597.50413" + inkscape:cy="374.5689" + inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2" @@ -71,6 +71,39 @@ height="1023.9705" width="1024" style="display:none;fill:#000000;fill-opacity:0" /> + + + + + + style="fill:none;fill-opacity:1;stroke:#238995;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> @@ -1109,39 +1142,45 @@ + inkscape:label="#g4578"> - - - - + width="7.7972813" + height="41.291069" + x="444.25851" + y="816.11987" /> + + + + + + + + + inkscape:label="#g4569"> - - - - + + + + + + + + 40200080604020008060 @@ -1760,17 +1801,17 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4382" - d="m 193.91669,375.84042 14.13625,6.68826" + d="m 193.91669,378.22448 14.13625,6.68826" style="fill:none;fill-opacity:1;stroke:#11ba50;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> @@ -1778,7 +1819,7 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4388" - d="m 702.99497,389.52701 -14.36107,6.19082" + d="m 702.99497,391.91107 -14.36107,6.19082" style="fill:none;fill-opacity:1;stroke:#11ba50;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> +