A32X: Add sidestick indicator to PFD

This commit is contained in:
Joshua Davidson 2017-11-07 14:08:58 -05:00
parent 2eb8798548
commit 47e24e3faf
2 changed files with 159 additions and 6 deletions

View file

@ -19,6 +19,8 @@ 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);
setprop("/controls/flight/aileron-input-fast", 0);
setprop("/controls/flight/elevator-input-fast", 0);
var ASI = 0;
var ASItrgt = 0;
var alt = 0;
@ -114,8 +116,8 @@ 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_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_g","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"];
"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_stick","AI_stick_pos","AI_agl_g","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");
@ -433,6 +435,19 @@ var canvas_PFD_1 = {
me["AI_agl_g"].setRotation(-roll * D2R);
if ((wow1 or wow2) and getprop("/FMGC/status/phase") != 0 and getprop("/FMGC/status/phase") != 1) {
me["AI_stick"].show();
me["AI_stick_pos"].show();
} else if ((wow1 or wow2) and (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) and (getprop("/engines/engine[0]/state") == 3 or getprop("/engines/engine[1]/state") == 3)) {
me["AI_stick"].show();
me["AI_stick_pos"].show();
} else {
me["AI_stick"].hide();
me["AI_stick_pos"].hide();
}
me["AI_stick_pos"].setTranslation(getprop("/controls/flight/aileron-input-fast") * 196.8, getprop("/controls/flight/elevator-input-fast") * 151.5);
# 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));

View file

@ -41,9 +41,9 @@
inkscape:window-height="1030"
id="namedview371"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="630.07835"
inkscape:cy="656.19794"
inkscape:zoom="1.4142136"
inkscape:cx="641.32764"
inkscape:cy="629.48321"
inkscape:window-x="1592"
inkscape:window-y="-8"
inkscape:window-maximized="1"
@ -2151,6 +2151,74 @@
id="FD_pitch"
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:2.87749815;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0,1,-1,0,0,0)" />
<g
id="AI_stick_pos"
inkscape:label="#g4824"
transform="translate(-0.38165298,0)">
<g
id="g4802">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4776"
d="m 452.50015,509.31081 29.04648,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" />
<path
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"
d="m 452.49998,480.26394 0,29.04648"
id="path4800"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
transform="matrix(-1,0,0,1,897.27706,0)"
id="g4806">
<path
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"
d="m 452.50015,509.31081 29.04648,0"
id="path4808"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4810"
d="m 452.49998,480.26394 0,29.04648"
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" />
</g>
<g
transform="matrix(1,0,0,-1,0,1026.344)"
id="g4812">
<path
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"
d="m 452.50015,509.31081 29.04648,0"
id="path4814"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4816"
d="m 452.49998,480.26394 0,29.04648"
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" />
</g>
<g
id="g4818"
transform="matrix(-1,0,0,-1,897.27706,1026.344)">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4820"
d="m 452.50015,509.31081 29.04648,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" />
<path
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"
d="m 452.49998,480.26394 0,29.04648"
id="path4822"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
</g>
<rect
style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.77994585;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="AI_center"
@ -3045,7 +3113,8 @@
<g
id="AI_agl_g"
inkscape:transform-center-y="245.55742"
inkscape:label="#g4612">
inkscape:label="#g4612"
transform="translate(0,-1.4)">
<text
inkscape:transform-center-y="245.55937"
inkscape:label="#text983"
@ -3061,4 +3130,73 @@
y="680.72845"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:45px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#0dc04b;fill-opacity:1;stroke-width:0.65757734">0000</tspan></text>
</g>
<g
id="AI_stick"
inkscape:label="#g4714"
transform="translate(2.8403413,1.952603)">
<g
transform="translate(0.97071068,0)"
id="g4630">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4624"
d="m 247.69915,662.50422 40.64303,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" />
<path
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"
d="m 247.6993,621.86099 0,40.64303"
id="path4628"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
<g
id="g4634"
transform="matrix(-1,0,0,1,894.37964,0)">
<path
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"
d="m 252.22463,662.50422 40.64303,0"
id="path4636"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4638"
d="m 252.22478,621.86099 0,40.64303"
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" />
</g>
<g
id="g4664"
transform="matrix(1,0,0,-1,0.97071068,1022.4297)">
<path
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"
d="m 247.69915,662.50422 40.64303,0"
id="path4666"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4668"
d="m 247.6993,621.86099 0,40.64303"
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" />
</g>
<g
transform="matrix(-1,0,0,-1,894.37964,1022.4297)"
id="g4670">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4672"
d="m 252.22463,662.50422 40.64303,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" />
<path
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"
d="m 252.22478,621.86099 0,40.64303"
id="path4674"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 181 KiB