Added docs
|
@ -0,0 +1,132 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>RingLock for AVR Microcontrollers</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>RingLock</h1>
|
||||
<h2>How it started</h2>
|
||||
After reading about <a href="http://piclock.wordpress.com/2010/10/08/picloc/">PIClock4</a>
|
||||
a inter-microcontroller mutex on <a href="http://dangerousprototypes.com/2011/09/26/piclock4-inter-microcontroller-mutex/">dangerousprototypes.com</a>,
|
||||
I got curious about the actual implementation.<br/>
|
||||
It uses shift registers to pass a token in form of just a single bit around.<br/>
|
||||
Once the token arrives at a mcu that needs access to the resource, the mcu can stop the shifting.<br/>
|
||||
After having done whatever it needs the resource for, it can start the shifting again.<br/>
|
||||
Unfortunately the schematic files were down, so I had to ask for them.<br/>
|
||||
The marker of piclock told me that his project was just for fun and never intended for actual usage.<br/>
|
||||
Because of the huge amount of logic chips needed he suggested rather using a arduino/atmega328 to emulate the hardware in software.<br/>
|
||||
That's what got me thinking initially.<br/>
|
||||
Using a 32k flash mcu to emulate 9 logic ics, sounded terribly wasteful to me.<br/>
|
||||
<i>First idea :</i> I could use a Attiny instead.<br/>
|
||||
<i>Advantages :</i> I would not waste that much flash space. <br/>
|
||||
<i>Disadvantage :</i> Attinys have only few IO-pins and therefore the amount of mcus that can be attached to the lock is limited.<br/>
|
||||
<br/>
|
||||
So I was looking for a solution that allows a huge number of mcus, while needing no/not much additional hardware.<br/>
|
||||
At some point I got reminded of <a href="http://en.wikipedia.org/wiki/Token_ring">token ring networks</a>, something I've never seen myself,<br/>
|
||||
because it's a rather old technique and at least for computer networks totally replaced by Ethernet.<br/>
|
||||
It's basic ideas is that the hosts pass a token from one to the next in a ring like topology.<br/>
|
||||
Once a host gets a token he is allowed to attach data to it while passing it on.<br/>
|
||||
This is very similar to the bit that gets shifted around in the piclock system,<br/>
|
||||
but it does not require a central piece of hardware controlling the whole process.<br/>
|
||||
That sounded just like the thing I wanted.<br/>
|
||||
<br/>
|
||||
After googling for a while I found a few implementations for token passing on microcontrollers,<br>
|
||||
but the majority of them were integrated in other projects and designed for a single usage scenario.<br/>
|
||||
At that point I started experimenting with an own implementation.<br/>
|
||||
It had easily configurable for different AVR mcus and applicable to various scenarios where multiple mcus access the same resource.<br/>
|
||||
<br/>
|
||||
<b>
|
||||
It's important to notice that I don't claim this to be a full featured library.<br/>
|
||||
Let's be honest, there not even enough lines of code to call this a program.<br/>
|
||||
I rather wanted to present the idea behind it, as well as providing a little reference implementation.<br/>
|
||||
So just think of this as a request for comments.<br/>
|
||||
</b>
|
||||
|
||||
<h2>How it works</h2>
|
||||
The basic idea is to implement a decentralized <a href="http://en.wikipedia.org/wiki/Token_passing">token passing mechanism</a>,<br>
|
||||
allowing multiple mcus to share access to a resource like some kind of memory, a sensor or a communication interface of some kind.<br>
|
||||
Each mcu has one of its IO Pins connected to the external interrupt pin e.g. INT0 of the next mcu.<br>
|
||||
The last mcu in this chain has one of its IOs connected to the interrupt pin of the first one.<br>
|
||||
This results in a ring topology as shown below.<br/>
|
||||
<br/>
|
||||
<img src="ringlock_idea.png"/>
|
||||
<br/>
|
||||
When everything is powered up somebody has to have the token and the access initially.<br/>
|
||||
I called this special mcu master.<br/>
|
||||
It does whatever it needs to do with the resource and then pulls his IO-pin (called PYX in the drawing) high for 1us.<br/>
|
||||
Slave 1 will get interrupted because of the rising signal at his INT0.<br/>
|
||||
In his ISR he will check whether the rest of his program has requested access to the resource.<br/>
|
||||
This is done by simply checking a flag. If the flag is not set it will pass the token to slave 2 immediately in his ISR.<br/>
|
||||
Otherwise it will set a flag, signalling the program that it can now access the resource and leave the ISR.<br/>
|
||||
It's now up to the program to work with the shared resource for a while and to pass on the token.<br/>
|
||||
The next mcus will do exactly the same thing and the token will circulate in the ring infinitely.<br/>
|
||||
<br/>
|
||||
At least theory.<br/>
|
||||
In praxis you'll sooner or later lose the token, simply because of murphys law.<br/>
|
||||
Imagine a mcu crashes, there is a power failure or a bad connection.<br/>
|
||||
Having lost the token, the system will get stuck since no one is allowed to access the shared resource.<br/>
|
||||
Every mcu waits for the token, that will never arrive.<br/>
|
||||
That's the point where a time out might come handy.<br/>
|
||||
Using a timer of the master mcu it's easy to implement one.<br/>
|
||||
The timer gets reset every time the master gets the token back from the last mcu in the ring.<br/>
|
||||
If the token doesn't arrive in time, the master assumes that it was lost and pretends to have the token.<br/>
|
||||
The new token will be passed on and everything is hopefully working again.<br>
|
||||
Still there is one pitfall in this approach, the timeout has to be chosen carefully.<br/>
|
||||
If the master sends a new token while another is still on the ring, to mcu will try to work with the resource, <br/>
|
||||
which is in fact the situation we are trying to avoid using lock.<br/>
|
||||
The best idea is to use a timeout that is at least 1,5 times as long, as the longest time a token need back to the master.<br/>
|
||||
<br/>
|
||||
|
||||
<h2>How to use it</h2>
|
||||
There are two ways of getting the source code :<br/>
|
||||
<ol>
|
||||
<li>Get the tarball <a href="#">here</a></li>
|
||||
<li>Clone the hg repository: <b>hg clone <a href="#">hg repo url here</a></b></li>
|
||||
</ol>
|
||||
<br/>
|
||||
Once you got the source, you'll want to adjust the configuration in <i>include/ringlock.h</i>.<br/>
|
||||
The config is documented there and changing it should be pretty straight forward.<br/>
|
||||
<br/>
|
||||
Using the makefile is a bit more complex then the usual <i>make all</i>.<br/>
|
||||
There are some variables that need to be set :<br/>
|
||||
<ul>
|
||||
<li><b>LOCKROLE</b> sets role of the mcu in the ring. Can be master or slave.</li>
|
||||
<li><b>AVRMCU</b> sets the mcu. Can be atmega8 or atmega32. If you want an other mcu add it in <i>include/ringlock.h</i>.</li>
|
||||
<li><b>F_CPU</b> set the frequency of the mcu in Hz.</li>
|
||||
</ul>
|
||||
So if you want to build a slave for an Atmega8 with 8mHz call <i>make ROLE=slave AVRMCU=atmega8 F_CPU=8000000 all</i>.<br/>
|
||||
Currently the source only supports Atmega32 as master or slave and Atmega8 as slave.<br/>
|
||||
This can be changed by extending the configs in <i>include/ringlock.h</i>.<br/>
|
||||
Once you have added a new mcu, it would be nice to send me patch so I can add it to the source.<br/>
|
||||
<br/>
|
||||
Using the ringlock in your source code is simple, it boils down to 4 functions :<br/>
|
||||
<ul>
|
||||
<li>rl_init() sets up timers and ports</li>
|
||||
<li>rl_request_lock() tells the ISR to keep the token</li>
|
||||
<li>rl_have_lock() retuns 1 if the mcu has the lock, else 0</li>
|
||||
<li>rl_release_lock() releases the lock again</li>
|
||||
</ul>
|
||||
|
||||
<h2>Example</h2>
|
||||
Since this was a solution to which I didn't have a Problem I made one up :<br/>
|
||||
One ATmega32 (Master) and one Atmega8 (Slave) share the TXD line of a RS232 connection.<br/>
|
||||
I used the OpenBench LogicSniffer to measure the signals.<br/>
|
||||
<br/>
|
||||
<img src="ringlock_test.png">
|
||||
<br/>
|
||||
<br/>
|
||||
The and gate was in a HCF4081.<br/>
|
||||
If you set the TXD of the passive mcu to high-Z you won't need it, but I wanted the unmixed signals as well.<br/>
|
||||
The program used in this test is bundled with the sourcecode as <i>main.c</i>.<br/>
|
||||
<br/>
|
||||
Here are all the signals in the jawis OLS client:<br/>
|
||||
<a href="test.png"/><img src="test_short.png"></a>
|
||||
<br/>
|
||||
and a photo of my setup :<br/>
|
||||
<img src="photo.jpg"/><br/>
|
||||
<br/>
|
||||
<br/>
|
||||
So that's all so far.<br/>
|
||||
Have fun with this stuff and <i>please</i> don't waste an entire Atmega32 on locks.<br/>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,393 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.2 r9819"
|
||||
sodipodi:docname="ringlock2.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="189.83548"
|
||||
inkscape:cy="578.09184"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="971"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2985"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingx="2mm"
|
||||
units="mm"
|
||||
spacingy="2mm"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.00000007px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="716.28436"
|
||||
y="15.776946"
|
||||
id="text4246"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.44514723,0.89545739,-0.89545739,0.44514723,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
x="716.28436"
|
||||
y="15.776946"
|
||||
id="tspan4254"
|
||||
style="font-size:22.00000007px">Openbench Logicsniffer</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="120.47244"
|
||||
y="194.88187"
|
||||
id="text4309"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4311"
|
||||
x="120.47244"
|
||||
y="194.88187">Master</tspan></text>
|
||||
<g
|
||||
id="g4405">
|
||||
<rect
|
||||
transform="scale(-1,1)"
|
||||
y="204.8681"
|
||||
x="-198.4252"
|
||||
height="280.56494"
|
||||
width="70.86615"
|
||||
id="rect3047-4"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.96083784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817-2"
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
id="tspan3819-4"
|
||||
sodipodi:role="line">MCU0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868-4"
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
id="tspan3870-9"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876-2"
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
id="tspan3878-5"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4399"
|
||||
d="m 198.4252,223.22832 21.25984,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4403"
|
||||
d="m 127.55906,471.25982 -21.25985,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:0;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(127.55905,4.325326e-6)"
|
||||
id="g4405-0">
|
||||
<rect
|
||||
transform="scale(-1,1)"
|
||||
y="204.8681"
|
||||
x="-198.4252"
|
||||
height="280.56494"
|
||||
width="70.86615"
|
||||
id="rect3047-4-1"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.96083784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817-2-2"
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
id="tspan3819-4-2"
|
||||
sodipodi:role="line">MCU1</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868-4-1"
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
id="tspan3870-9-2"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876-2-6"
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
id="tspan3878-5-7"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4399-1"
|
||||
d="m 198.4252,223.22832 21.25984,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4403-0"
|
||||
d="m 127.55906,471.25982 -21.25985,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(255.11811,4.325326e-6)"
|
||||
id="g4405-0-8">
|
||||
<rect
|
||||
transform="scale(-1,1)"
|
||||
y="204.8681"
|
||||
x="-198.4252"
|
||||
height="280.56494"
|
||||
width="70.86615"
|
||||
id="rect3047-4-1-4"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.96083784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817-2-2-1"
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
id="tspan3819-4-2-3"
|
||||
sodipodi:role="line">MCU2</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868-4-1-4"
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
id="tspan3870-9-2-4"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876-2-6-3"
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
id="tspan3878-5-7-9"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4399-1-6"
|
||||
d="m 198.4252,223.22832 21.25984,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4403-0-2"
|
||||
d="m 127.55906,471.25982 -21.25985,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(446.4567,4.325326e-6)"
|
||||
id="g4405-0-8-4">
|
||||
<rect
|
||||
transform="scale(-1,1)"
|
||||
y="204.8681"
|
||||
x="-198.4252"
|
||||
height="280.56494"
|
||||
width="70.86615"
|
||||
id="rect3047-4-1-4-0"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.96083784;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817-2-2-1-7"
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-155.90552"
|
||||
x="308.2677"
|
||||
id="tspan3819-4-2-3-9"
|
||||
sodipodi:role="line">MCUn</tspan><tspan
|
||||
y="-121.97703"
|
||||
x="308.2677"
|
||||
sodipodi:role="line"
|
||||
id="tspan4551" /></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868-4-1-4-0"
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="134.64568"
|
||||
id="tspan3870-9-2-4-9"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876-2-6-3-1"
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22832"
|
||||
x="162.99213"
|
||||
id="tspan3878-5-7-9-0"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4399-1-6-4"
|
||||
d="m 198.4252,223.22832 21.25984,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4403-0-2-2"
|
||||
d="m 127.55906,471.25982 -21.25985,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330709;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3.54330709,42.51968504;marker-start:none;marker-end:none;stroke-dashoffset:0"
|
||||
d="m 474.80315,223.22832 77.95276,248.0315 0,0"
|
||||
id="path4557"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="255.1181"
|
||||
y="194.88187"
|
||||
id="text4919"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4921"
|
||||
x="255.1181"
|
||||
y="194.88187">Slave 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="382.67715"
|
||||
y="194.88187"
|
||||
id="text4919-5"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4921-1"
|
||||
x="382.67715"
|
||||
y="194.88187">Slave 2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="574.01575"
|
||||
y="194.88187"
|
||||
id="text4944"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4946"
|
||||
x="574.01575"
|
||||
y="194.88187">Slave n</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 219.68504,223.22832 14.17323,248.0315 0,0"
|
||||
id="path4948"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 347.24409,223.22832 14.17323,248.0315"
|
||||
id="path4950"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 666.14173,223.22832 0,290.55119 0,0 -559.84252,0 0,-42.51969"
|
||||
id="path4952"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#00f200;stroke-width:7.08661416999999982;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 212.59843,350.78738 14.17322,14.17323 14.17323,-14.17323"
|
||||
id="path4954"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#00f200;stroke-width:7.08661413;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 340.15749,343.70076 14.17322,14.17323 14.17323,-14.17323"
|
||||
id="path4954-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#00f200;stroke-width:7.08661413;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 498.0519,352.36112 19.27093,5.51287 5.51286,-19.27094"
|
||||
id="path4954-8-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#00f200;stroke-width:7.08661413;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 413.47915,502.58821 -16.62876,11.1913 11.19131,16.62875"
|
||||
id="path4954-8-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 18 KiB |
|
@ -0,0 +1,314 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.2 r9819"
|
||||
sodipodi:docname="ringlock.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="259.61935"
|
||||
inkscape:cy="530.41092"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="971"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2985"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true"
|
||||
spacingx="2mm"
|
||||
units="mm"
|
||||
spacingy="2mm"
|
||||
dotted="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g4222">
|
||||
<rect
|
||||
y="201.96848"
|
||||
x="531.49603"
|
||||
height="280.56494"
|
||||
width="67.966515"
|
||||
id="rect3047"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89963078;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817"
|
||||
y="-559.84253"
|
||||
x="279.92123"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-559.84253"
|
||||
x="279.92123"
|
||||
id="tspan3819"
|
||||
sodipodi:role="line">Atmega8</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3866"
|
||||
d="m 496.06299,223.22832 35.43307,0 0,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868"
|
||||
y="223.22832"
|
||||
x="538.5827"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22832"
|
||||
x="538.5827"
|
||||
id="tspan3870"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3872"
|
||||
y="471.25983"
|
||||
x="538.5827"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="538.5827"
|
||||
id="tspan3874"
|
||||
sodipodi:role="line">TXD</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876"
|
||||
y="428.74014"
|
||||
x="538.5827"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="428.74014"
|
||||
x="538.5827"
|
||||
id="tspan3878"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3880"
|
||||
d="m 531.49606,428.74014 -28.34645,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3882"
|
||||
d="m 531.49606,471.25982 -28.34645,0 0,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
id="g4196">
|
||||
<rect
|
||||
transform="scale(-1,1)"
|
||||
y="201.96849"
|
||||
x="-205.51183"
|
||||
height="280.56494"
|
||||
width="67.966515"
|
||||
id="rect3047-4"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.89963078;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3817-2"
|
||||
y="-166.21362"
|
||||
x="258.66141"
|
||||
style="font-size:27.14279366px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="-166.21362"
|
||||
x="258.66141"
|
||||
id="tspan3819-4"
|
||||
sodipodi:role="line">Atmega32</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3866-6"
|
||||
d="m 240.94488,223.22832 -35.43307,0 0,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3868-4"
|
||||
y="223.22833"
|
||||
x="165.91344"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="223.22833"
|
||||
x="165.91344"
|
||||
id="tspan3870-9"
|
||||
sodipodi:role="line">INT0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3872-8"
|
||||
y="471.25983"
|
||||
x="170.07874"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="471.25983"
|
||||
x="170.07874"
|
||||
id="tspan3874-4"
|
||||
sodipodi:role="line">TXD</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text3876-2"
|
||||
y="428.74014"
|
||||
x="170.07874"
|
||||
style="font-size:14px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="428.74014"
|
||||
x="170.07874"
|
||||
id="tspan3878-5"
|
||||
sodipodi:role="line">PYX</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3880-7"
|
||||
d="m 205.51181,428.74014 28.34645,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3882-2"
|
||||
d="m 205.51181,471.25982 28.34645,0 0,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0,1,-1,0,923.84241,-569.98421)"
|
||||
style="display:inline"
|
||||
id="g3196">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccssc"
|
||||
id="path4683"
|
||||
d="m 1126.2834,534.41537 0,28.00972 14.1733,7e-4 c 21.2598,10e-4 21.2598,-28.00866 0,-28.00972 l -14.1733,-7e-4 z"
|
||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path4687"
|
||||
d="m 1154.6299,548.58929 14.1732,-6.8e-4"
|
||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path4695"
|
||||
d="m 1112.1102,541.50267 14.1732,0"
|
||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path4697"
|
||||
d="m 1112.1102,555.67591 14.1732,0"
|
||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 240.94488,223.22832 262.20473,205.51182 0,0"
|
||||
id="path4236"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330709;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 233.85827,428.74014 262.20472,-205.51182 0,0"
|
||||
id="path4238"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 233.85827,471.25982 127.55905,0 7.08662,0 0,70.86614"
|
||||
id="path4240"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 382.67717,542.12596 0,-70.86614 120.47244,0"
|
||||
id="path4242"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="fill:#f00000;fill-opacity:1;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect4244"
|
||||
width="141.73228"
|
||||
height="255.1181"
|
||||
x="297.63779"
|
||||
y="634.25195" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.00000007px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="716.28436"
|
||||
y="15.776946"
|
||||
id="text4246"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="matrix(0.44514723,0.89545739,-0.89545739,0.44514723,0,0)"><tspan
|
||||
sodipodi:role="line"
|
||||
x="716.28436"
|
||||
y="15.776946"
|
||||
id="tspan4254"
|
||||
style="font-size:22.00000007px">Openbench Logicsniffer</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 375.59055,598.81888 0,35.43307"
|
||||
id="path4258"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330708999999988;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 219.68504,428.74014 0,134.64566 99.2126,0 0,70.86615"
|
||||
id="path4262"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.64690256;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
||||
id="path2404"
|
||||
sodipodi:cx="265.89667"
|
||||
sodipodi:cy="92.007843"
|
||||
sodipodi:rx="1.7716535"
|
||||
sodipodi:ry="1.7716535"
|
||||
d="m 267.66832,92.007843 a 1.7716535,1.7716535 0 1 1 -3.54331,0 1.7716535,1.7716535 0 1 1 3.54331,0 z"
|
||||
transform="matrix(1.33866,0,0,1.33866,-136.26019,305.57292)" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:3.54330707;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 517.32284,428.74014 0,134.64566 -99.2126,0 0,70.86615"
|
||||
id="path4262-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.64690256;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
||||
id="path2404-7"
|
||||
sodipodi:cx="265.89667"
|
||||
sodipodi:cy="92.007843"
|
||||
sodipodi:rx="1.7716535"
|
||||
sodipodi:ry="1.7716535"
|
||||
d="m 267.66832,92.007843 a 1.7716535,1.7716535 0 1 1 -3.54331,0 1.7716535,1.7716535 0 1 1 3.54331,0 z"
|
||||
transform="matrix(1.33866,0,0,1.33866,161.04181,305.44665)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,670 @@
|
|||
;Size: 662
|
||||
;Rate: 20000000
|
||||
;Channels: 32
|
||||
;EnabledChannels: 255
|
||||
;TriggerPosition: 7208
|
||||
;Compressed: true
|
||||
;AbsoluteLength: 1223475
|
||||
;CursorEnabled: false
|
||||
00000010@0
|
||||
00000018@7209
|
||||
0000001c@7210
|
||||
00000014@9240
|
||||
00000010@9241
|
||||
00000018@11270
|
||||
0000001c@11271
|
||||
0000001e@18207
|
||||
0000001c@18226
|
||||
0000000c@18539
|
||||
00000008@18540
|
||||
00000018@20568
|
||||
0000001c@20569
|
||||
0000000c@22598
|
||||
00000008@22599
|
||||
0000001c@32747
|
||||
0000000c@34776
|
||||
00000008@34777
|
||||
00000018@36806
|
||||
0000001c@36807
|
||||
0000001d@43740
|
||||
0000001c@43759
|
||||
00000014@43890
|
||||
00000010@43891
|
||||
00000018@47952
|
||||
0000001c@47953
|
||||
00000014@49983
|
||||
00000010@49984
|
||||
00000018@58106
|
||||
0000001c@58107
|
||||
00000014@60137
|
||||
00000010@60138
|
||||
00000018@62168
|
||||
0000001c@62169
|
||||
0000001e@69107
|
||||
0000001c@69126
|
||||
0000000c@69410
|
||||
00000008@69411
|
||||
00000018@71440
|
||||
0000001c@71441
|
||||
0000000c@73470
|
||||
00000008@73471
|
||||
00000018@83618
|
||||
0000001c@83619
|
||||
0000000c@85648
|
||||
00000008@85649
|
||||
00000018@87677
|
||||
0000001c@87678
|
||||
0000001d@94616
|
||||
0000001c@94635
|
||||
00000014@94788
|
||||
00000010@94789
|
||||
00000018@98850
|
||||
0000001c@98851
|
||||
00000014@100881
|
||||
00000010@100882
|
||||
00000018@109005
|
||||
0000001c@109006
|
||||
00000014@111036
|
||||
00000010@111037
|
||||
00000018@113067
|
||||
0000001c@113068
|
||||
0000001e@120006
|
||||
0000001c@120026
|
||||
0000000c@120282
|
||||
00000008@120283
|
||||
00000018@122312
|
||||
0000001c@122313
|
||||
0000000c@124341
|
||||
00000008@124343
|
||||
00000018@134490
|
||||
0000001c@134491
|
||||
0000000c@136519
|
||||
00000008@136521
|
||||
00000018@138549
|
||||
0000001c@138550
|
||||
0000001d@145483
|
||||
0000001c@145502
|
||||
00000014@145689
|
||||
00000010@145690
|
||||
00000018@149751
|
||||
0000001c@149752
|
||||
00000014@151782
|
||||
00000010@151783
|
||||
00000018@159907
|
||||
0000001c@159908
|
||||
00000014@161938
|
||||
00000010@161939
|
||||
00000018@163969
|
||||
0000001c@163970
|
||||
0000001e@170908
|
||||
0000001c@170928
|
||||
0000000c@171281
|
||||
00000008@171282
|
||||
00000018@173310
|
||||
0000001c@173311
|
||||
0000000c@175340
|
||||
00000008@175341
|
||||
00000018@185488
|
||||
0000001c@185489
|
||||
0000000c@187518
|
||||
00000008@187519
|
||||
00000018@189548
|
||||
0000001c@189549
|
||||
0000001d@196481
|
||||
0000001c@196501
|
||||
00000014@196718
|
||||
00000010@196719
|
||||
00000018@200780
|
||||
0000001c@200781
|
||||
00000014@202811
|
||||
00000010@202812
|
||||
00000018@210935
|
||||
0000001c@210936
|
||||
00000014@212966
|
||||
00000010@212967
|
||||
00000018@214997
|
||||
0000001c@214998
|
||||
0000001e@221936
|
||||
0000001c@221956
|
||||
0000000c@222279
|
||||
00000008@222280
|
||||
00000018@224309
|
||||
0000001c@224310
|
||||
0000000c@226338
|
||||
00000008@226340
|
||||
00000018@236487
|
||||
0000001c@236488
|
||||
0000000c@238516
|
||||
00000008@238518
|
||||
00000018@240546
|
||||
0000001c@240547
|
||||
0000001d@247480
|
||||
0000001c@247499
|
||||
00000014@247618
|
||||
00000010@247619
|
||||
00000018@251680
|
||||
0000001c@251681
|
||||
00000014@253711
|
||||
00000010@253712
|
||||
00000018@261835
|
||||
0000001c@261836
|
||||
00000014@263865
|
||||
00000010@263867
|
||||
00000018@265896
|
||||
0000001c@265897
|
||||
0000001e@272836
|
||||
0000001c@272855
|
||||
0000000c@273151
|
||||
00000008@273152
|
||||
00000018@275180
|
||||
0000001c@275181
|
||||
0000000c@277210
|
||||
00000008@277211
|
||||
00000018@287358
|
||||
0000001c@287359
|
||||
0000000c@289388
|
||||
00000008@289389
|
||||
00000018@291417
|
||||
0000001c@291418
|
||||
0000001d@298351
|
||||
0000001c@298371
|
||||
00000014@298517
|
||||
00000010@298518
|
||||
00000018@302579
|
||||
0000001c@302580
|
||||
00000014@304610
|
||||
00000010@304611
|
||||
00000018@312734
|
||||
0000001c@312735
|
||||
00000014@314765
|
||||
00000010@314766
|
||||
00000018@316796
|
||||
0000001c@316797
|
||||
0000001e@323732
|
||||
0000001c@323752
|
||||
0000000c@324022
|
||||
00000008@324023
|
||||
00000018@326052
|
||||
0000001c@326053
|
||||
0000000c@328082
|
||||
00000008@328083
|
||||
00000018@338230
|
||||
0000001c@338231
|
||||
0000000c@340259
|
||||
00000008@340260
|
||||
00000018@342289
|
||||
0000001c@342290
|
||||
0000001d@349225
|
||||
0000001c@349245
|
||||
00000014@349416
|
||||
00000010@349417
|
||||
0000001c@353478
|
||||
00000014@355508
|
||||
00000010@355510
|
||||
00000018@363632
|
||||
0000001c@363633
|
||||
00000014@365663
|
||||
00000010@365664
|
||||
00000018@367694
|
||||
0000001c@367695
|
||||
0000001e@374633
|
||||
0000001c@374652
|
||||
0000000c@374893
|
||||
00000008@374895
|
||||
00000018@376923
|
||||
0000001c@376924
|
||||
0000000c@378953
|
||||
00000008@378954
|
||||
00000018@389101
|
||||
0000001c@389102
|
||||
0000000c@391131
|
||||
00000008@391132
|
||||
0000001c@393161
|
||||
0000001d@400094
|
||||
0000001c@400114
|
||||
00000014@400314
|
||||
00000010@400315
|
||||
00000018@404376
|
||||
0000001c@404377
|
||||
00000014@406406
|
||||
00000010@406408
|
||||
00000018@414530
|
||||
0000001c@414531
|
||||
00000014@416561
|
||||
00000010@416562
|
||||
00000018@418592
|
||||
0000001c@418593
|
||||
0000001e@425533
|
||||
0000001c@425553
|
||||
0000000c@425892
|
||||
00000008@425893
|
||||
00000018@427922
|
||||
0000001c@427923
|
||||
0000000c@429951
|
||||
00000008@429952
|
||||
0000001c@440100
|
||||
0000000c@442129
|
||||
00000008@442130
|
||||
00000018@444159
|
||||
0000001c@444160
|
||||
0000001d@451098
|
||||
0000001c@451117
|
||||
00000014@451339
|
||||
00000010@451340
|
||||
00000018@455401
|
||||
0000001c@455402
|
||||
00000014@457431
|
||||
00000010@457433
|
||||
00000018@465555
|
||||
0000001c@465556
|
||||
00000014@467586
|
||||
00000010@467587
|
||||
00000018@469617
|
||||
0000001c@469618
|
||||
0000001e@476558
|
||||
0000001c@476578
|
||||
0000000c@476890
|
||||
00000008@476891
|
||||
00000018@478920
|
||||
0000001c@478921
|
||||
0000000c@480950
|
||||
00000008@480951
|
||||
00000018@491098
|
||||
0000001c@491099
|
||||
0000000c@493128
|
||||
00000008@493129
|
||||
00000018@495157
|
||||
0000001c@495158
|
||||
0000001d@502096
|
||||
0000001c@502115
|
||||
00000014@502237
|
||||
00000010@502238
|
||||
00000018@506299
|
||||
0000001c@506300
|
||||
00000014@508330
|
||||
00000010@508331
|
||||
00000018@516454
|
||||
0000001c@516455
|
||||
00000014@518485
|
||||
00000010@518486
|
||||
00000018@520516
|
||||
0000001c@520517
|
||||
0000001e@527453
|
||||
0000001c@527473
|
||||
0000000c@527762
|
||||
00000008@527763
|
||||
00000018@529791
|
||||
0000001c@529792
|
||||
0000000c@531821
|
||||
00000008@531822
|
||||
00000018@541969
|
||||
0000001c@541970
|
||||
0000000c@543999
|
||||
00000008@544000
|
||||
0000001c@546029
|
||||
0000001d@552967
|
||||
0000001c@552987
|
||||
00000014@553138
|
||||
00000010@553139
|
||||
00000018@557200
|
||||
0000001c@557201
|
||||
00000014@559231
|
||||
00000010@559232
|
||||
00000018@567355
|
||||
0000001c@567356
|
||||
00000014@569386
|
||||
00000010@569387
|
||||
00000018@571417
|
||||
0000001c@571418
|
||||
0000001e@578354
|
||||
0000001c@578374
|
||||
0000000c@578633
|
||||
00000008@578634
|
||||
0000001c@580663
|
||||
0000000c@582692
|
||||
00000008@582693
|
||||
00000018@592840
|
||||
0000001c@592841
|
||||
0000000c@594870
|
||||
00000008@594871
|
||||
00000018@596900
|
||||
0000001c@596901
|
||||
0000001d@603833
|
||||
0000001c@603853
|
||||
00000014@604039
|
||||
00000010@604040
|
||||
00000018@608101
|
||||
0000001c@608102
|
||||
00000014@610131
|
||||
00000010@610133
|
||||
0000001c@618256
|
||||
00000014@620286
|
||||
00000010@620288
|
||||
00000018@622317
|
||||
0000001c@622318
|
||||
0000001e@629259
|
||||
0000001c@629279
|
||||
0000000c@629631
|
||||
00000008@629632
|
||||
00000018@631661
|
||||
0000001c@631662
|
||||
0000000c@633691
|
||||
00000008@633692
|
||||
00000018@643839
|
||||
0000001c@643840
|
||||
0000000c@645868
|
||||
00000008@645869
|
||||
00000018@647898
|
||||
0000001c@647899
|
||||
0000001d@654831
|
||||
0000001c@654851
|
||||
00000014@655065
|
||||
00000010@655066
|
||||
00000018@659126
|
||||
0000001c@659127
|
||||
00000014@661157
|
||||
00000010@661158
|
||||
00000018@669281
|
||||
0000001c@669282
|
||||
00000014@671312
|
||||
00000010@671313
|
||||
00000018@673343
|
||||
0000001c@673344
|
||||
0000001e@680284
|
||||
0000001c@680304
|
||||
0000000c@680629
|
||||
00000008@680630
|
||||
0000001c@682659
|
||||
0000000c@684688
|
||||
00000008@684689
|
||||
0000001c@694837
|
||||
0000000c@696866
|
||||
00000008@696867
|
||||
00000018@698896
|
||||
0000001c@698897
|
||||
0000001d@705830
|
||||
0000001c@705849
|
||||
00000014@705963
|
||||
00000010@705964
|
||||
00000018@710025
|
||||
0000001c@710026
|
||||
00000014@712056
|
||||
00000010@712057
|
||||
00000018@720180
|
||||
0000001c@720181
|
||||
00000014@722210
|
||||
00000010@722212
|
||||
00000018@724241
|
||||
0000001c@724242
|
||||
0000001e@731183
|
||||
0000001c@731202
|
||||
0000000c@731501
|
||||
00000008@731502
|
||||
00000018@733530
|
||||
0000001c@733531
|
||||
0000000c@735560
|
||||
00000008@735561
|
||||
00000018@745708
|
||||
0000001c@745709
|
||||
0000000c@747738
|
||||
00000008@747739
|
||||
00000018@749767
|
||||
0000001c@749768
|
||||
0000001d@756704
|
||||
0000001c@756723
|
||||
00000014@756861
|
||||
00000010@756862
|
||||
00000018@760923
|
||||
0000001c@760924
|
||||
00000014@762954
|
||||
00000010@762955
|
||||
00000018@771078
|
||||
0000001c@771079
|
||||
00000014@773108
|
||||
00000010@773110
|
||||
00000018@775139
|
||||
0000001c@775140
|
||||
0000001e@782078
|
||||
0000001c@782098
|
||||
0000000c@782372
|
||||
00000008@782373
|
||||
00000018@784401
|
||||
0000001c@784402
|
||||
0000000c@786431
|
||||
00000008@786432
|
||||
00000018@796579
|
||||
0000001c@796580
|
||||
0000000c@798609
|
||||
00000008@798610
|
||||
00000018@800639
|
||||
0000001c@800640
|
||||
0000001d@807573
|
||||
0000001c@807592
|
||||
00000014@807759
|
||||
00000010@807760
|
||||
0000001c@811821
|
||||
00000014@813851
|
||||
00000010@813853
|
||||
00000018@821975
|
||||
0000001c@821976
|
||||
00000014@824006
|
||||
00000010@824007
|
||||
00000018@826037
|
||||
0000001c@826038
|
||||
0000001e@832978
|
||||
0000001c@832998
|
||||
0000000c@833243
|
||||
00000008@833245
|
||||
00000018@835273
|
||||
0000001c@835274
|
||||
0000000c@837303
|
||||
00000008@837304
|
||||
00000018@847451
|
||||
0000001c@847452
|
||||
0000000c@849481
|
||||
00000008@849482
|
||||
00000018@851510
|
||||
0000001c@851511
|
||||
0000001d@858449
|
||||
0000001c@858468
|
||||
00000014@858657
|
||||
00000010@858658
|
||||
00000018@862719
|
||||
0000001c@862720
|
||||
00000014@864749
|
||||
00000010@864751
|
||||
00000018@872873
|
||||
0000001c@872874
|
||||
00000014@874904
|
||||
00000010@874905
|
||||
00000018@876935
|
||||
0000001c@876936
|
||||
0000001e@883876
|
||||
0000001c@883896
|
||||
0000000c@884242
|
||||
00000008@884243
|
||||
00000018@886271
|
||||
0000001c@886272
|
||||
0000000c@888301
|
||||
00000008@888302
|
||||
00000018@898449
|
||||
0000001c@898450
|
||||
0000000c@900479
|
||||
00000008@900480
|
||||
00000018@902508
|
||||
0000001c@902509
|
||||
0000001d@909447
|
||||
0000001c@909467
|
||||
00000014@909682
|
||||
00000010@909683
|
||||
00000018@913744
|
||||
0000001c@913745
|
||||
00000014@915775
|
||||
00000010@915776
|
||||
00000018@923899
|
||||
0000001c@923900
|
||||
00000014@925930
|
||||
00000010@925931
|
||||
00000018@927961
|
||||
0000001c@927962
|
||||
0000001e@934903
|
||||
0000001c@934923
|
||||
0000000c@935240
|
||||
00000008@935241
|
||||
00000018@937269
|
||||
0000001c@937270
|
||||
0000000c@939299
|
||||
00000008@939300
|
||||
00000018@949447
|
||||
0000001c@949448
|
||||
0000000c@951477
|
||||
00000008@951478
|
||||
00000018@953507
|
||||
0000001c@953508
|
||||
0000001d@960445
|
||||
0000001c@960465
|
||||
00000014@960583
|
||||
00000010@960584
|
||||
00000018@964645
|
||||
0000001c@964646
|
||||
00000014@966676
|
||||
00000010@966677
|
||||
00000018@974800
|
||||
0000001c@974801
|
||||
00000014@976831
|
||||
00000010@976832
|
||||
00000018@978862
|
||||
0000001c@978863
|
||||
0000001e@985803
|
||||
0000001c@985823
|
||||
0000000c@986111
|
||||
00000008@986112
|
||||
00000018@988141
|
||||
0000001c@988142
|
||||
0000000c@990171
|
||||
00000008@990172
|
||||
00000018@1000319
|
||||
0000001c@1000320
|
||||
0000000c@1002348
|
||||
00000008@1002350
|
||||
00000018@1004378
|
||||
0000001c@1004379
|
||||
0000001d@1011317
|
||||
0000001c@1011336
|
||||
00000014@1011483
|
||||
00000010@1011484
|
||||
00000018@1015545
|
||||
0000001c@1015546
|
||||
00000014@1017576
|
||||
00000010@1017577
|
||||
00000018@1025700
|
||||
0000001c@1025701
|
||||
00000014@1027731
|
||||
00000010@1027732
|
||||
00000018@1029762
|
||||
0000001c@1029763
|
||||
0000001e@1036703
|
||||
0000001c@1036723
|
||||
0000000c@1036982
|
||||
00000008@1036983
|
||||
00000018@1039012
|
||||
0000001c@1039013
|
||||
0000000c@1041042
|
||||
00000008@1041043
|
||||
00000018@1051190
|
||||
0000001c@1051191
|
||||
0000000c@1053219
|
||||
00000008@1053221
|
||||
00000018@1055249
|
||||
0000001c@1055250
|
||||
0000001d@1062183
|
||||
0000001c@1062202
|
||||
00000014@1062383
|
||||
00000010@1062384
|
||||
00000018@1066445
|
||||
0000001c@1066446
|
||||
00000014@1068476
|
||||
00000010@1068477
|
||||
00000018@1076600
|
||||
0000001c@1076601
|
||||
00000014@1078631
|
||||
00000010@1078632
|
||||
0000001c@1080662
|
||||
0000001e@1087601
|
||||
0000001c@1087620
|
||||
0000000c@1087981
|
||||
00000008@1087982
|
||||
00000018@1090010
|
||||
0000001c@1090011
|
||||
0000000c@1092040
|
||||
00000008@1092041
|
||||
00000018@1102188
|
||||
0000001c@1102189
|
||||
0000000c@1104218
|
||||
00000008@1104219
|
||||
00000018@1106247
|
||||
0000001c@1106248
|
||||
0000001d@1113181
|
||||
0000001c@1113201
|
||||
00000014@1113408
|
||||
00000010@1113410
|
||||
00000018@1117470
|
||||
0000001c@1117471
|
||||
00000014@1119501
|
||||
00000010@1119502
|
||||
00000018@1127625
|
||||
0000001c@1127626
|
||||
00000014@1129655
|
||||
00000010@1129657
|
||||
00000018@1131686
|
||||
0000001c@1131687
|
||||
0000001e@1138623
|
||||
0000001c@1138642
|
||||
0000000c@1138979
|
||||
00000008@1138980
|
||||
00000018@1141008
|
||||
0000001c@1141009
|
||||
0000000c@1143038
|
||||
00000008@1143039
|
||||
00000018@1153186
|
||||
0000001c@1153187
|
||||
0000000c@1155216
|
||||
00000008@1155217
|
||||
00000018@1157245
|
||||
0000001c@1157246
|
||||
0000001d@1164182
|
||||
0000001c@1164201
|
||||
00000014@1164306
|
||||
00000010@1164307
|
||||
00000018@1168368
|
||||
0000001c@1168369
|
||||
00000014@1170399
|
||||
00000010@1170400
|
||||
00000018@1178522
|
||||
0000001c@1178523
|
||||
00000014@1180553
|
||||
00000010@1180554
|
||||
00000018@1182584
|
||||
0000001c@1182585
|
||||
0000001e@1189525
|
||||
0000001c@1189545
|
||||
0000000c@1189850
|
||||
00000008@1189852
|
||||
00000018@1191880
|
||||
0000001c@1191881
|
||||
0000000c@1193910
|
||||
00000008@1193911
|
||||
00000018@1204058
|
||||
0000001c@1204059
|
||||
0000000c@1206088
|
||||
00000008@1206089
|
||||
00000018@1208118
|
||||
0000001c@1208119
|
||||
0000001d@1215056
|
||||
0000001c@1215076
|
||||
00000014@1215204
|
||||
00000010@1215205
|
||||
00000018@1219266
|
||||
0000001c@1219267
|
||||
00000014@1221296
|
||||
00000010@1221298
|
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 6.5 KiB |