From 8ad6579afd19c6b4f62714f6ca3143a80416b9e1 Mon Sep 17 00:00:00 2001 From: Josh Davidson <joshdavidson2000@outlook.com> Date: Mon, 14 Nov 2022 18:12:50 -0500 Subject: [PATCH] DU: Redrawn and smoothed FPV animations --- A320-main.xml | 1 + Models/Instruments/PFD/PFD.nas | 14 ++++----- Models/Instruments/PFD/res/pfd.svg | 49 +++++++++++++++--------------- Systems/a320-adr.xml | 15 +++++++++ Systems/pfd.xml | 16 ++++++---- 5 files changed, 58 insertions(+), 37 deletions(-) diff --git a/A320-main.xml b/A320-main.xml index 2562124b..a10a6959 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -1893,6 +1893,7 @@ <horizon-ground type="double">0</horizon-ground> <horizon-pitch type="double">0</horizon-pitch> <track-deg type="double">0</track-deg> + <track-hdg-diff type="double">0</track-hdg-diff> </pfd> <radar-altimeter n="0"> diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas index 4eabf8cd..171b45ce 100644 --- a/Models/Instruments/PFD/PFD.nas +++ b/Models/Instruments/PFD/PFD.nas @@ -1,5 +1,5 @@ # A3XX PFD -# Copyright (c) 2020 Josh Davidson (Octal450) +# Copyright (c) 2022 Josh Davidson (Octal450) and Jonathan Redpath (legoboyvdlp) var acconfig = props.globals.getNode("/systems/acconfig/autoconfig-running", 1); var acconfig_weight_kgs = props.globals.getNode("/systems/acconfig/options/weight-kgs", 1); @@ -13,9 +13,9 @@ var air_data_switch = props.globals.getNode("/controls/navigation/switching/air- var altitude = props.globals.getNode("/instrumentation/altimeter/indicated-altitude-ft", 1); var alt_hpa = props.globals.getNode("/instrumentation/altimeter/setting-hpa", 1); var alt_inhg = props.globals.getNode("/instrumentation/altimeter/setting-inhg", 1); -var aoa_1 = props.globals.getNode("/systems/navigation/adr/output/aoa-1", 1); -var aoa_2 = props.globals.getNode("/systems/navigation/adr/output/aoa-2", 1); -var aoa_3 = props.globals.getNode("/systems/navigation/adr/output/aoa-3", 1); +var aoa_1 = props.globals.getNode("/systems/navigation/adr/output/aoa-1-damped", 1); +var aoa_2 = props.globals.getNode("/systems/navigation/adr/output/aoa-2-damped", 1); +var aoa_3 = props.globals.getNode("/systems/navigation/adr/output/aoa-3-damped", 1); var hundredAbove = props.globals.getNode("/instrumentation/pfd/hundred-above", 1); var minimum = props.globals.getNode("/instrumentation/pfd/minimums", 1); @@ -250,8 +250,8 @@ var canvas_pfd = { obj["FMA_lvrclb"].hide(); } }), - props.UpdateManager.FromHashList(["trackPFD","headingPFD","aoaPFD"], 0.01, func(val) { - obj.track_diff = geo.normdeg180(val.trackPFD - val.headingPFD); # store this to use in FPV + props.UpdateManager.FromHashList(["trackHdgDiff","aoaPFD"], 0.01, func(val) { + obj.track_diff = val.trackHdgDiff; # store this to use in FPV obj["TRK_pointer"].setTranslation(obj.getTrackDiffPixels(obj.track_diff),0); obj.AI_fpv_trans.setTranslation(obj.getTrackDiffPixels(math.clamp(obj.track_diff, -21, 21)), math.clamp(val.aoaPFD, -20, 20) * 12.5); }), @@ -2183,7 +2183,7 @@ var input = { vsNeedle: "/instrumentation/pfd/vs-needle", vsPFD: "/it-autoflight/internal/vert-speed-fpm-pfd", - trackPFD: "/instrumentation/pfd/track-deg", + trackHdgDiff: "/instrumentation/pfd/track-hdg-diff", headingPFD: "/instrumentation/pfd/heading-deg", headingScale: "/instrumentation/pfd/heading-scale", localizer: "/instrumentation/nav[0]/heading-needle-deflection-norm", diff --git a/Models/Instruments/PFD/res/pfd.svg b/Models/Instruments/PFD/res/pfd.svg index c23fd613..26866b2a 100644 --- a/Models/Instruments/PFD/res/pfd.svg +++ b/Models/Instruments/PFD/res/pfd.svg @@ -41,12 +41,12 @@ inkscape:window-maximized="1" inkscape:window-y="-8" inkscape:window-x="1592" - inkscape:cy="700.39821" - inkscape:cx="666.95147" + inkscape:cy="693.1507" + inkscape:cx="1036.3363" inkscape:zoom="0.50000001" showgrid="false" id="namedview371" - inkscape:window-height="1017" + inkscape:window-height="1009" inkscape:window-width="1920" inkscape:pageshadow="2" inkscape:pageopacity="1" @@ -871,35 +871,36 @@ <g id="FPV" inkscape:label="#g4866" - transform="matrix(1.1096498,0,0,1.1096488,-47.205197,-44.038897)"> + transform="matrix(0.79660117,0,0,0.79660575,91.726164,113.07112)" + style="stroke-width:7.20948505;stroke-miterlimit:4;stroke-dasharray:none"> <rect transform="matrix(0,1,-1,0,0,0)" - style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:4.32775021;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:7.20948505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4864" - width="11.546137" - height="4.3256927" - x="471.68945" - y="-445.96243" /> + width="26.21059" + height="9.5405254" + x="454.79132" + y="-448.55917" /> <path - style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:4.32568979;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 461.34624,502.24844 c 0,9.69662 -7.86065,17.55727 -17.55727,17.55727 -9.69662,0 -17.55727,-7.86065 -17.55727,-17.55727 0,-9.69662 7.86065,-17.55727 17.55727,-17.55727 9.69662,0 17.55727,7.86065 17.55727,17.55727 z" + style="fill:none;fill-opacity:1;stroke:#0dc04b;stroke-width:9.54052925;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 462.33255,502.24797 c 0,10.24192 -8.30251,18.54462 -18.54421,18.54462 -10.24169,0 -18.5442,-8.3027 -18.5442,-18.54462 0,-10.24193 8.30251,-18.54462 18.5442,-18.54462 10.2417,0 18.54421,8.30269 18.54421,18.54462 z" id="path4858" inkscape:connector-curvature="0" sodipodi:nodetypes="zzzzz" /> <rect - y="500.03757" - x="399.82227" - height="4.3256927" - width="25.012779" + y="497.478" + x="369.83731" + height="9.540534" + width="53.938961" id="rect4860" - style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:6.36979008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:7.20948505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> <rect - style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:6.36977005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:7.20948505;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4862" - width="25.012671" - height="4.3256927" - x="462.76437" - y="500.03757" /> + width="53.939117" + height="9.540534" + x="463.82291" + y="497.478" /> </g> <g id="AI_stick_pos" @@ -970,7 +971,7 @@ </g> </g> <rect - style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.7799499;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="AI_center" width="15.997256" height="16.492025" @@ -999,7 +1000,7 @@ inkscape:connector-curvature="0" id="fixed_aircraft_outline_1" d="m 279.39676,473.84829 20.67975,-1.3e-4 0,15.43882 0,0 1.8e-4,25.65723 -15.4389,0 -0.14628,-25.65723 0,0 -81.2588,-5e-5 0,-15.43891 76.16405,2.1e-4 z" - style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375005;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.75005385;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:label="fixed_aircraft_outline_1" /> </g> <g @@ -1020,7 +1021,7 @@ x="286.12354" y="486.37204" /> <path - style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.54375005;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;fill-opacity:1;stroke:#c9d121;stroke-width:3.75005385;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 279.39676,473.84829 20.67975,-1.3e-4 0,15.43882 0,0 1.8e-4,25.65723 -15.4389,0 -0.14628,-25.65723 0,0 -81.2588,-5e-5 0,-15.43891 76.16405,2.1e-4 z" id="fixed_aircraft_outline_2" inkscape:connector-curvature="0" diff --git a/Systems/a320-adr.xml b/Systems/a320-adr.xml index 307bc125..a8bcf4c8 100644 --- a/Systems/a320-adr.xml +++ b/Systems/a320-adr.xml @@ -61,6 +61,11 @@ </quantization> </sensor> + <lag_filter name="/systems/navigation/adr/output/aoa-1-damped"> + <input>/systems/navigation/adr/output/aoa-1</input> + <c1>10</c1> + </lag_filter> + <sensor name="/systems/navigation/probes/aoa-2"> <input>aero/alpha-deg-corrected</input> <quantization name="/systems/navigation/adr/output/aoa-2"> @@ -70,6 +75,11 @@ </quantization> </sensor> + <lag_filter name="/systems/navigation/adr/output/aoa-2-damped"> + <input>/systems/navigation/adr/output/aoa-2</input> + <c1>10</c1> + </lag_filter> + <sensor name="/systems/navigation/probes/aoa-3"> <input>aero/alpha-deg-corrected</input> <quantization name="/systems/navigation/adr/output/aoa-3"> @@ -78,6 +88,11 @@ <max>180</max> </quantization> </sensor> + + <lag_filter name="/systems/navigation/adr/output/aoa-3-damped"> + <input>/systems/navigation/adr/output/aoa-3</input> + <c1>10</c1> + </lag_filter> <sensor name="/systems/navigation/probes/pitot-1"> <input>/systems/pitot[0]/measured-total-pressure-inhg</input> diff --git a/Systems/pfd.xml b/Systems/pfd.xml index b077b5fe..5da83135 100644 --- a/Systems/pfd.xml +++ b/Systems/pfd.xml @@ -49,7 +49,6 @@ <filter> <name>Track heading diff</name> <type>gain</type> - <update-interval-secs type="double">0.05</update-interval-secs> <gain>1.0</gain> <input> <property>/orientation/track-deg</property> @@ -63,7 +62,6 @@ <filter> <name>Heading scale</name> <type>gain</type> - <update-interval-secs type="double">0.05</update-interval-secs> <gain>1.0</gain> <input> <condition> @@ -78,7 +76,6 @@ <filter> <name>Heading bug diff</name> <type>gain</type> - <update-interval-secs type="double">0.05</update-interval-secs> <gain>1.0</gain> <input> <property>/it-autoflight/input/hdg</property> @@ -104,7 +101,6 @@ <filter> <name>Track bug diff</name> <type>gain</type> - <update-interval-secs type="double">0.05</update-interval-secs> <gain>1.0</gain> <input> <property>/instrumentation/pfd/track-deg</property> @@ -114,19 +110,27 @@ </period> </input> <reference> - <property>/instrumentation/pfd/heading-scale</property> + <property>/instrumentation/pfd/heading-deg</property> <period> <min>-180.0</min> <max>180.0</max> </period> </reference> - <output>/instrumentation/pfd/track-hdg-diff</output> + <output>/instrumentation/pfd/track-hdg-diff-cmd</output> <period> <min>-180.0</min> <max>180.0</max> </period> </filter> + <filter> + <name>Track bug diff smoothed</name> + <type>exponential</type> + <input>/instrumentation/pfd/track-hdg-diff-cmd</input> + <output>/instrumentation/pfd/track-hdg-diff</output> + <filter-time>0.16</filter-time> + </filter> + <filter> <name>Altitude bug diff</name> <type>gain</type>