Doc reorganization

This commit is contained in:
Dave Jones
2016-04-09 21:10:08 +01:00
parent 05560f64c7
commit ecc8df8041
38 changed files with 1250 additions and 371 deletions

View File

@@ -0,0 +1,568 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.36.0 (20140111.2315)
-->
<!-- Title: classes Pages: 1 -->
<svg width="1698pt" height="548pt"
viewBox="0.00 0.00 1698.00 548.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 544)">
<title>classes</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-544 1694,-544 1694,4 -4,4"/>
<!-- ValuesMixin -->
<g id="node1" class="node"><title>ValuesMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="602,-540 530,-540 530,-504 602,-504 602,-540"/>
<text text-anchor="middle" x="566" y="-519.5" font-family="Sans" font-size="10.00" fill="#000000">ValuesMixin</text>
</g>
<!-- SourceMixin -->
<g id="node2" class="node"><title>SourceMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="448,-396 374,-396 374,-360 448,-360 448,-396"/>
<text text-anchor="middle" x="411" y="-375.5" font-family="Sans" font-size="10.00" fill="#000000">SourceMixin</text>
</g>
<!-- SharedMixin -->
<g id="node3" class="node"><title>SharedMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="423.5,-36 348.5,-36 348.5,-0 423.5,-0 423.5,-36"/>
<text text-anchor="middle" x="386" y="-15.5" font-family="Sans" font-size="10.00" fill="#000000">SharedMixin</text>
</g>
<!-- EventsMixin -->
<g id="node4" class="node"><title>EventsMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="725.5,-324 652.5,-324 652.5,-288 725.5,-288 725.5,-324"/>
<text text-anchor="middle" x="689" y="-303.5" font-family="Sans" font-size="10.00" fill="#000000">EventsMixin</text>
</g>
<!-- HoldMixin -->
<g id="node5" class="node"><title>HoldMixin</title>
<polygon fill="#c69ee0" stroke="#c69ee0" points="785,-252 723,-252 723,-216 785,-216 785,-252"/>
<text text-anchor="middle" x="754" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">HoldMixin</text>
</g>
<!-- Device -->
<g id="node6" class="node"><title>Device</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="593,-468 539,-468 539,-432 593,-432 593,-468"/>
<text text-anchor="middle" x="566" y="-447.5" font-family="Sans" font-size="10.00" fill="#000000">Device</text>
</g>
<!-- Device&#45;&gt;ValuesMixin -->
<g id="edge2" class="edge"><title>Device&#45;&gt;ValuesMixin</title>
<path fill="none" stroke="black" d="M566,-468.303C566,-476.017 566,-485.288 566,-493.888"/>
<polygon fill="black" stroke="black" points="562.5,-493.896 566,-503.896 569.5,-493.896 562.5,-493.896"/>
</g>
<!-- GPIODevice -->
<g id="node7" class="node"><title>GPIODevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="858,-396 786,-396 786,-360 858,-360 858,-396"/>
<text text-anchor="middle" x="822" y="-375.5" font-family="Sans" font-size="10.00" fill="#000000">GPIODevice</text>
</g>
<!-- GPIODevice&#45;&gt;Device -->
<g id="edge1" class="edge"><title>GPIODevice&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M785.864,-388.881C737.483,-402.11 652.094,-425.459 603.185,-438.832"/>
<polygon fill="black" stroke="black" points="602.051,-435.514 593.328,-441.527 603.897,-442.266 602.051,-435.514"/>
</g>
<!-- SmoothedInputDevice -->
<g id="node8" class="node"><title>SmoothedInputDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="926.5,-252 803.5,-252 803.5,-216 926.5,-216 926.5,-252"/>
<text text-anchor="middle" x="865" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">SmoothedInputDevice</text>
</g>
<!-- SmoothedInputDevice&#45;&gt;EventsMixin -->
<g id="edge7" class="edge"><title>SmoothedInputDevice&#45;&gt;EventsMixin</title>
<path fill="none" stroke="black" d="M821.946,-252.124C795.57,-262.614 761.832,-276.033 734.943,-286.727"/>
<polygon fill="black" stroke="black" points="733.372,-283.585 725.373,-290.533 735.959,-290.09 733.372,-283.585"/>
</g>
<!-- InputDevice -->
<g id="node16" class="node"><title>InputDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="858.5,-324 785.5,-324 785.5,-288 858.5,-288 858.5,-324"/>
<text text-anchor="middle" x="822" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">InputDevice</text>
</g>
<!-- SmoothedInputDevice&#45;&gt;InputDevice -->
<g id="edge6" class="edge"><title>SmoothedInputDevice&#45;&gt;InputDevice</title>
<path fill="none" stroke="black" d="M854.371,-252.303C849.372,-260.441 843.309,-270.311 837.788,-279.299"/>
<polygon fill="black" stroke="black" points="834.759,-277.543 832.507,-287.896 840.723,-281.207 834.759,-277.543"/>
</g>
<!-- AnalogInputDevice -->
<g id="node9" class="node"><title>AnalogInputDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="1306,-324 1200,-324 1200,-288 1306,-288 1306,-324"/>
<text text-anchor="middle" x="1253" y="-303.5" font-family="Sans" font-size="10.00" fill="#000000">AnalogInputDevice</text>
</g>
<!-- SPIDevice -->
<g id="node30" class="node"><title>SPIDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1112,-396 1048,-396 1048,-360 1112,-360 1112,-396"/>
<text text-anchor="middle" x="1080" y="-375.5" font-family="Sans" font-size="10.00" fill="#ffffff">SPIDevice</text>
</g>
<!-- AnalogInputDevice&#45;&gt;SPIDevice -->
<g id="edge24" class="edge"><title>AnalogInputDevice&#45;&gt;SPIDevice</title>
<path fill="none" stroke="black" d="M1210.68,-324.124C1183.6,-335.083 1148.61,-349.237 1121.66,-360.144"/>
<polygon fill="black" stroke="black" points="1120.08,-357.007 1112.12,-364.003 1122.7,-363.496 1120.08,-357.007"/>
</g>
<!-- MCP3xxx -->
<g id="node10" class="node"><title>MCP3xxx</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="1488.5,-252 1429.5,-252 1429.5,-216 1488.5,-216 1488.5,-252"/>
<text text-anchor="middle" x="1459" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">MCP3xxx</text>
</g>
<!-- MCP3xxx&#45;&gt;AnalogInputDevice -->
<g id="edge25" class="edge"><title>MCP3xxx&#45;&gt;AnalogInputDevice</title>
<path fill="none" stroke="black" d="M1429.49,-245.029C1399.13,-255.345 1351,-271.699 1312.66,-284.726"/>
<polygon fill="black" stroke="black" points="1311.49,-281.429 1303.15,-287.96 1313.74,-288.056 1311.49,-281.429"/>
</g>
<!-- MCP33xx -->
<g id="node11" class="node"><title>MCP33xx</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="1450,-180 1390,-180 1390,-144 1450,-144 1450,-180"/>
<text text-anchor="middle" x="1420" y="-159.5" font-family="Sans" font-size="10.00" fill="#000000">MCP33xx</text>
</g>
<!-- MCP33xx&#45;&gt;MCP3xxx -->
<g id="edge26" class="edge"><title>MCP33xx&#45;&gt;MCP3xxx</title>
<path fill="none" stroke="black" d="M1429.64,-180.303C1434.13,-188.356 1439.56,-198.106 1444.52,-207.018"/>
<polygon fill="black" stroke="black" points="1441.55,-208.863 1449.47,-215.896 1447.66,-205.456 1441.55,-208.863"/>
</g>
<!-- CompositeDevice -->
<g id="node12" class="node"><title>CompositeDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="319.5,-396 218.5,-396 218.5,-360 319.5,-360 319.5,-396"/>
<text text-anchor="middle" x="269" y="-375.5" font-family="Sans" font-size="10.00" fill="#000000">CompositeDevice</text>
</g>
<!-- CompositeDevice&#45;&gt;Device -->
<g id="edge34" class="edge"><title>CompositeDevice&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M319.382,-390.875C378.806,-404.88 476.173,-427.829 529.039,-440.289"/>
<polygon fill="black" stroke="black" points="528.458,-443.747 538.994,-442.635 530.064,-436.934 528.458,-443.747"/>
</g>
<!-- CompositeOutputDevice -->
<g id="node13" class="node"><title>CompositeOutputDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="439,-324 305,-324 305,-288 439,-288 439,-324"/>
<text text-anchor="middle" x="372" y="-303.5" font-family="Sans" font-size="10.00" fill="#000000">CompositeOutputDevice</text>
</g>
<!-- CompositeOutputDevice&#45;&gt;SourceMixin -->
<g id="edge36" class="edge"><title>CompositeOutputDevice&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M381.64,-324.303C386.127,-332.356 391.559,-342.106 396.524,-351.018"/>
<polygon fill="black" stroke="black" points="393.546,-352.863 401.47,-359.896 399.661,-349.456 393.546,-352.863"/>
</g>
<!-- CompositeOutputDevice&#45;&gt;CompositeDevice -->
<g id="edge35" class="edge"><title>CompositeOutputDevice&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M346.803,-324.124C333.586,-333.107 317.208,-344.237 302.893,-353.966"/>
<polygon fill="black" stroke="black" points="300.597,-351.295 294.293,-359.81 304.532,-357.084 300.597,-351.295"/>
</g>
<!-- LEDCollection -->
<g id="node14" class="node"><title>LEDCollection</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="424,-252 342,-252 342,-216 424,-216 424,-252"/>
<text text-anchor="middle" x="383" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">LEDCollection</text>
</g>
<!-- LEDCollection&#45;&gt;CompositeOutputDevice -->
<g id="edge37" class="edge"><title>LEDCollection&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M380.281,-252.303C379.069,-260.017 377.612,-269.288 376.261,-277.888"/>
<polygon fill="black" stroke="black" points="372.783,-277.474 374.688,-287.896 379.698,-278.56 372.783,-277.474"/>
</g>
<!-- InternalDevice -->
<g id="node15" class="node"><title>InternalDevice</title>
<polygon fill="#9ec6e0" stroke="#9ec6e0" points="583.5,-252 498.5,-252 498.5,-216 583.5,-216 583.5,-252"/>
<text text-anchor="middle" x="541" y="-231.5" font-family="Sans" font-size="10.00" fill="#000000">InternalDevice</text>
</g>
<!-- InternalDevice&#45;&gt;EventsMixin -->
<g id="edge56" class="edge"><title>InternalDevice&#45;&gt;EventsMixin</title>
<path fill="none" stroke="black" d="M577.205,-252.124C597.258,-261.608 622.372,-273.487 643.714,-283.581"/>
<polygon fill="black" stroke="black" points="642.376,-286.82 652.913,-287.932 645.369,-280.492 642.376,-286.82"/>
</g>
<!-- InternalDevice&#45;&gt;Device -->
<g id="edge55" class="edge"><title>InternalDevice&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M543.004,-252.151C547.328,-289.168 557.568,-376.819 562.801,-421.614"/>
<polygon fill="black" stroke="black" points="559.35,-422.241 563.987,-431.768 566.303,-421.429 559.35,-422.241"/>
</g>
<!-- InputDevice&#45;&gt;GPIODevice -->
<g id="edge3" class="edge"><title>InputDevice&#45;&gt;GPIODevice</title>
<path fill="none" stroke="black" d="M822,-324.303C822,-332.017 822,-341.288 822,-349.888"/>
<polygon fill="black" stroke="black" points="818.5,-349.896 822,-359.896 825.5,-349.896 818.5,-349.896"/>
</g>
<!-- DigitalInputDevice -->
<g id="node17" class="node"><title>DigitalInputDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="704.5,-252 601.5,-252 601.5,-216 704.5,-216 704.5,-252"/>
<text text-anchor="middle" x="653" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">DigitalInputDevice</text>
</g>
<!-- DigitalInputDevice&#45;&gt;EventsMixin -->
<g id="edge5" class="edge"><title>DigitalInputDevice&#45;&gt;EventsMixin</title>
<path fill="none" stroke="black" d="M661.899,-252.303C665.997,-260.272 670.949,-269.9 675.493,-278.736"/>
<polygon fill="black" stroke="black" points="672.517,-280.604 680.203,-287.896 678.742,-277.402 672.517,-280.604"/>
</g>
<!-- DigitalInputDevice&#45;&gt;InputDevice -->
<g id="edge4" class="edge"><title>DigitalInputDevice&#45;&gt;InputDevice</title>
<path fill="none" stroke="black" d="M694.342,-252.124C719.124,-262.389 750.675,-275.457 776.21,-286.034"/>
<polygon fill="black" stroke="black" points="775.097,-289.361 785.676,-289.954 777.776,-282.894 775.097,-289.361"/>
</g>
<!-- Button -->
<g id="node18" class="node"><title>Button</title>
<polygon fill="#2980b9" stroke="#2980b9" points="680,-180 626,-180 626,-144 680,-144 680,-180"/>
<text text-anchor="middle" x="653" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">Button</text>
</g>
<!-- Button&#45;&gt;HoldMixin -->
<g id="edge9" class="edge"><title>Button&#45;&gt;HoldMixin</title>
<path fill="none" stroke="black" d="M677.707,-180.124C690.669,-189.107 706.728,-200.237 720.765,-209.966"/>
<polygon fill="black" stroke="black" points="718.985,-212.991 729.198,-215.81 722.972,-207.237 718.985,-212.991"/>
</g>
<!-- Button&#45;&gt;DigitalInputDevice -->
<g id="edge8" class="edge"><title>Button&#45;&gt;DigitalInputDevice</title>
<path fill="none" stroke="black" d="M653,-180.303C653,-188.017 653,-197.288 653,-205.888"/>
<polygon fill="black" stroke="black" points="649.5,-205.896 653,-215.896 656.5,-205.896 649.5,-205.896"/>
</g>
<!-- MotionSensor -->
<g id="node19" class="node"><title>MotionSensor</title>
<polygon fill="#2980b9" stroke="#2980b9" points="891.5,-180 808.5,-180 808.5,-144 891.5,-144 891.5,-180"/>
<text text-anchor="middle" x="850" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">MotionSensor</text>
</g>
<!-- MotionSensor&#45;&gt;SmoothedInputDevice -->
<g id="edge10" class="edge"><title>MotionSensor&#45;&gt;SmoothedInputDevice</title>
<path fill="none" stroke="black" d="M853.708,-180.303C855.361,-188.017 857.347,-197.288 859.19,-205.888"/>
<polygon fill="black" stroke="black" points="855.817,-206.851 861.335,-215.896 862.662,-205.384 855.817,-206.851"/>
</g>
<!-- LightSensor -->
<g id="node20" class="node"><title>LightSensor</title>
<polygon fill="#2980b9" stroke="#2980b9" points="984,-180 910,-180 910,-144 984,-144 984,-180"/>
<text text-anchor="middle" x="947" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">LightSensor</text>
</g>
<!-- LightSensor&#45;&gt;SmoothedInputDevice -->
<g id="edge11" class="edge"><title>LightSensor&#45;&gt;SmoothedInputDevice</title>
<path fill="none" stroke="black" d="M926.73,-180.303C916.502,-189.035 903.939,-199.76 892.822,-209.25"/>
<polygon fill="black" stroke="black" points="890.37,-206.741 885.037,-215.896 894.915,-212.065 890.37,-206.741"/>
</g>
<!-- LineSensor -->
<g id="node21" class="node"><title>LineSensor</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1072,-180 1002,-180 1002,-144 1072,-144 1072,-180"/>
<text text-anchor="middle" x="1037" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">LineSensor</text>
</g>
<!-- LineSensor&#45;&gt;SmoothedInputDevice -->
<g id="edge12" class="edge"><title>LineSensor&#45;&gt;SmoothedInputDevice</title>
<path fill="none" stroke="black" d="M1001.78,-177.334C977.161,-187.353 943.897,-200.891 916.336,-212.107"/>
<polygon fill="black" stroke="black" points="914.792,-208.957 906.849,-215.968 917.431,-215.441 914.792,-208.957"/>
</g>
<!-- DistanceSensor -->
<g id="node22" class="node"><title>DistanceSensor</title>
<polygon fill="#2980b9" stroke="#2980b9" points="790,-180 698,-180 698,-144 790,-144 790,-180"/>
<text text-anchor="middle" x="744" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">DistanceSensor</text>
</g>
<!-- DistanceSensor&#45;&gt;SmoothedInputDevice -->
<g id="edge13" class="edge"><title>DistanceSensor&#45;&gt;SmoothedInputDevice</title>
<path fill="none" stroke="black" d="M773.6,-180.124C789.567,-189.361 809.46,-200.869 826.606,-210.788"/>
<polygon fill="black" stroke="black" points="824.878,-213.832 835.286,-215.81 828.383,-207.773 824.878,-213.832"/>
</g>
<!-- OutputDevice -->
<g id="node23" class="node"><title>OutputDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1016,-324 934,-324 934,-288 1016,-288 1016,-324"/>
<text text-anchor="middle" x="975" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">OutputDevice</text>
</g>
<!-- OutputDevice&#45;&gt;SourceMixin -->
<g id="edge15" class="edge"><title>OutputDevice&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M933.773,-313.89C913.661,-317.149 889.097,-320.978 867,-324 718.01,-344.376 540.934,-363.507 458.107,-372.16"/>
<polygon fill="black" stroke="black" points="457.589,-368.694 448.006,-373.212 458.315,-375.657 457.589,-368.694"/>
</g>
<!-- OutputDevice&#45;&gt;GPIODevice -->
<g id="edge14" class="edge"><title>OutputDevice&#45;&gt;GPIODevice</title>
<path fill="none" stroke="black" d="M937.572,-324.124C916.439,-333.792 889.869,-345.949 867.535,-356.167"/>
<polygon fill="black" stroke="black" points="865.888,-353.072 858.251,-360.415 868.8,-359.437 865.888,-353.072"/>
</g>
<!-- DigitalOutputDevice -->
<g id="node24" class="node"><title>DigitalOutputDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1249,-252 1137,-252 1137,-216 1249,-216 1249,-252"/>
<text text-anchor="middle" x="1193" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">DigitalOutputDevice</text>
</g>
<!-- DigitalOutputDevice&#45;&gt;OutputDevice -->
<g id="edge16" class="edge"><title>DigitalOutputDevice&#45;&gt;OutputDevice</title>
<path fill="none" stroke="black" d="M1139.95,-252.034C1105.31,-263.158 1060.32,-277.603 1026.08,-288.598"/>
<polygon fill="black" stroke="black" points="1024.73,-285.357 1016.28,-291.746 1026.87,-292.022 1024.73,-285.357"/>
</g>
<!-- LED -->
<g id="node25" class="node"><title>LED</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1292,-180 1238,-180 1238,-144 1292,-144 1292,-180"/>
<text text-anchor="middle" x="1265" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">LED</text>
</g>
<!-- LED&#45;&gt;DigitalOutputDevice -->
<g id="edge17" class="edge"><title>LED&#45;&gt;DigitalOutputDevice</title>
<path fill="none" stroke="black" d="M1247.2,-180.303C1238.4,-188.865 1227.62,-199.344 1218,-208.696"/>
<polygon fill="black" stroke="black" points="1215.32,-206.415 1210.59,-215.896 1220.2,-211.434 1215.32,-206.415"/>
</g>
<!-- Buzzer -->
<g id="node26" class="node"><title>Buzzer</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1220,-180 1166,-180 1166,-144 1220,-144 1220,-180"/>
<text text-anchor="middle" x="1193" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">Buzzer</text>
</g>
<!-- Buzzer&#45;&gt;DigitalOutputDevice -->
<g id="edge18" class="edge"><title>Buzzer&#45;&gt;DigitalOutputDevice</title>
<path fill="none" stroke="black" d="M1193,-180.303C1193,-188.017 1193,-197.288 1193,-205.888"/>
<polygon fill="black" stroke="black" points="1189.5,-205.896 1193,-215.896 1196.5,-205.896 1189.5,-205.896"/>
</g>
<!-- PWMOutputDevice -->
<g id="node27" class="node"><title>PWMOutputDevice</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1084,-252 980,-252 980,-216 1084,-216 1084,-252"/>
<text text-anchor="middle" x="1032" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">PWMOutputDevice</text>
</g>
<!-- PWMOutputDevice&#45;&gt;OutputDevice -->
<g id="edge19" class="edge"><title>PWMOutputDevice&#45;&gt;OutputDevice</title>
<path fill="none" stroke="black" d="M1017.91,-252.303C1011.08,-260.695 1002.74,-270.93 995.244,-280.139"/>
<polygon fill="black" stroke="black" points="992.528,-277.931 988.928,-287.896 997.956,-282.351 992.528,-277.931"/>
</g>
<!-- PWMLED -->
<g id="node28" class="node"><title>PWMLED</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1148,-180 1090,-180 1090,-144 1148,-144 1148,-180"/>
<text text-anchor="middle" x="1119" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">PWMLED</text>
</g>
<!-- PWMLED&#45;&gt;PWMOutputDevice -->
<g id="edge20" class="edge"><title>PWMLED&#45;&gt;PWMOutputDevice</title>
<path fill="none" stroke="black" d="M1097.49,-180.303C1086.54,-189.119 1073.05,-199.968 1061.18,-209.526"/>
<polygon fill="black" stroke="black" points="1058.86,-206.9 1053.26,-215.896 1063.24,-212.354 1058.86,-206.9"/>
</g>
<!-- RGBLED -->
<g id="node29" class="node"><title>RGBLED</title>
<polygon fill="#2980b9" stroke="#2980b9" points="513,-324 457,-324 457,-288 513,-288 513,-324"/>
<text text-anchor="middle" x="485" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">RGBLED</text>
</g>
<!-- RGBLED&#45;&gt;SourceMixin -->
<g id="edge22" class="edge"><title>RGBLED&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M466.708,-324.303C457.567,-332.95 446.36,-343.551 436.4,-352.973"/>
<polygon fill="black" stroke="black" points="433.941,-350.481 429.082,-359.896 438.752,-355.566 433.941,-350.481"/>
</g>
<!-- RGBLED&#45;&gt;Device -->
<g id="edge21" class="edge"><title>RGBLED&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M491.955,-324.232C499.61,-342.539 512.738,-372.08 527,-396 532.617,-405.42 539.505,-415.228 545.922,-423.808"/>
<polygon fill="black" stroke="black" points="543.265,-426.097 552.117,-431.92 548.829,-421.848 543.265,-426.097"/>
</g>
<!-- SPIDevice&#45;&gt;Device -->
<g id="edge23" class="edge"><title>SPIDevice&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M1047.85,-383.379C957.18,-395.726 699.802,-430.778 603.224,-443.931"/>
<polygon fill="black" stroke="black" points="602.494,-440.498 593.057,-445.315 603.438,-447.434 602.494,-440.498"/>
</g>
<!-- MCP3004 -->
<g id="node31" class="node"><title>MCP3004</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1530,-180 1468,-180 1468,-144 1530,-144 1530,-180"/>
<text text-anchor="middle" x="1499" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3004</text>
</g>
<!-- MCP3004&#45;&gt;MCP3xxx -->
<g id="edge27" class="edge"><title>MCP3004&#45;&gt;MCP3xxx</title>
<path fill="none" stroke="black" d="M1489.11,-180.303C1484.51,-188.356 1478.94,-198.106 1473.85,-207.018"/>
<polygon fill="black" stroke="black" points="1470.7,-205.477 1468.77,-215.896 1476.77,-208.95 1470.7,-205.477"/>
</g>
<!-- MCP3008 -->
<g id="node32" class="node"><title>MCP3008</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1610,-180 1548,-180 1548,-144 1610,-144 1610,-180"/>
<text text-anchor="middle" x="1579" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3008</text>
</g>
<!-- MCP3008&#45;&gt;MCP3xxx -->
<g id="edge28" class="edge"><title>MCP3008&#45;&gt;MCP3xxx</title>
<path fill="none" stroke="black" d="M1549.64,-180.124C1533.95,-189.276 1514.44,-200.658 1497.55,-210.515"/>
<polygon fill="black" stroke="black" points="1495.34,-207.748 1488.47,-215.81 1498.87,-213.795 1495.34,-207.748"/>
</g>
<!-- MCP3204 -->
<g id="node33" class="node"><title>MCP3204</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1690,-180 1628,-180 1628,-144 1690,-144 1690,-180"/>
<text text-anchor="middle" x="1659" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3204</text>
</g>
<!-- MCP3204&#45;&gt;MCP3xxx -->
<g id="edge29" class="edge"><title>MCP3204&#45;&gt;MCP3xxx</title>
<path fill="none" stroke="black" d="M1628.2,-176.047C1624.77,-177.417 1621.32,-178.76 1618,-180 1577.49,-195.129 1530.42,-210.556 1498.07,-220.834"/>
<polygon fill="black" stroke="black" points="1497,-217.501 1488.52,-223.853 1499.11,-224.175 1497,-217.501"/>
</g>
<!-- MCP3208 -->
<g id="node34" class="node"><title>MCP3208</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1372,-180 1310,-180 1310,-144 1372,-144 1372,-180"/>
<text text-anchor="middle" x="1341" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3208</text>
</g>
<!-- MCP3208&#45;&gt;MCP3xxx -->
<g id="edge30" class="edge"><title>MCP3208&#45;&gt;MCP3xxx</title>
<path fill="none" stroke="black" d="M1369.87,-180.124C1385.29,-189.276 1404.48,-200.658 1421.1,-210.515"/>
<polygon fill="black" stroke="black" points="1419.64,-213.718 1430.02,-215.81 1423.21,-207.698 1419.64,-213.718"/>
</g>
<!-- MCP3301 -->
<g id="node35" class="node"><title>MCP3301</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1371,-108 1309,-108 1309,-72 1371,-72 1371,-108"/>
<text text-anchor="middle" x="1340" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3301</text>
</g>
<!-- MCP3301&#45;&gt;MCP33xx -->
<g id="edge31" class="edge"><title>MCP3301&#45;&gt;MCP33xx</title>
<path fill="none" stroke="black" d="M1359.78,-108.303C1369.75,-117.035 1382.01,-127.76 1392.86,-137.25"/>
<polygon fill="black" stroke="black" points="1390.62,-139.945 1400.45,-143.896 1395.23,-134.677 1390.62,-139.945"/>
</g>
<!-- MCP3302 -->
<g id="node36" class="node"><title>MCP3302</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1451,-108 1389,-108 1389,-72 1451,-72 1451,-108"/>
<text text-anchor="middle" x="1420" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3302</text>
</g>
<!-- MCP3302&#45;&gt;MCP33xx -->
<g id="edge32" class="edge"><title>MCP3302&#45;&gt;MCP33xx</title>
<path fill="none" stroke="black" d="M1420,-108.303C1420,-116.017 1420,-125.288 1420,-133.888"/>
<polygon fill="black" stroke="black" points="1416.5,-133.896 1420,-143.896 1423.5,-133.896 1416.5,-133.896"/>
</g>
<!-- MCP3304 -->
<g id="node37" class="node"><title>MCP3304</title>
<polygon fill="#2980b9" stroke="#2980b9" points="1531,-108 1469,-108 1469,-72 1531,-72 1531,-108"/>
<text text-anchor="middle" x="1500" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">MCP3304</text>
</g>
<!-- MCP3304&#45;&gt;MCP33xx -->
<g id="edge33" class="edge"><title>MCP3304&#45;&gt;MCP33xx</title>
<path fill="none" stroke="black" d="M1480.22,-108.303C1470.25,-117.035 1457.99,-127.76 1447.14,-137.25"/>
<polygon fill="black" stroke="black" points="1444.77,-134.677 1439.55,-143.896 1449.38,-139.945 1444.77,-134.677"/>
</g>
<!-- LEDBoard -->
<g id="node38" class="node"><title>LEDBoard</title>
<polygon fill="#2980b9" stroke="#2980b9" points="335,-180 271,-180 271,-144 335,-144 335,-180"/>
<text text-anchor="middle" x="303" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDBoard</text>
</g>
<!-- LEDBoard&#45;&gt;LEDCollection -->
<g id="edge38" class="edge"><title>LEDBoard&#45;&gt;LEDCollection</title>
<path fill="none" stroke="black" d="M322.775,-180.303C332.754,-189.035 345.011,-199.76 355.857,-209.25"/>
<polygon fill="black" stroke="black" points="353.622,-211.945 363.452,-215.896 358.231,-206.677 353.622,-211.945"/>
</g>
<!-- LEDBarGraph -->
<g id="node39" class="node"><title>LEDBarGraph</title>
<polygon fill="#2980b9" stroke="#2980b9" points="434.5,-180 353.5,-180 353.5,-144 434.5,-144 434.5,-180"/>
<text text-anchor="middle" x="394" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">LEDBarGraph</text>
</g>
<!-- LEDBarGraph&#45;&gt;LEDCollection -->
<g id="edge39" class="edge"><title>LEDBarGraph&#45;&gt;LEDCollection</title>
<path fill="none" stroke="black" d="M391.281,-180.303C390.069,-188.017 388.612,-197.288 387.261,-205.888"/>
<polygon fill="black" stroke="black" points="383.783,-205.474 385.688,-215.896 390.698,-206.56 383.783,-205.474"/>
</g>
<!-- PiLiter -->
<g id="node40" class="node"><title>PiLiter</title>
<polygon fill="#2980b9" stroke="#2980b9" points="249,-108 195,-108 195,-72 249,-72 249,-108"/>
<text text-anchor="middle" x="222" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiLiter</text>
</g>
<!-- PiLiter&#45;&gt;LEDBoard -->
<g id="edge40" class="edge"><title>PiLiter&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M242.022,-108.303C252.126,-117.035 264.536,-127.76 275.518,-137.25"/>
<polygon fill="black" stroke="black" points="273.353,-140.005 283.208,-143.896 277.93,-134.709 273.353,-140.005"/>
</g>
<!-- PiLiterBarGraph -->
<g id="node41" class="node"><title>PiLiterBarGraph</title>
<polygon fill="#2980b9" stroke="#2980b9" points="449,-108 357,-108 357,-72 449,-72 449,-108"/>
<text text-anchor="middle" x="403" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiLiterBarGraph</text>
</g>
<!-- PiLiterBarGraph&#45;&gt;LEDBarGraph -->
<g id="edge41" class="edge"><title>PiLiterBarGraph&#45;&gt;LEDBarGraph</title>
<path fill="none" stroke="black" d="M400.775,-108.303C399.783,-116.017 398.592,-125.288 397.486,-133.888"/>
<polygon fill="black" stroke="black" points="394.003,-133.531 396.199,-143.896 400.946,-134.424 394.003,-133.531"/>
</g>
<!-- TrafficLights -->
<g id="node42" class="node"><title>TrafficLights</title>
<polygon fill="#2980b9" stroke="#2980b9" points="339,-108 267,-108 267,-72 339,-72 339,-108"/>
<text text-anchor="middle" x="303" y="-87.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficLights</text>
</g>
<!-- TrafficLights&#45;&gt;LEDBoard -->
<g id="edge42" class="edge"><title>TrafficLights&#45;&gt;LEDBoard</title>
<path fill="none" stroke="black" d="M303,-108.303C303,-116.017 303,-125.288 303,-133.888"/>
<polygon fill="black" stroke="black" points="299.5,-133.896 303,-143.896 306.5,-133.896 299.5,-133.896"/>
</g>
<!-- PiTraffic -->
<g id="node43" class="node"><title>PiTraffic</title>
<polygon fill="#2980b9" stroke="#2980b9" points="330,-36 276,-36 276,-0 330,-0 330,-36"/>
<text text-anchor="middle" x="303" y="-15.5" font-family="Sans" font-size="10.00" fill="#ffffff">PiTraffic</text>
</g>
<!-- PiTraffic&#45;&gt;TrafficLights -->
<g id="edge43" class="edge"><title>PiTraffic&#45;&gt;TrafficLights</title>
<path fill="none" stroke="black" d="M303,-36.3034C303,-44.0173 303,-53.2875 303,-61.8876"/>
<polygon fill="black" stroke="black" points="299.5,-61.8956 303,-71.8957 306.5,-61.8957 299.5,-61.8956"/>
</g>
<!-- TrafficLightsBuzzer -->
<g id="node44" class="node"><title>TrafficLightsBuzzer</title>
<polygon fill="#2980b9" stroke="#2980b9" points="323.5,-252 218.5,-252 218.5,-216 323.5,-216 323.5,-252"/>
<text text-anchor="middle" x="271" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficLightsBuzzer</text>
</g>
<!-- TrafficLightsBuzzer&#45;&gt;CompositeOutputDevice -->
<g id="edge44" class="edge"><title>TrafficLightsBuzzer&#45;&gt;CompositeOutputDevice</title>
<path fill="none" stroke="black" d="M295.707,-252.124C308.669,-261.107 324.728,-272.237 338.765,-281.966"/>
<polygon fill="black" stroke="black" points="336.985,-284.991 347.198,-287.81 340.972,-279.237 336.985,-284.991"/>
</g>
<!-- FishDish -->
<g id="node45" class="node"><title>FishDish</title>
<polygon fill="#2980b9" stroke="#2980b9" points="253,-180 197,-180 197,-144 253,-144 253,-180"/>
<text text-anchor="middle" x="225" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">FishDish</text>
</g>
<!-- FishDish&#45;&gt;TrafficLightsBuzzer -->
<g id="edge45" class="edge"><title>FishDish&#45;&gt;TrafficLightsBuzzer</title>
<path fill="none" stroke="black" d="M236.371,-180.303C241.718,-188.441 248.204,-198.311 254.111,-207.299"/>
<polygon fill="black" stroke="black" points="251.343,-209.461 259.76,-215.896 257.193,-205.616 251.343,-209.461"/>
</g>
<!-- TrafficHat -->
<g id="node46" class="node"><title>TrafficHat</title>
<polygon fill="#2980b9" stroke="#2980b9" points="178.5,-180 117.5,-180 117.5,-144 178.5,-144 178.5,-180"/>
<text text-anchor="middle" x="148" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">TrafficHat</text>
</g>
<!-- TrafficHat&#45;&gt;TrafficLightsBuzzer -->
<g id="edge46" class="edge"><title>TrafficHat&#45;&gt;TrafficLightsBuzzer</title>
<path fill="none" stroke="black" d="M178.089,-180.124C194.32,-189.361 214.542,-200.869 231.971,-210.788"/>
<polygon fill="black" stroke="black" points="230.373,-213.906 240.795,-215.81 233.835,-207.822 230.373,-213.906"/>
</g>
<!-- Robot -->
<g id="node47" class="node"><title>Robot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="287,-324 233,-324 233,-288 287,-288 287,-324"/>
<text text-anchor="middle" x="260" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">Robot</text>
</g>
<!-- Robot&#45;&gt;SourceMixin -->
<g id="edge48" class="edge"><title>Robot&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M287.114,-319.837C290.111,-321.246 293.119,-322.656 296,-324 318.546,-334.518 343.631,-346.094 364.605,-355.737"/>
<polygon fill="black" stroke="black" points="363.381,-359.027 373.929,-360.021 366.303,-352.666 363.381,-359.027"/>
</g>
<!-- Robot&#45;&gt;CompositeDevice -->
<g id="edge47" class="edge"><title>Robot&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M262.225,-324.303C263.217,-332.017 264.408,-341.288 265.514,-349.888"/>
<polygon fill="black" stroke="black" points="262.054,-350.424 266.801,-359.896 268.997,-349.531 262.054,-350.424"/>
</g>
<!-- Energenie -->
<g id="node48" class="node"><title>Energenie</title>
<polygon fill="#2980b9" stroke="#2980b9" points="634.5,-324 569.5,-324 569.5,-288 634.5,-288 634.5,-324"/>
<text text-anchor="middle" x="602" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">Energenie</text>
</g>
<!-- Energenie&#45;&gt;SourceMixin -->
<g id="edge50" class="edge"><title>Energenie&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M569.599,-318.875C538.857,-330.141 492.325,-347.195 457.603,-359.92"/>
<polygon fill="black" stroke="black" points="456.33,-356.659 448.145,-363.387 458.739,-363.232 456.33,-356.659"/>
</g>
<!-- Energenie&#45;&gt;Device -->
<g id="edge49" class="edge"><title>Energenie&#45;&gt;Device</title>
<path fill="none" stroke="black" d="M597.658,-324.129C591.495,-348.436 580.151,-393.181 572.848,-421.987"/>
<polygon fill="black" stroke="black" points="569.423,-421.257 570.358,-431.811 576.208,-422.978 569.423,-421.257"/>
</g>
<!-- RyanteckRobot -->
<g id="node49" class="node"><title>RyanteckRobot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="200,-252 114,-252 114,-216 200,-216 200,-252"/>
<text text-anchor="middle" x="157" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">RyanteckRobot</text>
</g>
<!-- RyanteckRobot&#45;&gt;Robot -->
<g id="edge51" class="edge"><title>RyanteckRobot&#45;&gt;Robot</title>
<path fill="none" stroke="black" d="M182.197,-252.124C195.414,-261.107 211.792,-272.237 226.107,-281.966"/>
<polygon fill="black" stroke="black" points="224.468,-285.084 234.707,-287.81 228.403,-279.295 224.468,-285.084"/>
</g>
<!-- CamJamKitRobot -->
<g id="node50" class="node"><title>CamJamKitRobot</title>
<polygon fill="#2980b9" stroke="#2980b9" points="96,-252 0,-252 0,-216 96,-216 96,-252"/>
<text text-anchor="middle" x="48" y="-231.5" font-family="Sans" font-size="10.00" fill="#ffffff">CamJamKitRobot</text>
</g>
<!-- CamJamKitRobot&#45;&gt;Robot -->
<g id="edge52" class="edge"><title>CamJamKitRobot&#45;&gt;Robot</title>
<path fill="none" stroke="black" d="M96.3575,-249.468C139.41,-262.36 198.475,-280.08 222.949,-288.168"/>
<polygon fill="black" stroke="black" points="222.071,-291.569 232.665,-291.578 224.389,-284.964 222.071,-291.569"/>
</g>
<!-- Motor -->
<g id="node51" class="node"><title>Motor</title>
<polygon fill="#2980b9" stroke="#2980b9" points="215,-324 161,-324 161,-288 215,-288 215,-324"/>
<text text-anchor="middle" x="188" y="-303.5" font-family="Sans" font-size="10.00" fill="#ffffff">Motor</text>
</g>
<!-- Motor&#45;&gt;SourceMixin -->
<g id="edge54" class="edge"><title>Motor&#45;&gt;SourceMixin</title>
<path fill="none" stroke="black" d="M215.316,-320.47C218.22,-321.73 221.152,-322.932 224,-324 270.698,-341.507 325.803,-356.464 364.044,-365.981"/>
<polygon fill="black" stroke="black" points="363.327,-369.409 373.873,-368.4 364.999,-362.612 363.327,-369.409"/>
</g>
<!-- Motor&#45;&gt;CompositeDevice -->
<g id="edge53" class="edge"><title>Motor&#45;&gt;CompositeDevice</title>
<path fill="none" stroke="black" d="M208.022,-324.303C218.126,-333.035 230.536,-343.76 241.518,-353.25"/>
<polygon fill="black" stroke="black" points="239.353,-356.005 249.208,-359.896 243.93,-350.709 239.353,-356.005"/>
</g>
<!-- TimeOfDay -->
<g id="node52" class="node"><title>TimeOfDay</title>
<polygon fill="#2980b9" stroke="#2980b9" points="521.5,-180 452.5,-180 452.5,-144 521.5,-144 521.5,-180"/>
<text text-anchor="middle" x="487" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">TimeOfDay</text>
</g>
<!-- TimeOfDay&#45;&gt;InternalDevice -->
<g id="edge57" class="edge"><title>TimeOfDay&#45;&gt;InternalDevice</title>
<path fill="none" stroke="black" d="M500.348,-180.303C506.757,-188.611 514.558,-198.723 521.606,-207.859"/>
<polygon fill="black" stroke="black" points="518.926,-210.116 527.805,-215.896 524.468,-205.84 518.926,-210.116"/>
</g>
<!-- PingServer -->
<g id="node53" class="node"><title>PingServer</title>
<polygon fill="#2980b9" stroke="#2980b9" points="608,-180 540,-180 540,-144 608,-144 608,-180"/>
<text text-anchor="middle" x="574" y="-159.5" font-family="Sans" font-size="10.00" fill="#ffffff">PingServer</text>
</g>
<!-- PingServer&#45;&gt;InternalDevice -->
<g id="edge58" class="edge"><title>PingServer&#45;&gt;InternalDevice</title>
<path fill="none" stroke="black" d="M565.843,-180.303C562.086,-188.272 557.547,-197.9 553.382,-206.736"/>
<polygon fill="black" stroke="black" points="550.162,-205.358 549.063,-215.896 556.494,-208.343 550.162,-205.358"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB