diff --git a/A320-main.xml b/A320-main.xml index 05cff0c1..0ef66712 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -1259,7 +1259,7 @@ Aircraft/IDG-A32X/Nasal/MCDU2/STATUS.nas - Aircraft/IDG-A32X/Models/Instruments/PFD-WIP/PFD1.nas + Aircraft/IDG-A32X/Models/Instruments/PFD-WIP/PFD.nas Aircraft/IDG-A32X/Models/Instruments/ND/canvas/ND.nas diff --git a/Models/Instruments/PFD-WIP/PFD1.nas b/Models/Instruments/PFD-WIP/PFD.nas similarity index 83% rename from Models/Instruments/PFD-WIP/PFD1.nas rename to Models/Instruments/PFD-WIP/PFD.nas index cce47aec..e6c75edd 100644 --- a/Models/Instruments/PFD-WIP/PFD1.nas +++ b/Models/Instruments/PFD-WIP/PFD.nas @@ -8,6 +8,7 @@ var PFD_1 = nil; var PFD_display = nil; setprop("/instrumentation/pfd/vs-needle", 0); +setprop("/instrumentation/pfd/vs-digit-trans", 0); setprop("/it-autoflight/input/spd-managed", 0); setprop("/FMGC/internal/target-ias-pfd", 0); setprop("/it-autoflight/output/ap1", 0); @@ -16,6 +17,8 @@ setprop("/it-autoflight/output/fd1", 0); setprop("/it-autoflight/output/fd2", 0); setprop("/it-autoflight/output/athr", 0); setprop("/instrumentation/pfd/horizon-pitch", 0); +setprop("/it-autoflight/internal/vert-speed-fpm-pfd", 0); +setprop("/position/gear-agl-ft", 0); var ASI = 0; var ASItrgt = 0; var alt = 0; @@ -109,9 +112,10 @@ var canvas_PFD_1 = { return m; }, 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","ASI_mach","ASI_mach_decimal","ASI_ten_sec","AI_center","AI_bank","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","FD_roll","FD_pitch","ALT_digits","ALT_tens","VS_pointer","QNH_setting","LOC_pointer","LOC_scale","GS_scale","GS_pointer","HDG_target"]; + return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","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","ASI_mach","ASI_mach_decimal","ASI_ten_sec","AI_center","AI_bank","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_agl","FD_roll","FD_pitch","ALT_digits","ALT_tens","VS_pointer", + "VS_box","VS_digit","QNH","QNH_setting","QNH_std","QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","HDG_target"]; }, update: func() { state1 = getprop("/systems/thrust/state1"); @@ -211,8 +215,19 @@ var canvas_PFD_1 = { me["FMA_rollarm_box"].hide(); me["FMA_Middle1"].hide(); me["FMA_Middle2"].hide(); + if (getprop("/it-fbw/law") == 2) { + me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM"); + me["FMA_ctr_msg"].setColor(0.7333,0.3803,0); + me["FMA_ctr_msg"].show(); + } else if (getprop("/it-fbw/law") == 3) { + me["FMA_ctr_msg"].setText("MAN PITCH TRIM ONLY"); + me["FMA_ctr_msg"].setColor(1,0,0); + me["FMA_ctr_msg"].show(); + } else { + me["FMA_ctr_msg"].hide(); + } me["FMA_combined"].show(); - if (getprop("/modes/pfd/fma/pitch-mode-box") == 1) { + if (getprop("/modes/pfd/fma/pitch-mode-box") == 1 and pitch_mode != " ") { me["FMA_combined_box"].show(); } else { me["FMA_combined_box"].hide(); @@ -220,8 +235,24 @@ var canvas_PFD_1 = { } else { me["FMA_combined"].hide(); me["FMA_combined_box"].hide(); - me["FMA_Middle1"].show(); - me["FMA_Middle2"].show(); + if (getprop("/it-fbw/law") == 2) { + me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM"); + me["FMA_ctr_msg"].setColor(0.7333,0.3803,0); + me["FMA_Middle1"].hide(); + me["FMA_Middle2"].show(); + me["FMA_ctr_msg"].show(); + } else if (getprop("/it-fbw/law") == 3) { + me["FMA_ctr_msg"].setText("MAN PITCH TRIM ONLY"); + me["FMA_ctr_msg"].setColor(1,0,0); + me["FMA_Middle1"].hide(); + me["FMA_Middle2"].show(); + me["FMA_ctr_msg"].show(); + } else { + me["FMA_ctr_msg"].hide(); + me["FMA_Middle1"].show(); + me["FMA_Middle2"].hide(); + } + if (ap1 or ap2 or fd1 or fd2) { me["FMA_pitch"].show(); me["FMA_roll"].show(); @@ -386,6 +417,20 @@ var canvas_PFD_1 = { me["FD_pitch"].setTranslation(0, -(getprop("/it-autoflight/fd/pitch-bar")) * 3.8); } + me["AI_agl"].setText(sprintf("%s", math.round(getprop("/position/gear-agl-ft")))); + + if (getprop("/position/gear-agl-ft") <= getprop("/instrumentation/mk-viii/inputs/arinc429/decision-height")) { + me["AI_agl"].setColor(0.7333,0.3803,0); + } else { + me["AI_agl"].setColor(0.0509,0.7529,0.2941); + } + + if (getprop("/position/gear-agl-ft") <= 2500) { + me["AI_agl"].show(); + } else { + me["AI_agl"].hide(); + } + # Altitude me["ALT_digits"].setText(sprintf("%s", getprop("/instrumentation/altimeter/indicated-altitude-ft-pfd"))); altTens = num(right(sprintf("%02d", getprop("/instrumentation/altimeter/indicated-altitude-ft")), 2)); @@ -393,16 +438,41 @@ var canvas_PFD_1 = { # QNH if (getprop("/modes/altimeter/std") == 1) { - me["QNH_setting"].setText(sprintf("%s", "STD")); + me["QNH"].hide(); + me["QNH_setting"].hide(); + me["QNH_std"].show(); + me["QNH_box"].show(); } else if (getprop("/modes/altimeter/inhg") == 0) { me["QNH_setting"].setText(sprintf("%4.0f", getprop("/instrumentation/altimeter/setting-hpa"))); + me["QNH"].show(); + me["QNH_setting"].show(); + me["QNH_std"].hide(); + me["QNH_box"].hide(); } else if (getprop("/modes/altimeter/inhg") == 1) { me["QNH_setting"].setText(sprintf("%2.2f", getprop("/instrumentation/altimeter/setting-inhg"))); + me["QNH"].show(); + me["QNH_setting"].show(); + me["QNH_std"].hide(); + me["QNH_box"].hide(); } # Vertical Speed me["VS_pointer"].setRotation(getprop("/instrumentation/pfd/vs-needle") * D2R); + me["VS_box"].setTranslation(0, getprop("/instrumentation/pfd/vs-digit-trans")); + + if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 2) { + me["VS_box"].hide(); + } else { + me["VS_box"].show(); + } + + if (getprop("/it-autoflight/internal/vert-speed-fpm-pfd") < 10) { + me["VS_digit"].setText(sprintf("%s", "0" ~ getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + } else { + me["VS_digit"].setText(sprintf("%s", getprop("/it-autoflight/internal/vert-speed-fpm-pfd"))); + } + # ILS if (getprop("/modes/pfd/ILS1") == 1) { me["LOC_scale"].show(); diff --git a/Models/Instruments/PFD-WIP/res/pfd.svg b/Models/Instruments/PFD-WIP/res/pfd.svg index cd4bde92..9530ae86 100644 --- a/Models/Instruments/PFD-WIP/res/pfd.svg +++ b/Models/Instruments/PFD-WIP/res/pfd.svg @@ -41,9 +41,9 @@ inkscape:window-height="1030" id="namedview371" showgrid="false" - inkscape:zoom="1" - inkscape:cx="-416.36867" - inkscape:cy="1454.5616" + inkscape:zoom="1.4142136" + inkscape:cx="949.68918" + inkscape:cy="635.21338" inkscape:window-x="1592" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -1059,6 +1059,19 @@ d="m -193.7976,610.26868 1284.1095,0" style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.20000005;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + STD + @@ -1122,14 +1142,14 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4984" - d="m 854.63039,236.93596 0,226.6383" + d="m 856.91323,236.93596 0,226.6383" style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> + transform="matrix(1.0666667,0,0,1.066636,0.28284271,-0.50381959)"> + transform="matrix(1.0666667,0,0,-1.066636,0.28284271,1026.1924)"> + id="g4317" + transform="translate(0.28284271,0)"> 1 + + transform="matrix(1.0666667,0,0,1.066636,0.28284271,-0.50381959)"> - @@ -1361,12 +1382,38 @@ width="6.5950012" height="361.44022" x="509.69724" - y="-1060.036" + y="-1060.3188" inkscape:label="#rect4954" inkscape:transform-center-x="170.07916" /> + + + 00 + + inkscape:label="#g3847" + transform="translate(0.69023445,0)"> + transform="matrix(1.0666667,0,0,1.066636,0.69023445,-0.50381959)"> + MAN PITCH TRIM ONLY - + transform="matrix(1.0666667,0,0,1.066636,4.919636,-0.50381959)"> + transform="matrix(-1.0666667,0,0,1.066636,891.59023,-0.50381959)"> + inkscape:label="#g4578" + transform="translate(0,4.4)"> + inkscape:label="#g4569" + transform="translate(5.2325902,0)"> @@ -2251,8 +2306,8 @@ + transform="matrix(1.0666667,0,0,1.066636,7.9500002,2.8086774)"> + QNH @@ -2355,20 +2419,20 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path922" - d="m 12.477577,790.62913 141.300723,0" + d="m 13.167811,790.62913 141.300719,0" style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> 40200080604020008060 + transform="matrix(1.0666667,0,0,1.066636,2.2828427,-0.50381959)"> @@ -2462,34 +2526,21 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path967" - d="m 763.47791,235.4451 136.156,0" + d="m 765.76075,235.4451 136.156,0" style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.19995403;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" /> 00 - 1013 + id="g4545" + transform="translate(0,6.4)"> - - + + + + @@ -2912,7 +2968,7 @@ 000 @@ -2964,13 +3020,39 @@ xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:30.52176857px;line-height:1.25;font-family:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:0.75" x="45.718079" - y="833.22681" + y="835.1153" id="ASI_mach_decimal" transform="scale(0.95383277,1.0484018)" inkscape:label="#text975">. + STD + 0000 diff --git a/Systems/pfd.xml b/Systems/pfd.xml index e6a4c239..7ce0e27c 100644 --- a/Systems/pfd.xml +++ b/Systems/pfd.xml @@ -387,4 +387,33 @@ /instrumentation/pfd/vs-needle + + Vertical Speed Digit Translate + gain + 1 + + + + /it-autoflight/internal/vert-speed-fpm-filtered + -6000 340 + -4000 302 + -2000 269 + -1500 230 + -1000 197 + -500 110 + -200 61 + 0 0 + 200 -61 + 500-110 + 1000-197 + 1500-230 + 2000-269 + 4000-302 + 6000-340 +
+
+ + /instrumentation/pfd/vs-digit-trans +
+