1
0
Fork 0

Aircraft - Instruments 3D - addition of new (mostly) glider instruments: AR-6201 (comm), BXP-6401 (xpdr), FLARM and LX vario S3

This commit is contained in:
Delta Echo 2020-05-24 19:37:48 +02:00
parent 38ba1df74e
commit 71b66dce64
51 changed files with 57587 additions and 0 deletions

View file

@ -0,0 +1,38 @@
# Copyright 2020 Benedikt Wolf
# with parts by Gilberto Agonstinho, WooT, Joshau Davidson
# This file is part of FlightGear.
#
# FlightGear is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# FlightGear is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
To install this instrument into your aircraft, you need to do the following:
1. Enable the <comm-radio> module through the aircraft's instrumentation.xml (in case a custom one is used)
2. Add ar6201.nas to your aircraft's list of included nasal files:
<nasal>
...
<ar6201>
<file>Aircraft/Instruments-3d/ar-6201/ar6201.nas</file>
</ar6201>
...
</nasal>
** Note that it is important to put the file into <ar6201></ar6201> tags, as the animation xml references the instrument by that name
3. Add the model to your aircraft:
<model>
<path>Aircraft/Instruments-3d/ar-6201/ar-6201.xml</path>
...
</model>
4. If you are using a custom electric system, make sure the radio is supplied at /systems/electrical/outputs/comm[0] when appropriate
## Please report any bugs, issues and improvements either to the mailing list of FlightGear forum so they can be fixed/included in the shared version of this instrument

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

View file

@ -0,0 +1,504 @@
<?xml version="1.0"?>
<!-- Becker AR-6201 simulation by Benedikt Wolf (D-ECHO)
thanks to: Gilberto Agostinho (texture work)
WooT (AR3201 that was used as a base)
Joshua Davidson (canvas basic structure from A320)
#### Version 05/2020
-->
<PropertyList>
<name>ar-6201</name>
<path>ar-6201.ac</path>
<animation>
<type>material</type>
<object-name>ar6201.display</object-name>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
<factor-prop>/instrumentation/comm[0]/brightness</factor-prop>
</emission>
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<parameters>
<dirt-factor>1.0</dirt-factor>
<contrast>0.75</contrast>
</parameters>
<object-name>ar6201.display</object-name>
</effect>
<animation>
<type>pick</type>
<object-name>mode</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/mode-pressed</property>
<value>1</value>
</binding>
<binding>
<command>nasal</command>
<script>
ar6201.modepressed();
</script>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/mode-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>pick</type>
<object-name>swap.scan</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/swap-scan-pressed</property>
<value>1</value>
</binding>
<binding>
<command>nasal</command>
<script>
ar6201.swapscanpressed();
</script>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/swap-scan-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>swap.scan</object-name>
<property>/instrumentation/comm[0]/swap-scan-pressed</property>
<axis>
<x>1</x>
</axis>
<factor>-0.0005</factor>
</animation>
<animation>
<type>pick</type>
<object-name>sql.ic</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/sql-ic-pressed</property>
<value>1</value>
</binding>
<binding>
<command>nasal</command>
<script>
ar6201.sqlicpressed();
</script>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/sql-ic-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>sql.ic</object-name>
<property>/instrumentation/comm[0]/sql-ic-pressed</property>
<axis>
<x>1</x>
</axis>
<factor>-0.0005</factor>
</animation>
<animation>
<type>pick</type>
<object-name>store</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/channel-menu</property>
<value>2</value>
</binding>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/channel-menu-pressed</property>
<value>1</value>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/comm[0]/channel-menu-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>store</object-name>
<property>/instrumentation/comm[0]/channel-menu-pressed</property>
<axis>
<x>1</x>
</axis>
<factor>-0.0005</factor>
</animation>
<!-- frequency -->
<animation>
<type>pick</type>
<object-name>frq_knob</object-name>
<action>
<button>0</button>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>0</value>
</equals>
</condition>
<command>property-cycle</command>
<property>/instrumentation/comm[0]/current-change</property>
<value>1</value>
<value>2</value>
<value>3</value>
<value>0</value>
</binding>
<binding>
<condition>
<not-equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>0</value>
</not-equals>
</condition>
<command>property-cycle</command>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>1</value>
<value>2</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/channel-menu</property>
<value>1</value>
</equals>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>0</value>
</equals>
</condition>
<command>nasal</command>
<script>ar6201.applySelectedFrequency();
</script>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/channel-menu</property>
<value>2</value>
</equals>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>0</value>
</equals>
</condition>
<command>nasal</command>
<script>ar6201.saveFrequency();
</script>
</binding>
<binding>
<command>property-toggle</command>
<property>/instrumentation/comm[0]/frq-knob-pushed</property>
</binding>
<mod-up>
<binding>
<command>property-toggle</command>
<property>/instrumentation/comm[0]/frq-knob-pushed</property>
</binding>
</mod-up>
</action>
<action>
<button>3</button>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/comm[0]/current-change</property>
<value>1</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>integer</mask>
<step>1</step>
<min>118</min>
<max>136</max>
<resolution>1</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>decimal</mask>
<step>0.1</step>
<min>0</min>
<max>1</max>
<resolution>0.1</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>3</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>decimal</mask>
<step>0.008333</step>
<min>0</min>
<max>1</max>
<resolution>0.008333</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/brightness</property>
<step>0.05</step>
<min>0</min>
<max>1</max>
<wrap>false</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/squelch-lim</property>
<step>1</step>
<min>6</min>
<max>26</max>
<wrap>false</wrap>
</binding>
<binding>
<condition>
<greater-than-equals>
<property>/instrumentation/comm[0]/channel-menu</property>
<value>1</value>
</greater-than-equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/selected-channel</property>
<step>1</step>
<min>1</min>
<max>15</max>
<wrap>true</wrap>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/comm[0]/freq-knob</property>
<step>5</step>
</binding>
</action>
<action>
<button>4</button>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/comm[0]/current-change</property>
<value>1</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>integer</mask>
<step>-1</step>
<min>118</min>
<max>136</max>
<resolution>1</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>decimal</mask>
<step>-0.1</step>
<min>0</min>
<max>1</max>
<resolution>0.1</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/current-change</property>
<value>3</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/frequencies/standby-mhz</property>
<mask>decimal</mask>
<step>-0.008333</step>
<min>0</min>
<max>1</max>
<resolution>0.008333</resolution>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/brightness</property>
<step>-0.05</step>
<min>0</min>
<max>1</max>
<wrap>false</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/comm[0]/pilot-menu</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/squelch-lim</property>
<step>-1</step>
<min>6</min>
<max>26</max>
<wrap>false</wrap>
</binding>
<binding>
<condition>
<greater-than-equals>
<property>/instrumentation/comm[0]/channel-menu</property>
<value>1</value>
</greater-than-equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/comm[0]/selected-channel</property>
<step>-1</step>
<min>1</min>
<max>15</max>
<wrap>true</wrap>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/comm[0]/freq-knob</property>
<step>-5</step>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>frq_knob</object-name>
<property>instrumentation/comm[0]/freq-knob</property>
<center>
<y-m>0.011</y-m>
<z-m>-0.01666</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>frq_knob</object-name>
<property>instrumentation/comm[0]/frq-knob-pushed</property>
<factor>-0.001</factor>
<axis>
<x>1</x>
</axis>
</animation>
<!-- Volume -->
<animation>
<type>knob</type>
<object-name>vol_knob</object-name>
<property>instrumentation/comm[0]/volume</property>
<factor>140</factor>
<center>
<y-m>-0.01521</y-m>
<z-m>-0.0166</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
<action>
<binding>
<command>property-adjust</command>
<property>/instrumentation/comm[0]/volume</property>
<factor>0.05</factor>
<min>0</min>
<max>1</max>
<wrap>false</wrap>
</binding>
</action>
</animation>
</PropertyList>

View file

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201-menu-brightness.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="1.0012912"
inkscape:cx="115.62785"
inkscape:cy="68.597445"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5435"
width="412.96677"
height="42.445194"
x="22.470985"
y="118.17796" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.11407"
y="108.97227"
id="active_frq"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan5549"
x="109.11407"
y="108.97227"
style="font-size:89.45375824px;line-height:1.25">000.000</tspan></text>
<path
id="IC.cross"
style="display:none;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.0136857;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 58.342966,87.893771 9.2227325,120.87248 M 9.2839011,87.803029 58.281799,120.96323"
inkscape:connector-curvature="0"
inkscape:label="#path5586" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5433"
width="413.96548"
height="111.35622"
x="21.472275"
y="118.67731" />
<text
inkscape:label="#text5547"
id="text5437"
y="153.84721"
x="90.888504"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="153.84721"
x="90.888504"
id="tspan5439"
sodipodi:role="line"
style="font-size:43.57154083px;line-height:1.25">BRIGHTNESS</tspan></text>
<rect
y="181.58769"
x="35.224304"
height="31.022669"
width="315.746"
id="rect5441"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="brightness.bar_clip"
width="315.746"
height="31.022669"
x="35.224304"
y="181.58769"
inkscape:label="#rect5443" />
<rect
y="181.58769"
x="35.224304"
height="31.022669"
width="315.746"
id="brightness.bar"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
inkscape:label="#rect5445" />
<text
inkscape:label="#text5547"
id="brightness.digits"
y="204.25723"
x="362.0065"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="204.25723"
x="362.0065"
id="tspan5449"
sodipodi:role="line"
style="font-size:38.41547775px;line-height:1.25">100</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201-menu-squelch.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="0.3540099"
inkscape:cx="-342.44416"
inkscape:cy="281.46357"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5435"
width="412.96677"
height="42.445194"
x="22.470985"
y="118.17796" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.11407"
y="108.97227"
id="active_frq"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan5549"
x="109.11407"
y="108.97227"
style="font-size:89.45375824px;line-height:1.25">000.000</tspan></text>
<path
id="IC.cross"
style="display:none;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.0136857;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 58.342966,87.893771 9.2227325,120.87248 M 9.2839011,87.803029 58.281799,120.96323"
inkscape:connector-curvature="0"
inkscape:label="#path5586" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5433"
width="413.96548"
height="111.35622"
x="21.472275"
y="118.67731" />
<text
inkscape:label="#text5547"
id="text5437"
y="153.84721"
x="132.83435"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="153.84721"
x="132.83435"
id="tspan5439"
sodipodi:role="line"
style="font-size:43.57154083px;line-height:1.25">SQUELCH</tspan></text>
<rect
y="181.58769"
x="35.224304"
height="31.022669"
width="315.746"
id="rect5441"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="squelch.bar_clip"
width="315.746"
height="31.022669"
x="35.224304"
y="181.58769"
inkscape:label="#rect5443" />
<rect
y="181.58769"
x="35.224304"
height="31.022669"
width="315.746"
id="squelch.bar"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
inkscape:label="#rect5445" />
<text
inkscape:label="#text5547"
id="squelch.digits"
y="204.25723"
x="367.99875"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="204.25723"
x="367.99875"
id="tspan5449"
sodipodi:role="line"
style="font-size:38.41547775px;line-height:1.25">00</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201-save-channel.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="0.7080198"
inkscape:cx="-25.871852"
inkscape:cy="153.7853"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.11407"
y="108.97227"
id="active_frq"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan5549"
x="109.11407"
y="108.97227"
style="font-size:89.45375824px;line-height:1.25">000.000</tspan></text>
<path
id="IC.cross"
style="display:none;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.0136857;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 58.342966,87.893771 9.2227325,120.87248 M 9.2839011,87.803029 58.281799,120.96323"
inkscape:connector-curvature="0"
inkscape:label="#path5586" />
<text
inkscape:label="#text5547"
id="brightness.digits"
y="207.8633"
x="267.0639"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="207.8633"
x="267.0639"
id="tspan5449"
sodipodi:role="line"
style="font-size:63.25124741px;line-height:1.25">CH</tspan></text>
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4192"
width="82.977905"
height="65.676132"
x="357.33463"
y="152.01279" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="360.36874"
y="209.96964"
id="channel.num"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan4179"
x="360.36874"
y="209.96964"
style="font-size:69.37007904px;line-height:1.25">00</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="161.01566"
y="210.04997"
id="ind"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan4196"
x="161.01566"
y="210.04997"
style="font-size:29.6879425px;line-height:1.25">FREE</tspan></text>
<text
inkscape:label="#text5547"
id="text4198"
y="157.38083"
x="21.307999"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="157.38083"
x="21.307999"
id="tspan4200"
sodipodi:role="line"
style="font-size:31.48145294px;line-height:1.25">STO</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201-select-channel.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="1.0012912"
inkscape:cx="130.86031"
inkscape:cy="114.3793"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.11407"
y="108.97227"
id="active_frq"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan5549"
x="109.11407"
y="108.97227"
style="font-size:89.45375824px;line-height:1.25">000.000</tspan></text>
<path
id="IC.cross"
style="display:none;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.0136857;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 58.342966,87.893771 9.2227325,120.87248 M 9.2839011,87.803029 58.281799,120.96323"
inkscape:connector-curvature="0"
inkscape:label="#path5586" />
<text
inkscape:label="#text5547"
id="brightness.digits"
y="213.50227"
x="252.26814"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="213.50227"
x="252.26814"
id="tspan5449"
sodipodi:role="line"
style="font-size:79.63228607px;line-height:1.25">CH</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="366.67172"
y="213.50227"
id="channel.num"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan4179"
x="366.67172"
y="213.50227"
style="font-size:79.63228607px;line-height:1.25">00</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201-start.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="1.0012912"
inkscape:cx="82.61221"
inkscape:cy="82.005591"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="112.22083"
y="108.40524"
id="text4198"><tspan
sodipodi:role="line"
id="tspan4200"
x="112.22083"
y="108.40524"
style="font-size:93.37610626px;line-height:1.25">WAIT</tspan></text>
<text
id="text4202"
y="177.08652"
x="120.64034"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="177.08652"
x="120.64034"
id="tspan4204"
sodipodi:role="line"
style="font-size:35.19318008px;line-height:1.25">CH-SQ V0.01</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="115.14743"
y="227.02205"
id="text4206"><tspan
sodipodi:role="line"
id="tspan4208"
x="115.14743"
y="227.02205"
style="font-size:35.19318008px;line-height:1.25">CM-SW V0.01</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1,545 @@
# Becker Avionics AR-6201 by Benedikt Wolf (D-ECHO) based on A320 canvas avionics by Joshua Davidson
# Reference: http://www.becker-avionics.com/wp-content/uploads/2017/08/AR620X_IO.pdf
#####################
## Version 05/2020 ##
#####################
## Features of this version:
## * use maketimer, only update visible pages
## * use props.nas, store in local variables where sensible
## * store instrument directory in variable
## * clarity through indentation
## * use functions for common functionality
## * clean up listeners
var AR6201_main = nil;
var AR6201_start = nil;
var AR6201_brightness = nil;
var AR6201_squelch = nil;
var AR6201_sch = nil;
var AR6201_sach = nil;
var AR6201_display = nil;
var base = props.globals.getNode("/instrumentation/comm[0]/", 1);
var squelch_bool = base.initNode("sq", 1, "BOOL");
var squelch_lim = base.initNode("squelch-lim", 0.0, "DOUBLE");
var volume = base.initNode("volume", 0.0, "DOUBLE");
var start = base.initNode("start", 0.0, "DOUBLE");
var pilotmenu_prop = base.initNode("pilot-menu", 0, "INT");
var channelmenu_prop = base.initNode("channel-menu", 0, "INT");
var brightness_prop = base.initNode("brightness", 0.5, "DOUBLE");
var selchannel = base.initNode("selected-channel", 0, "INT");
var ptt = base.initNode("ptt", 0, "BOOL");
var intercom = base.initNode("intercom", 0, "BOOL");
var scan = base.initNode("scan", 0, "BOOL");
var current_change = base.initNode("current-change", 0, "INT");
var ssp = base.initNode("swap-scan-pressed", 0, "BOOL");
var mop = base.initNode("mode-pressed", 0, "BOOL");
var sqi = base.initNode("sql-ic-pressed", 0, "BOOL");
var volts = props.globals.getNode("/systems/electrical/outputs/comm[0]", 1);
var freq = base.getNode("frequencies");
var freq_sel = freq.getNode("selected-mhz");
var freq_sby = freq.getNode("standby-mhz");
var instrument_path = "Aircraft/Instruments-3d/ar-6201/";
var state = 0; # 0 = off; 1 = starting; 2 = running
var stored_frequency = {
new : func(frequency, number){
m = { parents : [stored_frequency] };
m.frequency=frequency;
m.number=number;
return m;
},
set_frequency: func(frequency) {
me.frequency = frequency;
},
};
var stored_frequencies={1:nil,2:nil,3:nil,4:nil,5:nil,6:nil,7:nil,8:nil,9:nil,10:nil,11:nil,12:nil,13:nil,14:nil,15:nil};
for(var i = 0; i <= 15; i += 1){
stored_frequencies[i]=stored_frequency.new(nil, i);
}
var applySelectedFrequency = func () {
freq_sel.setValue( stored_frequencies[ selchannel.getValue() ].frequency );
channelmenu_prop.setValue(0);
selchannel.setValue(0);
}
var saveFrequency = func () {
stored_frequencies[ selchannel.getValue() ].set_frequency( freq_sel.getValue() );
channelmenu_prop.setValue(0);
selchannel.setValue(0);
}
var canvas_AR6201_base = {
init: func(canvas_group, file) {
var font_mapper = func(family, weight) {
return "LiberationFonts/LiberationSans-Bold.ttf";
};
canvas.parsesvg(canvas_group, file, {'font-mapper': font_mapper});
var svg_keys = me.getKeys();
foreach(var key; svg_keys) {
me[key] = canvas_group.getElementById(key);
var svg_keys = me.getKeys();
foreach (var key; svg_keys) {
me[key] = canvas_group.getElementById(key);
var clip_el = canvas_group.getElementById(key ~ "_clip");
if (clip_el != nil) {
clip_el.setVisible(0);
var tran_rect = clip_el.getTransformedBounds();
var clip_rect = sprintf("rect(%d,%d, %d,%d)",
tran_rect[1], # 0 ys
tran_rect[2], # 1 xe
tran_rect[3], # 2 ye
tran_rect[0]); #3 xs
# coordinates are top,right,bottom,left (ys, xe, ye, xs) ref: l621 of simgear/canvas/CanvasElement.cxx
me[key].set("clip", clip_rect);
me[key].set("clip-frame", canvas.Element.PARENT);
}
}
}
me.page = canvas_group;
return me;
},
getKeys: func() {
return [];
},
update: func() {
var sv = start.getValue();
if ( sv == 1 and volts.getValue() >= 9 and volume.getValue() > 0 ) {
AR6201_start.page.hide();
var pilot_menu = pilotmenu_prop.getValue();
var channel_menu = channelmenu_prop.getValue();
if(pilot_menu==1){
AR6201_main.page.hide();
AR6201_brightness.page.show();
AR6201_brightness.update();
AR6201_squelch.page.hide();
AR6201_sch.page.hide();
AR6201_sach.page.hide();
}else if(pilot_menu==2){
AR6201_main.page.hide();
AR6201_brightness.page.hide();
AR6201_squelch.page.show();
AR6201_squelch.update();
AR6201_sch.page.hide();
AR6201_sach.page.hide();
}else if(channel_menu == 1){
AR6201_main.page.hide();
AR6201_brightness.page.hide();
AR6201_squelch.page.hide();
AR6201_sch.page.show();
AR6201_sch.update();
AR6201_sach.page.hide();
}else if(channel_menu == 2){
AR6201_main.page.hide();
AR6201_brightness.page.hide();
AR6201_squelch.page.hide();
AR6201_sch.page.hide();
AR6201_sach.page.show();
AR6201_sach.update();
}else{
AR6201_main.page.show();
AR6201_main.update();
AR6201_brightness.page.hide();
AR6201_squelch.page.hide();
AR6201_sch.page.hide();
AR6201_sach.page.hide();
}
} else if ( sv > 0 and sv < 1 and volts.getValue() >= 9 and volume.getValue() > 0){
AR6201_main.page.hide();
AR6201_brightness.page.hide();
AR6201_start.page.show();
AR6201_squelch.page.hide();
AR6201_sch.page.hide();
AR6201_sach.page.hide();
} else {
AR6201_main.page.hide();
AR6201_brightness.page.hide();
AR6201_start.page.hide();
AR6201_squelch.page.hide();
AR6201_sch.page.hide();
AR6201_sach.page.hide();
}
},
};
var canvas_AR6201_main = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_main , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["TX","SQL","IC","SCAN","active_frq","standby_frq","change.mhz","change.mhz.digits","change.100khz","change.100khz.digits","change.khz","change.khz.digits"];
},
update: func() {
if(ptt.getValue() == 1){
me["TX"].show();
}else{
me["TX"].hide();
}
if(squelch_bool.getValue() == 1){
me["SQL"].show();
}else{
me["SQL"].hide();
}
if(intercom.getValue() == 1){
me["IC"].show();
}else{
me["IC"].hide();
}
if(scan.getValue() == 1){
me["SCAN"].show();
}else{
me["SCAN"].hide();
}
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
var standby_frequency = freq_sby.getValue();
me["standby_frq"].setText(sprintf("%3.3f", standby_frequency));
#Change logic: in standard mode, only standby freq can be directly changed. Change is done by turning the big knob, pressing it will switch the changed part from Mhz (first three digits) to 100Khz (first #digit after decimal point) and Khz (last two digits) -> in 8.33 KHz mode, in 25 KHz mode, there are only two digits after decimal point.
#Encoding of change logic:
# nothing selected 0
# MHz 1
# 100 KHz 2
# KHz 3
# Property: /instrumentation/comm[0]/current-change (int)
if(current_change.getValue() == 0){
me["change.mhz"].hide();
me["change.100khz"].hide();
me["change.khz"].hide();
}else if(current_change.getValue() == 1){
me["change.mhz"].show();
me["change.100khz"].hide();
me["change.khz"].hide();
me["change.mhz.digits"].setText(sprintf("%3d", standby_frequency));
}else if(current_change.getValue() == 2){
me["change.mhz"].hide();
me["change.100khz"].show();
me["change.khz"].hide();
me["change.100khz.digits"].setText(sprintf("%1d", math.floor(math.mod(standby_frequency*100, 100)/10)));
}else if(current_change.getValue() == 3){
me["change.mhz"].hide();
me["change.100khz"].hide();
me["change.khz"].show();
me["change.khz.digits"].setText(sprintf("%02d", math.mod(standby_frequency*1000,100)));
}
}
};
var canvas_AR6201_start = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_start , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return [];
},
update: func() {
}
};
var canvas_AR6201_brightness = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_brightness , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["brightness.bar","brightness.digits","active_frq"];
},
update: func() {
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
var brightness = brightness_prop.getValue();
me["brightness.digits"].setText(sprintf("%3d", brightness*100));
me["brightness.bar"].setTranslation((1-brightness)*(-315),0);
}
};
var canvas_AR6201_squelch = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_squelch , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["squelch.bar","squelch.digits","active_frq"];
},
update: func() {
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
var squelch = squelch_lim.getValue();
me["squelch.digits"].setText(sprintf("%3d", squelch));
me["squelch.bar"].setTranslation((1-((squelch-6)/20))*(-315),0);
}
};
var canvas_AR6201_sch = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_sch , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["channel.num","active_frq"];
},
update: func() {
var channel = selchannel.getValue();
if( channel==0 or channel>15){
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
if(channel>15){
me["channel.num"].setText(">>");
}else{
me["channel.num"].setText("--");
}
}else{
var use_freq = stored_frequencies[channel].frequency;
if(use_freq != nil){
me["active_frq"].setText(sprintf("%3.3f", use_freq));
}else{
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
}
me["channel.num"].setText(sprintf("%02d", channel));
}
}
};
var canvas_AR6201_sach = {
new: func(canvas_group, file) {
var m = { parents: [canvas_AR6201_sach , canvas_AR6201_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["channel.num","active_frq","ind"];
},
update: func() {
var channel = selchannel.getValue();
me["active_frq"].setText(sprintf("%3.3f", freq_sel.getValue()));
if(channel==0 or channel>15){
if(channel>15){
me["channel.num"].setText(">>");
}else{
me["channel.num"].setText("--");
}
}else{
me["channel.num"].setText(sprintf("%02d", channel));
}
if(channel <= 15 and stored_frequencies[channel].frequency != nil){
me["ind"].setText("USED");
}else{
me["ind"].setText("FREE");
}
}
};
var ar6201_update = maketimer(0.1, func {
canvas_AR6201_base.update();
});
var ls = setlistener("sim/signals/fdm-initialized", func {
AR6201_display = canvas.new({
"name": "AR6201",
"size": [1024, 512],
"view": [512, 256],
"mipmapping": 1
});
AR6201_display.addPlacement({"node": "ar6201.display"});
var groupOnly = AR6201_display.createGroup();
var groupStart = AR6201_display.createGroup();
var groupBrightness = AR6201_display.createGroup();
var groupSquelch = AR6201_display.createGroup();
var groupSch = AR6201_display.createGroup();
var groupSach = AR6201_display.createGroup();
AR6201_main = canvas_AR6201_main.new(groupOnly, instrument_path~"ar6201.svg");
AR6201_start = canvas_AR6201_start.new(groupStart, instrument_path~"ar6201-start.svg");
AR6201_brightness = canvas_AR6201_brightness.new(groupBrightness, instrument_path~"ar6201-menu-brightness.svg");
AR6201_squelch = canvas_AR6201_squelch.new(groupSquelch, instrument_path~"ar6201-menu-squelch.svg");
AR6201_sch = canvas_AR6201_sch.new(groupSch, instrument_path~"ar6201-select-channel.svg");
AR6201_sach = canvas_AR6201_sach.new(groupSach, instrument_path~"ar6201-save-channel.svg");
ar6201_update.start();
removelistener(ls);
});
## Helper functions
var swap_freqs = func () {
var sel = freq_sel.getValue();
var i=1;
var fail=0;
while(i<6){
var frq=stored_frequencies[i].frequency;
if(frq==nil){
stored_frequencies[i].set_frequency( sel );
break;
}else if(i==5){
fail=1;
}
i=i+1;
}
if(fail==1){
stored_frequencies[1].set_frequency( sel );
}
freq_sel.setValue( freq_sby.getValue() );
freq_sby.setValue( sel );
}
## Class DoubleActionButton
## for buttons that trigger different actions based on press time
var DoubleActionButton = {
new : func ( on_short_action, on_long_action, pressed, threshold ) {
var m = {
parents: [DoubleActionButton],
on_short_action: on_short_action,
on_long_action: on_long_action,
pressed: pressed,
pressed_time: 0.0,
threshold: threshold,
updateTimer: nil,
};
m.updateTimer = maketimer( 0.01, m, me.update );
return m;
},
update : func () {
if( me.pressed.getBoolValue() ){
if( me.pressed_time >= me.threshold ){
me.on_long_action();
me.updateTimer.stop();
me.pressed_time = 0.0;
} else {
me.pressed_time = me.pressed_time + 0.01;
}
} else if ( me.pressed_time > 0.0 ) {
me.on_short_action();
me.updateTimer.stop();
me.pressed_time = 0.0;
}
},
};
# Create the buttons
var sqlic = DoubleActionButton.new(
func() { squelch_bool.setBoolValue( !squelch_bool.getBoolValue() ) },
func() { intercom.setBoolValue( !intercom.getBoolValue() ) },
sqi,
2 );
var swapscan = DoubleActionButton.new(
swap_freqs,
func() { scan.setBoolValue( !scan.getBoolValue() ) },
ssp,
2 );
var mode = DoubleActionButton.new(
func() { channelmenu_prop.setBoolValue( !channelmenu_prop.getBoolValue() ) },
func() { pilotmenu_prop.setBoolValue( !pilotmenu_prop.getBoolValue() ) },
mop,
2 );
# Bind commands from XML
var sqlicpressed = func () {
sqlic.updateTimer.restart(0.01);
}
var swapscanpressed = func () {
swapscan.updateTimer.restart(0.01);
}
var modepressed = func () {
mode.updateTimer.restart(0.01);
}
var check_state = func () {
if ( state == 0 ){
if ( volts.getValue() >= 9 and volume.getValue() > 0 ) {
state = 1;
interpolate(start, 1, 5);
}
} else {
if ( volts.getValue() < 9 or volume.getValue() == 0 ){
state = 0;
start.setValue(0);
}
}
}
setlistener(volume, func{
check_state();
});
setlistener(volts, func{
check_state();
});
setlistener(channelmenu_prop, func{
if ( channelmenu_prop.getValue() == 0 ){
selchannel.setValue(0);
} else if ( channelmenu_prop.getValue() == 2 ){
var i = 6;
var fail = 0;
while ( i < 16 ){
var frq = stored_frequencies[i].frequency;
if ( frq == nil ){
selchannel.setValue(i);
break;
} else if ( i == 15 ) {
fail = 1;
}
i = i + 1;
}
if ( fail == 1 ){
selchannel.setValue(6);
}
}
});

View file

@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg4984"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="256"
viewBox="0 0 512 256"
sodipodi:docname="ar6201.svg">
<metadata
id="metadata4990">
<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>
<defs
id="defs4988" />
<sodipodi:namedview
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4986"
showgrid="false"
inkscape:zoom="1.0012912"
inkscape:cx="340.12862"
inkscape:cy="40.052578"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4984" />
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="514.64996"
height="257.12692"
x="-1.7411526"
y="1.1130753" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.8021608;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5534"
width="459.92715"
height="256.5477"
x="-0.86241752"
y="1.1821899" />
<text
id="standby_frq"
y="209.81096"
x="180.51834"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text5551"><tspan
y="209.81096"
x="180.51834"
id="tspan5553"
sodipodi:role="line"
style="font-size:71.47937012px;line-height:1.25">000.000</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.11407"
y="108.97227"
id="active_frq"
inkscape:label="#text5547"><tspan
sodipodi:role="line"
id="tspan5549"
x="109.11407"
y="108.97227"
style="font-size:89.45375824px;line-height:1.25">000.000</tspan></text>
<text
id="TX"
y="61.73003"
x="17.922607"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text5559"><tspan
y="61.73003"
x="17.922607"
id="tspan5561"
sodipodi:role="line"
style="font-size:33.27240753px;line-height:1.25">TX</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="17.922607"
y="113.94495"
id="IC"
inkscape:label="#text5576"><tspan
sodipodi:role="line"
id="tspan5578"
x="17.922607"
y="113.94495"
style="font-size:33.27240753px;line-height:1.25">IC</tspan></text>
<text
id="SQL"
y="187.963"
x="11.448215"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text5580"><tspan
y="187.963"
x="11.448215"
id="tspan5582"
sodipodi:role="line"
style="font-size:33.27240753px;line-height:1.25">SQL</tspan></text>
<path
id="IC.cross"
style="display:none;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.0136857;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 58.342966,87.893771 9.2227325,120.87248 M 9.2839011,87.803029 58.281799,120.96323"
inkscape:connector-curvature="0"
inkscape:label="#path5586" />
<g
id="change.mhz"
inkscape:label="#g4165">
<rect
y="151.8996"
x="174.98734"
height="64.981316"
width="128.10602"
id="rect5602"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="change.mhz.digits"
y="209.81096"
x="180.51834"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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"
inkscape:label="#text5604"><tspan
y="209.81096"
x="180.51834"
id="tspan5606"
sodipodi:role="line"
style="font-size:71.47937012px;line-height:1.25">000</tspan></text>
</g>
<g
id="change.khz"
inkscape:label="#g4175">
<rect
y="151.63683"
x="359.50705"
height="65.506866"
width="80.770042"
id="rect5618"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.00575399;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="359.99698"
y="209.81096"
id="change.khz.digits"
inkscape:label="#text5608"><tspan
sodipodi:role="line"
id="tspan5610"
x="359.99698"
y="209.81096"
style="font-size:71.47937012px;line-height:1.25">00</tspan></text>
</g>
<g
id="change.100khz"
inkscape:label="#g4170">
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.90849066;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5616"
width="41.249359"
height="65.272697"
x="319.38104"
y="151.75391" />
<text
id="change.100khz.digits"
y="209.81096"
x="320.15524"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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"
inkscape:label="#text5612"><tspan
y="209.81096"
x="320.15524"
id="tspan5614"
sodipodi:role="line"
style="font-size:71.47937012px;line-height:1.25">0</tspan></text>
</g>
<g
id="SCAN"
inkscape:label="#g5354">
<text
id="SCAN2"
y="225.91399"
x="29.924358"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text5580"><tspan
y="225.91399"
x="29.924358"
id="tspan5348"
sodipodi:role="line"
style="font-size:33.27240753px;line-height:1.25">SCAN</tspan></text>
<text
inkscape:label="#text5580"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="93.071831"
y="138.48219"
id="text5350"><tspan
sodipodi:role="line"
id="tspan5352"
x="93.071831"
y="138.48219"
style="font-size:19.30825424px;line-height:1.25">SCAN NOT IMPLEMENTED YET</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,234 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
version="1.1"
id="svg2"
width="1024"
height="1024"
viewBox="0 0 1024 1024"
sodipodi:docname="ar-6201-texture.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/delta/Programme/flightgear/install/flightgear/fgdata/Aircraft/Instruments-3d/ar-6201/ar-6201.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata8">
<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></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4"
showgrid="false"
inkscape:pagecheckerboard="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.61112253"
inkscape:cx="766.00273"
inkscape:cy="629.14529"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<sodipodi:guide
position="0,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="1024,1024"
orientation="1,0"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="881.3699,566.98941"
orientation="1,0"
id="guide1057"
inkscape:locked="false" />
</sodipodi:namedview>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 250.07007,797.64971 V 725.58642"
id="path904"
inkscape:connector-curvature="0"
inkscape:label="volume_knob_marking" />
<g
id="g935"
inkscape:label="text"
style="fill:#f7f7f7;fill-opacity:1">
<text
id="text842"
y="161.65247"
x="419.39435"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:46.85870743px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.46433461px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px"
y="161.65247"
x="419.39435"
id="tspan840"
sodipodi:role="line">MDE</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:46.85870743px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.46433461px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="609.73108"
y="161.65247"
id="text846"><tspan
sodipodi:role="line"
id="tspan844"
x="609.73108"
y="161.65247"
style="fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px">STO</tspan></text>
<text
id="text850"
y="254.38086"
x="515.96796"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:46.85870743px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.46433461px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px"
y="254.38086"
x="515.96796"
id="tspan848"
sodipodi:role="line">8/25</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:61.17301178px;line-height:100%;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.91165662px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="509.29059"
y="679.83716"
id="text854"><tspan
sodipodi:role="line"
id="tspan852"
x="509.29059"
y="679.83716"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';fill:#f7f7f7;fill-opacity:1;stroke-width:1.91165662px">COM</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:46.85870743px;line-height:89.99999762%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.46433461px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="923.17377"
y="488.41907"
id="text858"><tspan
sodipodi:role="line"
id="tspan856"
x="923.17377"
y="488.41907"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px">S</tspan><tspan
id="tspan860"
sodipodi:role="line"
x="923.17377"
y="530.59192"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px">C</tspan><tspan
id="tspan862"
sodipodi:role="line"
x="923.17377"
y="572.76471"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px">N</tspan></text>
<text
id="text870"
y="487.26202"
x="141.86751"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:46.85870743px;line-height:89.99999762%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.46433461px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px"
y="487.26202"
x="141.86751"
id="tspan864"
sodipodi:role="line">S</tspan><tspan
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px"
y="529.43488"
x="141.86751"
sodipodi:role="line"
id="tspan866">Q</tspan><tspan
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.46433461px"
y="571.60767"
x="141.86751"
sodipodi:role="line"
id="tspan868">L</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.6127243px;line-height:89.99999762%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.55039763px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="96.294739"
y="509.62662"
id="text882"><tspan
id="tspan880"
sodipodi:role="line"
x="96.294739"
y="509.62662"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.55039763px">I</tspan><tspan
id="tspan889"
sodipodi:role="line"
x="96.294739"
y="554.27808"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.55039763px">C</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48.57639694px;line-height:89.99999762%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.5180124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="142.47345"
y="727.8584"
id="text897"><tspan
id="tspan895"
sodipodi:role="line"
x="142.47345"
y="727.8584"
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.5180124px">OFF</tspan></text>
<text
transform="scale(1.1213899,0.89175052)"
id="text908"
y="1065.4727"
x="454.1348"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:43.3180275px;line-height:89.99999762%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f7f7f7;fill-opacity:1;stroke:none;stroke-width:1.35368836px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="line-height:89.99999762%;fill:#f7f7f7;fill-opacity:1;stroke-width:1.35368836px"
y="1065.4727"
x="454.1348"
sodipodi:role="line"
id="tspan906">BECKER</tspan></text>
</g>
<path
style="fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 389.1916,761.67536 C 330.27129,604.61218 185.99775,667.33557 185.99775,667.33557 c 0,0 169.9292,-96.49023 243.94876,79.30597 z"
id="path910"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc"
inkscape:label="volume_symbol" />
<path
id="lines"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 612.2451,217.49234 v 20.24962 H 578.19618 M 418.44831,217.49234 v 20.24962 h 34.04892"
inkscape:label="lines" />
<path
id="path1064"
style="fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 895.43214,544.28329 h -12.22137 l 0,-29.96919 v -32.24716 h 12.22137 l -14.06224,-25.05635 -14.06224,25.05635 h 12.22137 v 32.24716 l 0,29.96919 h -12.22137 l 14.06224,25.05635 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc"
inkscape:label="arrow_swap" />
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

View file

@ -0,0 +1,38 @@
# Copyright 2020 Benedikt Wolf
# with parts by Gilberto Agonstinho, WooT, Joshau Davidson
# This file is part of FlightGear.
#
# FlightGear is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# FlightGear is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
To install this instrument into your aircraft, you need to do the following:
1. Enable the <transponder> module through the aircraft's instrumentation.xml (in case a custom one is used)
2. Add bxp6401.nas to your aircraft's list of included nasal files:
<nasal>
...
<bxp6401>
<file>Aircraft/Instruments-3d/bxp6401/bxp6401.nas</file>
</bxp6401>
...
</nasal>
** Note that it is important to put the file into <bxp6401></bxp6401> tags, as the animation xml references the instrument by that name
3. Add the model to your aircraft:
<model>
<path>Aircraft/Instruments-3d/bxp6401/bxp6401.xml</path>
...
</model>
4. If you are using a custom electric system, make sure the transponder is supplied at /systems/electrical/outputs/transponder[0] when appropriate
## Please report any bugs, issues and improvements either to the mailing list of FlightGear forum so they can be fixed/included in the shared version of this instrument

View file

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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="1024"
height="512"
viewBox="0 0 1024 512.00001"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="bxp6401-ai.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#6d6d6d"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="206.66541"
inkscape:cy="266.83054"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1600"
inkscape:window-height="1135"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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"
transform="translate(0,-540.36216)">
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="1028.9357"
height="526.92896"
x="-0.18212453"
y="536.65582" />
<text
inkscape:label="#text4266"
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="366.22891"
y="708.17432"
id="id1.digit"><tspan
sodipodi:role="line"
id="tspan4768"
x="366.22891"
y="708.17432"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
id="id2.digit"
y="708.17432"
x="507.83359"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="708.17432"
x="507.83359"
id="tspan4772"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
inkscape:label="#text4266"
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="650.48712"
y="708.17432"
id="id3.digit"><tspan
sodipodi:role="line"
id="tspan4776"
x="650.48712"
y="708.17432"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
id="id4.digit"
y="708.17432"
x="792.0918"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="708.17432"
x="792.0918"
id="tspan4780"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<g
id="id4.change"
transform="translate(411.88539,217.54731)"
inkscape:label="#g4291">
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4293"
width="139.9557"
height="202.85715"
x="349.30786"
y="332.36215" />
<text
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="364.47195"
y="498.69327"
id="id4.change.digit"
inkscape:label="#text4295"><tspan
sodipodi:role="line"
id="tspan4297"
x="364.47195"
y="498.69327"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<g
id="id1.change"
inkscape:label="#g4270"
transform="translate(1.8853857,217.54731)">
<rect
y="332.36215"
x="349.30786"
height="202.85715"
width="139.9557"
id="rect4264"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="id1.change.digit"
y="498.69327"
x="364.47195"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="498.69327"
x="364.47195"
id="tspan4268"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="73.996742"
y="635.93359"
id="r.flag"
inkscape:label="#text4206"><tspan
sodipodi:role="line"
id="tspan4208"
x="73.996742"
y="635.93359"
style="font-size:93.88957977px;line-height:1.25">R</tspan></text>
<text
id="ident.flag"
y="738.96918"
x="73.996742"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4210"><tspan
y="738.96918"
x="73.996742"
id="tspan4212"
sodipodi:role="line"
style="font-size:93.88957977px;line-height:1.25">ID</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="73.996742"
y="849.07581"
id="status"
inkscape:label="#text4214"><tspan
sodipodi:role="line"
id="tspan4216"
x="73.996742"
y="849.07581"
style="font-size:93.88957977px;line-height:1.25">ON</tspan></text>
<g
id="id2.change"
transform="translate(139.02825,217.54731)"
inkscape:label="#g4275">
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4277"
width="139.9557"
height="202.85715"
x="349.30786"
y="332.36215" />
<text
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="364.47195"
y="498.69327"
id="id2.change.digit"
inkscape:label="#text4279"><tspan
sodipodi:role="line"
id="tspan4281"
x="364.47195"
y="498.69327"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<text
id="text4226"
y="1001.9329"
x="98.282455"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1001.9329"
x="98.282455"
id="tspan4228"
sodipodi:role="line"
style="font-size:93.88957977px;line-height:1.25">AI</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="345.42529"
y="1001.9329"
id="text4230"><tspan
sodipodi:role="line"
id="tspan4232"
x="345.42529"
y="1001.9329"
style="font-size:93.88957977px;line-height:1.25">FG1356123</tspan></text>
<g
transform="translate(274.74253,217.54731)"
id="id3.change"
inkscape:label="#g4283">
<rect
y="332.36215"
x="349.30786"
height="202.85715"
width="139.9557"
id="rect4285"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="id3.change.digit"
y="498.69327"
x="364.47195"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4287"><tspan
y="498.69327"
x="364.47195"
id="tspan4289"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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="1024"
height="512"
viewBox="0 0 1024 512.00001"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="bxp6401-alt.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#6d6d6d"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="12.441265"
inkscape:cy="305.90552"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1600"
inkscape:window-height="1135"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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"
transform="translate(0,-540.36216)">
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="1028.9357"
height="526.92896"
x="-0.18212453"
y="536.65582" />
<text
inkscape:label="#text4266"
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="364.27112"
y="707.86816"
id="id1.digit"><tspan
sodipodi:role="line"
id="tspan4768"
x="364.27112"
y="707.86816"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
id="id2.digit"
y="707.86816"
x="505.87582"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="707.86816"
x="505.87582"
id="tspan4772"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
inkscape:label="#text4266"
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="648.52942"
y="707.86816"
id="id3.digit"><tspan
sodipodi:role="line"
id="tspan4776"
x="648.52942"
y="707.86816"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
id="id4.digit"
y="707.86816"
x="790.13409"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="707.86816"
x="790.13409"
id="tspan4780"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="73.996742"
y="635.93359"
id="r.flag"
inkscape:label="#text4206"><tspan
sodipodi:role="line"
id="tspan4208"
x="73.996742"
y="635.93359"
style="font-size:93.88957977px;line-height:1.25">R</tspan></text>
<text
id="ident.flag"
y="738.96918"
x="73.996742"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
inkscape:label="#text4210"><tspan
y="738.96918"
x="73.996742"
id="tspan4212"
sodipodi:role="line"
style="font-size:93.88957977px;line-height:1.25">ID</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="73.996742"
y="849.07581"
id="text4214"><tspan
sodipodi:role="line"
id="tspan4216"
x="73.996742"
y="849.07581"
style="font-size:93.88957977px;line-height:1.25">ALT</tspan></text>
<g
id="id4.change"
transform="translate(410.00001,217.22952)"
inkscape:label="#g4291">
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4293"
width="139.9557"
height="202.85715"
x="349.30786"
y="332.36215" />
<text
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="364.47195"
y="498.69327"
id="id4.change.digit"
inkscape:label="#text4295"><tspan
sodipodi:role="line"
id="tspan4297"
x="364.47195"
y="498.69327"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<g
id="id1.change"
inkscape:label="#g4270"
transform="translate(0,217.22952)">
<rect
y="332.36215"
x="349.30786"
height="202.85715"
width="139.9557"
id="rect4264"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="id1.change.digit"
y="498.69327"
x="364.47195"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4266"><tspan
y="498.69327"
x="364.47195"
id="tspan4268"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<g
id="id2.change"
transform="translate(137.14286,217.22952)"
inkscape:label="#g4275">
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4277"
width="139.9557"
height="202.85715"
x="349.30786"
y="332.36215" />
<text
transform="scale(0.96303718,1.0383815)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="364.47195"
y="498.69327"
id="id2.change.digit"
inkscape:label="#text4279"><tspan
sodipodi:role="line"
id="tspan4281"
x="364.47195"
y="498.69327"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<g
transform="translate(272.85715,217.22952)"
id="id3.change"
inkscape:label="#g4283">
<rect
y="332.36215"
x="349.30786"
height="202.85715"
width="139.9557"
id="rect4285"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="id3.change.digit"
y="498.69327"
x="364.47195"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.96303718,1.0383815)"
inkscape:label="#text4287"><tspan
y="498.69327"
x="364.47195"
id="tspan4289"
sodipodi:role="line"
style="font-size:223.46235657px;line-height:1.25">0</tspan></text>
</g>
<text
id="text4226"
y="1001.9329"
x="98.282455"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1001.9329"
x="98.282455"
id="tspan4228"
sodipodi:role="line"
style="font-size:93.88957977px;line-height:1.25">FL</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="377.60211"
y="985.22986"
id="altitude"
inkscape:label="#text4230"><tspan
sodipodi:role="line"
id="tspan4232"
x="377.60211"
y="985.22986"
style="font-size:203.40602112px;line-height:1.25">000</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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="1024"
height="512"
viewBox="0 0 1024 512.00001"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="bxp6401-start.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#6d6d6d"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="77.969693"
inkscape:cy="263.42785"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1600"
inkscape:window-height="1135"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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"
transform="translate(0,-540.36216)">
<rect
style="opacity:1;fill:#a1ffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5589"
width="1028.9357"
height="526.92896"
x="-0.18212453"
y="536.65582" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="349.86414"
y="839.505"
id="text4172"><tspan
sodipodi:role="line"
id="tspan4174"
x="349.86414"
y="839.505"
style="font-size:130.14257812px;line-height:1.25">WAIT</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,299 @@
# Becker Transponder BXP6401 by Benedikt Wolf (D-ECHO) based on
# A3XX Lower ECAM Canvas
# Joshua Davidson (it0uchpods)
# Reference: http://www.becker-avionics.com/wp-content/uploads/2018/06/BXP6401_IO_issue05.pdf
## REQUIRES:
## * transponder module enabled from <sim><instrumentation>
## * power supply from systems/electrical/outputs/transponder (default)
#####################
## Version 05/2020 ##
#####################
## Features of this version:
## * use maketimer, only update visible pages
## * use props.nas, store in local variables where sensible
## * store instrument directory in variable
## * use of arrays where sensible
## * clarity through indentation
## * use functions for common functionality
## * clean up listeners
## * self-sufficient: does not need properties to be set-up via -set/-main/-base file (exceptions: "REQUIRES"-section)
var BXP6401_start = nil;
var BXP6401_ai = nil;
var BXP6401_alt = nil;
var BXP6401_display = nil;
var page = "start";
var transponder = props.globals.getNode("/instrumentation/transponder[0]");
var inputs = transponder.getNode("inputs");
var mode_prop = inputs.initNode("knob-mode", 0, "INT");
var start_prop = transponder.initNode("start", 0.0, "DOUBLE");
var volt_prop = props.globals.initNode("/systems/electrical/outputs/transponder", 15.0, "DOUBLE");
var active_prop = inputs.initNode("current-change", 0, "INT");
var ident_prop = inputs.getNode("ident-btn");
var idcode_prop = transponder.initNode("id-code", 7000, "INT");
var alt = transponder.getNode("altitude");
var alt_val = transponder.getNode("altitude-valid");
var brightness = transponder.initNode("brightness", 0.5, "DOUBLE");
var ident_arr = [0, 0, 0, 0];
var ident_prop_arr = [ inputs.getNode("digit[0]"),
inputs.getNode("digit[1]"),
inputs.getNode("digit[2]"),
inputs.getNode("digit[3]") ];
var instrument_dir = "Aircraft/Instruments-3d/bxp6401/";
var canvas_BXP6401_base = {
init: func(canvas_group, file) {
var font_mapper = func(family, weight) {
return "LiberationFonts/LiberationSans-Bold.ttf";
};
canvas.parsesvg(canvas_group, file, {'font-mapper': font_mapper});
var svg_keys = me.getKeys();
foreach(var key; svg_keys) {
me[key] = canvas_group.getElementById(key);
}
me.page = canvas_group;
return me;
},
getKeys: func() {
return [];
},
update: func() {
var mode = mode_prop.getIntValue();
var start = start_prop.getDoubleValue();
if ( start == 1.0 and volt_prop.getDoubleValue() > 10 and mode != 0 ) {
BXP6401_start.page.hide();
if(mode==1 or mode==4){
BXP6401_ai.page.show();
BXP6401_ai.update();
BXP6401_alt.page.hide();
}else if(mode==5){
BXP6401_alt.page.show();
BXP6401_alt.update();
BXP6401_ai.page.hide();
}else{
mode_prop.setIntValue(1); #GND and TEST not available for this transponder, so we reset to STBY
}
} else if ( start > 0.0 and start < 1.0 and volt_prop.getDoubleValue() > 10 and mode_prop.getIntValue() != 0){
BXP6401_ai.page.hide();
BXP6401_alt.page.hide();
BXP6401_start.page.show();
} else {
BXP6401_ai.page.hide();
BXP6401_alt.page.hide();
BXP6401_start.page.hide();
}
},
update_common: func() {
#IDENT (ID) FLAG
if( ident_prop.getBoolValue() == 1 ){
me["ident.flag"].show();
}else{
me["ident.flag"].hide();
}
#ID CODE
var cc = active_prop.getIntValue();
forindex(var i; ident_arr){
ident_arr[i] = ident_prop_arr[i].getIntValue();
}
if( cc == 0 ){
me["id1.change"].hide();
me["id2.change"].hide();
me["id3.change"].hide();
me["id4.change"].hide();
me["id1.digit"].show();
me["id2.digit"].show();
me["id3.digit"].show();
me["id4.digit"].show();
me["id1.digit"].setText(sprintf("%1d", ident_arr[3]));
me["id2.digit"].setText(sprintf("%1d", ident_arr[2]));
me["id3.digit"].setText(sprintf("%1d", ident_arr[1]));
me["id4.digit"].setText(sprintf("%1d", ident_arr[0]));
}else if ( cc == 1 ){
me["id1.change"].show();
me["id1.change.digit"].setText(sprintf("%1d", ident_arr[3]));
me["id2.change"].hide();
me["id3.change"].hide();
me["id4.change"].hide();
me["id1.digit"].hide();
me["id2.digit"].show();
me["id3.digit"].show();
me["id4.digit"].show();
me["id2.digit"].setText(sprintf("%1d", ident_arr[2]));
me["id3.digit"].setText(sprintf("%1d", ident_arr[1]));
me["id4.digit"].setText(sprintf("%1d", ident_arr[0]));
}else if ( cc == 2 ){
me["id2.change"].show();
me["id2.change.digit"].setText(sprintf("%1d", ident_arr[2]));
me["id1.change"].hide();
me["id3.change"].hide();
me["id4.change"].hide();
me["id1.digit"].show();
me["id2.digit"].hide();
me["id3.digit"].show();
me["id4.digit"].show();
me["id1.digit"].setText(sprintf("%1d", ident_arr[3]));
me["id3.digit"].setText(sprintf("%1d", ident_arr[1]));
me["id4.digit"].setText(sprintf("%1d", ident_arr[0]));
}else if ( cc == 3 ){
me["id3.change"].show();
me["id3.change.digit"].setText(sprintf("%1d", ident_arr[1]));
me["id1.change"].hide();
me["id2.change"].hide();
me["id4.change"].hide();
me["id1.digit"].show();
me["id2.digit"].show();
me["id3.digit"].hide();
me["id4.digit"].show();
me["id1.digit"].setText(sprintf("%1d", ident_arr[3]));
me["id2.digit"].setText(sprintf("%1d", ident_arr[2]));
me["id4.digit"].setText(sprintf("%1d", ident_arr[0]));
}else if ( cc == 4 ){
me["id4.change"].show();
me["id4.change.digit"].setText(sprintf("%1d", ident_arr[0]));
me["id1.change"].hide();
me["id2.change"].hide();
me["id3.change"].hide();
me["id1.digit"].show();
me["id2.digit"].show();
me["id3.digit"].show();
me["id4.digit"].hide();
me["id1.digit"].setText(sprintf("%1d", ident_arr[3]));
me["id2.digit"].setText(sprintf("%1d", ident_arr[2]));
me["id3.digit"].setText(sprintf("%1d", ident_arr[1]));
}
},
};
var canvas_BXP6401_ai = {
new: func(canvas_group, file) {
var m = { parents: [canvas_BXP6401_ai , canvas_BXP6401_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["ident.flag","r.flag","id1.digit","id2.digit","id3.digit","id4.digit","id1.change","id1.change.digit","id2.change","id2.change.digit","id3.change","id3.change.digit","id4.change","id4.change.digit","status"];
},
update: func() {
#Status (STBY/ON)
var stat = mode_prop.getIntValue();
if( stat == 1 ){
me["status"].setText("SBY");
}else if( stat == 4 ) {
me["status"].setText("ON");
}else{
me["status"].setText("FAIL");
}
me.update_common();
}
};
var canvas_BXP6401_alt = {
new: func(canvas_group, file) {
var m = { parents: [canvas_BXP6401_alt , canvas_BXP6401_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["ident.flag","r.flag","id1.digit","id2.digit","id3.digit","id4.digit","id1.change","id1.change.digit","id2.change","id2.change.digit","id3.change","id3.change.digit","id4.change","id4.change.digit","altitude"];
},
update: func() {
#Altitude (FL)
if( alt_val.getBoolValue() ){
me["altitude"].setText(sprintf("%03d", math.round( alt.getDoubleValue() /100)));
}else{
me["altitude"].setText("---");
}
me.update_common();
}
};
var canvas_BXP6401_start = {
new: func(canvas_group, file) {
var m = { parents: [canvas_BXP6401_start , canvas_BXP6401_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return [];
},
update: func() {
}
};
var update_bxp6401 = maketimer( 0.2, func () { canvas_BXP6401_base.update() } );
var ls = setlistener("sim/signals/fdm-initialized", func {
BXP6401_display = canvas.new({
"name": "BXP6401",
"size": [1024, 512],
"view": [1024, 512],
"mipmapping": 1
});
BXP6401_display.addPlacement({"node": "BXP6401.display"});
var groupAi = BXP6401_display.createGroup();
var groupAlt = BXP6401_display.createGroup();
var groupStart = BXP6401_display.createGroup();
BXP6401_ai = canvas_BXP6401_ai.new(groupAi, instrument_dir~"bxp6401-ai.svg");
BXP6401_alt = canvas_BXP6401_alt.new(groupAlt, instrument_dir~"bxp6401-alt.svg");
BXP6401_start = canvas_BXP6401_start.new(groupStart, instrument_dir~"bxp6401-start.svg");
update_bxp6401.start();
removelistener(ls);
});
var identoff = func {
ident_prop.setIntValue(0);
}
var ident_btn = func() {
ident_prop.setIntValue(1);
settimer(identoff, 18);
}
var check_state = func() {
if( mode_prop.getIntValue() != 0 and volt_prop.getDoubleValue() > 10 and start_prop.getDoubleValue() == 0){
interpolate(start_prop, 1, 1 );
}else if( ( mode_prop.getIntValue() == 0 or volt_prop.getDoubleValue() <= 10 ) and start_prop.getDoubleValue() != 0){
start_prop.setDoubleValue(0.0);
}
}
setlistener(mode_prop, func{
check_state();
});
setlistener(volt_prop, func{
check_state();
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

View file

@ -0,0 +1,335 @@
<?xml version="1.0"?>
<!-- Becker BXP-6401 simulation by Benedikt Wolf (D-ECHO)
thanks to: Gilberto Agostinho (texture work)
WooT (AR3201 that was used as a base)
Joshua Davidson (canvas basic structure from A320)
#### Version 05/2020
-->
<PropertyList>
<name>bxp6401</name>
<path>bxp6401.ac</path>
<animation>
<type>material</type>
<object-name>BXP6401.display</object-name>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
<factor-prop>/instrumentation/transponder[0]/brightness</factor-prop>
</emission>
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<parameters>
<dirt-factor>1.0</dirt-factor>
<contrast>0.75</contrast>
</parameters>
<object-name>BXP6401.display</object-name>
</effect>
<animation>
<type>pick</type>
<object-name>vfr.btn</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/transponder/id-code</property>
<value>7000</value>
</binding>
<binding>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/vfr-pressed</property>
<value>1</value>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/vfr-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>vfr.btn</object-name>
<property>/instrumentation/transponder/inputs/vfr-pressed</property>
<axis>
<x>1</x>
</axis>
<factor>-0.0005</factor>
</animation>
<animation>
<type>pick</type>
<object-name>idt.btn</object-name>
<action>
<button>0</button>
<binding>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/idt-pressed</property>
<value>1</value>
</binding>
<binding>
<command>nasal</command>
<script>
bxp6401.ident_btn();
</script>
</binding>
<mod-up>
<binding>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/idt-pressed</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>idt.btn</object-name>
<property>/instrumentation/transponder/inputs/idt-pressed</property>
<axis>
<x>1</x>
</axis>
<factor>-0.0005</factor>
</animation>
<!-- code -->
<animation>
<type>pick</type>
<object-name>sel.knob</object-name>
<action>
<button>0</button>
<binding>
<command>property-cycle</command>
<property>/instrumentation/transponder[0]/inputs/current-change</property>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>0</value>
</binding>
<binding>
<command>property-toggle</command>
<property>/instrumentation/transponder/inputs/sel-knob-pushed</property>
</binding>
<mod-up>
<binding>
<command>property-toggle</command>
<property>/instrumentation/transponder/inputs/sel-knob-pushed</property>
</binding>
</mod-up>
</action>
<action>
<button>3</button>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>1</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[3]</property>
<step>1</step>
<min>0</min>
<max>8</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[2]</property>
<step>1</step>
<min>0</min>
<max>8</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>3</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[1]</property>
<step>1</step>
<min>0</min>
<max>8</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>4</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[0]</property>
<step>1</step>
<min>0</min>
<max>8</max>
<wrap>true</wrap>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/sel-knob</property>
<step>5</step>
</binding>
</action>
<action>
<button>4</button>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>0</value>
</equals>
</condition>
<command>property-assign</command>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>1</value>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[3]</property>
<step>-1</step>
<min>0</min>
<max>7</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>2</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[2]</property>
<step>-1</step>
<min>0</min>
<max>7</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>3</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[1]</property>
<step>-1</step>
<min>0</min>
<max>7</max>
<wrap>true</wrap>
</binding>
<binding>
<condition>
<equals>
<property>/instrumentation/transponder/inputs/current-change</property>
<value>4</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/digit[0]</property>
<step>-1</step>
<min>0</min>
<max>7</max>
<wrap>true</wrap>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/transponder/inputs/sel-knob</property>
<step>-5</step>
</binding>
</action>
</animation>
<animation>
<type>rotate</type>
<object-name>sel.knob</object-name>
<property>instrumentation/transponder/inputs/sel-knob</property>
<center>
<y-m>0.011</y-m>
<z-m>-0.01688</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>sel.knob</object-name>
<property>/instrumentation/transponder/inputs/sel-knob-pushed</property>
<factor>-0.001</factor>
<axis>
<x>1</x>
</axis>
</animation>
<!-- Mode -->
<animation>
<type>knob</type>
<object-name>mode.knob</object-name>
<property>instrumentation/transponder/inputs/knob-mode</property>
<interpolation>
<entry><ind> 0 </ind><dep> 0 </dep></entry>
<entry><ind> 1 </ind><dep> 50 </dep></entry>
<entry><ind> 3 </ind><dep> 50 </dep></entry>
<entry><ind> 4 </ind><dep> 100 </dep></entry>
<entry><ind> 5 </ind><dep> 150 </dep></entry>
</interpolation>
<center>
<y-m>-0.01564</y-m>
<z-m>-0.01686</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
<action>
<binding>
<command>property-cycle</command>
<property>instrumentation/transponder/inputs/knob-mode</property>
<value>1</value>
<value>4</value>
<value>5</value>
<value>0</value>
</binding>
</action>
</animation>
</PropertyList>

View file

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="1280"
height="1280"
viewBox="0 0 1280 1280"
sodipodi:docname="bxp6401.svg"
inkscape:export-filename="/home/delta/Aircraft/Sky-sportster/Models/Interior/Panel/Instruments/bxp6401/bxp6401.png"
inkscape:export-xdpi="72"
inkscape:export-ydpi="72">
<metadata
id="metadata8">
<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>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#5a5a5a"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4"
showgrid="false"
inkscape:zoom="0.26074563"
inkscape:cx="-925.5153"
inkscape:cy="415.29184"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="534.63763"
y="866.44067"
id="text4285"><tspan
sodipodi:role="line"
id="tspan4287"
x="534.63763"
y="866.44067"
style="font-size:94.84461975px;line-height:1.25">XPDR</tspan></text>
<text
id="text4289"
y="934.39075"
x="89.572983"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="934.39075"
x="89.572983"
id="tspan4291"
sodipodi:role="line"
style="font-size:71.39297485px;line-height:1.25">OFF</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="239.62344"
y="881.17798"
id="text4293"><tspan
sodipodi:role="line"
id="tspan4295"
x="239.62344"
y="881.17798"
style="font-size:71.39297485px;line-height:1.25">SBY</tspan></text>
<text
id="text4297"
y="953.0871"
x="406.9321"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="953.0871"
x="406.9321"
id="tspan4299"
sodipodi:role="line"
style="font-size:71.39297485px;line-height:1.25">ON</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="458.22729"
y="1044.172"
id="text4301"><tspan
sodipodi:role="line"
id="tspan4303"
x="458.22729"
y="1044.172"
style="font-size:71.39297485px;line-height:1.25">ALT</tspan></text>
<text
id="text4305"
y="1393.6139"
x="434.99905"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(1.1445377,0.87371518)"><tspan
y="1393.6139"
x="434.99905"
id="tspan4307"
sodipodi:role="line"
style="font-size:59.39289474px;line-height:1.25">BECKER</tspan></text>
<text
id="text4309"
y="184.28194"
x="447.4194"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="184.28194"
x="447.4194"
id="tspan4311"
sodipodi:role="line"
style="font-size:70.64267731px;line-height:1.25">SEL</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="695.55499"
y="184.28194"
id="text4313"><tspan
sodipodi:role="line"
id="tspan4315"
x="695.55499"
y="184.28194"
style="font-size:70.64267731px;line-height:1.25">STO</tspan></text>
<text
id="text4317"
y="303.65472"
x="550.86584"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="303.65472"
x="550.86584"
id="tspan4319"
sodipodi:role="line"
style="font-size:67.0572052px;line-height:1.25">TEST</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 500.67797,257.62712 0,23.38983 46.44068,0"
id="path4321"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4323"
d="m 768.55933,257.62712 0,23.38983 -46.44068,0"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:10;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="127.00819"
y="609.9585"
id="text4325"><tspan
sodipodi:role="line"
id="tspan4327"
x="127.00819"
y="609.9585"
style="font-size:67.0572052px;line-height:0.80000001">V</tspan><tspan
sodipodi:role="line"
x="127.00819"
y="663.60425"
id="tspan4329"
style="font-size:67.0572052px;line-height:0.80000001">F</tspan><tspan
sodipodi:role="line"
x="127.00819"
y="717.25"
id="tspan4331"
style="font-size:67.0572052px;line-height:0.80000001">R</tspan></text>
<text
id="text4333"
y="609.9585"
x="1150.4961"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4339"
y="609.9585"
x="1150.4961"
sodipodi:role="line"
style="font-size:67.0572052px;line-height:0.80000001">I</tspan><tspan
y="663.60425"
x="1150.4961"
sodipodi:role="line"
id="tspan4346"
style="font-size:67.0572052px;line-height:0.80000001">D</tspan><tspan
y="717.25"
x="1150.4961"
sodipodi:role="line"
id="tspan4348"
style="font-size:67.0572052px;line-height:0.80000001">T</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

View file

@ -0,0 +1,139 @@
# Copyright 2020 Benedikt Wolf
# This file is part of FlightGear.
#
# FlightGear is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# FlightGear is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
To install this instrument into your aircraft, you need to do the following:
1. Add flarm.nas to your aircraft's list of included nasal files:
<nasal>
...
<flarm>
<file>Aircraft/Instruments-3d/glider/flarm/flarm.nas</file>
</flarm>
...
</nasal>
** Note that it is important to put the file into <flarm></flarm> tags, as the animation xml may in the future reference the instrument by that name
2. Add the model to your aircraft:
There are two models available, the standard, full-size FLARM and a smaller FLARM (v3) display for integration into a panel.
You can use either or both of these:
<model>
<path>Aircraft/Instruments-3d/glider/flarm/v3_display/flarm_v3.xml</path>
...
</model>
<model>
<path>Aircraft/Instruments-3d/glider/flarm/traditional/flarm_traditional.xml</path>
...
</model>
3. If you are using a custom electric system, make sure the FLARM is supplied at /systems/electrical/outputs/flarm when appropriate
4. Add sound effects for this FLARM, e.g. by using the block below and adjusting it to fit:
<flarm_info>
<name>flarm new contact</name>
<mode>once</mode>
<path>Aircraft/Instruments-3d/glider/flarm/flarm_new_contact.wav</path>
<condition>
<and>
<greater-than>
<property>/systems/electrical/outputs/flarm</property>
<value>9</value>
</greater-than>
<equals>
<property>/instrumentation/flarm/new-contact</property>
<value>0</value>
</equals>
</and>
</condition>
<!-- Put the position of your FLARM loudspeaker here -->
<position>
<x>-1.35</x>
<y>0.0</y>
<z>0.1</z>
</position>
</flarm_info>
<flarm_info>
<name>flarm new contact 2</name>
<mode>once</mode>
<path>Aircraft/Instruments-3d/glider/flarm/flarm_new_contact.wav</path>
<condition>
<and>
<greater-than>
<property>/systems/electrical/outputs/flarm</property>
<value>9</value>
</greater-than>
<equals>
<property>/instrumentation/flarm/new-contact</property>
<value>1</value>
</equals>
</and>
</condition>
<!-- Put the position of your FLARM loudspeaker here -->
<position>
<x>-1.35</x>
<y>0.0</y>
<z>0.1</z>
</position>
</flarm_info>
<flarm_warn>
<name>flarm warn 1</name>
<mode>looped</mode>
<path>Aircraft/Instruments-3d/glider/flarm/flarm1.wav</path>
<condition>
<and>
<greater-than>
<property>/systems/electrical/outputs/flarm</property>
<value>9</value>
</greater-than>
<equals>
<property>/instrumentation/flarm/warn</property>
<value>1</value>
</equals>
</and>
</condition>
<!-- Put the position of your FLARM loudspeaker here -->
<position>
<x>-1.35</x>
<y>0.0</y>
<z>0.1</z>
</position>
</flarm_warn>
<flarm_warn>
<name>flarm warn 2</name>
<mode>looped</mode>
<path>Aircraft/Instruments-3d/glider/flarm/flarm2.wav</path>
<condition>
<and>
<greater-than>
<property>/systems/electrical/outputs/flarm</property>
<value>9</value>
</greater-than>
<equals>
<property>/instrumentation/flarm/warn</property>
<value>2</value>
</equals>
</and>
</condition>
<!-- Put the position of your FLARM loudspeaker here -->
<position>
<x>-1.35</x>
<y>0.0</y>
<z>0.1</z>
</position>
</flarm_warn>
## Please report any bugs, issues and improvements either to the mailing list of FlightGear forum so they can be fixed/included in the shared version of this instrument

View file

@ -0,0 +1,342 @@
## FLARM
## Version 05/2020
## by Benedikt Wolf (D-ECHO)
## References:
## [1] https://flarm.com/wp-content/uploads/man/FLARM_OperatingManual_E.pdf (FLARM Technology and traditional/main instrument)
## [2] https://swiss-bat.ch/.cm4all/iproc.php/flarm/Handbuch_V3%2B_FW571_DV100-a-EN.pdf?cdp=a (for v3 display, the one described there additionally has a numerical distance indicator)
# Initialize necessary properties
var flarm_base = props.globals.initNode("/instrumentation/flarm");
var play_newcontact = flarm_base.initNode("new-contact", 0, "BOOL");
var play_warn = flarm_base.initNode("warn", 0, "INT"); # two warning levels: 0 = off; 1 = warning level 1; 2 = warning level 2
var receive_flag = flarm_base.initNode("receive", 0, "BOOL");
var ub_leds = [
flarm_base.initNode("ub-LED[0]", 0, "BOOL"),
flarm_base.initNode("ub-LED[1]", 0, "BOOL"),
flarm_base.initNode("ub-LED[2]", 0, "BOOL"),
flarm_base.initNode("ub-LED[3]", 0, "BOOL"), ];
var leds_green = [];
var leds_red = [];
for( var i = 0; i <= 11; i = i + 1 ){
append(leds_green, flarm_base.initNode("LED["~i~"]", 0, "BOOL"));
append(leds_red, flarm_base.initNode("LED-red["~i~"]", 0, "BOOL"));
}
var volts = props.globals.initNode("systems/electrical/outputs/flarm", 0.0, "DOUBLE");
var track = props.globals.getNode("/orientation/track-deg");
var ai_models = props.globals.getNode("/ai/models");
var elapsed_sec = props.globals.getNode("/sim/time/elapsed-sec");
# Initialize Arrays to internally store targets and warnings
var targets = [];
var warnings = [];
var targets_tracked = [];
# Initialize internal variables
var max_dist = 4; # according to [1] typically 3-5km, depending on installation of antenna
var running = 0;
#Set properties
for(var f=0; f<=30; f=f+1){
append(targets, nil);
append(warnings, nil);
append(targets_tracked, 0);
}
# Helper function to return relative bearing towards target
var relative = func (brg, heading) {
brg = brg - heading;
return geo.normdeg(brg);
}
# Helper function to play sound for new contact
var new_contact = func () { #Sound message for new contact
play_newcontact.setBoolValue( !play_newcontact.getBoolValue() );
}
# Target class
#var target1 = Target.new(n,scnd);
var Target = {
new : func(n,scnd){
m = { parents : [Target] };
m.id=n;
m.lat = ai_models.getNode("multiplayer["~n~"]/position/latitude-deg");
m.lon = ai_models.getNode("multiplayer["~n~"]/position/longitude-deg");
m.alt = ai_models.getNode("multiplayer["~n~"]/position/altitude-ft");
m.pos = geo.Coord.new().set_latlon( m.lat.getDoubleValue(),
m.lon.getDoubleValue(),
m.alt.getDoubleValue() );
m.second=0.0;
var ac = geo.aircraft_position();
m.last_dist = m.pos.direct_distance_to( ac );
new_contact();
return m;
},
update_data : func(){
me.pos.set_latlon( me.lat.getDoubleValue(),
me.lon.getDoubleValue(),
me.alt.getDoubleValue() );
},
update_LED : func( scnd ) {
var ac = geo.aircraft_position();
#Time difference
var delta_time = scnd - me.second;
me.second = scnd;
var actual_dist_now = me.pos.direct_distance_to( ac );
#Delta Distance
var delta_dist = ( me.last_dist - actual_dist_now ) / delta_time;
#(Theoretical) time to collision
if( delta_dist == 0 ){
ttc=999;
}else{
var ttc = actual_dist_now / delta_dist;
}
if( ttc <= 0 ){
ttc = 999;
}
var LED = [0,0,0,0,0,0,0,0,0,0,0,0];
var bearing = ac.course_to( me.pos );
var relative_bearing = relative( bearing, track.getDoubleValue() );
var alt_diff = math.abs( ( me.pos.alt() * FT2M ) - ac.alt() ); #Altitude difference in meters
if( ttc < 6 and alt_diff < 150){
#Warn 1: all LEDs red
warnings[me.id]=2;
forindex(var key; LED){
LED[key]=2;
}
}else if(ttc<14 and alt_diff < 300){
#Warn 2: corresponding LED red
warnings[me.id]=1;
LED[int(relative_bearing/30+1)-1] = 2;
}else{
#Normal: corresponding LED green
warnings[me.id]=0;
LED[int(relative_bearing/30+1)-1] = 1;
}
me.last_dist=actual_dist_now;
return LED;
},
update_ub : func(){
var ac = geo.aircraft_position();
var alt_diff = ( me.pos.alt() * FT2M ) - ac.alt(); #Altitude difference in meters
var distance = ac.distance_to(me.pos);
var angle = ( math.atan( alt_diff/distance ) )*R2D;
return angle;
},
get_distance : func() {
return me.pos.alt();
},
};
setlistener("/sim/signals/fdm-initialized", func{
phase1_timer = maketimer( 0.2, flarm_start_phase2 );
phase2_timer = maketimer( 5, flarm_start_phase3 );
phase3_timer = maketimer( 2, flarm_start_phase4 );
phase1_timer.singleShot = 1;
phase2_timer.singleShot = 1;
phase3_timer.singleShot = 1;
});
var update_FLARM = func{
for(var f=0; f<=30; f=f+1){
if(getprop("/ai/models/multiplayer["~f~"]/position/latitude-deg") != nil){
var temp_pos = geo.Coord.set_latlon( getprop("/ai/models/multiplayer["~f~"]/position/latitude-deg"),
getprop("/ai/models/multiplayer["~f~"]/position/longitude-deg"),
getprop("/ai/models/multiplayer["~f~"]/position/altitude-ft"));
#Check whether in range and target not already existing
var distance_km = temp_pos.distance_to(geo.aircraft_position())/1000;
if(distance_km<max_dist and targets_tracked[f] == 0){
#Now generate a target
targets[f]=Target.new( f, elapsed_sec.getDoubleValue() );
targets_tracked[f] = 1;
}else if(distance_km>max_dist and targets_tracked[f] == 1){
#Target existing, but has moved meanwhile out of range
targets[f] = nil;
targets_tracked[f] = 0;
}
} else if ( targets_tracked[f] == 1){
#Target existing, but has meanwhile logged out
targets[f]=nil;
targets_tracked[f] = 0;
}
}
receive = 0;
forindex(var key; targets){
if(targets[key] != nil){
targets[key].update_data();
receive=1;
}
}
#Check LEDs
#12 LEDS, each cover 30 degrees
var stored_distance=9999;
var used_angle=nil;
var LEDs=[0,0,0,0,0,0,0,0,0,0,0,0];
forindex(var key; targets){
if(targets[key]!=nil){
var LED=targets[key].update_LED( elapsed_sec.getDoubleValue() ); #Get the value each time again because it should be precisely the current time
forindex(var f; LED){
if(LED[f]==1){
LEDs[f]=1;
}else if(LED[f]==2){
LEDs[f]=2;
}
}
var angle=targets[key].update_ub();
var distance=targets[key].get_distance();
if(distance<stored_distance){
used_angle=angle;
stored_distance=distance;
}
}
}
if(used_angle!=nil){
if(used_angle > 14){
ub_leds[0].setBoolValue(1);
ub_leds[1].setBoolValue(0);
ub_leds[2].setBoolValue(0);
ub_leds[3].setBoolValue(0);
}else if(used_angle > 0){
ub_leds[0].setBoolValue(0);
ub_leds[1].setBoolValue(1);
ub_leds[2].setBoolValue(0);
ub_leds[3].setBoolValue(0);
}else if(used_angle < -14){
ub_leds[0].setBoolValue(0);
ub_leds[1].setBoolValue(0);
ub_leds[2].setBoolValue(0);
ub_leds[3].setBoolValue(1);
}else if(used_angle < 0){
ub_leds[0].setBoolValue(0);
ub_leds[1].setBoolValue(0);
ub_leds[2].setBoolValue(1);
ub_leds[3].setBoolValue(0);
}else{
ub_leds[0].setBoolValue(0);
ub_leds[1].setBoolValue(0);
ub_leds[2].setBoolValue(0);
ub_leds[3].setBoolValue(0);
}
}else{
ub_leds[0].setBoolValue(0);
ub_leds[1].setBoolValue(0);
ub_leds[2].setBoolValue(0);
ub_leds[3].setBoolValue(0);
}
forindex(var key; LEDs){
if(LEDs[key]<=1){
leds_green[key].setBoolValue(LEDs[key]);
leds_red[key].setBoolValue(0);
}else if(LEDs[key]==2){
leds_green[key].setBoolValue(0);
leds_red[key].setBoolValue(1);
}
}
#Check Warning sounds
warn=0;
forindex(var key; warnings){
if(warnings[key]==2 and warn<2){
warn=2;
}else if(warnings[key]==1 and warn<1){
warn=1;
}
}
play_warn.setValue(warn);
if ( volts.getDoubleValue() > 9){
receive_flag.setBoolValue(receive);
if( running == 0 ){
running = 1;
}
} else {
running = 0;
foreach(var led; leds_green){
led.setBoolValue(0);
}
foreach(var led; leds_red){
led.setBoolValue(0);
}
foreach(var led; ub_leds){
led.setBoolValue(0);
}
receive_flag.setBoolValue(0);
flarm_update.stop();
}
}
var flarm_update = maketimer( 1, func() { update_FLARM(); } );
# Startup as described in [1], p.6
var phase1_timer = nil;
var phase2_timer = nil;
var phase3_timer = nil;
flarm_start_phase1 = func () {
# 1. Short beep, all LEDs light up
forindex(var key; leds_green){
leds_green[key].setBoolValue(1);
leds_red[key].setBoolValue(1);
}
play_warn.setIntValue(1);
phase1_timer.restart(0.2);
}
flarm_start_phase2 = func () {
# beep and LEDs off except to show hardware version (here: show green LEDs 0 and 1)
play_warn.setIntValue(0);
forindex(var key; leds_green){
if( key > 1 ){
leds_green[key].setBoolValue(0);
}
leds_red[key].setBoolValue(0);
}
phase2_timer.restart(5);
}
flarm_start_phase3 = func () {
# Show firmware version ( emit green LEDs 7 and 8 as well as 2 and 3 )
leds_green[0].setBoolValue(0);
leds_green[1].setBoolValue(0);
leds_green[2].setBoolValue(1);
leds_green[3].setBoolValue(1);
leds_green[7].setBoolValue(1);
leds_green[8].setBoolValue(1);
phase3_timer.restart(2);
}
flarm_start_phase4 = func () {
# Go to normal operation
flarm_update.restart(1);
}
setlistener(volts, func{
if( running == 0 and volts.getDoubleValue() > 9) {
running = 1;
flarm_start_phase1();
}
});

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View file

@ -0,0 +1,324 @@
<?xml version="1.0"?>
<PropertyList>
<path>flarm_traditional.ac</path>
<!--Indicators for Power, Send/Receive and GPS-->
<!--Power-->
<animation>
<type>material</type>
<object-name>power.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--GPS-->
<animation>
<type>material</type>
<object-name>gps.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Send-->
<animation>
<type>material</type>
<object-name>send.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Receive-->
<animation>
<type>material</type>
<object-name>receive.ind</object-name>
<condition>
<property>instrumentation/flarm/receive</property>
</condition>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>receive.ind</object-name>
<condition><not>
<property>instrumentation/flarm/receive</property></not>
</condition>
<ambient>
<red>0.1</red>
<green>0.1</green>
<blue>0.1</blue>
</ambient>
<emission>
<red>0.0</red>
<green>0.0</green>
<blue>0.0</blue>
</emission>
</animation>
<!--Direction of traffic indicator-->
<animation>
<type>material</type>
<object-name>right.1</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[0]</red-prop>
<green-prop>instrumentation/flarm/LED[0]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[0]</red-prop>
<green-prop>instrumentation/flarm/LED[0]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.2</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[1]</red-prop>
<green-prop>instrumentation/flarm/LED[1]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[1]</red-prop>
<green-prop>instrumentation/flarm/LED[1]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.3</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[2]</red-prop>
<green-prop>instrumentation/flarm/LED[2]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[2]</red-prop>
<green-prop>instrumentation/flarm/LED[2]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.4</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[3]</red-prop>
<green-prop>instrumentation/flarm/LED[3]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[3]</red-prop>
<green-prop>instrumentation/flarm/LED[3]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.5</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[4]</red-prop>
<green-prop>instrumentation/flarm/LED[4]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[4]</red-prop>
<green-prop>instrumentation/flarm/LED[4]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.6</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[5]</red-prop>
<green-prop>instrumentation/flarm/LED[5]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[5]</red-prop>
<green-prop>instrumentation/flarm/LED[5]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.6</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[6]</red-prop>
<green-prop>instrumentation/flarm/LED[6]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[6]</red-prop>
<green-prop>instrumentation/flarm/LED[6]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.5</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[7]</red-prop>
<green-prop>instrumentation/flarm/LED[7]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[7]</red-prop>
<green-prop>instrumentation/flarm/LED[7]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.4</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[8]</red-prop>
<green-prop>instrumentation/flarm/LED[8]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[8]</red-prop>
<green-prop>instrumentation/flarm/LED[8]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.3</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[9]</red-prop>
<green-prop>instrumentation/flarm/LED[9]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[9]</red-prop>
<green-prop>instrumentation/flarm/LED[9]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.2</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[10]</red-prop>
<green-prop>instrumentation/flarm/LED[10]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[10]</red-prop>
<green-prop>instrumentation/flarm/LED[10]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.1</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[11]</red-prop>
<green-prop>instrumentation/flarm/LED[11]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[11]</red-prop>
<green-prop>instrumentation/flarm/LED[11]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Vertical angle to traffic indicator-->
<animation>
<type>material</type>
<object-name>above.1</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[1]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[1]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>above.2</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[0]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[0]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>below.1</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[2]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[2]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>below.2</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[3]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[3]</factor-prop>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,446 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="512"
height="512"
viewBox="0 0 512 512"
sodipodi:docname="flarm_traditional.svg"
inkscape:export-filename="/home/delta/Glider_projects/FLARM/flarm.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata8">
<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>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#5c5c5c"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4"
showgrid="false"
inkscape:zoom="0.81538251"
inkscape:cx="359.42491"
inkscape:cy="183.12252"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="0,0"
orientation="1,0"
id="guide883"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="512,512"
orientation="1,0"
id="guide885"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="346.66667,88.238482"
orientation="0,1"
id="guide1053"
inkscape:locked="false" />
<sodipodi:guide
position="300.4878,88.238482"
orientation="1,0"
id="guide1055"
inkscape:locked="false" />
</sodipodi:namedview>
<text
xml:space="preserve"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25.5766201px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold Italic';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.63941562px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="88.887589"
y="469.42783"
id="text965"><tspan
sodipodi:role="line"
id="tspan963"
x="88.887589"
y="469.42783"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.63941562px">flarm</tspan></text>
<g
id="g902"
style="display:none">
<circle
r="7.898385"
cy="389.32092"
cx="151.79143"
id="path967"
style="opacity:1;fill:none;fill-opacity:1;stroke:#dadada;stroke-width:1.74649644;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="7.898385"
cy="412.56061"
cx="151.79143"
id="circle971"
style="opacity:1;fill:none;fill-opacity:1;stroke:#dadada;stroke-width:1.74649644;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="7.898385"
cy="434.94482"
cx="151.79143"
id="circle973"
style="opacity:1;fill:none;fill-opacity:1;stroke:#dadada;stroke-width:1.74649644;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#dadada;stroke-width:1.74649644;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle969"
cx="151.79143"
cy="458.46964"
r="7.898385" />
<g
transform="matrix(0.93002357,0,0,0.93002357,15.06226,29.632422)"
style="fill:#f6f6f6;fill-opacity:1;stroke:none"
id="g1079">
<circle
r="6.9742265"
cy="373.13519"
cx="286.18582"
id="circle975"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle977"
cx="263.19049"
cy="386.4725"
r="6.9742265" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle981"
cx="251.48317"
cy="410.53754"
r="6.9742265" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle983"
cx="250.39917"
cy="436.7706"
r="6.9742265" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle985"
cx="263.40729"
cy="459.31802"
r="6.9742265" />
<circle
r="6.9742265"
cy="472.75977"
cx="287.25552"
id="circle979"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle987"
cx="-315.20871"
cy="373.13519"
r="6.9742265"
transform="scale(-1,1)" />
<circle
r="6.9742265"
cy="386.4725"
cx="-338.20404"
id="circle989"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,1)" />
<circle
r="6.9742265"
cy="410.53754"
cx="-349.91135"
id="circle991"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,1)" />
<circle
r="6.9742265"
cy="436.7706"
cx="-350.99536"
id="circle993"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,1)" />
<circle
r="6.9742265"
cy="459.31802"
cx="-337.98724"
id="circle995"
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,1)" />
<circle
style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1.54214597;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle997"
cx="-314.13901"
cy="472.75977"
r="6.9742265"
transform="scale(-1,1)" />
</g>
</g>
<g
id="g1023"
style="fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.93002357,0,0,0.93002357,15.06226,29.632422)">
<text
id="text1001"
y="393.11057"
x="299.54984"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;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:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="393.11057"
x="299.54984"
id="tspan999"
sodipodi:role="line">above</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="299.54984"
y="462.27048"
id="text1005"><tspan
sodipodi:role="line"
id="tspan1003"
x="299.54984"
y="462.27048"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">below</tspan></text>
<text
id="text1009"
y="428.10104"
x="239.23338"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;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:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="428.10104"
x="239.23338"
id="tspan1007"
sodipodi:role="line">on left</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="362.81064"
y="428.10104"
id="text1013"><tspan
sodipodi:role="line"
id="tspan1011"
x="362.81064"
y="428.10104"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">on right</tspan></text>
</g>
<g
style="fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="g1041"
transform="matrix(0.93002357,0,0,0.93002357,15.06226,29.632422)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="299.54984"
y="393.11057"
id="text1027"><tspan
sodipodi:role="line"
id="tspan1025"
x="299.54984"
y="393.11057"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">above</tspan></text>
<text
id="text1031"
y="462.27048"
x="299.54984"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;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:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="462.27048"
x="299.54984"
id="tspan1029"
sodipodi:role="line">below</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="239.23338"
y="428.10104"
id="text1035"><tspan
sodipodi:role="line"
id="tspan1033"
x="239.23338"
y="428.10104"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">on left</tspan></text>
<text
id="text1039"
y="428.10104"
x="362.81064"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.47523022px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;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:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#f3f3f3;fill-opacity:1;stroke:#ffffff;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
y="428.10104"
x="362.81064"
id="tspan1037"
sodipodi:role="line">on right</tspan></text>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.33670902px;line-height:173.00000191%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33341771px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="163.56822"
y="393.84259"
id="text1045"><tspan
sodipodi:role="line"
id="tspan1043"
x="163.56822"
y="393.84259"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:173.00000191%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#ffffff;fill-opacity:1;stroke-width:0.33341771px">Receive</tspan><tspan
sodipodi:role="line"
x="163.56822"
y="418.65112"
id="tspan1047"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:173.00000191%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#ffffff;fill-opacity:1;stroke-width:0.33341771px">Send</tspan><tspan
sodipodi:role="line"
x="163.56822"
y="443.45963"
id="tspan1049"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:173.00000191%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#ffffff;fill-opacity:1;stroke-width:0.33341771px">GPS</tspan><tspan
sodipodi:role="line"
x="163.56822"
y="468.26816"
id="tspan1051"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:173.00000191%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#ffffff;fill-opacity:1;stroke-width:0.33341771px">Power</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.79007077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 280.50963,423.74063 h 30.14386"
id="path1057"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#e6e6e6;stroke-width:2.79007077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 294.523,369.14661 v 11.69113"
id="path1059"
inkscape:connector-curvature="0"
inkscape:transform-center-y="-48.794729"
inkscape:transform-center-x="-2.4212672e-06" />
<path
inkscape:transform-center-y="48.794731"
inkscape:connector-curvature="0"
id="path1061"
d="M 294.523,478.4272 V 466.73607"
style="fill:none;fill-rule:evenodd;stroke:#e6e6e6;stroke-width:2.79007077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x="-2.4212672e-06" />
<g
id="g1108"
style="stroke:#e7e7e7;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.93002357,0,0,0.93002357,15.06226,29.632422)">
<path
inkscape:transform-center-y="-59.78789"
inkscape:transform-center-x="17.47646"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path1065"
d="m 283.53618,365.85129 -1.15337,-3.93422"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-12.580766"
inkscape:transform-center-x="45.505354"
inkscape:connector-curvature="0"
d="m 237.76095,406.24002 4.51547,1.31554 m 30.02676,8.36223 c -0.1533,0 -12.07255,-3.48762 -12.07255,-3.48762"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1087" />
<path
id="path1092"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 254.31921,377.74446 3.29383,3.3572 m 22.09196,21.98815 c -0.13368,-0.075 -8.82086,-8.95 -8.82086,-8.95"
inkscape:connector-curvature="0"
inkscape:transform-center-x="33.525314"
inkscape:transform-center-y="-33.242536" />
<path
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 316.86515,365.71582 1.11492,-3.94529"
id="path1094"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
inkscape:transform-center-x="-16.986655"
inkscape:transform-center-y="-59.928895" />
<path
id="path1100"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 346.18557,377.17768 -3.33817,3.31312 m -21.86049,22.21828 c 0.0742,-0.13411 8.89902,-8.87228 8.89902,-8.87228"
inkscape:connector-curvature="0"
inkscape:transform-center-x="33.525314"
inkscape:transform-center-y="-33.242536" />
<path
inkscape:transform-center-y="-12.304826"
inkscape:transform-center-x="-45.580741"
inkscape:connector-curvature="0"
d="m 363.45042,406.73976 -4.55709,1.16318 m -30.10743,8.06699 c 0.13198,-0.0779 12.1688,-3.13534 12.1688,-3.13534"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1098" />
</g>
<g
style="stroke:#e7e7e7;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="g1122"
transform="matrix(0.93002357,0,0,-0.93002357,15.06226,817.29344)">
<path
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 283.53618,365.85129 -1.15337,-3.93422"
id="path1110"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
inkscape:transform-center-x="17.47646"
inkscape:transform-center-y="-59.78789" />
<path
id="path1112"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 237.76095,406.24002 4.51547,1.31554 m 30.02676,8.36223 c -0.1533,0 -12.07255,-3.48762 -12.07255,-3.48762"
inkscape:connector-curvature="0"
inkscape:transform-center-x="45.505354"
inkscape:transform-center-y="-12.580766" />
<path
inkscape:transform-center-y="-33.242536"
inkscape:transform-center-x="33.525314"
inkscape:connector-curvature="0"
d="m 254.31921,377.74446 3.29383,3.3572 m 22.09196,21.98815 c -0.13368,-0.075 -8.82086,-8.95 -8.82086,-8.95"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1114" />
<path
inkscape:transform-center-y="-59.928895"
inkscape:transform-center-x="-16.986655"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path1116"
d="m 316.86515,365.71582 1.11492,-3.94529"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-33.242536"
inkscape:transform-center-x="33.525314"
inkscape:connector-curvature="0"
d="m 346.18557,377.17768 -3.33817,3.31312 m -21.86049,22.21828 c 0.0742,-0.13411 8.89902,-8.87228 8.89902,-8.87228"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1118" />
<path
id="path1120"
style="fill:none;fill-rule:evenodd;stroke:#e7e7e7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 363.45042,406.73976 -4.55709,1.16318 m -30.10743,8.06699 c 0.13198,-0.0779 12.1688,-3.13534 12.1688,-3.13534"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-45.580741"
inkscape:transform-center-y="-12.304826" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

View file

@ -0,0 +1,324 @@
<?xml version="1.0"?>
<PropertyList>
<path>flarm_v3.ac</path>
<!--Indicators for Power, Send/Receive and GPS-->
<!--Power-->
<animation>
<type>material</type>
<object-name>power.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--GPS-->
<animation>
<type>material</type>
<object-name>gps.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Send-->
<animation>
<type>material</type>
<object-name>send.ind</object-name>
<ambient>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green-prop>systems/electrical/outputs/flarm</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Receive-->
<animation>
<type>material</type>
<object-name>receive.ind</object-name>
<condition>
<property>instrumentation/flarm/receive</property>
</condition>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>receive.ind</object-name>
<condition><not>
<property>instrumentation/flarm/receive</property></not>
</condition>
<ambient>
<red>0.1</red>
<green>0.1</green>
<blue>0.1</blue>
</ambient>
<emission>
<red>0.0</red>
<green>0.0</green>
<blue>0.0</blue>
</emission>
</animation>
<!--Direction of traffic indicator-->
<animation>
<type>material</type>
<object-name>right.1</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[0]</red-prop>
<green-prop>instrumentation/flarm/LED[0]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[0]</red-prop>
<green-prop>instrumentation/flarm/LED[0]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.2</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[1]</red-prop>
<green-prop>instrumentation/flarm/LED[1]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[1]</red-prop>
<green-prop>instrumentation/flarm/LED[1]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.3</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[2]</red-prop>
<green-prop>instrumentation/flarm/LED[2]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[2]</red-prop>
<green-prop>instrumentation/flarm/LED[2]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.4</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[3]</red-prop>
<green-prop>instrumentation/flarm/LED[3]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[3]</red-prop>
<green-prop>instrumentation/flarm/LED[3]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.5</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[4]</red-prop>
<green-prop>instrumentation/flarm/LED[4]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[4]</red-prop>
<green-prop>instrumentation/flarm/LED[4]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>right.6</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[5]</red-prop>
<green-prop>instrumentation/flarm/LED[5]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[5]</red-prop>
<green-prop>instrumentation/flarm/LED[5]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.6</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[6]</red-prop>
<green-prop>instrumentation/flarm/LED[6]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[6]</red-prop>
<green-prop>instrumentation/flarm/LED[6]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.5</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[7]</red-prop>
<green-prop>instrumentation/flarm/LED[7]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[7]</red-prop>
<green-prop>instrumentation/flarm/LED[7]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.4</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[8]</red-prop>
<green-prop>instrumentation/flarm/LED[8]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[8]</red-prop>
<green-prop>instrumentation/flarm/LED[8]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.3</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[9]</red-prop>
<green-prop>instrumentation/flarm/LED[9]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[9]</red-prop>
<green-prop>instrumentation/flarm/LED[9]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.2</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[10]</red-prop>
<green-prop>instrumentation/flarm/LED[10]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[10]</red-prop>
<green-prop>instrumentation/flarm/LED[10]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>left.1</object-name>
<ambient>
<red-prop>instrumentation/flarm/LED-red[11]</red-prop>
<green-prop>instrumentation/flarm/LED[11]</green-prop>
<blue>0.0</blue>
</ambient>
<emission>
<red-prop>instrumentation/flarm/LED-red[11]</red-prop>
<green-prop>instrumentation/flarm/LED[11]</green-prop>
<blue>0.0</blue>
</emission>
</animation>
<!--Vertical angle to traffic indicator-->
<animation>
<type>material</type>
<object-name>above.1</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[1]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[1]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>above.2</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[0]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[0]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>below.1</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[2]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[2]</factor-prop>
</emission>
</animation>
<animation>
<type>material</type>
<object-name>below.2</object-name>
<ambient>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[3]</factor-prop>
</ambient>
<emission>
<red>0.0</red>
<green>1</green>
<blue>0.0</blue>
<factor-prop>instrumentation/flarm/ub-LED[3]</factor-prop>
</emission>
</animation>
</PropertyList>

View file

@ -0,0 +1,379 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="1024"
height="512"
viewBox="0 0 1024 512"
sodipodi:docname="FLARMv3.svg"
inkscape:export-filename="/home/delta/Glider_projects/FLARM/FLARMv3.png.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<metadata
id="metadata8">
<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>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#5c5c5c"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4"
showgrid="false"
inkscape:zoom="0.81538252"
inkscape:cx="547.69761"
inkscape:cy="149.78681"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="38.22929"
y="149.06755"
id="text4796"
transform="scale(1.116917,0.89532168)"><tspan
sodipodi:role="line"
id="tspan4798"
x="38.22929"
y="149.06755"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:99.48220825px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Italic';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1">flarm</tspan></text>
<text
transform="scale(1.0820312,0.92418773)"
id="text4800"
y="180.22194"
x="42.15551"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;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:39.28033447px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1"
y="180.22194"
x="42.15551"
id="tspan4802"
sodipodi:role="line">compatible</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="254.51253"
y="291.67285"
id="text4804"
transform="scale(0.97929296,1.0211449)"><tspan
sodipodi:role="line"
id="tspan4806"
x="254.51253"
y="291.67285"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:41.91103745px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1">Mode</tspan></text>
<text
transform="scale(0.94658231,1.0564322)"
id="text4808"
y="217.49089"
x="109.17046"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;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:40.51111221px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1"
y="217.49089"
x="109.17046"
id="tspan4810"
sodipodi:role="line">RX</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="109.17046"
y="282.34076"
id="text4812"
transform="scale(0.94658229,1.0564322)"><tspan
sodipodi:role="line"
id="tspan4814"
x="109.17046"
y="282.34076"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.51111221px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1">TX</tspan></text>
<text
transform="scale(0.94658228,1.0564322)"
id="text4816"
y="345.95929"
x="109.17046"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;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:40.51111221px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1"
y="345.95929"
x="109.17046"
id="tspan4818"
sodipodi:role="line">GPS</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="104.65995"
y="428.29056"
id="text4820"
transform="scale(0.98489476,1.0153369)"><tspan
sodipodi:role="line"
id="tspan4822"
x="104.65995"
y="428.29056"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.15077972px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1">Power</tspan></text>
<path
id="path4826"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 649.78385,166.11923 c 0,0 18.08967,2.45284 18.08967,24.52837 l 0,41.69822 98.11346,8.27832 0,24.52837 -96.88704,3.67925 c 0,0 -4.90568,37.40576 -5.82549,45.99069 -0.91981,8.58493 -1.22642,24.22176 -1.22642,24.22176 l 32.80669,3.06604 0,17.78307 -46.9105,0 m 2.68343,-193.77409 c 0,0 -18.08967,2.45284 -18.08967,24.52837 l 0,41.69822 -98.11346,8.27832 0,24.52837 96.88704,3.67925 c 0,0 4.90568,37.40576 5.82549,45.99069 0.91981,8.58493 1.22642,24.22176 1.22642,24.22176 l -32.80669,3.06604 0,17.78307 46.9105,0"
inkscape:connector-curvature="0" />
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4830"
cx="650.46161"
cy="251.23283"
r="20.695251" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4832"
width="51.554718"
height="29.953184"
x="910.66968"
y="82.505592" />
<rect
y="182.73367"
x="910.90637"
height="36.225163"
width="51.081398"
id="rect4834"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4836"
width="51.081398"
height="36.225163"
x="910.90637"
y="294.03113" />
<rect
y="399.53473"
x="910.66968"
height="29.953184"
width="51.554718"
id="rect4838"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="0.45710599"
cy="251.23283"
cx="650.46161"
id="circle4840"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.11043741;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:transform-center-y="-48.402171"
inkscape:transform-center-x="169.23933"
inkscape:connector-curvature="0"
id="path4844"
d="m 440.94322,228.60995 80.58091,-5.73367 -66.22472,-45.92559 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-125.43088"
inkscape:transform-center-x="133.84587"
inkscape:connector-curvature="0"
id="path4846"
d="m 483.33639,126.8692 72.65195,35.32496 -34.3895,-72.885092 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-165.98365"
inkscape:transform-center-x="59.258335"
inkscape:connector-curvature="0"
id="path4848"
d="m 570.45976,61.256532 45.25596,66.918278 6.66036,-80.315083 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-169.23933"
inkscape:transform-center-x="-48.402175"
inkscape:connector-curvature="0"
id="path4850"
d="m 679.11601,47.723167 5.73367,80.580913 45.92559,-66.224723 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-133.84587"
inkscape:transform-center-x="-125.43088"
inkscape:connector-curvature="0"
id="path4852"
d="m 780.91838,88.982364 -35.32495,72.651946 72.88509,-34.38949 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-59.258336"
inkscape:transform-center-x="-165.98365"
inkscape:connector-curvature="0"
id="path4854"
d="m 846.59004,177.00375 -66.91828,45.25596 80.31509,6.66037 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="48.402169"
inkscape:transform-center-x="-169.23933"
inkscape:connector-curvature="0"
id="path4856"
d="m 860.4627,286.47912 -80.58091,5.73367 66.22472,45.92559 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="125.43088"
inkscape:transform-center-x="-133.84587"
inkscape:connector-curvature="0"
id="path4858"
d="m 818.49862,387.91327 -72.65195,-35.32495 34.3895,72.88508 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="165.98365"
inkscape:transform-center-x="-59.258335"
inkscape:connector-curvature="0"
id="path4860"
d="m 730.47722,453.73823 -45.25596,-66.91828 -6.66036,80.31508 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="169.23933"
inkscape:transform-center-x="48.402175"
inkscape:connector-curvature="0"
id="path4862"
d="m 621.83,467.43315 -5.73367,-80.58091 -45.92559,66.22472 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="133.84587"
inkscape:transform-center-x="125.43088"
inkscape:connector-curvature="0"
id="path4864"
d="m 520.33423,425.49351 35.32495,-72.65195 -72.88509,34.38949 z"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:6.07426167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 454.35597,337.47211 66.91828,-45.25596 -80.31509,-6.66037 z"
id="path4842"
inkscape:connector-curvature="0"
inkscape:transform-center-x="165.98365"
inkscape:transform-center-y="59.258334" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4866"
width="195.12195"
height="195.12195"
x="202.18661"
y="184.55434"
ry="17.777779" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="416.98221"
y="472.75461"
id="text4868"><tspan
sodipodi:role="line"
id="tspan4870"
x="416.98221"
y="472.75461"
style="font-size:40px;line-height:1.25">V3</tspan></text>
<path
inkscape:connector-curvature="0"
id="path5454"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.081;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 293.96736,448.09166 c 0,0 -7.75145,-3.03143 -10.11881,-4.02822 -2.36737,-0.99678 -6.3545,-1.74437 -6.85289,-4.61012 -0.49839,-2.86575 -0.99678,-4.73472 -1.49517,-6.35449 -0.49839,-1.61977 -3.36414,-14.95174 -0.2492,-14.32875 3.11495,0.62299 10.71542,5.10851 14.70255,7.84966 3.98714,2.74115 15.45014,16.19773 16.57152,17.5683 1.12138,1.37058 0.94393,1.43671 0.94393,1.43671 m 5.96904,5.37434 c 0,0 6.87212,-2.37881 9.51523,-4.22899 2.64313,-1.85018 13.59988,-11.9269 14.72126,-13.67127 1.12138,-1.74437 3.23954,-3.23954 4.85931,-3.86254 1.61978,-0.62299 34.88741,-18.31588 40.36971,-20.18484 5.48231,-1.86898 12.45979,-4.48553 10.21703,-1.99357 -2.24276,2.49196 -6.85288,10.21703 -8.59725,12.086 -1.74438,1.86896 -7.22668,9.59402 -9.84324,11.33839 -2.61655,1.74437 -10.71541,8.09887 -13.83035,10.59082 -3.11495,2.49196 -7.97427,9.84324 -10.84002,11.21381 -2.86575,1.37058 -6.97748,5.23311 -6.97748,5.23311 0,0 -1.12138,0.87218 2.61655,3.11494 3.73794,2.24277 9.72675,7.36821 14.83679,8.77787 5.11002,1.40967 9.33902,2.81933 9.33902,2.81933 l 0,1.05725 1.40966,1.23346 -1.23345,1.23345 1.40966,1.93829 c 0,0 -34.88918,1.93828 -47.57615,-2.29071 -12.68698,-4.22899 -19.03046,-13.03939 -22.55462,-13.92042 -3.52416,-0.88105 -6.87212,-0.35242 -10.74869,0.1762 -3.87658,0.52863 -6.03513,0.48457 -6.03513,0.48457 m -0.0247,-0.0141 c 0,0 2.36736,-4.36092 3.73794,-5.1085 1.37057,-0.74759 1.74437,-1.12138 1.74437,-1.12138 l 0.74758,-0.4984 c 0,0 0.3738,-8.84645 8.09887,-9.59403 7.72507,-0.74759 11.8844,0.18021 13.86792,0.38005 4.37238,0.44052 6.68446,2.50341 6.68446,2.50341" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="801.49573"
y="465.6763"
id="text5491"><tspan
sodipodi:role="line"
id="tspan5493"
x="801.49573"
y="465.6763"
style="font-size:28.23441315px;line-height:1.25">below &gt;14° </tspan></text>
<text
id="text5495"
y="351.31909"
x="943.51404"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"
transform="scale(0.9623069,1.0391695)"><tspan
y="351.31909"
x="943.51404"
id="tspan5497"
sodipodi:role="line"
style="font-size:27.17016983px;line-height:1.25">&gt;</tspan></text>
<text
transform="scale(0.96230691,1.0391695)"
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="943.51404"
y="159.79654"
id="text5499"><tspan
sodipodi:role="line"
id="tspan5501"
x="943.51404"
y="159.79654"
style="font-size:27.17016983px;line-height:1.25">&gt;</tspan></text>
<text
id="text5503"
y="66.78376"
x="801.49573"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="66.78376"
x="801.49573"
id="tspan5505"
sodipodi:role="line"
style="font-size:28.23441315px;line-height:1.25">above &gt;14° </tspan></text>
<circle
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4.08099985;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path5507"
cx="932.2312"
cy="263.34369"
r="7.1897998" />
<path
id="path5511"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 932.27609,262.27058 0,-22.68874 m -45.38199,22.68874 91.21937,0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<ellipse
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path5514"
cx="65.486382"
cy="222.38568"
rx="26.659842"
ry="26.876644" />
<ellipse
ry="26.876644"
rx="26.659842"
cy="290.02795"
cx="65.486382"
id="ellipse5516"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<ellipse
ry="26.876644"
rx="26.659842"
cy="358.0582"
cx="65.486382"
id="ellipse5518"
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<ellipse
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="ellipse5520"
cx="65.486382"
cy="425.70047"
rx="26.659842"
ry="26.876644" />
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -0,0 +1,124 @@
# Copyright 2020 Benedikt Wolf
# with parts by Gilberto Agonstinho, WooT, Joshau Davidsonm, Colin Geniet
# This file is part of FlightGear.
#
# FlightGear is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# FlightGear is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with FlightGear. If not, see <http://www.gnu.org/licenses/>.
To install this instrument into your aircraft, you need to do the following:
1. Enable a second altimeter (<altimeter n="1">) module through the aircraft's instrumentation.xml (in case a custom one is used).
Make sure instrumentation/altimeter[1]/serviceable is set to true via your -set.xml file.
2. Add S3.nas to your aircraft's list of included nasal files:
<nasal>
...
<s3>
<file>Aircraft/Instruments-3d/glider/vario/S3/S3.nas</file>
</s3>
...
</nasal>
** Note that it is important to put the file into <s3></s3> tags, as the animation xml may in the future reference the instrument by that name
3. Add the model to your aircraft:
<model>
<path>Aircraft/Instruments-3d/glider/vario/S3/S3.xml</path>
...
</model>
4. If you are using a custom electric system, make sure the vario is supplied at /systems/electrical/outputs/S3 when appropriate
5. Add sound effects for this vario, e.g. by using the block below and adjusting it to fit:
<variometer-up>
<name>variometer-up</name>
<mode>looped</mode>
<path>Aircraft/Instruments-3d/glider/vario/ilec-sc7/vario.wav</path>
<condition>
<and>
<greater-than>
<property>/instrumentation/s3/te-reading-mps</property>
<value>0.01</value>
</greater-than>
<greater-than-equals>
<property>/systems/electrical/outputs/s3</property>
<value>9</value>
</greater-than-equals>
<equals>
<property>/instrumentation/s3/start</property>
<value>1.0</value>
</equals>
</and>
</condition>
<pitch>
<property>/instrumentation/s3/sound-pitch</property>
<offset>0</offset>
</pitch>
<volume>
<property>/instrumentation/s3/volume</property>
<factor>1</factor>
<max>1</max>
</volume>
<!-- Put the position of your variometer loudspeaker here -->
<position>
<x>-3.35</x>
<y>0</y>
<z>0.7</z>
</position>
<reference-dist>0.5</reference-dist>
<max-dist>2.0</max-dist>
</variometer-up>
<variometer-down>
<name>variometer-down</name>
<mode>looped</mode>
<path>Aircraft/Instruments-3d/glider/vario/ilec-sc7/vario2.wav</path>
<condition>
<and>
<greater-than>
<property>/instrumentation/s3/te-reading-mps</property>
<value>-10.00</value>
</greater-than>
<less-than>
<property>/instrumentation/s3/te-reading-mps</property>
<value>-0.01</value>
</less-than>
<greater-than-equals>
<property>/systems/electrical/outputs/S3</property>
<value>9</value>
</greater-than-equals>
<equals>
<property>/instrumentation/s3/start</property>
<value>1.0</value>
</equals>
</and>
</condition>
<pitch>
<property>/instrumentation/s3/sound-pitch</property>
<offset>0</offset>
</pitch>
<volume>
<property>/instrumentation/s3/volume</property>
<factor>1</factor>
<max>1</max>
</volume>
<!-- Put the position of your variometer loudspeaker here -->
<position>
<x>-3.35</x>
<y>0</y>
<z>0.7</z>
</position>
<reference-dist>0.5</reference-dist>
<max-dist>2.0</max-dist>
</variometer-down>
## Please report any bugs, issues and improvements either to the mailing list of FlightGear forum so they can be fixed/included in the shared version of this instrument

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,263 @@
# LX Vario S3 by Benedikt Wolf (D-ECHO) based on
# A3XX Lower ECAM Canvas
# Joshua Davidson (it0uchpods)
# THANKS TO Colin Geniet (SoundPitchController), original developers of the ilec-sc7 (WooT)
# Information based on manual http://www.lx-avionik.de/wp/download/manuals/LXS3ManualGermanVer0100.pdf
#######################################
## REQUIRES:
## * second altimeter module enabled from <sim><instrumentation>
## * power supply from systems/electrical/outputs/S3
## (opt) * vario sound set up in the aircraft's sound file (see S3-sound.txt as an example)
#####################
## Version 05/2020 ##
#####################
## Features of this version:
## * use maketimer, only update visible pages
## * use props.nas, store in local variables where sensible
## * store instrument directory in variable
## * clarity through indentation
## * use functions for common functionality
## * clean up listeners
var S3_start = nil;
var S3_main = nil;
var S3_display = nil;
var s3 = props.globals.initNode("/instrumentation/s3");
var start_prop = s3.initNode("start", 0.0, "DOUBLE");
var pushknob_prop = s3.initNode("knob-pushed", 0, "BOOL");
var te_rdg = s3.initNode("te-reading-mps", 0.0, "DOUBLE");
var te_avg = s3.initNode("te-average-mps", 0.0, "DOUBLE");
var volume = s3.initNode("volume", 0.5, "DOUBLE");
var alt = props.globals.initNode("instrumentation/altimeter[1]/indicated-altitude-ft", 0.0, "DOUBLE");
var volt_prop = props.globals.initNode("/systems/electrical/outputs/S3", 0.0, "DOUBLE");
var mc = s3.initNode("mc", 1.5, "DOUBLE");
var instrument_dir = "Aircraft/Instruments-3d/glider/vario/S3/";
var canvas_S3_base = {
init: func(canvas_group, file) {
var font_mapper = func(family, weight) {
return "LiberationFonts/LiberationSans-Bold.ttf";
};
canvas.parsesvg(canvas_group, file, {'font-mapper': font_mapper});
var svg_keys = me.getKeys();
foreach(var key; svg_keys) {
me[key] = canvas_group.getElementById(key);
}
me.page = canvas_group;
return me;
},
getKeys: func() {
return [];
},
update: func() {
var start = start_prop.getDoubleValue();
var volts = volt_prop.getDoubleValue();
if ( start == 1 and volts > 9 ) {
S3_start.page.hide();
S3_main.page.show();
S3_main.update();
} else if ( start > 0 and start < 1 and volts > 9 ){
S3_main.page.hide();
S3_start.page.show();
} else {
S3_main.page.hide();
S3_start.page.hide();
}
},
};
var canvas_S3_main = {
new: func(canvas_group, file) {
var m = { parents: [canvas_S3_main , canvas_S3_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return ["altitude","average","average.needle","mccready.needle"];
},
update: func() {
#Altimeter
me["altitude"].setText( sprintf( "%4d", math.round( alt.getDoubleValue() * FT2M ) ) );
#Average climbrate
var av = te_avg.getDoubleValue();
me["average"].setText(sprintf("%2.1f", av));
if(av<5 and av>-5){
var av2=av;
}else if(av<-5){
var av2=-5;
}else if(av>5){
var av2=5;
}
me["average.needle"].setRotation(av2*D2R*24);
#McCready
me["mccready.needle"].setRotation( mc.getDoubleValue()*D2R*24 );
}
};
var canvas_S3_start = {
new: func(canvas_group, file) {
var m = { parents: [canvas_S3_start , canvas_S3_base] };
m.init(canvas_group, file);
return m;
},
getKeys: func() {
return [];
},
update: func() {
}
};
var s3_update = maketimer(0.2, func() { canvas_S3_base.update() } );
var ls = setlistener("sim/signals/fdm-initialized", func {
S3_display = canvas.new({
"name": "S3",
"size": [320, 240],
"view": [320, 240],
"mipmapping": 1
});
S3_display.addPlacement({"node": "S3.display"});
var groupMain = S3_display.createGroup();
var groupStart = S3_display.createGroup();
S3_main = canvas_S3_main.new(groupMain, instrument_dir~"S3_main.svg");
S3_start = canvas_S3_start.new(groupStart, instrument_dir~"S3_start.svg");
s3_update.start();
removelistener(ls);
});
var i=0;
var check_off = func () {
if( pushknob_prop.getBoolValue() and i<50){
i=i+1;
settimer(check_off, 0.1);
}else if( pushknob_prop.getBoolValue() and i >= 50){
i=0;
start_prop.setDoubleValue( 0.0 ); #put proper shutdown routine here later
}else{
i=0;
}
}
var check_electric_off = func () {
if( volt_prop.getDoubleValue() < 9.0 and start_prop.getDoubleValue() != 0.0 ){
start_prop.setDoubleValue( 0.0 );
}
}
setlistener(pushknob_prop, func {
if( pushknob_prop.getBoolValue() ) {
if( volt_prop.getDoubleValue() >= 9.0 and start_prop.getDoubleValue() == 0.0 ){
interpolate(start_prop, 1, 4 );
} else {
check_electric_off();
}
check_off();
}
});
setlistener(volt_prop, func {
check_electric_off();
});
#The following code is based on the ILEC SC7 e-vario and computes the different values shown by the display and the mechanical needle
io.include("Aircraft/Generic/soaring-instrumentation-sdk.nas");
####################################
#### INSTRUMENT SETUP ####
####################################
# Vario sound pitch controller by Colin Geniet (for ASK21), thanks!
#
# var vario_sound = SoundPitchController.new(
# input: Object connected to the pitch controller input, e.g. a variometer reading.
# max_pitch: (optional) Maximum sound frequency factor, the output will be
# in the range [1/max_pitch, max_pitch], default 2.
# max_input: Value of input for which max_pitch is reached.
# on_update: (optional) function to call whenever a new output is available
var SoundPitchController = {
parents: [InstrumentComponent],
new: func(input, max_input, max_pitch = 2, on_update = nil) {
return {
parents: [me],
input: input,
max_pitch: max_pitch,
max_input: max_input,
on_update: on_update,
};
},
update: func {
var input = math.clamp(me.input.output, -me.max_input, me.max_input);
me.output = math.pow(me.max_pitch, input / me.max_input);
if (me.on_update != nil) me.on_update(me.output);
},
};
var probe = TotalEnergyProbe.new();
var s3_needle = Dampener.new(
input: probe,
dampening: 1.5,
on_update: update_prop("/instrumentation/s3/te-reading-mps"));#1.5 is default dampening value according to POH
var averager = Averager.new(
input: probe,
buffer_size: 20,
on_update: update_prop("/instrumentation/s3/te-average-mps")); #20s is default time according to POH
var s3_sound = SoundPitchController.new(
input: s3_needle,
max_input: 5,
on_update: update_prop("/instrumentation/s3/sound-pitch"));
# Wrap everything together into an instrument
var fast_instruments = UpdateLoop.new(
update_period: 0,
components: [probe, s3_needle, s3_sound],
enable: 1);
var slow_instruments = UpdateLoop.new(
update_period: 1,
components: [averager],
enable: 1);

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,170 @@
<?xml version="1.0"?>
<!-- LX Vario S3 simulation by Benedikt Wolf (D-ECHO)
thanks to: Gilberto Agostinho (texture work)
WooT (AR3201 and ILEC-Sc7 that was used as a base)
Joshua Davidson (canvas basic structure from A320)
Colin Geniet (SoundPitchController)
#### Version 05/2020
-->
<PropertyList>
<name>S3</name>
<path>S3.ac</path>
<!--
<animation>
<type>material</type>
<object-name>S3.display</object-name>
<emission>
<red>1</red>
<green>1</green>
<blue>1</blue>
<factor-prop>/instrumentation/s3/brightness</factor-prop>
</emission>
</animation>-->
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<parameters>
<dirt-factor>1.0</dirt-factor>
<contrast>0.75</contrast>
</parameters>
<object-name>S3.display</object-name>
</effect>
<!-- Main Knob -->
<animation>
<type>pick</type>
<object-name>main.knob</object-name>
<action>
<button>0</button>
<binding>
<command>property-toggle</command>
<property>instrumentation/s3/knob-pushed</property>
</binding>
<mod-up>
<binding>
<command>property-toggle</command>
<property>instrumentation/s3/knob-pushed</property>
</binding>
</mod-up>
</action>
<action>
<button>3</button>
<binding>
<condition>
<equals>
<property>instrumentation/s3/start</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/s3/volume</property>
<step>0.05</step>
<min>0</min>
<max>1</max>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/s3/knob</property>
<step>5</step>
</binding>
</action>
<action>
<button>4</button>
<binding>
<condition>
<equals>
<property>instrumentation/s3/start</property>
<value>1</value>
</equals>
</condition>
<command>property-adjust</command>
<property>instrumentation/s3/volume</property>
<step>-0.05</step>
<min>0</min>
<max>1</max>
</binding>
<binding>
<command>property-adjust</command>
<property>instrumentation/s3/knob</property>
<step>-5</step>
</binding>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>main.knob</object-name>
<property>instrumentation/s3/knob-pushed</property>
<factor>-0.001</factor>
<axis>
<x>1</x>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>main.knob</object-name>
<property>instrumentation/s3/knob</property>
<factor>5</factor>
<center>
<y-m>-0.02386</y-m>
<z-m>-0.02375</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Vario needle -->
<animation>
<type>rotate</type>
<object-name>vario.needle</object-name>
<property>instrumentation/s3/te-reading-mps</property>
<condition>
<equals>
<property>instrumentation/s3/start</property>
<value>1</value>
</equals>
</condition>
<interpolation>
<entry><ind> -5.5 </ind><dep> -132 </dep></entry>
<entry><ind> 5.5 </ind><dep> 132 </dep></entry>
</interpolation>
<center>
<y-m>0.0</y-m>
<z-m>0.0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>vario.needle</object-name>
<property>instrumentation/s3/start</property>
<condition>
<not-equals>
<property>instrumentation/s3/start</property>
<value>1</value>
</not-equals>
</condition>
<interpolation>
<entry><ind> 0 </ind><dep> 0 </dep></entry>
<entry><ind> 0.1 </ind><dep> -12 </dep></entry>
<entry><ind> 0.3 </ind><dep> 120 </dep></entry>
<entry><ind> 0.6 </ind><dep> -120 </dep></entry>
<entry><ind> 0.9 </ind><dep> 12 </dep></entry>
<entry><ind> 1 </ind><dep> 0 </dep></entry>
</interpolation>
<center>
<y-m>0.0</y-m>
<z-m>0.0</z-m>
</center>
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 347 KiB

View file

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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="320"
height="240"
viewBox="0 0 320 240"
id="svg4345"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="S3_start.svg">
<defs
id="defs4347" />
<sodipodi:namedview
id="base"
pagecolor="#5a5a5a"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="50.791612"
inkscape:cy="64.18833"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1680"
inkscape:window-height="991"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata4350">
<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></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-812.36216)">
<rect
style="fill:#000000"
id="black"
width="35.561291"
height="94.830109"
x="118.33147"
y="850.34448" />
<path
id="yellow"
style="fill:#fbfc46"
d="m 118.33147,850.34448 11.85376,0 0,11.85376 -11.85376,0 z m 0,23.70755 11.85376,0 0,11.85375 -11.85376,0 z m 0,23.70749 11.85376,0 0,11.85375 -11.85376,0 z m 0,23.70758 11.85376,0 0,11.85375 -11.85376,0 z m 23.70754,-71.12262 11.85375,0 0,11.85376 -11.85375,0 z m 0,23.70755 11.85375,0 0,11.85375 -11.85375,0 z m 0,23.70749 11.85375,0 0,11.85375 -11.85375,0 z m 0,23.70758 11.85375,0 0,11.85375 -11.85375,0 z m -11.85378,-59.26886 11.85378,0 0,11.85379 -11.85378,0 z m 0,23.70754 11.85378,0 0,11.85374 -11.85378,0 z m 0,23.70749 11.85378,0 0,11.85383 -11.85378,0 z m 0,23.70758 11.85378,0 0,11.85374 -11.85378,0 z"
inkscape:connector-curvature="0" />
<path
style="fill:#427ebf"
d="m 164.52247,863.39844 c -0.78803,0 -1.42245,0.6344 -1.42245,1.42245 l 0,4.77114 0,5.20087 0,16.1063 0,9.92746 0,29.8715 c 0,0.78804 0.63442,1.42246 1.42245,1.42246 l 13.83928,0 c 0.78803,0 1.42245,-0.63442 1.42245,-1.42246 l 0,-28.44904 24.61137,0 c 0.78805,0 1.42245,-0.63441 1.42245,-1.42246 l 0,-9.92746 c 0,-0.78805 -0.6344,-1.42246 -1.42245,-1.42246 l -24.61137,0 0,-13.26138 26.52279,0 c 0.78805,0 1.42246,-0.63442 1.42246,-1.42246 l 0,-9.97201 c 0,-0.78805 -0.63441,-1.42245 -1.42246,-1.42245 l -41.78452,0 z"
id="F"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:23.03198624px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="31.094612"
y="970.12781"
id="text6129"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan6131"
x="31.094612"
y="970.12781">LX S3 vario simulation</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

View file

@ -0,0 +1,266 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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"
id="svg2"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
width="1280"
height="1280"
viewBox="0 0 1280 1280"
sodipodi:docname="S3_img.svg"
inkscape:export-filename="/home/delta/Aircraft/Sky-sportster/Models/Interior/Panel/Instruments/S3/S3.png.png"
inkscape:export-xdpi="72"
inkscape:export-ydpi="72">
<metadata
id="metadata8">
<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>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#575757"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="1135"
id="namedview4"
showgrid="false"
inkscape:zoom="0.184375"
inkscape:cx="-1043.6317"
inkscape:cy="270.50544"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 181.25891,640.88497 -123.626588,0"
id="path4238"
inkscape:connector-curvature="0"
inkscape:transform-center-x="519.69059"
inkscape:transform-center-y="2.0338983" />
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4240"
cx="639.23395"
cy="638.41144"
r="9.4285431" />
<circle
r="607.04761"
cy="641.76721"
cx="639.23395"
id="circle4244"
style="display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.95066071;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:transform-center-y="-209.51915"
inkscape:transform-center-x="475.58824"
inkscape:connector-curvature="0"
id="path4258"
d="M 220.01722,454.47366 107.07871,404.19019"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 331.24501,299.94288 248.52268,208.07041"
id="path4260"
inkscape:connector-curvature="0"
inkscape:transform-center-x="349.25236"
inkscape:transform-center-y="-384.84443" />
<path
inkscape:transform-center-y="-493.62661"
inkscape:transform-center-x="162.52758"
inkscape:connector-curvature="0"
id="path4262"
d="M 495.70998,204.0124 457.50728,86.436521"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 684.97465,183.26947 697.89717,60.320127"
id="path4264"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-52.2997"
inkscape:transform-center-y="-517.05627" />
<path
inkscape:transform-center-y="-451.0822"
inkscape:transform-center-x="-258.08389"
inkscape:connector-curvature="0"
id="path4266"
d="M 866.31344,241.30074 928.12675,134.23699"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="213.23526"
inkscape:transform-center-x="473.93372"
inkscape:connector-curvature="0"
id="path4268"
d="m 221.67174,826.9446 -112.9385,50.28347"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 334.26797,980.48116 -82.72233,91.87244"
id="path4270"
inkscape:connector-curvature="0"
inkscape:transform-center-x="346.22941"
inkscape:transform-center-y="387.56631" />
<path
inkscape:transform-center-y="494.88363"
inkscape:transform-center-x="158.65888"
inkscape:connector-curvature="0"
id="path4272"
d="m 499.57869,1074.9468 -38.20272,117.5758"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 689.02018,1094.0075 12.92247,122.9493"
id="path4274"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-56.345205"
inkscape:transform-center-y="516.63108" />
<path
inkscape:transform-center-y="449.04833"
inkscape:transform-center-x="-261.6067"
inkscape:connector-curvature="0"
id="path4276"
d="m 869.83628,1034.3675 61.81325,107.0638"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.33534622;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="207.05858"
y="686.51581"
id="text4278"><tspan
sodipodi:role="line"
id="tspan4280"
x="207.05858"
y="686.51581"
style="font-size:113.73278809px;line-height:1.25">0</tspan></text>
<text
id="text4282"
y="500.5162"
x="241.56371"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="500.5162"
x="241.56371"
id="tspan4284"
sodipodi:role="line"
style="font-size:93.33547211px;line-height:1.25">1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="341.66678"
y="363.30704"
id="text4286"><tspan
sodipodi:role="line"
id="tspan4288"
x="341.66678"
y="363.30704"
style="font-size:104.0231781px;line-height:1.25">2</tspan></text>
<text
id="text4294"
y="286.39609"
x="496.92099"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="286.39609"
x="496.92099"
id="tspan4296"
sodipodi:role="line"
style="font-size:104.0231781px;line-height:1.25">3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="666.41254"
y="267.69382"
id="text4298"><tspan
sodipodi:role="line"
id="tspan4300"
x="666.41254"
y="267.69382"
style="font-size:104.0231781px;line-height:1.25">4</tspan></text>
<text
id="text4302"
y="280.95236"
x="800.73792"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="280.95236"
x="800.73792"
id="tspan4304"
sodipodi:role="line"
style="font-size:104.0231781px;line-height:1.25">5</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="241.56371"
y="847.63483"
id="text4306"><tspan
sodipodi:role="line"
id="tspan4308"
x="241.56371"
y="847.63483"
style="font-size:93.33547211px;line-height:1.25">1</tspan></text>
<text
id="text4310"
y="989.74774"
x="341.66678"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="989.74774"
x="341.66678"
id="tspan4312"
sodipodi:role="line"
style="font-size:104.0231781px;line-height:1.25">2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="496.92099"
y="1059.5782"
id="text4314"><tspan
sodipodi:role="line"
id="tspan4316"
x="496.92099"
y="1059.5782"
style="font-size:104.0231781px;line-height:1.25">3</tspan></text>
<text
id="text4318"
y="1078.8138"
x="666.41254"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="1078.8138"
x="666.41254"
id="tspan4320"
sodipodi:role="line"
style="font-size:104.0231781px;line-height:1.25">4</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';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="800.73792"
y="1057.9696"
id="text4322"><tspan
sodipodi:role="line"
id="tspan4324"
x="800.73792"
y="1057.9696"
style="font-size:104.0231781px;line-height:1.25">5</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB