From ad77dc2f9cd2a1e1ebd5efd4226cbfbf3a522008 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan <stuart_d_buchanan@yahoo.co.uk> Date: Wed, 3 Jan 2018 20:24:41 +0000 Subject: [PATCH] Modify FG1000 EIS to use Emesary, - New Emesary notificaion type for engine data - New Canvas PFD UI Elements - Pointer, Rotating - Upate EIS to use above. --- Aircraft/Instruments-3d/FG1000/Models/EIS.svg | 846 ++++++++++++++++++ .../FG1000/Models/EIS_c172s.svg | 841 ----------------- .../FG1000/Models/NavigationMap.svg | 29 +- Aircraft/Instruments-3d/FG1000/Nasal/EIS.nas | 197 ---- .../Instruments-3d/FG1000/Nasal/EIS/EIS.nas | 120 +++ .../FG1000/Nasal/EIS/EISController.nas | 83 ++ .../FG1000/Nasal/EIS/EISOptions.nas | 28 + .../FG1000/Nasal/EIS/EISStyles.nas | 28 + Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas | 24 +- .../Instruments-3d/FG1000/Nasal/MFDPage.nas | 4 +- Nasal/canvas/PFD/GroupElement.nas | 6 +- ...{ArrowElement.nas => HighlightElement.nas} | 10 +- Nasal/canvas/PFD/PointerElement.nas | 90 ++ Nasal/canvas/PFD/RotatingElement.nas | 82 ++ Nasal/notifications.nas | 3 + 15 files changed, 1314 insertions(+), 1077 deletions(-) create mode 100644 Aircraft/Instruments-3d/FG1000/Models/EIS.svg delete mode 100644 Aircraft/Instruments-3d/FG1000/Models/EIS_c172s.svg delete mode 100644 Aircraft/Instruments-3d/FG1000/Nasal/EIS.nas create mode 100644 Aircraft/Instruments-3d/FG1000/Nasal/EIS/EIS.nas create mode 100644 Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISController.nas create mode 100644 Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISOptions.nas create mode 100644 Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISStyles.nas rename Nasal/canvas/PFD/{ArrowElement.nas => HighlightElement.nas} (78%) create mode 100644 Nasal/canvas/PFD/PointerElement.nas create mode 100644 Nasal/canvas/PFD/RotatingElement.nas diff --git a/Aircraft/Instruments-3d/FG1000/Models/EIS.svg b/Aircraft/Instruments-3d/FG1000/Models/EIS.svg new file mode 100644 index 000000000..17aae3ab2 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Models/EIS.svg @@ -0,0 +1,846 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 744.09448819 1052.3622047" + id="svg4136" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="EIS.svg"> + <defs + id="defs4138"> + <linearGradient + id="linearGradient4779" + osb:paint="gradient"> + <stop + style="stop-color:#352837;stop-opacity:1;" + offset="0" + id="stop4781" /> + <stop + style="stop-color:#352837;stop-opacity:0;" + offset="1" + id="stop4783" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.3515539" + inkscape:cx="-68.203599" + inkscape:cy="819.61743" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="2495" + inkscape:window-height="1416" + inkscape:window-x="65" + inkscape:window-y="24" + inkscape:window-maximized="1" + showguides="false" + inkscape:snap-object-midpoints="false" + inkscape:snap-center="true" /> + <metadata + id="metadata4141"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="EISGroup" + inkscape:label="#g6033"> + <rect + inkscape:label="#rect4684" + y="56.43882" + x="-0.28891727" + height="688.48676" + width="149.48674" + id="SBattAmps" + style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.51325756;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="OuterRPM" + d="M 74.242188,57.513672 C 57.591382,57.455549 40.919193,63.107347 27.365234,74.480469 0.25731786,97.226713 -6.4772629,136.22443 11.429688,166.74609 l 0.875,-0.51367 C -5.3549643,136.13227 1.2859805,97.689926 28.019531,75.257812 54.753082,52.825699 93.76355,52.961876 120.33984,75.580078 c 26.5763,22.618202 32.94749,61.105902 15.07813,91.082032 l 0.87109,0.51953 C 154.40866,136.78573 147.9465,97.741579 120.99805,74.806641 107.52382,63.339172 90.892993,57.571795 74.242188,57.513672 Z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.01574385;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="WhiteRPM" + d="M 74.070312,60.328125 C 58.093724,60.272356 42.097371,65.691238 29.099609,76.597656 3.1040851,98.410493 -3.3615793,135.84409 13.810547,165.11328 l 4.3125,-2.5293 C 2.168248,135.38968 8.1597914,100.69426 32.3125,80.427734 56.465208,60.161205 91.672961,60.284097 115.68359,80.71875 c 24.01064,20.43465 29.76145,55.1697 13.61719,82.25195 l 4.29492,2.56055 C 150.97175,136.38266 144.76644,98.905897 118.92383,76.912109 106.00252,65.915216 90.046901,60.383894 74.070312,60.328125 Z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="GreenRPM" + d="m 103.45312,66.941406 -2.1289,4.523438 c 19.86326,9.346943 33.61421,28.13482 36.51758,49.894536 l 4.95703,-0.66016 C 139.67156,97.261392 124.84825,77.009188 103.45312,66.941406 Z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#009900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + inkscape:connector-curvature="0" + id="RedRPM" + d="m 138.41016,129.90234 c 0,11.6428 -3.14777,23.06767 -9.10938,33.06836 l 4.29492,2.56055 c 6.423,-10.77468 9.81446,-23.08503 9.81446,-35.62891 l -5,0 z" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4713" + d="m 11.702553,167.05926 9.343911,-5.49271" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4715" + d="m 136.0776,167.56433 -9.97526,-5.93465" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text4717" + y="180.59354" + x="0.72086191" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + xml:space="preserve"><tspan + y="180.59354" + x="0.72086191" + id="tspan4719" + sodipodi:role="line">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="110.5423" + y="180.95068" + id="text4725" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4727" + x="110.5423" + y="180.95068">3000</tspan></text> + <text + inkscape:label="#text4729" + sodipodi:linespacing="125%" + id="EISRPMDisplay" + y="184.0697" + x="40.9702" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;font-family:FreeSans;-inkscape-font-specification:FreeSans" + y="184.0697" + x="40.9702" + id="tspan4731" + sodipodi:role="line">2200</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4733" + y="154.23056" + x="52.228359" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="154.23056" + x="52.228359" + id="tspan4735" + sodipodi:role="line">RPM</tspan></text> + <path + inkscape:transform-center-y="17.260628" + inkscape:transform-center-x="30.347137" + inkscape:label="#path4775" + inkscape:connector-curvature="0" + id="EISRPMPointer" + d="m 72.822029,125.96939 -59.459758,31.77936 6.366604,-9.03366 4.578139,3.17116 -0.526987,6.34826 -10.196797,-0.65694" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <g + transform="translate(-0.54554609,-307.18002)" + id="g4866"> + <rect + style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4862" + width="75.530403" + height="6.9623003" + x="8.4391518" + y="544.53625" /> + <g + id="FFLOW" + inkscape:label="#g4833" + transform="translate(0,21.780942)"> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path4789" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path4799" + d="m 20.684108,531.22649 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 34.931231,531.30108 0,-11.60383" + id="path4813" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4815" + d="m 34.931231,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 48.656208,531.30108 0,-11.60383" + id="path4819" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4821" + d="m 62.082816,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 75.509424,531.30108 0,-11.60383" + id="path4823" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4825" + d="m 89.681955,531.52486 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 102.95938,531.22649 0,-11.60383" + id="path4827" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4829" + d="m 116.53517,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 129.66341,531.30108 0,-11.60383" + id="path4831" + inkscape:connector-curvature="0" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="30.433645" + y="528.42615" + id="text4846" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="30.433645" + y="528.42615" + id="tspan4850">FFLOW GPH</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="3.5804288" + y="569.60107" + id="text4854"><tspan + sodipodi:role="line" + id="tspan4856" + x="3.5804288" + y="569.60107">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="130.08891" + y="569.60101" + id="text4858"><tspan + sodipodi:role="line" + id="tspan4860" + x="130.08891" + y="569.60101">20</tspan></text> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" + id="EISFuelFlowPointer" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + inkscape:label="#path4864" /> + </g> + <g + transform="translate(-0.54554609,-238.25676)" + id="g4888"> + <rect + y="544.53625" + x="72.682198" + height="6.9623003" + width="38.714603" + id="rect4890" + style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + style="opacity:1;fill:#ca0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4930" + width="4.0085921" + height="6.9623003" + x="138.82405" + y="544.53625" /> + <g + transform="translate(0,21.780942)" + inkscape:label="#g4833" + id="g4892"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + id="path4894" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + </g> + <text + sodipodi:linespacing="125%" + id="text4916" + y="528.42615" + x="41.193565" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan4918" + y="528.42615" + x="41.193565" + sodipodi:role="line">OIL PRES</tspan></text> + <rect + style="opacity:1;fill:#aa0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4932" + width="20.886898" + height="6.9622803" + x="8.0171986" + y="544.53625" /> + <path + inkscape:label="#path4864" + sodipodi:nodetypes="cccccc" + inkscape:connector-curvature="0" + id="EISOilPressurePointer" + d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4934" + transform="translate(-0.54554609,-188.88773)"> + <rect + style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4936" + width="105.27841" + height="6.9623003" + x="33.440144" + y="544.53625" /> + <rect + y="544.53625" + x="138.82405" + height="6.9623003" + width="4.0085921" + id="rect4938" + style="opacity:1;fill:#ca0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + id="g4940" + inkscape:label="#g4833" + transform="translate(0,21.780942)"> + <path + sodipodi:nodetypes="cccc" + inkscape:connector-curvature="0" + id="path4942" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="41.193565" + y="528.42615" + id="text4944" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="41.193565" + y="528.42615" + id="tspan4946">OIL TEMP</tspan></text> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" + id="EISOilTempPointer" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + inkscape:label="#path4864" /> + </g> + <g + transform="translate(-0.54554609,-142.18193)" + id="g4952"> + <g + transform="translate(0,21.780942)" + inkscape:label="#g4833" + id="g4956"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + id="path4958" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 20.684108,531.22649 0,-11.60383" + id="path4960" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4962" + d="m 34.931231,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 34.931231,531.30108 0,-11.60383" + id="path4964" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4966" + d="m 48.656208,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 62.082816,531.30108 0,-11.60383" + id="path4968" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4970" + d="m 75.509424,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 89.681955,531.52486 0,-11.60383" + id="path4972" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4974" + d="m 102.95938,531.22649 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 116.53517,531.30108 0,-11.60383" + id="path4976" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path4978" + d="m 129.66341,531.30108 0,-11.60383" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <text + sodipodi:linespacing="125%" + id="text4980" + y="528.42615" + x="62.060768" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan4982" + y="528.42615" + x="62.060768" + sodipodi:role="line">EGT</tspan></text> + <path + inkscape:label="#path4864" + sodipodi:nodetypes="cccccc" + inkscape:connector-curvature="0" + id="EISEGTPointer" + d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + inkscape:label="#text4994" + id="EISEGTCylinder" + y="550.22003" + x="3.9031074" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="550.22003" + x="3.9031074" + id="tspan4996" + sodipodi:role="line">1</tspan></text> + </g> + <g + transform="translate(-0.54554609,-81.176495)" + id="g4998"> + <rect + y="544.53625" + x="54.624344" + height="6.9623003" + width="37.847004" + id="rect5000" + style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <g + transform="translate(0,21.780942)" + inkscape:label="#g4833" + id="g5004"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + id="path5006" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + </g> + <text + sodipodi:linespacing="125%" + id="text5008" + y="528.42615" + x="60.289185" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan5010" + y="528.42615" + x="60.289185" + sodipodi:role="line">VAC</tspan></text> + <path + inkscape:label="#path4864" + sodipodi:nodetypes="cccccc" + inkscape:connector-curvature="0" + id="EISVacPointer" + d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + transform="translate(0,271.9634)" + id="g5014"> + <g + transform="translate(-0.54554609,-285.39908)" + inkscape:label="#g4833" + id="g5018"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" + id="path5020" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + <path + inkscape:connector-curvature="0" + id="path5028" + d="m 53.078837,542.01976 0,-22.4943" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 97.957359,541.88715 0,-21.89756" + id="path5034" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 8.2003174,542.28497 0,-22.4943" + id="path5056" + inkscape:connector-curvature="0" /> + <path + inkscape:connector-curvature="0" + id="path5058" + d="m 142.83588,542.15236 0,-21.89756" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <rect + y="242.57767" + x="24.303904" + height="6.9623003" + width="100.89178" + id="rect5016" + style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text5042" + y="221.09695" + x="22.578058" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan5044" + y="221.09695" + x="22.578058" + sodipodi:role="line">FUEL QTY GAL</tspan></text> + <text + id="text5046" + y="272.61682" + x="3.034883" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:15px" + y="272.61682" + x="3.034883" + id="tspan5048" + sodipodi:role="line">0</tspan></text> + <text + id="text5050" + y="272.93927" + x="136.70422" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:15px" + y="272.93927" + x="136.70422" + id="tspan5052" + sodipodi:role="line">F</tspan></text> + <rect + style="opacity:1;fill:#aa0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5062" + width="5.0407143" + height="6.9623003" + x="7.5952349" + y="242.57767" /> + <rect + style="opacity:1;fill:#acaf00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5064" + width="11.754019" + height="6.9623003" + x="12.592917" + y="242.57767" /> + <text + id="text5066" + y="272.61682" + x="43.221519" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:FreeSans" + y="272.61682" + x="43.221519" + id="tspan5068" + sodipodi:role="line">10</tspan></text> + <text + id="text5070" + y="272.61682" + x="88.535469" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="272.61682" + x="88.535469" + id="tspan5072" + sodipodi:role="line">20</tspan></text> + <g + inkscape:label="#g4282" + id="EISRightFuelPointer"> + <path + inkscape:label="#path4864" + sodipodi:nodetypes="cccccc" + inkscape:connector-curvature="0" + id="RightFuelTriangle" + d="m 4.0259199,259.63213 -2.9100082,0 6.4348532,-12.49326 7.3051411,12.49326 -3.797618,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="3.8553977" + y="259.8103" + id="RightFuelLabel" + inkscape:label="#text5076"><tspan + sodipodi:role="line" + id="tspan5078" + x="3.8553977" + y="259.8103">R</tspan></text> + </g> + <g + inkscape:label="#g4277" + id="EISLeftFuelPointer"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 4.0259199,232.43184 -2.9100082,0 6.4348532,12.49326 7.3051411,-12.49326 -3.797618,0 z" + id="LeftFuelTriangle" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + inkscape:label="#path4864" /> + <text + inkscape:label="#text5076" + id="LeftFuelLabel" + y="239.81961" + x="3.8553977" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="239.81961" + x="3.8553977" + id="tspan5082" + sodipodi:role="line">L</tspan></text> + </g> + <text + id="text5092" + y="306.83356" + x="1.7752202" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="306.83356" + x="1.7752202" + id="tspan5094" + sodipodi:role="line">ENG HRS</tspan></text> + <text + inkscape:label="#text5096" + id="EISEngineHours" + y="307.17853" + x="73.508011" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="307.17853" + x="73.508011" + id="tspan5098" + sodipodi:role="line">XXXX.X</tspan></text> + <text + id="text5100" + y="341.14606" + x="26.265755" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="341.14606" + x="26.265755" + id="tspan5102" + sodipodi:role="line">ELECTRICAL</tspan></text> + <path + inkscape:connector-curvature="0" + id="path5108" + d="m 120.34531,335.65557 16.45634,0.21098" + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 7.8936094,335.65557 24.34995,335.86655" + id="path5110" + inkscape:connector-curvature="0" /> + <text + sodipodi:linespacing="0%" + id="text5112" + y="359.64337" + x="13.590033" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="359.64337" + x="13.590033" + id="tspan5114" + sodipodi:role="line">M</tspan></text> + <text + id="text5116" + y="359.56085" + x="56.530724" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="359.56085" + x="56.530724" + id="tspan5118" + sodipodi:role="line">BUS</tspan></text> + <text + id="text5120" + y="359.64337" + x="119.29041" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="359.64337" + x="119.29041" + id="tspan5122" + sodipodi:role="line">E</tspan></text> + <flowRoot + style="fill-opacity:1;font-size:15px;opacity:1;fill-rule:nonzero;fill:#ffffff;stroke:#ffffff;stroke-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;-inkscape-font-specification:FreeSans;font-family:FreeSans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal" + id="flowRoot5124" + xml:space="preserve"><flowRegion + id="flowRegion5126"><rect + y="931.89331" + x="-18.988091" + height="44.305546" + width="250.43182" + id="rect5128" /></flowRegion><flowPara + id="flowPara5130" /></flowRoot> <text + inkscape:label="#text5132" + id="EISMBusVolts" + y="382.3924" + x="9.3704567" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="382.3924" + x="9.3704567" + id="tspan5134" + sodipodi:role="line">32.0</tspan></text> + <text + id="text5136" + y="382.84338" + x="50.673546" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="382.84338" + x="50.673546" + id="tspan5138" + sodipodi:role="line">VOLTS</tspan></text> + <text + inkscape:label="#text5140" + id="EISEBusVolts" + y="381.33752" + x="112.32812" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="381.33752" + x="112.32812" + id="tspan5142" + sodipodi:role="line">32.0</tspan></text> + <text + id="text5144" + y="425.23657" + x="15.066884" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="425.23657" + x="15.066884" + id="tspan5146" + sodipodi:role="line">M</tspan></text> + <text + id="text5148" + y="425.23657" + x="55.660442" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="425.23657" + x="55.660442" + id="tspan5150" + sodipodi:role="line">BATT</tspan></text> + <text + id="text5152" + y="425.15405" + x="124.56488" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="425.15405" + x="124.56488" + id="tspan5154" + sodipodi:role="line">S</tspan></text> + <text + inkscape:label="#text5156" + id="EISMBattAmps" + y="450.11658" + x="5.1508813" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="450.11658" + x="5.1508813" + id="tspan5158" + sodipodi:role="line">+110</tspan></text> + <text + id="text5160" + y="450.35657" + x="53.034382" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="450.35657" + x="53.034382" + id="tspan5162" + sodipodi:role="line">AMPS</tspan></text> + <text + inkscape:label="#text5164" + id="EISSBattAmps" + y="450.11658" + x="109.16343" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + xml:space="preserve"><tspan + y="450.11658" + x="109.16343" + id="tspan5166" + sodipodi:role="line">+110</tspan></text> + </g> + </g> + </g> +</svg> diff --git a/Aircraft/Instruments-3d/FG1000/Models/EIS_c172s.svg b/Aircraft/Instruments-3d/FG1000/Models/EIS_c172s.svg deleted file mode 100644 index e1af03ee8..000000000 --- a/Aircraft/Instruments-3d/FG1000/Models/EIS_c172s.svg +++ /dev/null @@ -1,841 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="210mm" - height="297mm" - viewBox="0 0 744.09448819 1052.3622047" - id="svg4136" - version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="EIS_c172s_v2.svg"> - <defs - id="defs4138"> - <linearGradient - id="linearGradient4779" - osb:paint="gradient"> - <stop - style="stop-color:#352837;stop-opacity:1;" - offset="0" - id="stop4781" /> - <stop - style="stop-color:#352837;stop-opacity:0;" - offset="1" - id="stop4783" /> - </linearGradient> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="3.3515539" - inkscape:cx="4.4492679" - inkscape:cy="930.9091" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="2495" - inkscape:window-height="1416" - inkscape:window-x="65" - inkscape:window-y="24" - inkscape:window-maximized="1" - showguides="false" - inkscape:snap-object-midpoints="false" - inkscape:snap-center="true" /> - <metadata - id="metadata4141"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1"> - <rect - style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.51325756;stroke-opacity:1" - id="SBattAmps" - width="149.48674" - height="688.48676" - x="-0.28891727" - y="56.43882" - inkscape:label="#rect4684" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.01574385;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 74.242188,57.513672 C 57.591382,57.455549 40.919193,63.107347 27.365234,74.480469 0.25731786,97.226713 -6.4772629,136.22443 11.429688,166.74609 l 0.875,-0.51367 C -5.3549643,136.13227 1.2859805,97.689926 28.019531,75.257812 54.753082,52.825699 93.76355,52.961876 120.33984,75.580078 c 26.5763,22.618202 32.94749,61.105902 15.07813,91.082032 l 0.87109,0.51953 C 154.40866,136.78573 147.9465,97.741579 120.99805,74.806641 107.52382,63.339172 90.892993,57.571795 74.242188,57.513672 Z" - id="OuterRPM" - inkscape:connector-curvature="0" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="M 74.070312,60.328125 C 58.093724,60.272356 42.097371,65.691238 29.099609,76.597656 3.1040851,98.410493 -3.3615793,135.84409 13.810547,165.11328 l 4.3125,-2.5293 C 2.168248,135.38968 8.1597914,100.69426 32.3125,80.427734 56.465208,60.161205 91.672961,60.284097 115.68359,80.71875 c 24.01064,20.43465 29.76145,55.1697 13.61719,82.25195 l 4.29492,2.56055 C 150.97175,136.38266 144.76644,98.905897 118.92383,76.912109 106.00252,65.915216 90.046901,60.383894 74.070312,60.328125 Z" - id="WhiteRPM" - inkscape:connector-curvature="0" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#009900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m 103.45312,66.941406 -2.1289,4.523438 c 19.86326,9.346943 33.61421,28.13482 36.51758,49.894536 l 4.95703,-0.66016 C 139.67156,97.261392 124.84825,77.009188 103.45312,66.941406 Z" - id="GreenRPM" - inkscape:connector-curvature="0" /> - <path - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m 138.41016,129.90234 c 0,11.6428 -3.14777,23.06767 -9.10938,33.06836 l 4.29492,2.56055 c 6.423,-10.77468 9.81446,-23.08503 9.81446,-35.62891 l -5,0 z" - id="RedRPM" - inkscape:connector-curvature="0" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 11.702553,167.05926 9.343911,-5.49271" - id="path4713" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 136.0776,167.56433 -9.97526,-5.93465" - id="path4715" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" - x="0.72086191" - y="180.59354" - id="text4717" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4719" - x="0.72086191" - y="180.59354">0</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4725" - y="180.95068" - x="110.5423" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" - xml:space="preserve"><tspan - y="180.95068" - x="110.5423" - id="tspan4727" - sodipodi:role="line">3000</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="40.9702" - y="184.0697" - id="RPMDisplay" - sodipodi:linespacing="125%" - inkscape:label="#text4729"><tspan - sodipodi:role="line" - id="tspan4731" - x="40.9702" - y="184.0697" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;font-family:FreeSans;-inkscape-font-specification:FreeSans">2200</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="52.228359" - y="154.23056" - id="text4733" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4735" - x="52.228359" - y="154.23056">RPM</tspan></text> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 72.822029,125.96939 -59.459758,31.77936 6.366604,-9.03366 4.578139,3.17116 -0.526987,6.34826 -10.196797,-0.65694" - id="RPMPointer" - inkscape:connector-curvature="0" - inkscape:label="#path4775" - inkscape:transform-center-x="30.347137" - inkscape:transform-center-y="17.260628" /> - <g - id="g4866" - transform="translate(-0.54554609,-307.18002)"> - <rect - y="544.53625" - x="8.4391518" - height="6.9623003" - width="75.530403" - id="rect4862" - style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <g - transform="translate(0,21.780942)" - inkscape:label="#g4833" - id="FFLOW"> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - id="path4789" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 20.684108,531.22649 0,-11.60383" - id="path4799" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4813" - d="m 34.931231,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 34.931231,531.30108 0,-11.60383" - id="path4815" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4819" - d="m 48.656208,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 62.082816,531.30108 0,-11.60383" - id="path4821" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4823" - d="m 75.509424,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 89.681955,531.52486 0,-11.60383" - id="path4825" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4827" - d="m 102.95938,531.22649 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 116.53517,531.30108 0,-11.60383" - id="path4829" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4831" - d="m 129.66341,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - sodipodi:linespacing="125%" - id="text4846" - y="528.42615" - x="30.433645" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - id="tspan4850" - y="528.42615" - x="30.433645" - sodipodi:role="line">FFLOW GPH</tspan></text> - <text - id="text4854" - y="569.60107" - x="3.5804288" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - xml:space="preserve"><tspan - y="569.60107" - x="3.5804288" - id="tspan4856" - sodipodi:role="line">0</tspan></text> - <text - id="text4858" - y="569.60101" - x="130.08891" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - xml:space="preserve"><tspan - y="569.60101" - x="130.08891" - id="tspan4860" - sodipodi:role="line">20</tspan></text> - <path - inkscape:label="#path4864" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" - id="FuelFlowPointer" - d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4888" - transform="translate(-0.54554609,-238.25676)"> - <rect - style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4890" - width="38.714603" - height="6.9623003" - x="72.682198" - y="544.53625" /> - <rect - y="544.53625" - x="138.82405" - height="6.9623003" - width="4.0085921" - id="rect4930" - style="opacity:1;fill:#ca0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <g - id="g4892" - inkscape:label="#g4833" - transform="translate(0,21.780942)"> - <path - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" - id="path4894" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="41.193565" - y="528.42615" - id="text4916" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="41.193565" - y="528.42615" - id="tspan4918">OIL PRES</tspan></text> - <rect - y="544.53625" - x="8.0171986" - height="6.9622803" - width="20.886898" - id="rect4932" - style="opacity:1;fill:#aa0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" - id="OilPressurePointer" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - inkscape:label="#path4864" /> - </g> - <g - transform="translate(-0.54554609,-188.88773)" - id="g4934"> - <rect - y="544.53625" - x="33.440144" - height="6.9623003" - width="105.27841" - id="rect4936" - style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - style="opacity:1;fill:#ca0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4938" - width="4.0085921" - height="6.9623003" - x="138.82405" - y="544.53625" /> - <g - transform="translate(0,21.780942)" - inkscape:label="#g4833" - id="g4940"> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - id="path4942" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccc" /> - </g> - <text - sodipodi:linespacing="125%" - id="text4944" - y="528.42615" - x="41.193565" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - xml:space="preserve"><tspan - id="tspan4946" - y="528.42615" - x="41.193565" - sodipodi:role="line">OIL TEMP</tspan></text> - <path - inkscape:label="#path4864" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" - id="OilTempPointer" - d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4952" - transform="translate(-0.54554609,-142.18193)"> - <g - id="g4956" - inkscape:label="#g4833" - transform="translate(0,21.780942)"> - <path - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" - id="path4958" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path4960" - d="m 20.684108,531.22649 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 34.931231,531.30108 0,-11.60383" - id="path4962" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4964" - d="m 34.931231,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 48.656208,531.30108 0,-11.60383" - id="path4966" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4968" - d="m 62.082816,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 75.509424,531.30108 0,-11.60383" - id="path4970" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4972" - d="m 89.681955,531.52486 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 102.95938,531.22649 0,-11.60383" - id="path4974" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path4976" - d="m 116.53517,531.30108 0,-11.60383" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 129.66341,531.30108 0,-11.60383" - id="path4978" - inkscape:connector-curvature="0" /> - </g> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="62.060768" - y="528.42615" - id="text4980" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="62.060768" - y="528.42615" - id="tspan4982">EGT</tspan></text> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" - id="EGTPointer" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - inkscape:label="#path4864" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="3.9031074" - y="550.22003" - id="EGTCylinder" - inkscape:label="#text4994"><tspan - sodipodi:role="line" - id="tspan4996" - x="3.9031074" - y="550.22003">1</tspan></text> - </g> - <g - id="g4998" - transform="translate(-0.54554609,-81.176495)"> - <rect - style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect5000" - width="37.847004" - height="6.9623003" - x="54.624344" - y="544.53625" /> - <g - id="g5004" - inkscape:label="#g4833" - transform="translate(0,21.780942)"> - <path - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" - id="path5006" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="60.289185" - y="528.42615" - id="text5008" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="60.289185" - y="528.42615" - id="tspan5010">VAC</tspan></text> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z" - id="VacPointer" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - inkscape:label="#path4864" /> - </g> - <g - id="g5014" - transform="translate(0,271.9634)"> - <g - id="g5018" - inkscape:label="#g4833" - transform="translate(-0.54554609,-285.39908)"> - <path - sodipodi:nodetypes="cccc" - inkscape:connector-curvature="0" - id="path5020" - d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 53.078837,542.01976 0,-22.4943" - id="path5028" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path5034" - d="m 97.957359,541.88715 0,-21.89756" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path5056" - d="m 8.2003174,542.28497 0,-22.4943" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 142.83588,542.15236 0,-21.89756" - id="path5058" - inkscape:connector-curvature="0" /> - </g> - <rect - style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect5016" - width="100.89178" - height="6.9623003" - x="24.303904" - y="242.57767" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="22.578058" - y="221.09695" - id="text5042" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="22.578058" - y="221.09695" - id="tspan5044">FUEL QTY GAL</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="3.034883" - y="272.61682" - id="text5046"><tspan - sodipodi:role="line" - id="tspan5048" - x="3.034883" - y="272.61682" - style="font-size:15px">0</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="136.70422" - y="272.93927" - id="text5050"><tspan - sodipodi:role="line" - id="tspan5052" - x="136.70422" - y="272.93927" - style="font-size:15px">F</tspan></text> - <rect - y="242.57767" - x="7.5952349" - height="6.9623003" - width="5.0407143" - id="rect5062" - style="opacity:1;fill:#aa0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <rect - y="242.57767" - x="12.592917" - height="6.9623003" - width="11.754019" - id="rect5064" - style="opacity:1;fill:#acaf00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="43.221519" - y="272.61682" - id="text5066"><tspan - sodipodi:role="line" - id="tspan5068" - x="43.221519" - y="272.61682" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:FreeSans">10</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="88.535469" - y="272.61682" - id="text5070"><tspan - sodipodi:role="line" - id="tspan5072" - x="88.535469" - y="272.61682">20</tspan></text> - <g - id="RightFuelPointer" - inkscape:label="#g4282"> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 4.0259199,259.63213 -2.9100082,0 6.4348532,-12.49326 7.3051411,12.49326 -3.797618,0 z" - id="RightFuelTriangle" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccc" - inkscape:label="#path4864" /> - <text - inkscape:label="#text5076" - id="RightFuelLabel" - y="259.8103" - x="3.8553977" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - xml:space="preserve"><tspan - y="259.8103" - x="3.8553977" - id="tspan5078" - sodipodi:role="line">R</tspan></text> - </g> - <g - id="LeftFuelPointer" - inkscape:label="#g4277"> - <path - inkscape:label="#path4864" - sodipodi:nodetypes="cccccc" - inkscape:connector-curvature="0" - id="LeftFuelTriangle" - d="m 4.0259199,232.43184 -2.9100082,0 6.4348532,12.49326 7.3051411,-12.49326 -3.797618,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="3.8553977" - y="239.81961" - id="LeftFuelLabel" - inkscape:label="#text5076"><tspan - sodipodi:role="line" - id="tspan5082" - x="3.8553977" - y="239.81961">L</tspan></text> - </g> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="1.7752202" - y="306.83356" - id="text5092"><tspan - sodipodi:role="line" - id="tspan5094" - x="1.7752202" - y="306.83356">ENG HRS</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="73.508011" - y="307.17853" - id="EngineHours" - inkscape:label="#text5096"><tspan - sodipodi:role="line" - id="tspan5098" - x="73.508011" - y="307.17853">XXXX.X</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="26.265755" - y="341.14606" - id="text5100"><tspan - sodipodi:role="line" - id="tspan5102" - x="26.265755" - y="341.14606">ELECTRICAL</tspan></text> - <path - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 120.34531,335.65557 16.45634,0.21098" - id="path5108" - inkscape:connector-curvature="0" /> - <path - inkscape:connector-curvature="0" - id="path5110" - d="M 7.8936094,335.65557 24.34995,335.86655" - style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="13.590033" - y="359.64337" - id="text5112" - sodipodi:linespacing="0%"><tspan - sodipodi:role="line" - id="tspan5114" - x="13.590033" - y="359.64337">M</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="56.530724" - y="359.56085" - id="text5116"><tspan - sodipodi:role="line" - id="tspan5118" - x="56.530724" - y="359.56085">BUS</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="119.29041" - y="359.64337" - id="text5120"><tspan - sodipodi:role="line" - id="tspan5122" - x="119.29041" - y="359.64337">E</tspan></text> - <flowRoot - xml:space="preserve" - id="flowRoot5124" - style="fill-opacity:1;font-size:15px;opacity:1;fill-rule:nonzero;fill:#ffffff;stroke:#ffffff;stroke-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;-inkscape-font-specification:FreeSans;font-family:FreeSans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"><flowRegion - id="flowRegion5126"><rect - id="rect5128" - width="250.43182" - height="44.305546" - x="-18.988091" - y="931.89331" /></flowRegion><flowPara - id="flowPara5130" /></flowRoot> <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="9.3704567" - y="382.3924" - id="MBusVolts" - inkscape:label="#text5132"><tspan - sodipodi:role="line" - id="tspan5134" - x="9.3704567" - y="382.3924">32.0</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="50.673546" - y="382.84338" - id="text5136"><tspan - sodipodi:role="line" - id="tspan5138" - x="50.673546" - y="382.84338">VOLTS</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="112.32812" - y="381.33752" - id="EBusVolts" - inkscape:label="#text5140"><tspan - sodipodi:role="line" - id="tspan5142" - x="112.32812" - y="381.33752">32.0</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="15.066884" - y="425.23657" - id="text5144"><tspan - sodipodi:role="line" - id="tspan5146" - x="15.066884" - y="425.23657">M</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="55.660442" - y="425.23657" - id="text5148"><tspan - sodipodi:role="line" - id="tspan5150" - x="55.660442" - y="425.23657">BATT</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="124.56488" - y="425.15405" - id="text5152"><tspan - sodipodi:role="line" - id="tspan5154" - x="124.56488" - y="425.15405">S</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="5.1508813" - y="450.11658" - id="MBattAmps" - inkscape:label="#text5156"><tspan - sodipodi:role="line" - id="tspan5158" - x="5.1508813" - y="450.11658">+110</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="53.034382" - y="450.35657" - id="text5160"><tspan - sodipodi:role="line" - id="tspan5162" - x="53.034382" - y="450.35657">AMPS</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - x="109.16343" - y="450.11658" - id="text5164"><tspan - sodipodi:role="line" - id="tspan5166" - x="109.16343" - y="450.11658">+110</tspan></text> - </g> - </g> -</svg> diff --git a/Aircraft/Instruments-3d/FG1000/Models/NavigationMap.svg b/Aircraft/Instruments-3d/FG1000/Models/NavigationMap.svg index 7447ca297..580ff2caf 100644 --- a/Aircraft/Instruments-3d/FG1000/Models/NavigationMap.svg +++ b/Aircraft/Instruments-3d/FG1000/Models/NavigationMap.svg @@ -23,11 +23,11 @@ borderopacity="0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="1" - inkscape:cx="1043.4675" - inkscape:cy="319.89557" + inkscape:zoom="2.8284271" + inkscape:cx="723.45322" + inkscape:cy="612.12112" inkscape:document-units="px" - inkscape:current-layer="layer3" + inkscape:current-layer="NavigationMapGroup" showgrid="true" inkscape:window-width="2495" inkscape:window-height="1416" @@ -101,12 +101,12 @@ width="74.343285" height="20.035156" x="952.10205" - y="63.956055" /> + y="55.482422" /> <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="956.10889" - y="78.973633" + y="70.5" id="NavigationMapOrientation" sodipodi:linespacing="125%" inkscape:label="#text4218"><tspan @@ -114,11 +114,12 @@ sodipodi:role="line" id="tspan4220" x="956.10889" - y="78.973633">NORTH UP</tspan></text> + y="70.5">NORTH UP</tspan></text> </g> <g id="NavigationMapGroupPartial" - inkscape:label="#g4878"> + inkscape:label="#g4878" + transform="translate(14.999977,-0.47363257)"> <rect y="718.50403" x="640.57623" @@ -150,21 +151,21 @@ id="rect4817" width="74.343285" height="20.035156" - x="635.17432" - y="63.956055" /> + x="635.48242" + y="55.956055" /> <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#fffcfa;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - x="639.18115" - y="78.973633" + x="639.48926" + y="70.973633" id="NavigationMapOrientationPartial" sodipodi:linespacing="125%" inkscape:label="#text4218"><tspan style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;font-family:'Liberation Sans Narrow';-inkscape-font-specification:'Liberation Sans Narrow Condensed'" sodipodi:role="line" id="tspan4821" - x="639.18115" - y="78.973633">NORTH UP</tspan></text> + x="639.48926" + y="70.973633">NORTH UP</tspan></text> </g> </g> </svg> diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/EIS.nas b/Aircraft/Instruments-3d/FG1000/Nasal/EIS.nas deleted file mode 100644 index c39e78c12..000000000 --- a/Aircraft/Instruments-3d/FG1000/Nasal/EIS.nas +++ /dev/null @@ -1,197 +0,0 @@ -# FG1000 Engine Information Display - -# A mapping from names of elements to specific elements of the SVG. -# These names mapped to values by the provided EISDriver. -var DynamicTextElementMap = -{ - new : func(svg, name, element_id, format) - { - var obj = { parents : [ DynamicTextElementMap ] }; - obj._name = name; - obj._element_id = element_id; - obj._element = svg.getElementById(element_id); - obj._format = format; - return obj; - }, - - update : func(driver) - { - me._element.setText(sprintf(me._format, driver.getValue(me._name))); - }, -}; - -var DynamicSliderElementMap = -{ - new : func(svg, name, element_id, min=0.0, max=1.0) - { - var obj = { parents : [ DynamicSliderElementMap ] }; - obj._name = name; - obj._element_id = element_id; - obj._element = svg.getElementById(element_id); - obj._baseTranslation = obj._element.getTranslation(); - obj._min = min; - obj._max = max; - return obj; - }, - - update : func(driver) - { - var value = driver.getValue(me._name); - if (value == nil) value = 0.0; - - # Bound value to the minimum and maximum values. - value = math.max(me._min, value); - value = math.min(me._max, value); - - # Convert to normalized value - value = (value - me._min) / (me._max - me._min); - - # Simply shift the slider along. All sliders have a 0 value - # at x=3.5, and a maximum value at x=138.0. - me._element.setTranslation([ - me._baseTranslation[0] + (value * (138.0 - 3.5)), - me._baseTranslation[1] - ]); - }, -}; - - -var DynamicRotatingElementMap = -{ - new : func(svg, name, element_id, min=0.0, max=1.0, range=360.0) - { - var obj = { parents : [ DynamicRotatingElementMap ] }; - obj._name = name; - obj._element_id = element_id; - obj._element = svg.getElementById(element_id); - obj._baseTranslation = obj._element.getTranslation(); - obj._min = min; - obj._max = max; - obj._range = range; - return obj; - }, - - update : func(driver) - { - var value = driver.getValue(me._name); - if (value == nil) value = 0.0; - - # Bound value to the minimum and maximum values. - value = math.max(me._min, value); - value = math.min(me._max, value); - - # Convert to normalized value - value = (value - me._min) / (me._max - me._min); - me._element.setRotation(value * me._range * D2R, [100.0, 100.0]); - }, -}; - -var EIS = -{ - new : func (myCanvas, EISDriver) - { - var obj = { parents : [ EIS ] }; - obj._canvas = myCanvas; - obj._EISDriver = EISDriver; - - obj._svg= obj._canvas.createGroup("EIS"); - canvas.parsesvg(obj._svg, '/Aircraft/Instruments-3d/FG1000/Models/EIS_c172s.svg'); - - # Objects to display as straight text - obj._textElements = [ - DynamicTextElementMap.new(obj._svg, "RPM", "RPMDisplay", "%i"), - DynamicTextElementMap.new(obj._svg, "MBusVolts" , "MBusVolts", "%.01f"), - DynamicTextElementMap.new(obj._svg, "MBusVolts" , "EBusVolts", "%.01f"), - DynamicTextElementMap.new(obj._svg, "EngineHours" , "EngineHours", "%.01f"), - ]; - - obj._sliderElements = [ - DynamicSliderElementMap.new(obj._svg, "FuelFlowGPH", "FuelFlowPointer", 0.0, 20.0), - DynamicSliderElementMap.new(obj._svg, "OilPressurePSI", "OilPressurePointer", 0.0, 115.0), - DynamicSliderElementMap.new(obj._svg, "OilTemperatureF", "OilTempPointer", 0.0, 245.0), - DynamicSliderElementMap.new(obj._svg, "EGTNorm", "EGTPointer", 0.0, 1.0), - DynamicSliderElementMap.new(obj._svg, "EGTNorm", "EGTCylinder", 0.0, 1.0), - DynamicSliderElementMap.new(obj._svg, "VacuumSuctionInHG", "VacPointer", 3.0, 7.0), - - DynamicSliderElementMap.new(obj._svg, "LeftFuelUSGal", "LeftFuelPointer", 0.0, 30.0), - DynamicSliderElementMap.new(obj._svg, "RightFuelUSGal", "RightFuelPointer", 0.0, 30.0), - ]; - - obj._rotationElements = [ - DynamicRotatingElementMap.new(obj._svg, "RPM", "RPMPointer", 0.0, 3000.0, 260.0), - ]; - - obj._svg.getElementById("RPMPointer").set("center-offset-x", 150.0); - obj._svg.getElementById("RPMPointer").set("center-offset-y", 100.0); - - return obj; - }, - - update : func() - { - foreach(var te; me._textElements) { - te.update(me._EISDriver); - } - - foreach(var se; me._sliderElements) { - se.update(me._EISDriver); - } - - foreach(var se; me._rotationElements) { - se.update(me._EISDriver); - } - }, - - # Menu tree . engineMenu is referenced from most pages as softkey 0: - # pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); - - engineMenu : func(device, pg, menuitem) { - pg.clearMenu(); - pg.resetMenuColors(); - pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); - pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); - pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); - pg.addMenuItem(8, "BACK", pg, pg.topMenu); - device.updateMenus(); - }, - - leanMenu : func(device, pg, menuitem) { - pg.clearMenu(); - pg.resetMenuColors(); - pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); - pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); - pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); - pg.addMenuItem(3, "CYL SELECT", pg); - pg.addMenuItem(4, "ASSIST", pg); - pg.addMenuItem(9, "BACK", pg, pg.mfd.EIS.engineMenu); - device.updateMenus(); - }, - - systemMenu : func(device, pg, menuitem) { - pg.clearMenu(); - pg.resetMenuColors(); - pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); - pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); - pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); - pg.addMenuItem(3, "RST FUEL", pg); - pg.addMenuItem(4, "GAL REM", pg, pg.mfd.EIS.galRemMenu); - pg.addMenuItem(5, "BACK", pg, pg.mfd.EIS.engineMenu); - device.updateMenus(); - }, - - galRemMenu : func(device, pg, menuitem) { - pg.clearMenu(); - pg.resetMenuColors(); - pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); - pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); - pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); - pg.addMenuItem(3, "-10 GAL", pg); - pg.addMenuItem(4, "-1 GAL", pg); - pg.addMenuItem(5, "+1 GAL", pg); - pg.addMenuItem(6, "+10 GAL", pg); - pg.addMenuItem(7, "44 GAL", pg); - pg.addMenuItem(8, "BACK", pg, pg.mfd.EIS.engineMenu); - device.updateMenus(); - }, - -}; diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EIS.nas b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EIS.nas new file mode 100644 index 000000000..7e1afecc1 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EIS.nas @@ -0,0 +1,120 @@ +# EIS +var EIS = +{ + new : func (mfd, myCanvas, device, svg) + { + var obj = { + parents : [ + EIS, + MFDPage.new(mfd, myCanvas, device, svg, "EIS", "") + ], + }; + + obj.controller = fg1000.EISController.new(obj, svg); + + + obj.addTextElements(["RPMDisplay", "MBusVolts", "EBusVolts", "EngineHours"]); + + obj._fuelFlowPointer = PFD.PointerElement.new(obj.pageName, svg, "FuelFlowPointer", 0.0, 20.0, 135); + obj._oilPressurePointer = PFD.PointerElement.new(obj.pageName, svg, "OilPressurePointer", 0.0, 115.0, 135); + obj._oilTempPointer = PFD.PointerElement.new(obj.pageName, svg, "OilTempPointer", 0.0, 245.0, 135); + obj._EGTPointer = PFD.PointerElement.new(obj.pageName, svg, "EGTPointer", 0.0, 1.0, 135); + obj._EGTCylinder = PFD.PointerElement.new(obj.pageName, svg, "EGTCylinder", 0.0, 1.0, 135); + obj._vacPointer = PFD.PointerElement.new(obj.pageName, svg, "VacPointer", 3.0, 7.0, 135); + obj._leftFuelPointer = PFD.PointerElement.new(obj.pageName, svg, "LeftFuelPointer", 0.0, 30.0, 135); + obj._rightFuelPointer = PFD.PointerElement.new(obj.pageName, svg, "RightFuelPointer", 0.0, 30.0, 135); + + obj._RPMPointer = PFD.RotatingElement.new(obj.pageName, svg, "RPMPointer", 0.0, 3000.0, 260.0, [150,100]); + + return obj; + }, + + updateData : func(engineData) { + obj.setTextElement("RPMDisplay", sprintf("%i", engineData.RPM)); + obj.setTextElement("MBusVolts", sprintf("%.01f", engineData.MBusVolts)); + obj.setTextElement("EBusVolts", sprintf("%.01f", engineData.MBusVolts)); # TODO: Include Emergency Bus + obj.setTextElement("EngineHours", sprintf("%.01f", engineData.EngineHours)); + + obj._fuelFlowPointer.setValue(engineData.FuelFlowGPH); + obj._oilPressurePointer.setValue(engineData.OilPressurePSI); + obj._oilTempPointer.setValue(engineData.OilTemperatureF); + obj._EGTPointer.setValue(engineData.EGTNorm); + obj._EGTCylinder.setValue(engineData.EGTNorm); + obj._vacPointer.setValue(engineData.VacuumSuctionInHG); + obj._leftFuelPointer.setValue(engineData.LeftFuelUSGal); + obj._rightFuelPointer.setValue(engineData.RightFuelUSGal); + + obj._RPMPointer.setValue(engineData.RPM); + }, + + # Menu tree . engineMenu is referenced from most pages as softkey 0: + # pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EISPage.engineMenu); + + engineMenu : func(device, pg, menuitem) { + pg.clearMenu(); + pg.resetMenuColors(); + pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); + pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); + pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); + pg.addMenuItem(8, "BACK", pg, pg.topMenu); + device.updateMenus(); + }, + + leanMenu : func(device, pg, menuitem) { + pg.clearMenu(); + pg.resetMenuColors(); + pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); + pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); + pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); + pg.addMenuItem(3, "CYL SELECT", pg); + pg.addMenuItem(4, "ASSIST", pg); + pg.addMenuItem(9, "BACK", pg, pg.mfd.EIS.engineMenu); + device.updateMenus(); + }, + + systemMenu : func(device, pg, menuitem) { + pg.clearMenu(); + pg.resetMenuColors(); + pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); + pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); + pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); + pg.addMenuItem(3, "RST FUEL", pg); + pg.addMenuItem(4, "GAL REM", pg, pg.mfd.EIS.galRemMenu); + pg.addMenuItem(5, "BACK", pg, pg.mfd.EIS.engineMenu); + device.updateMenus(); + }, + + galRemMenu : func(device, pg, menuitem) { + pg.clearMenu(); + pg.resetMenuColors(); + pg.addMenuItem(0, "ENGINE", pg, pg.mfd.EIS.engineMenu); + pg.addMenuItem(1, "LEAN", pg, pg.mfd.EIS.leanMenu); + pg.addMenuItem(2, "SYSTEM", pg, pg.mfd.EIS.systemMenu); + pg.addMenuItem(3, "-10 GAL", pg); + pg.addMenuItem(4, "-1 GAL", pg); + pg.addMenuItem(5, "+1 GAL", pg); + pg.addMenuItem(6, "+10 GAL", pg); + pg.addMenuItem(7, "44 GAL", pg); + pg.addMenuItem(8, "BACK", pg, pg.mfd.EIS.engineMenu); + device.updateMenus(); + }, + + offdisplay : func() { + me._group.setVisible(0); + + # Reset the menu colours. Shouldn't have to do this here, but + # there's not currently an obvious other location to do so. + for(var i = 0; i < 12; i +=1) { + var name = sprintf("SoftKey%d",i); + me.device.svg.getElementById(name ~ "-bg").setColorFill(0.0,0.0,0.0); + me.device.svg.getElementById(name).setColor(1.0,1.0,1.0); + } + me.controller.offdisplay(); + }, + ondisplay : func() { + me._group.setVisible(1); + me.controller.ondisplay(); + }, + + +}; diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISController.nas new file mode 100644 index 000000000..d43afd457 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISController.nas @@ -0,0 +1,83 @@ +# EIS Controller +var EISController = +{ + new : func (page, svg) + { + var obj = { + parents : [ EISController ], + _crsrToggle : 0, + _recipient : nil, + _page : page, + }; + + return obj; + }, + + + # Function to handle the data provided from the EngineData Emesary Notification. + # This implementation assumes a vector containing a single engine. + handleEngineData : func (engineData) { + assert(size(engineData) > 0, "handleEngineData expects vector of hash"); + var data = engineData[0]; + + # Sanitize data + var elements = [ + "RPM", + "MBusVolts", + "EngineHours", + "FuelFlowGPH", + "OilPressurePSI", + "OilTemperatureF", + "EGTNorm", + "VacuumSuctionInHG", + "LeftFuelUSGal", + "RightFuelUSGal"]; + + foreach (var val; elements) { + if (data[val] == nil) data[val] = 0; + } + + # Display it + me.page.upateData(data); + }, + + RegisterWithEmesary : func(transmitter = nil){ + if (transmitter == nil) + transmitter = emesary.GlobalTransmitter; + + if (me._recipient == nil){ + me._recipient = emesary.Recipient.new("AirportInfoController_" ~ me._page.device.designation); + var pfd_obj = me._page.device; + var controller = me; + me._recipient.Receive = func(notification) + { + if (notification.Device_Id == pfd_obj.device_id + and notification.NotificationType == notifications.PFDEventNotification.DefaultType) { + if (notification.Event_Id == notifications.PFDEventNotification.EngineData + and notification.EventParameter != nil) + { + return controller.handleEngineData(notification.EventParameter); + } + } + return emesary.Transmitter.ReceiptStatus_NotProcessed; + }; + } + transmitter.Register(me._recipient); + me.transmitter = transmitter; + }, + DeRegisterWithEmesary : func(transmitter = nil){ + # remove registration from transmitter; but keep the recipient once it is created. + if (me.transmitter != nil) + me.transmitter.DeRegister(me._recipient); + me.transmitter = nil; + }, + + # Reset controller if required when the page is displayed or hidden + ondisplay : func() { + me.RegisterWithEmesary(); + }, + offdisplay : func() { + me.DeRegisterWithEmesary(); + }, + +}; diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISOptions.nas b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISOptions.nas new file mode 100644 index 000000000..e65b67b81 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISOptions.nas @@ -0,0 +1,28 @@ +# EIS Options +var EISOptions = +{ + new : func() { + var obj = { parents : [EISOptions] }; + obj.Options= {}; + obj.loadOptions(); + return obj; + }, + + getOption : func(type) { + return me.Options[type]; + }, + + setOption : func(type, name, value) { + me.Options[type][name] = value; + }, + + loadOptions : func() { + me.clearOptions(); + me.Options.APS = {}; + }, + + clearOptions : func() { + me.Options = {}; + }, + +}; diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISStyles.nas b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISStyles.nas new file mode 100644 index 000000000..a80a7f897 --- /dev/null +++ b/Aircraft/Instruments-3d/FG1000/Nasal/EIS/EISStyles.nas @@ -0,0 +1,28 @@ +# EIS Styles +var EISStyles = +{ + new : func() { + var obj = { parents : [ EISStyles ]}; + obj.Styles = {}; + obj.loadStyles(); + return obj; + }, + + getStyle : func(type) { + return me.Styles[type]; + }, + + setStyle : func(type, name, value) { + me.Styles[type][name] = value; + }, + + loadStyles : func() { + me. clearStyles(); + me.Styles.XXX = {}; + }, + + clearStyles : func() { + me.Styles = {}; + }, + +}; diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas index 836d73dbc..6a2ec55f1 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFD.nas @@ -12,6 +12,7 @@ io.load_nasal(nasal_dir ~ '/MFDPage.nas', "fg1000"); var MFDPages = [ "NavigationMap", + "EIS", "TrafficMap", "Stormscope", "WeatherDataLink", @@ -57,11 +58,8 @@ foreach (var page; MFDPages) { io.load_nasal(nasal_dir ~ page ~ '/' ~ page ~ 'Controller.nas', "fg1000"); } -io.load_nasal(nasal_dir ~ 'EIS.nas', "fg1000"); -io.load_nasal(nasal_dir ~ 'Drivers/EISDriver.nas', "fg1000"); io.load_nasal(nasal_dir ~ 'PageGroupController.nas', "fg1000"); - var MFD = { new : func (myCanvas) @@ -103,14 +101,13 @@ var MFD = # Surround dynamic elements obj._pageTitle = obj._svg.getElementById("PageTitle"); - # Engine Information System - obj._eisDriver = fg1000.EISDriver.new(); - obj.EIS = fg1000.EIS.new(myCanvas, obj._eisDriver); - # Controller for the display on the bottom left which allows selection # of page groups and individual pages using the FMS controller. obj._pageGroupController = fg1000.PageGroupController.new(myCanvas, obj._svg, obj._MFDDevice); + # Engine Information System. A special case as it's always displayed on the MFD. + obj.EIS = obj._pageGroupController.addPage("EIS", fg1000.EIS.new(obj, myCanvas, obj._MFDDevice, obj._svg)); + # The NavigationMap page is a special case, as it is displayed with the Nearest... pages as an overlay obj.NavigationMap = obj._pageGroupController.addPage("NavigationMap", fg1000.NavigationMap.new(obj, myCanvas, obj._MFDDevice, obj._svg)); obj.NavigationMap.topMenu(obj._MFDDevice, obj.NavigationMap, nil); @@ -123,9 +120,12 @@ var MFD = } } - # Display the NavMap and the appropriate top level on startup. + # Display the EIS and NavMap and the appropriate top level on startup. + obj.EIS.setVisible(1); + obj.EIS.ondisplay(); obj._MFDDevice.selectPage(obj.NavigationMap); + # Add a wheel controller., which we will attach to the zoom. myCanvas.addEventListener("wheel", func(e) { @@ -136,14 +136,6 @@ var MFD = } }); - var updateTimer = func() { - obj._eisDriver.update(); - obj.EIS.update(); - settimer(updateTimer, 0.1); - }; - - updateTimer(); - return obj; }, del: func() diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPage.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPage.nas index 2e905522a..490dbe18a 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPage.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPage.nas @@ -7,10 +7,12 @@ var loadPFDFile = func(file) io.load_nasal(mfd_dir ~ file, "PFD"); loadPFDFile("DefaultStyle.nas"); loadPFDFile("UIElement.nas"); loadPFDFile("TextElement.nas"); -loadPFDFile("ArrowElement.nas"); +loadPFDFile("HighlightElement.nas"); loadPFDFile("GroupElement.nas"); loadPFDFile("ScrollElement.nas"); loadPFDFile("DataEntryElement.nas"); +loadPFDFile("PointerElement.nas"); +loadPFDFile("RotatingElement.nas"); var MFDPage = { diff --git a/Nasal/canvas/PFD/GroupElement.nas b/Nasal/canvas/PFD/GroupElement.nas index 55c92816a..ad621d958 100644 --- a/Nasal/canvas/PFD/GroupElement.nas +++ b/Nasal/canvas/PFD/GroupElement.nas @@ -67,7 +67,7 @@ new : func (pageName, svg, elementNames, size, highlightElement, arrow=0, scroll for (var i = 0; i < size; i = i + 1) { if (obj._arrow == 1) { - append(obj._elements, PFD.ArrowElement.new(pageName, svg, highlightElement ~ i, i, obj._style)); + append(obj._elements, PFD.HighlightElement.new(pageName, svg, highlightElement ~ i, i, obj._style)); } else { append(obj._elements, PFD.TextElement.new(pageName, svg, highlightElement ~ i, i, obj._style)); } @@ -168,8 +168,8 @@ displayPage : func () { # Methods to add dynamic elements to the group. Must be called in the # scroll order, as they are simply appended to the end of the list of elements! -addArrowElement : func(name, value) { - append(me._elements, ArrowElement.new(me._pageName, me._svg, name, value)); +addHighlightElement : func(name, value) { + append(me._elements, HighlightElement.new(me._pageName, me._svg, name, value)); }, addTextElement : func(name, value) { append(me._elements, TextElement.new(me._pageName, me._svg, name, value)); diff --git a/Nasal/canvas/PFD/ArrowElement.nas b/Nasal/canvas/PFD/HighlightElement.nas similarity index 78% rename from Nasal/canvas/PFD/ArrowElement.nas rename to Nasal/canvas/PFD/HighlightElement.nas index d203bc0c7..5b74f789c 100644 --- a/Nasal/canvas/PFD/ArrowElement.nas +++ b/Nasal/canvas/PFD/HighlightElement.nas @@ -1,11 +1,11 @@ -# PFD UI Element - Arrow UI Element. Can have values set and retrieved -# and has a separate arrow icon to indicate selection -var ArrowElement = +# PFD UI Element - Highlight UI Element. Can have values set and retrieved +# Highlighting simply shows the element. +var HighlightElement = { - new : func (pagename, svg, name, value, style=nil) + new : func (pagename, svg, name, value="", style=nil) { var obj = { - parents : [ ArrowElement, PFD.UIElement ], + parents : [ HighlightElement, PFD.UIElement ], _name : pagename ~ name, _value : value, _style : style, diff --git a/Nasal/canvas/PFD/PointerElement.nas b/Nasal/canvas/PFD/PointerElement.nas new file mode 100644 index 000000000..be9e0bb2e --- /dev/null +++ b/Nasal/canvas/PFD/PointerElement.nas @@ -0,0 +1,90 @@ +# PFD UI Element - Pointer UI Element. Displays value by moving the element on a horizontal or vertical scale. +var PointerElement = +{ + new : func (pagename, svg, name, minVal, maxVal, scalePx, vertical=0, value=0, style=nil) + { + var obj = { + parents : [ PointerElement, PFD.UIElement ], + _name : pagename ~ name, + _edit : 0, + _min : minVal, + _max : maxVal, + _scale : scalePx, + _vertical : vertical, + _style : style, + }; + + if (style == nil) obj._style = PFD.DefaultStyle; + + obj._symbol = svg.getElementById(obj._name); + assert(obj._symbol != nil, "Unable to find element " ~ obj._name); + obj._baseTranslation = obj._symbol.getTranslation(); + obj.setValue(value); + + # State and timer for flashing highlighting of elements + obj._highlighted = 0; + obj._flashTimer = nil; + + return obj; + }, + + getName : func() { return me._name; }, + getValue : func() { return me._value; }, + setValue : func(value) { + if (value == nil) value = 0.0; + + # Bound value to the minimum and maximum values. + value = math.max(me._min, value); + value = math.min(me._max, value); + + # Convert to normalized value + value = (value - me._min) / (me._max - me._min); + + # Simply shift the slider along. + if (me._vertical) { + # Vertical + me._symbol.setTranslation([ + me._baseTranslation[0], + me._baseTranslation[1] + (value * me._scale) + ]); + } else { + # Horizontal + me._symbol.setTranslation([ + me._baseTranslation[0] + (value * me._scale), + me._baseTranslation[1] + ]); + + } + }, + + setVisible : func(vis) { me._symbol.setVisible(vis); }, + _flashElement : func() { + if (me._highlighted == 0) { + me._symbol.setVisible(1); + me._highlighted = 1; + } else { + me._symbol.setVisible(0); + me._highlighted = 0; + } + }, + highlightElement : func() { + me._flashElement(); + me._flashTimer = maketimer(me._style.CURSOR_BLINK_PERIOD, me, me._flashElement); + me._flashTimer.start(); + }, + unhighlightElement : func() { + if (me._flashTimer != nil) me._flashTimer.stop(); + me._flashTimer = nil; + + # Reset the highlight to a non-highlighted state. + me._highlighted = 1; + me._flashElement(); + }, + isEditable : func () { return 0; }, + isInEdit : func() { return 0; }, + enterElement : func() { return me.getValue(); }, + clearElement : func() { }, + editElement : func() { }, + incrSmall : func(value) { }, + incrLarge : func(value) { }, +}; diff --git a/Nasal/canvas/PFD/RotatingElement.nas b/Nasal/canvas/PFD/RotatingElement.nas new file mode 100644 index 000000000..20a874c2d --- /dev/null +++ b/Nasal/canvas/PFD/RotatingElement.nas @@ -0,0 +1,82 @@ +# PFD UI Element - Rotating UI Element. Displays value by rotating an element around a center-point +var RotatingElement = +{ + new : func (pagename, svg, name, minVal, maxVal, rangeDeg, centerOffset, value=0, style=nil) + { + var obj = { + parents : [ RotatingElement, PFD.UIElement ], + _name : pagename ~ name, + _edit : 0, + _min : minVal, + _max : maxVal, + _rangeDeg : rangeDeg, + _style : style, + }; + + if (style == nil) obj._style = PFD.DefaultStyle; + + obj._symbol = svg.getElementById(obj._name); + assert(obj._symbol != nil, "Unable to find element " ~ obj._name); + obj._baseTranslation = obj._symbol.getTranslation(); + + # Set the center for rotation purposes. + assert(size(centerOffset) == 2, "centerOffset must be an array of two elements [x,y]"); + obj._symbol.set("center-offset-x", centerOffset[0]); + obj._symbol.set("center-offset-y", centerOffset[1]); + + obj.setValue(value); + + # State and timer for flashing highlighting of elements + obj._highlighted = 0; + obj._flashTimer = nil; + + return obj; + }, + + getName : func() { return me._name; }, + getValue : func() { return me._value; }, + setValue : func(value) { + if (value == nil) value = 0.0; + + # Bound value to the minimum and maximum values. + value = math.max(me._min, value); + value = math.min(me._max, value); + + # Convert to normalized value + value = (value - me._min) / (me._max - me._min); + + # Rotate, scales appropriately + me._symbol.setRotation(value * me._rangeDeg * D2R, [0.0, 0.0]); + }, + + setVisible : func(vis) { me._symbol.setVisible(vis); }, + _flashElement : func() { + if (me._highlighted == 0) { + me._symbol.setVisible(1); + me._highlighted = 1; + } else { + me._symbol.setVisible(0); + me._highlighted = 0; + } + }, + highlightElement : func() { + me._flashElement(); + me._flashTimer = maketimer(me._style.CURSOR_BLINK_PERIOD, me, me._flashElement); + me._flashTimer.start(); + }, + unhighlightElement : func() { + if (me._flashTimer != nil) me._flashTimer.stop(); + me._flashTimer = nil; + + # Reset the highlight to a non-highlighted state. + me._highlighted = 1; + me._flashElement(); + }, + isEditable : func () { return 0; }, + isInEdit : func() { return 0; }, + enterElement : func() { return me.getValue(); }, + clearElement : func() { }, + editElement : func() { }, + incrSmall : func(value) { }, + incrLarge : func(value) { }, +}; diff --git a/Nasal/notifications.nas b/Nasal/notifications.nas index 813532f0d..9cf08d173 100644 --- a/Nasal/notifications.nas +++ b/Nasal/notifications.nas @@ -544,12 +544,15 @@ var PFDEventNotification = # 2 select page by ID # 3 Change softkey button text # 4 hardkey pushed - i.e. non-soft keys that don't change function based on context. +# 5 Engine data - e.g. RPM, EGTs, CHTs for display purposes # _event_param - param related to the event ID. implementation specific. ## SoftKeyPushed : 1, SelectPageById : 2, ChangeMenuText : 3, #event parameter contains array of { Id: , Text: } tuples HardKeyPushed : 4, #event parameter contains single { Id: , Value: } tuple + EngineData : 5, #event parameter contains an array of hashes, each containing information about a given engine. + DefaultType : "PFDEventNotification", new: func(_ident, _device_id,_event_id,_event_parameter_id)