1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-29 14:52:12 +01:00

Merge branch 'master' into bugfix-ground

This commit is contained in:
Oleg Semyonov 2011-06-19 02:18:06 +03:00
commit 21f988321e
23 changed files with 2858 additions and 82 deletions

View File

@ -0,0 +1,1329 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="280.76797"
height="70.597504"
id="svg10068"
version="1.1"
inkscape:version="0.48.1 "
sodipodi:docname="lineardial-horizontal.svg"
inkscape:export-filename="H:\Documents\Hobbies\W433\My Gauges\vbat-001.png"
inkscape:export-xdpi="103.61"
inkscape:export-ydpi="103.61"
style="display:inline">
<defs
id="defs10070">
<linearGradient
id="linearGradient4439">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4441" />
<stop
id="stop4443"
offset="0.19742694"
style="stop-color:#808080;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4445" />
</linearGradient>
<linearGradient
id="linearGradient4413">
<stop
id="stop4415"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="0.19742694"
id="stop4417" />
<stop
id="stop4419"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4387">
<stop
id="stop4389"
offset="0"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0.60976541"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#4d4d4d;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4361">
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="0"
id="stop4363" />
<stop
id="stop4365"
offset="0.60976541"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="1"
id="stop4367" />
</linearGradient>
<linearGradient
id="linearGradient4317">
<stop
id="stop4319"
offset="0"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0.60976541"
id="stop4321" />
<stop
id="stop4323"
offset="1"
style="stop-color:#b3b3b3;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4265">
<stop
style="stop-color:#333333;stop-opacity:1"
offset="0"
id="stop4267" />
<stop
id="stop4269"
offset="0.60976541"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#333333;stop-opacity:1"
offset="1"
id="stop4271" />
</linearGradient>
<linearGradient
id="linearGradient4239">
<stop
id="stop4241"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#808080;stop-opacity:1"
offset="0.60976541"
id="stop4243" />
<stop
id="stop4245"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4215">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4217" />
<stop
id="stop4219"
offset="0.3051295"
style="stop-color:#808080;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4221" />
</linearGradient>
<linearGradient
id="linearGradient4193">
<stop
id="stop4195"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#999999;stop-opacity:1"
offset="0.3051295"
id="stop4197" />
<stop
id="stop4199"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4171">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4173" />
<stop
id="stop4175"
offset="0.3051295"
style="stop-color:#666666;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop4177" />
</linearGradient>
<linearGradient
id="linearGradient4121">
<stop
id="stop4123"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#666666;stop-opacity:1"
offset="0.2984421"
id="stop4125" />
<stop
id="stop4127"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4085">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4087" />
<stop
id="stop4089"
offset="0.2984421"
style="stop-color:#999999;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop4091" />
</linearGradient>
<linearGradient
id="linearGradient4063">
<stop
id="stop4065"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#b3b3b3;stop-opacity:1"
offset="0.39999998"
id="stop4067" />
<stop
id="stop4069"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4027">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop4029" />
<stop
id="stop4031"
offset="0.31880337"
style="stop-color:#b3b3b3;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4033" />
</linearGradient>
<linearGradient
id="linearGradient3903">
<stop
id="stop3905"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0.3220683"
id="stop3907" />
<stop
id="stop3909"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5375">
<stop
style="stop-color:#00000c;stop-opacity:1"
offset="0"
id="stop5377" />
<stop
id="stop5383"
offset="0.34210527"
style="stop-color:#0044d8;stop-opacity:1" />
<stop
style="stop-color:#00000c;stop-opacity:1"
offset="1"
id="stop5379" />
</linearGradient>
<linearGradient
id="linearGradient5367">
<stop
style="stop-color:#000020;stop-opacity:1"
offset="0"
id="stop5369" />
<stop
id="stop5371"
offset="1"
style="stop-color:#000018;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5359">
<stop
style="stop-color:#00002c;stop-opacity:1"
offset="0"
id="stop5361" />
<stop
id="stop5363"
offset="0.32456139"
style="stop-color:#00ffff;stop-opacity:1" />
<stop
style="stop-color:#00c8fc;stop-opacity:1"
offset="1"
id="stop5365" />
</linearGradient>
<linearGradient
id="linearGradient5346">
<stop
id="stop5348"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#666666;stop-opacity:1"
offset="0.37595931"
id="stop5350" />
<stop
id="stop5352"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5326">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5328" />
<stop
id="stop5330"
offset="0.35277387"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5332" />
</linearGradient>
<linearGradient
id="linearGradient5306">
<stop
id="stop5308"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#808080;stop-opacity:1"
offset="0.35277387"
id="stop5310" />
<stop
id="stop5312"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5271">
<stop
id="stop5273"
offset="0"
style="stop-color:#000080;stop-opacity:1" />
<stop
style="stop-color:#00ffff;stop-opacity:1"
offset="0.32456139"
id="stop5275" />
<stop
id="stop5277"
offset="1"
style="stop-color:#000080;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5248">
<stop
style="stop-color:#000080;stop-opacity:1"
offset="0"
id="stop5250" />
<stop
id="stop5256"
offset="0.32456139"
style="stop-color:#00ffff;stop-opacity:1" />
<stop
style="stop-color:#000080;stop-opacity:1"
offset="1"
id="stop5252" />
</linearGradient>
<linearGradient
id="linearGradient5236">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5238" />
<stop
id="stop5244"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.49803922;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop5240" />
</linearGradient>
<linearGradient
id="linearGradient5219">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5221" />
<stop
id="stop5223"
offset="0.35277387"
style="stop-color:#b3b3b3;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop5225" />
</linearGradient>
<linearGradient
id="linearGradient5151">
<stop
id="stop5153"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#b3b3b3;stop-opacity:1"
offset="0.38512576"
id="stop5155" />
<stop
id="stop5157"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5129">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop5131" />
<stop
id="stop5137"
offset="0.38512576"
style="stop-color:#cccccc;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="1"
id="stop5133" />
</linearGradient>
<linearGradient
id="linearGradient5116">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5118" />
<stop
id="stop5124"
offset="0.35911319"
style="stop-color:#dcaf28;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5120" />
</linearGradient>
<linearGradient
id="linearGradient5106">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5108" />
<stop
id="stop5114"
offset="0.36023793"
style="stop-color:#00a000;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5110" />
</linearGradient>
<linearGradient
id="linearGradient5096">
<stop
style="stop-color:#100000;stop-opacity:1"
offset="0"
id="stop5098" />
<stop
id="stop5104"
offset="0.36453304"
style="stop-color:#aa0000;stop-opacity:1" />
<stop
style="stop-color:#0c0000;stop-opacity:1"
offset="1"
id="stop5100" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Sstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Sstart"
style="overflow:visible">
<path
id="path4640"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(0.3,0,0,0.3,-0.69,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10076" />
<inkscape:perspective
id="perspective9987"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10250"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10279"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10517"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective11202"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3735"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3757"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3828"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3889"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3925"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3968"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3982"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4682"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3347"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5659"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5719"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5810"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3546"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4328"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8928"
id="linearGradient5318"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.2532936,0,0,2.206809,446.89077,-285.33499)"
x1="-29.837337"
y1="285.0596"
x2="-29.837337"
y2="342.60553" />
<linearGradient
id="linearGradient8928">
<stop
style="stop-color:#ffffff;stop-opacity:0.89156628;"
offset="0"
id="stop8930" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop8932" />
</linearGradient>
<inkscape:perspective
id="perspective4367"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4402"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2940"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2864"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5096"
id="linearGradient5102"
x1="117.41457"
y1="168.83261"
x2="87.074203"
y2="168.83261"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999995,-0.99999975,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5106"
id="linearGradient5112"
x1="117.57944"
y1="173.46591"
x2="86.644958"
y2="173.46591"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999997,-1,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5116"
id="linearGradient5122"
x1="117.77806"
y1="168.82289"
x2="86.547356"
y2="168.82289"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1,-1,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5129"
id="linearGradient5135"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5129"
id="linearGradient5144"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5149"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5164"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5169"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5176"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5181"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5188"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5193"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5200"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5205"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5212"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5217"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5236"
id="linearGradient5242"
x1="3.7395172"
y1="59.899364"
x2="42.432911"
y2="59.899364"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(129.62194,-129.52019)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5248"
id="linearGradient5254"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5271"
id="linearGradient5285"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.58333333,-2.7039997e-8,32.705471)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5287"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5292"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5299"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5306"
id="linearGradient5304"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5306"
id="linearGradient5319"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5326"
id="linearGradient5324"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5326"
id="linearGradient5339"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5375"
id="linearGradient5381"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(128.37404,-129.52019)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3903"
id="linearGradient3899"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.99999988,1.7142859,0,35.373449,-317.43383)"
x1="-150.75359"
y1="68.860146"
x2="-150.75359"
y2="87.776077" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4317"
id="linearGradient4337"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-384.0242"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4340"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4349"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4317"
id="linearGradient4351"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-384.0242"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4361"
id="linearGradient4355"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4358"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4375"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4361"
id="linearGradient4377"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4381"
gradientUnits="userSpaceOnUse"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4384"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4401"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4403"
gradientUnits="userSpaceOnUse"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4407"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4413"
id="linearGradient4410"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4413"
id="linearGradient4427"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4429"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4433"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4439"
id="linearGradient4436"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.1841238"
inkscape:cx="140.38399"
inkscape:cy="35.455778"
inkscape:document-units="px"
inkscape:current-layer="layer5"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="706"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:object-paths="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata10073">
<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>
<dc:creator>
<cc:Agent>
<dc:title>Edouard Lafargue</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
inkscape:label="Dark background"
id="g2932"
inkscape:groupmode="layer"
transform="translate(-368.2988,-507.08981)"
sodipodi:insensitive="true">
<g
id="background"
inkscape:label="#g4447">
<rect
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="4.5346842"
y="-577.68732"
x="-616.67365"
height="61.448738"
width="226.5451"
id="rect3145"
style="fill:none;stroke:none"
transform="scale(-1,-1)" />
<rect
transform="scale(-1,-1)"
style="fill:url(#linearGradient4436);fill-opacity:1;stroke:none"
id="rect2936"
width="280.76797"
height="53.465179"
x="-649.06677"
y="-560.55499"
ry="3.9455285"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998" />
<rect
transform="scale(-1,-1)"
inkscape:label="#rect4388"
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="2.9134333"
y="-554.10626"
x="-642.96082"
height="39.479435"
width="267.02957"
id="bargraph-outer"
style="fill:url(#linearGradient4433);fill-opacity:1;stroke:none" />
<rect
transform="scale(-1,-1)"
style="fill:#000000;fill-opacity:1;stroke:none"
id="bargraph"
width="262.18338"
height="32.956219"
x="-640.57104"
y="-550.64001"
ry="2.432044"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
inkscape:label="#rect4388" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Green Zone"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:label="#rect5741"
style="fill:url(#linearGradient5112);fill-opacity:1;stroke:none;display:inline"
id="green"
width="260.53882"
height="32.20755"
x="-411.77084"
y="-184.00433"
ry="2.3767958"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Yellow Zone"
style="display:none"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="2.4231479"
y="-184.63248"
x="-411.45679"
height="32.835663"
width="260.53882"
id="yellow"
style="fill:url(#linearGradient5122);fill-opacity:1;stroke:none;display:inline"
inkscape:label="#rect5741"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Red zone"
style="display:none"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:label="#rect5741"
style="fill:url(#linearGradient5102);fill-opacity:1;stroke:none;display:inline"
id="red"
width="260.23901"
height="32.519711"
x="-411.38739"
y="-184.35484"
ry="2.399832"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Indicator"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.2964696;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="needle"
width="32.035065"
height="6.0045304"
x="152.63882"
y="-157.12926"
inkscape:label="#rect5246"
transform="matrix(0,1,-1,0,0,0)" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Text"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="field"
width="50.321022"
height="13.236827"
x="-201.80493"
y="-209.93616"
inkscape:label="#rect2878"
transform="scale(-1,-1)" />
<rect
inkscape:label="#rect2878"
y="-209.5061"
x="-405.05276"
height="13.236827"
width="51.71294"
id="value"
style="fill:#ffffff;fill-opacity:1;stroke:none"
transform="scale(-1,-1)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -30,7 +30,7 @@
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0.32793573"
offset="0.39386007"
id="stop3907" />
<stop
id="stop3909"
@ -222,7 +222,7 @@
<stop
id="stop5124"
offset="0.37640449"
style="stop-color:#ffff00;stop-opacity:1" />
style="stop-color:#dcaf28;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
@ -236,8 +236,8 @@
id="stop5108" />
<stop
id="stop5114"
offset="0.33917606"
style="stop-color:#00ff00;stop-opacity:1" />
offset="0.38184431"
style="stop-color:#00a000;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
@ -252,7 +252,7 @@
<stop
id="stop5104"
offset="0.39717463"
style="stop-color:#ff2a2a;stop-opacity:1" />
style="stop-color:#aa0000;stop-opacity:1" />
<stop
style="stop-color:#0c0000;stop-opacity:1"
offset="1"
@ -740,9 +740,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.9373969"
inkscape:cx="10.296503"
inkscape:cy="298.23206"
inkscape:zoom="1.9843492"
inkscape:cx="13.888309"
inkscape:cy="302.67927"
inkscape:document-units="px"
inkscape:current-layer="layer6"
showgrid="false"
@ -849,7 +849,7 @@
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Yellow Zone"
style="display:inline"
style="display:none"
transform="translate(-129.62194,129.52019)"
sodipodi:insensitive="true">
<rect
@ -891,11 +891,10 @@
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Indicator"
style="display:none"
transform="translate(-129.62194,129.52019)"
sodipodi:insensitive="true">
style="display:inline"
transform="translate(-129.62194,129.52019)">
<rect
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.30000000999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="needle"
width="33.162418"
height="5.9393759"

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -140,6 +140,7 @@ endif
## UAVOBJECTS
ifndef TESTAPP
SRC += $(OPUAVSYNTHDIR)/accessorydesired.c
SRC += $(OPUAVSYNTHDIR)/objectpersistence.c
SRC += $(OPUAVSYNTHDIR)/gcstelemetrystats.c
SRC += $(OPUAVSYNTHDIR)/flighttelemetrystats.c

View File

@ -71,6 +71,18 @@ configKERNEL_INTERRUPT_PRIORITY setting. Here 15 corresponds to the lowest
NVIC value of 255. */
#define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15
/* Enable run time stats collection */
//#if defined(DEBUG)
#define configGENERATE_RUN_TIME_STATS 1
#define INCLUDE_uxTaskGetRunTime 1
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\
do {\
(*(unsigned long *)0xe000edfc) |= (1<<24);/* DEMCR |= DEMCR_TRCENA */\
(*(unsigned long *)0xe0001000) |= 1; /* DWT_CTRL |= DWT_CYCCNT_ENA */\
} while(0)
#define portGET_RUN_TIME_COUNTER_VALUE() (*(unsigned long *)0xe0001004)/* DWT_CYCCNT */
//#endif
/**
* @}
*/

View File

@ -85,8 +85,8 @@
#define AUXUART_BAUDRATE 19200
/* Alarm Thresholds */
#define HEAP_LIMIT_WARNING 350
#define HEAP_LIMIT_CRITICAL 250
#define HEAP_LIMIT_WARNING 220
#define HEAP_LIMIT_CRITICAL 150
#define CPULOAD_LIMIT_WARNING 80
#define CPULOAD_LIMIT_CRITICAL 95

View File

@ -35,21 +35,23 @@
// Private variables
static xSemaphoreHandle lock;
static xTaskHandle handles[TASKINFO_RUNNING_NUMELEM];
static uint32_t lastMonitorTime;
// Private functions
/**
* Initialize library
* Initialize library
*/
int32_t TaskMonitorInitialize(void)
{
lock = xSemaphoreCreateRecursiveMutex();
memset(handles, 0, sizeof(xTaskHandle)*TASKINFO_RUNNING_NUMELEM);
lastMonitorTime = portGET_RUN_TIME_COUNTER_VALUE();
return 0;
}
/**
* Register a task handle with the library
* Register a task handle with the library
*/
int32_t TaskMonitorAdd(TaskInfoRunningElem task, xTaskHandle handle)
{
@ -67,16 +69,30 @@ int32_t TaskMonitorAdd(TaskInfoRunningElem task, xTaskHandle handle)
}
/**
* Update the status of all tasks
* Update the status of all tasks
*/
void TaskMonitorUpdateAll(void)
{
TaskInfoData data;
int n;
// Lock
xSemaphoreTakeRecursive(lock, portMAX_DELAY);
#if ( configGENERATE_RUN_TIME_STATS == 1 )
uint32_t currentTime;
uint32_t deltaTime;
/*
* Calculate the amount of elapsed run time between the last time we
* measured and now. Scale so that we can convert task run times
* directly to percentages.
*/
currentTime = portGET_RUN_TIME_COUNTER_VALUE();
deltaTime = ((currentTime - lastMonitorTime) / 100) ? : 1; /* avoid divide-by-zero if the interval is too small */
lastMonitorTime = currentTime;
#endif
// Update all task information
for (n = 0; n < TASKINFO_RUNNING_NUMELEM; ++n)
{
@ -87,18 +103,24 @@ void TaskMonitorUpdateAll(void)
data.StackRemaining[n] = 10000;
#else
data.StackRemaining[n] = uxTaskGetStackHighWaterMark(handles[n]) * 4;
#if ( configGENERATE_RUN_TIME_STATS == 1 )
/* Generate run time stats */
data.RunningTime[n] = uxTaskGetRunTime(handles[n]) / deltaTime;
#endif
#endif
}
else
{
data.Running[n] = TASKINFO_RUNNING_FALSE;
data.StackRemaining[n] = 0;
data.RunningTime[n] = 0;
}
}
// Update object
TaskInfoSet(&data);
// Done
xSemaphoreGiveRecursive(lock);
}

View File

@ -32,6 +32,7 @@
#include "openpilot.h"
#include "accessorydesired.h"
#include "actuator.h"
#include "actuatorsettings.h"
#include "systemsettings.h"
@ -74,7 +75,6 @@ static int16_t scaleChannel(float value, int16_t max, int16_t min, int16_t neutr
static void setFailsafe();
static float MixerCurve(const float throttle, const float* curve);
static bool set_channel(uint8_t mixer_channel, uint16_t value);
float ProcessMixer(const int index, const float curve1, const float curve2,
MixerSettingsData* mixerSettings, ActuatorDesiredData* desired,
const float period);
@ -200,7 +200,35 @@ static void actuatorTask(void* parameters)
bool spinWhileArmed = MotorsSpinWhileArmed == ACTUATORSETTINGS_MOTORSSPINWHILEARMED_TRUE;
float curve1 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve1);
float curve2 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve2);
//The source for the secondary curve is selectable
float curve2 = 0;
AccessoryDesiredData accessory;
switch(mixerSettings.Curve2Source) {
case MIXERSETTINGS_CURVE2SOURCE_THROTTLE:
curve2 = MixerCurve(desired.Throttle,mixerSettings.ThrottleCurve2);
break;
case MIXERSETTINGS_CURVE2SOURCE_ROLL:
curve2 = MixerCurve(desired.Roll,mixerSettings.ThrottleCurve2);
break;
case MIXERSETTINGS_CURVE2SOURCE_PITCH:
curve2 = MixerCurve(desired.Pitch,mixerSettings.ThrottleCurve2);
break;
case MIXERSETTINGS_CURVE2SOURCE_YAW:
curve2 = MixerCurve(desired.Yaw,mixerSettings.ThrottleCurve2);
break;
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0:
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY1:
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY2:
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY3:
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY4:
case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY5:
if(AccessoryDesiredInstGet(mixerSettings.Curve2Source - MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0,&accessory) == 0)
curve2 = MixerCurve(accessory.AccessoryVal,mixerSettings.ThrottleCurve2);
else
curve2 = 0;
break;
}
for(int ct=0; ct < MAX_MIX_ACTUATORS; ct++)
{
if(mixers[ct].type == MIXERSETTINGS_MIXER1TYPE_DISABLED) {
@ -228,7 +256,22 @@ static void actuatorTask(void* parameters)
(status[ct] < 0) )
status[ct] = 0;
}
// If an accessory channel is selected for direct bypass mode
// In this configuration the accessory channel is scaled and mapped
// directly to output. Note: THERE IS NO SAFETY CHECK HERE FOR ARMING
// these also will not be updated in failsafe mode. I'm not sure what
// the correct behavior is since it seems domain specific. I don't love
// this code
if( (mixers[ct].type >= MIXERSETTINGS_MIXER1TYPE_ACCESSORY0) &&
(mixers[ct].type <= MIXERSETTINGS_MIXER1TYPE_ACCESSORY2))
{
if(AccessoryDesiredInstGet(mixers[ct].type - MIXERSETTINGS_MIXER1TYPE_ACCESSORY0,&accessory) == 0)
status[ct] = accessory.AccessoryVal;
else
status[ct] = -1;
}
command.Channel[ct] = scaleChannel(status[ct],
ChannelMax[ct],
ChannelMin[ct],
@ -452,8 +495,6 @@ static void actuator_update_rate(UAVObjEvent * ev)
}
}
#if defined(ARCH_POSIX) || defined(ARCH_WIN32)
static bool set_channel(uint8_t mixer_channel, uint16_t value) {
return true;

View File

@ -42,6 +42,7 @@
#include "stabilizationdesired.h"
#include "flighttelemetrystats.h"
#include "flightstatus.h"
#include "accessorydesired.h"
// Private constants
#if defined(PIOS_MANUAL_STACK_SIZE)
@ -170,6 +171,11 @@ static void manualControlTask(void *parameters)
uint8_t disconnected_count = 0;
uint8_t connected_count = 0;
// For now manual instantiate extra instances of Accessory Desired. In future should be done dynamically
// this includes not even registering it if not used
AccessoryDesiredCreateInstance();
AccessoryDesiredCreateInstance();
// Make sure unarmed on power up
ManualControlCommandGet(&cmd);
FlightStatusGet(&flightStatus);
@ -266,10 +272,26 @@ static void manualControlTask(void *parameters)
cmd.Throttle = scaledChannel[settings.Throttle];
flightMode = scaledChannel[settings.FlightMode];
// Set accessory channels
cmd.Accessory1 = (settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY1_NONE) ? scaledChannel[settings.Accessory1] : 0;
cmd.Accessory2 = (settings.Accessory2 != MANUALCONTROLSETTINGS_ACCESSORY2_NONE) ? scaledChannel[settings.Accessory2] : 0;
cmd.Accessory3 = (settings.Accessory3 != MANUALCONTROLSETTINGS_ACCESSORY3_NONE) ? scaledChannel[settings.Accessory3] : 0;
AccessoryDesiredData accessory;
// Set Accessory 0
if(settings.Accessory0 != MANUALCONTROLSETTINGS_ACCESSORY0_NONE) {
accessory.AccessoryVal = scaledChannel[settings.Accessory0];
if(AccessoryDesiredInstSet(0, &accessory) != 0)
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
}
// Set Accessory 1
if(settings.Accessory1 != MANUALCONTROLSETTINGS_ACCESSORY1_NONE) {
accessory.AccessoryVal = scaledChannel[settings.Accessory1];
if(AccessoryDesiredInstSet(1, &accessory) != 0)
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
}
// Set Accsesory 2
if(settings.Accessory2 != MANUALCONTROLSETTINGS_ACCESSORY2_NONE) {
accessory.AccessoryVal = scaledChannel[settings.Accessory2];
if(AccessoryDesiredInstSet(2, &accessory) != 0)
AlarmsSet(SYSTEMALARMS_ALARM_MANUALCONTROL, SYSTEMALARMS_ALARM_WARNING);
}
processFlightMode(&settings, flightMode);
processArm(&cmd, &settings);

View File

@ -75,9 +75,12 @@ NVIC value of 255. */
#if defined(DEBUG)
#define configGENERATE_RUN_TIME_STATS 1
#define INCLUDE_uxTaskGetRunTime 1
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() PIOS_RTC_Init()
// Note: Using the tick count defeats the purpose here, need some timer on the scale of 10khz
#define portGET_RUN_TIME_COUNTER_VALUE() PIOS_RTC_Counter()
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\
do {\
(*(unsigned long *)0xe000edfc) |= (1<<24);/* DEMCR |= DEMCR_TRCENA */\
(*(unsigned long *)0xe0001000) |= 1; /* DWT_CTRL |= DWT_CYCCNT_ENA */\
} while(0)
#define portGET_RUN_TIME_COUNTER_VALUE() (*(unsigned long *)0xe0001004)/* DWT_CYCCNT */
#endif

View File

@ -35,6 +35,7 @@
// Private variables
static xSemaphoreHandle lock;
static xTaskHandle handles[TASKINFO_RUNNING_NUMELEM];
static uint32_t lastMonitorTime;
// Private functions
@ -45,6 +46,7 @@ int32_t TaskMonitorInitialize(void)
{
lock = xSemaphoreCreateRecursiveMutex();
memset(handles, 0, sizeof(xTaskHandle)*TASKINFO_RUNNING_NUMELEM);
lastMonitorTime = portGET_RUN_TIME_COUNTER_VALUE();
return 0;
}
@ -95,6 +97,20 @@ void TaskMonitorUpdateAll(void)
// Lock
xSemaphoreTakeRecursive(lock, portMAX_DELAY);
#if ( configGENERATE_RUN_TIME_STATS == 1 )
uint32_t currentTime;
uint32_t deltaTime;
/*
* Calculate the amount of elapsed run time between the last time we
* measured and now. Scale so that we can convert task run times
* directly to percentages.
*/
currentTime = portGET_RUN_TIME_COUNTER_VALUE();
deltaTime = ((currentTime - lastMonitorTime) / 100) ? : 1; /* avoid divide-by-zero if the interval is too small */
lastMonitorTime = currentTime;
#endif
// Update all task information
for (n = 0; n < TASKINFO_RUNNING_NUMELEM; ++n)
{
@ -107,7 +123,8 @@ void TaskMonitorUpdateAll(void)
data.StackRemaining[n] = uxTaskGetStackHighWaterMark(handles[n]) * 4;
#if ( configGENERATE_RUN_TIME_STATS == 1 )
/* Generate run time stats */
data.RunningTime[n] = 100 * (float) uxTaskGetRunTime(handles[n]) / portGET_RUN_TIME_COUNTER_VALUE();
data.RunningTime[n] = uxTaskGetRunTime(handles[n]) / deltaTime;
#endif
#endif

View File

@ -24,6 +24,7 @@
# (all architectures)
UAVOBJSRCFILENAMES =
UAVOBJSRCFILENAMES += accessorydesired
UAVOBJSRCFILENAMES += actuatorcommand
UAVOBJSRCFILENAMES += actuatordesired
UAVOBJSRCFILENAMES += actuatorsettings

View File

@ -105,7 +105,7 @@ int32_t PIOS_FLASHFS_Init()
*/
static int32_t PIOS_FLASHFS_CleabObjectTableHeader()
{
if(PIOS_Flash_W25X_EraseSector(OBJECT_TABLE_START) != 0)
if(PIOS_Flash_W25X_EraseSector(0) != 0)
return -1;
uint32_t object_table_magic = OBJECT_TABLE_MAGIC;

View File

@ -2315,9 +2315,13 @@ tskTCB *pxNewTCB;
#if ( INCLUDE_uxTaskGetRunTime == 1 )
unsigned portBASE_TYPE uxTaskGetRunTime( xTaskHandle xTask )
{
unsigned long runTime;
tskTCB *pxTCB;
pxTCB = prvGetTCBFromHandle( xTask );
return pxTCB->ulRunTimeCounter;
runTime = pxTCB->ulRunTimeCounter;
pxTCB->ulRunTimeCounter = 0;
return runTime;
}
#endif

View File

@ -2738,6 +2738,7 @@
65E6E09912E037C800058553 /* pios_adc_priv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_adc_priv.h; sourceTree = "<group>"; };
65E8C743139A6D0900E1F979 /* pios_crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_crc.c; sourceTree = "<group>"; };
65E8C745139A6D1A00E1F979 /* pios_crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_crc.h; sourceTree = "<group>"; };
65E8C788139AA2A800E1F979 /* accessorydesired.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = accessorydesired.xml; sourceTree = "<group>"; };
65E8EF1F11EEA61E00BBF654 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = ../../OpenPilot/Makefile; sourceTree = SOURCE_ROOT; };
65E8EF2011EEA61E00BBF654 /* Makefile.posix */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Makefile.posix; path = ../../OpenPilot/Makefile.posix; sourceTree = SOURCE_ROOT; };
65E8EF5C11EEA61E00BBF654 /* alarms.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = alarms.c; path = ../../OpenPilot/System/alarms.c; sourceTree = SOURCE_ROOT; };
@ -7418,6 +7419,7 @@
65C35E4F12EFB2F3004811C2 /* uavobjectdefinition */ = {
isa = PBXGroup;
children = (
65E8C788139AA2A800E1F979 /* accessorydesired.xml */,
65C35E5012EFB2F3004811C2 /* actuatorcommand.xml */,
65C35E5112EFB2F3004811C2 /* actuatordesired.xml */,
65C35E5212EFB2F3004811C2 /* actuatorsettings.xml */,

View File

@ -1,7 +1,7 @@
define connect
target remote localhost:3333
monitor cortex_m3 vector_catch all
file ./build/coptercontrol/CopterControl.elf
file ./build/fw_coptercontrol/fw_coptercontrol.elf
end
#monitor reset halt

View File

@ -0,0 +1,1329 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="280.76797"
height="70.597504"
id="svg10068"
version="1.1"
inkscape:version="0.48.1 "
sodipodi:docname="lineardial-horizontal.svg"
inkscape:export-filename="H:\Documents\Hobbies\W433\My Gauges\vbat-001.png"
inkscape:export-xdpi="103.61"
inkscape:export-ydpi="103.61"
style="display:inline">
<defs
id="defs10070">
<linearGradient
id="linearGradient4439">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4441" />
<stop
id="stop4443"
offset="0.19742694"
style="stop-color:#808080;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4445" />
</linearGradient>
<linearGradient
id="linearGradient4413">
<stop
id="stop4415"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="0.19742694"
id="stop4417" />
<stop
id="stop4419"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4387">
<stop
id="stop4389"
offset="0"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0.60976541"
id="stop4391" />
<stop
id="stop4393"
offset="1"
style="stop-color:#4d4d4d;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4361">
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="0"
id="stop4363" />
<stop
id="stop4365"
offset="0.60976541"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="1"
id="stop4367" />
</linearGradient>
<linearGradient
id="linearGradient4317">
<stop
id="stop4319"
offset="0"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0.60976541"
id="stop4321" />
<stop
id="stop4323"
offset="1"
style="stop-color:#b3b3b3;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4265">
<stop
style="stop-color:#333333;stop-opacity:1"
offset="0"
id="stop4267" />
<stop
id="stop4269"
offset="0.60976541"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#333333;stop-opacity:1"
offset="1"
id="stop4271" />
</linearGradient>
<linearGradient
id="linearGradient4239">
<stop
id="stop4241"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#808080;stop-opacity:1"
offset="0.60976541"
id="stop4243" />
<stop
id="stop4245"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4215">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4217" />
<stop
id="stop4219"
offset="0.3051295"
style="stop-color:#808080;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4221" />
</linearGradient>
<linearGradient
id="linearGradient4193">
<stop
id="stop4195"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#999999;stop-opacity:1"
offset="0.3051295"
id="stop4197" />
<stop
id="stop4199"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4171">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4173" />
<stop
id="stop4175"
offset="0.3051295"
style="stop-color:#666666;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop4177" />
</linearGradient>
<linearGradient
id="linearGradient4121">
<stop
id="stop4123"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#666666;stop-opacity:1"
offset="0.2984421"
id="stop4125" />
<stop
id="stop4127"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4085">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop4087" />
<stop
id="stop4089"
offset="0.2984421"
style="stop-color:#999999;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop4091" />
</linearGradient>
<linearGradient
id="linearGradient4063">
<stop
id="stop4065"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#b3b3b3;stop-opacity:1"
offset="0.39999998"
id="stop4067" />
<stop
id="stop4069"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4027">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop4029" />
<stop
id="stop4031"
offset="0.31880337"
style="stop-color:#b3b3b3;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop4033" />
</linearGradient>
<linearGradient
id="linearGradient3903">
<stop
id="stop3905"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0.3220683"
id="stop3907" />
<stop
id="stop3909"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5375">
<stop
style="stop-color:#00000c;stop-opacity:1"
offset="0"
id="stop5377" />
<stop
id="stop5383"
offset="0.34210527"
style="stop-color:#0044d8;stop-opacity:1" />
<stop
style="stop-color:#00000c;stop-opacity:1"
offset="1"
id="stop5379" />
</linearGradient>
<linearGradient
id="linearGradient5367">
<stop
style="stop-color:#000020;stop-opacity:1"
offset="0"
id="stop5369" />
<stop
id="stop5371"
offset="1"
style="stop-color:#000018;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5359">
<stop
style="stop-color:#00002c;stop-opacity:1"
offset="0"
id="stop5361" />
<stop
id="stop5363"
offset="0.32456139"
style="stop-color:#00ffff;stop-opacity:1" />
<stop
style="stop-color:#00c8fc;stop-opacity:1"
offset="1"
id="stop5365" />
</linearGradient>
<linearGradient
id="linearGradient5346">
<stop
id="stop5348"
offset="0"
style="stop-color:#1a1a1a;stop-opacity:1" />
<stop
style="stop-color:#666666;stop-opacity:1"
offset="0.37595931"
id="stop5350" />
<stop
id="stop5352"
offset="1"
style="stop-color:#1a1a1a;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5326">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5328" />
<stop
id="stop5330"
offset="0.35277387"
style="stop-color:#4d4d4d;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5332" />
</linearGradient>
<linearGradient
id="linearGradient5306">
<stop
id="stop5308"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#808080;stop-opacity:1"
offset="0.35277387"
id="stop5310" />
<stop
id="stop5312"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5271">
<stop
id="stop5273"
offset="0"
style="stop-color:#000080;stop-opacity:1" />
<stop
style="stop-color:#00ffff;stop-opacity:1"
offset="0.32456139"
id="stop5275" />
<stop
id="stop5277"
offset="1"
style="stop-color:#000080;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5248">
<stop
style="stop-color:#000080;stop-opacity:1"
offset="0"
id="stop5250" />
<stop
id="stop5256"
offset="0.32456139"
style="stop-color:#00ffff;stop-opacity:1" />
<stop
style="stop-color:#000080;stop-opacity:1"
offset="1"
id="stop5252" />
</linearGradient>
<linearGradient
id="linearGradient5236">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5238" />
<stop
id="stop5244"
offset="0.5"
style="stop-color:#000000;stop-opacity:0.49803922;" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop5240" />
</linearGradient>
<linearGradient
id="linearGradient5219">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5221" />
<stop
id="stop5223"
offset="0.35277387"
style="stop-color:#b3b3b3;stop-opacity:1" />
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="1"
id="stop5225" />
</linearGradient>
<linearGradient
id="linearGradient5151">
<stop
id="stop5153"
offset="0"
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#b3b3b3;stop-opacity:1"
offset="0.38512576"
id="stop5155" />
<stop
id="stop5157"
offset="1"
style="stop-color:#000000;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient5129">
<stop
style="stop-color:#1a1a1a;stop-opacity:1"
offset="0"
id="stop5131" />
<stop
id="stop5137"
offset="0.38512576"
style="stop-color:#cccccc;stop-opacity:1" />
<stop
style="stop-color:#4d4d4d;stop-opacity:1"
offset="1"
id="stop5133" />
</linearGradient>
<linearGradient
id="linearGradient5116">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5118" />
<stop
id="stop5124"
offset="0.35911319"
style="stop-color:#dcaf28;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5120" />
</linearGradient>
<linearGradient
id="linearGradient5106">
<stop
style="stop-color:#000000;stop-opacity:1"
offset="0"
id="stop5108" />
<stop
id="stop5114"
offset="0.36023793"
style="stop-color:#00a000;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
id="stop5110" />
</linearGradient>
<linearGradient
id="linearGradient5096">
<stop
style="stop-color:#100000;stop-opacity:1"
offset="0"
id="stop5098" />
<stop
id="stop5104"
offset="0.36453304"
style="stop-color:#aa0000;stop-opacity:1" />
<stop
style="stop-color:#0c0000;stop-opacity:1"
offset="1"
id="stop5100" />
</linearGradient>
<marker
inkscape:stockid="Arrow2Sstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Sstart"
style="overflow:visible">
<path
id="path4640"
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(0.3,0,0,0.3,-0.69,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10076" />
<inkscape:perspective
id="perspective9987"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10250"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10279"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective10517"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective11202"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3720"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3735"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3757"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3828"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3889"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3925"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3968"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3982"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4682"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3347"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5659"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5719"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective5810"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective3546"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4328"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8928"
id="linearGradient5318"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.2532936,0,0,2.206809,446.89077,-285.33499)"
x1="-29.837337"
y1="285.0596"
x2="-29.837337"
y2="342.60553" />
<linearGradient
id="linearGradient8928">
<stop
style="stop-color:#ffffff;stop-opacity:0.89156628;"
offset="0"
id="stop8930" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop8932" />
</linearGradient>
<inkscape:perspective
id="perspective4367"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective4402"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2940"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2864"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5096"
id="linearGradient5102"
x1="117.41457"
y1="168.83261"
x2="87.074203"
y2="168.83261"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999995,-0.99999975,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5106"
id="linearGradient5112"
x1="117.57944"
y1="173.46591"
x2="86.644958"
y2="173.46591"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999997,-1,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5116"
id="linearGradient5122"
x1="117.77806"
y1="168.82289"
x2="86.547356"
y2="168.82289"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1,-1,0,-11.23354,-270.8763)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5129"
id="linearGradient5135"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5129"
id="linearGradient5144"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5149"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5164"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5169"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5176"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5181"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5188"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5193"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5200"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5205"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5151"
id="linearGradient5212"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-246.82069"
y2="408.26157" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5217"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5236"
id="linearGradient5242"
x1="3.7395172"
y1="59.899364"
x2="42.432911"
y2="59.899364"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(129.62194,-129.52019)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5248"
id="linearGradient5254"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5271"
id="linearGradient5285"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.58333333,-2.7039997e-8,32.705471)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5287"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5292"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5219"
id="linearGradient5299"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5306"
id="linearGradient5304"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5306"
id="linearGradient5319"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5326"
id="linearGradient5324"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5326"
id="linearGradient5339"
gradientUnits="userSpaceOnUse"
x1="-246.82069"
y1="353.9455"
x2="-247.44464"
y2="412.00528" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5375"
id="linearGradient5381"
x1="-172.83463"
y1="74.562233"
x2="-137.26938"
y2="74.562233"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(128.37404,-129.52019)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3903"
id="linearGradient3899"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.99999988,1.7142859,0,35.373449,-317.43383)"
x1="-150.75359"
y1="68.860146"
x2="-150.75359"
y2="87.776077" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4317"
id="linearGradient4337"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-384.0242"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4340"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4349"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4317"
id="linearGradient4351"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-384.0242"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4361"
id="linearGradient4355"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4358"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4375"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4361"
id="linearGradient4377"
gradientUnits="userSpaceOnUse"
x1="-384.0242"
y1="-558.1579"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4381"
gradientUnits="userSpaceOnUse"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4384"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233538,-270.87634)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4215"
id="linearGradient4401"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4403"
gradientUnits="userSpaceOnUse"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4407"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4413"
id="linearGradient4410"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4413"
id="linearGradient4427"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4429"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4387"
id="linearGradient4433"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.3925782e-6,-1.3232422e-5)"
x1="-383.39609"
y1="-561.92657"
x2="-383.71014"
y2="-510.8558" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4439"
id="linearGradient4436"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,0.99999998,-0.99999991,0,-11.233536,-270.87635)"
x1="-235.30438"
y1="369.2117"
x2="-299.45587"
y2="369.2117" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.1841238"
inkscape:cx="140.38399"
inkscape:cy="35.455778"
inkscape:document-units="px"
inkscape:current-layer="layer5"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="706"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:object-paths="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:snap-global="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata10073">
<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>
<dc:creator>
<cc:Agent>
<dc:title>Edouard Lafargue</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
inkscape:label="Dark background"
id="g2932"
inkscape:groupmode="layer"
transform="translate(-368.2988,-507.08981)"
sodipodi:insensitive="true">
<g
id="background"
inkscape:label="#g4447">
<rect
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="4.5346842"
y="-577.68732"
x="-616.67365"
height="61.448738"
width="226.5451"
id="rect3145"
style="fill:none;stroke:none"
transform="scale(-1,-1)" />
<rect
transform="scale(-1,-1)"
style="fill:url(#linearGradient4436);fill-opacity:1;stroke:none"
id="rect2936"
width="280.76797"
height="53.465179"
x="-649.06677"
y="-560.55499"
ry="3.9455285"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998" />
<rect
transform="scale(-1,-1)"
inkscape:label="#rect4388"
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="2.9134333"
y="-554.10626"
x="-642.96082"
height="39.479435"
width="267.02957"
id="bargraph-outer"
style="fill:url(#linearGradient4433);fill-opacity:1;stroke:none" />
<rect
transform="scale(-1,-1)"
style="fill:#000000;fill-opacity:1;stroke:none"
id="bargraph"
width="262.18338"
height="32.956219"
x="-640.57104"
y="-550.64001"
ry="2.432044"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
inkscape:label="#rect4388" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Green Zone"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:label="#rect5741"
style="fill:url(#linearGradient5112);fill-opacity:1;stroke:none;display:inline"
id="green"
width="260.53882"
height="32.20755"
x="-411.77084"
y="-184.00433"
ry="2.3767958"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Yellow Zone"
style="display:none"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:export-ydpi="88.809998"
inkscape:export-xdpi="88.809998"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
ry="2.4231479"
y="-184.63248"
x="-411.45679"
height="32.835663"
width="260.53882"
id="yellow"
style="fill:url(#linearGradient5122);fill-opacity:1;stroke:none;display:inline"
inkscape:label="#rect5741"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Red zone"
style="display:none"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
inkscape:label="#rect5741"
style="fill:url(#linearGradient5102);fill-opacity:1;stroke:none;display:inline"
id="red"
width="260.23901"
height="32.519711"
x="-411.38739"
y="-184.35484"
ry="2.399832"
inkscape:export-filename="H:\Documents\Hobbies\W433\g9905.png"
inkscape:export-xdpi="88.809998"
inkscape:export-ydpi="88.809998"
transform="scale(-1,-1)" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Indicator"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.2964696;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="needle"
width="32.035065"
height="6.0045304"
x="152.63882"
y="-157.12926"
inkscape:label="#rect5246"
transform="matrix(0,1,-1,0,0,0)" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Text"
style="display:inline"
transform="translate(-140.85549,-141.35611)"
sodipodi:insensitive="true">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none"
id="field"
width="50.321022"
height="13.236827"
x="-201.80493"
y="-209.93616"
inkscape:label="#rect2878"
transform="scale(-1,-1)" />
<rect
inkscape:label="#rect2878"
y="-209.5061"
x="-405.05276"
height="13.236827"
width="51.71294"
id="value"
style="fill:#ffffff;fill-opacity:1;stroke:none"
transform="scale(-1,-1)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -30,7 +30,7 @@
style="stop-color:#000000;stop-opacity:1" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0.32793573"
offset="0.39386007"
id="stop3907" />
<stop
id="stop3909"
@ -222,7 +222,7 @@
<stop
id="stop5124"
offset="0.37640449"
style="stop-color:#ffff00;stop-opacity:1" />
style="stop-color:#dcaf28;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
@ -236,8 +236,8 @@
id="stop5108" />
<stop
id="stop5114"
offset="0.33917606"
style="stop-color:#00ff00;stop-opacity:1" />
offset="0.38184431"
style="stop-color:#00a000;stop-opacity:1" />
<stop
style="stop-color:#000000;stop-opacity:1"
offset="1"
@ -252,7 +252,7 @@
<stop
id="stop5104"
offset="0.39717463"
style="stop-color:#ff2a2a;stop-opacity:1" />
style="stop-color:#aa0000;stop-opacity:1" />
<stop
style="stop-color:#0c0000;stop-opacity:1"
offset="1"
@ -740,9 +740,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.9373969"
inkscape:cx="10.296503"
inkscape:cy="298.23206"
inkscape:zoom="1.9843492"
inkscape:cx="13.888309"
inkscape:cy="302.67927"
inkscape:document-units="px"
inkscape:current-layer="layer6"
showgrid="false"
@ -849,7 +849,7 @@
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Yellow Zone"
style="display:inline"
style="display:none"
transform="translate(-129.62194,129.52019)"
sodipodi:insensitive="true">
<rect
@ -891,11 +891,10 @@
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Indicator"
style="display:none"
transform="translate(-129.62194,129.52019)"
sodipodi:insensitive="true">
style="display:inline"
transform="translate(-129.62194,129.52019)">
<rect
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.30000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
style="fill:url(#linearGradient3899);fill-opacity:1;stroke:#000000;stroke-width:0.30000000999999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="needle"
width="33.162418"
height="5.9393759"

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -23,7 +23,8 @@ SOURCES += uavobject.cpp \
OTHER_FILES += UAVObjects.pluginspec
# Add in all of the synthetic/generated uavobject files
HEADERS += $$UAVOBJECT_SYNTHETICS/ahrsstatus.h \
HEADERS += $$UAVOBJECT_SYNTHETICS/accessorydesired.h \
$$UAVOBJECT_SYNTHETICS/ahrsstatus.h \
$$UAVOBJECT_SYNTHETICS/ahrscalibration.h \
$$UAVOBJECT_SYNTHETICS/baroaltitude.h \
$$UAVOBJECT_SYNTHETICS/attitudeactual.h \
@ -69,7 +70,8 @@ HEADERS += $$UAVOBJECT_SYNTHETICS/ahrsstatus.h \
$$UAVOBJECT_SYNTHETICS/flightstatus.h \
$$UAVOBJECT_SYNTHETICS/attitudesettings.h
SOURCES += $$UAVOBJECT_SYNTHETICS/ahrsstatus.cpp \
SOURCES += $$UAVOBJECT_SYNTHETICS/accessorydesired.cpp \
$$UAVOBJECT_SYNTHETICS/ahrsstatus.cpp \
$$UAVOBJECT_SYNTHETICS/ahrscalibration.cpp \
$$UAVOBJECT_SYNTHETICS/baroaltitude.cpp \
$$UAVOBJECT_SYNTHETICS/attitudeactual.cpp \

View File

@ -295,7 +295,7 @@ bool UAVTalk::processInputByte(quint8 rxbyte)
}
// Check the lengths match
if ((rxPacketLength + rxLength) != packetSize)
if ((rxPacketLength + rxLength + (rxObj->isSingleInstance() ? 0 : 2)) != packetSize)
{ // packet error - mismatched packet size
stats.rxErrors++;
rxState = STATE_SYNC;
@ -805,17 +805,3 @@ quint8 UAVTalk::updateCRC(quint8 crc, const quint8* data, qint32 length)
crc = crc_table[crc ^ *data++];
return crc;
}

View File

@ -0,0 +1,10 @@
<xml>
<object name="AccessoryDesired" singleinstance="false" settings="false">
<description>Desired Auxillary actuator settings. Comes from @ref ManualControlModule.</description>
<field name="AccessoryVal" units="" type="float" elements="1"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="false" updatemode="manual" period="0"/>
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
<logging updatemode="never" period="0"/>
</object>
</xml>

View File

@ -6,11 +6,7 @@
<field name="Pitch" units="%" type="float" elements="1"/>
<field name="Yaw" units="%" type="float" elements="1"/>
<field name="Throttle" units="%" type="float" elements="1"/>
<field name="Accessory1" units="%" type="float" elements="1"/>
<field name="Accessory2" units="%" type="float" elements="1"/>
<field name="Accessory3" units="%" type="float" elements="1"/>
<field name="Channel" units="us" type="uint16" elements="8"/>
<field name="Channel" units="us" type="uint16" elements="8"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="false" updatemode="manual" period="0"/>
<telemetryflight acked="false" updatemode="periodic" period="2000"/>

View File

@ -7,9 +7,9 @@
<field name="Yaw" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Throttle" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="FlightMode" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Accessory0" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Accessory1" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Accessory2" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Accessory3" units="channel" type="enum" elements="1" options="Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,None" defaultvalue="None"/>
<field name="Arming" units="" type="enum" elements="1" options="Always Disarmed,Always Armed,Roll Left,Roll Right,Pitch Forward,Pitch Aft,Yaw Left,Yaw Right" defaultvalue="Always Disarmed"/>
<!-- Note these options should be identical to those in StabilizationDesired.StabilizationMode -->

View File

@ -6,22 +6,23 @@
<field name="AccelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
<field name="DecelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
<field name="ThrottleCurve1" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0.25,0.5,0.75,1"/>
<field name="Curve2Source" units="" type="enum" elements="1" options="Throttle,Roll,Pitch,Yaw,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Throttle"/>
<field name="ThrottleCurve2" units="percent" type="float" elements="5" elementnames="0,25,50,75,100" defaultvalue="0,0.25,0.5,0.75,1"/>
<field name="Mixer1Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer1Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer1Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer2Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer2Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer2Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer3Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer3Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer3Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer4Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer4Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer4Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer5Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer5Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer5Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer6Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer6Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer6Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer7Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer7Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer7Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<field name="Mixer8Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo" defaultvalue="Disabled"/>
<field name="Mixer8Type" units="" type="enum" elements="1" options="Disabled,Motor,Servo,Accessory0,Accessory1,Accessory2,Accessory3,Accessory4,Accessory5" defaultvalue="Disabled"/>
<field name="Mixer8Vector" units="" type="int8" elements="5" elementnames="ThrottleCurve1,ThrottleCurve2,Roll,Pitch,Yaw" defaultvalue="0"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="true" updatemode="onchange" period="0"/>