urtware / doc / statediagrams / node / _main.svg @ 2934c7a4
History | View | Annotate | Download (15.132 KB)
1 | 35c9457f | Thomas Schöpping | <?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1039px" preserveAspectRatio="none" style="width:508px;height:1039px;" version="1.1" viewBox="0 0 508 1039" width="508px" zoomAndPan="magnify"><defs><filter height="300%" id="fi9az5e5ckvfv" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="208.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="220.25" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="256.25" y="68.6143"/><ellipse cx="267" cy="82.8594" fill="#000000" filter="url(#fi9az5e5ckvfv)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="352.1094" style="stroke: #000000; stroke-width: 2.0;" width="424" x="39.5" y="103.6611"/><path d="M89.5,104.6611 L89.5,112.958 L79.5,122.958 L39.5,122.958 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="42.5" y="117.6563">setup</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="188.5" y="139.958"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="198.5" y="161.0967">register to core event</text><path d="M49.5,198.3447 L49.5,223.4775 A0,0 0 0 0 49.5,223.4775 L164.5,223.4775 A0,0 0 0 0 164.5,223.4775 L164.5,216.3447 L184.5,210.9111 L164.5,208.3447 L164.5,208.3447 L154.5,198.3447 L49.5,198.3447 A0,0 0 0 0 49.5,198.3447 " fill="#FBFB77" filter="url(#fi9az5e5ckvfv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M154.5,198.3447 L154.5,208.3447 L164.5,208.3447 L154.5,198.3447 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="55.5" y="215.4116">must not loop!</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="184.5" y="193.9268"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="194.5" y="215.0654">execute setup callback</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="373" x="80.5" y="247.8955"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="353" x="90.5" y="269.0342">check returned event mask not to define the core event</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="117.5" y="301.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="279" x="127.5" y="323.0029">suspend all child threads (if any, recursively)</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="327" x="103.5" y="355.833"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="113.5" y="376.9717">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="252.5" y="376.9717">urtCoreSynchronizeNdes()</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="123.5" y="409.8018"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="133.5" y="430.9404">resume all child threads (if any, recusively)</text><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="375.3159" style="stroke: #000000; stroke-width: 2.0;" width="487.5" x="10" y="466.5723"/><path d="M50,467.5723 L50,475.8691 L40,485.8691 L10,485.8691 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="13" y="480.5674">loop</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="201.5" y="558.5796"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="211.5" y="579.7183">wait for any event</text><path d="M54,665.3687 L54,690.5015 A0,0 0 0 0 54,690.5015 L169,690.5015 A0,0 0 0 0 169,690.5015 L169,683.3687 L189,677.9351 L169,675.3687 L169,675.3687 L159,665.3687 L54,665.3687 A0,0 0 0 0 54,665.3687 " fill="#FBFB77" filter="url(#fi9az5e5ckvfv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M159,665.3687 L159,675.3687 L169,675.3687 L159,665.3687 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="60" y="682.4355">must not loop!</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="189" y="660.9507"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="199" y="682.0894">execute loop callback</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="373" x="80.5" y="729.9194"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="353" x="90.5" y="751.0581">check returned event mask not to define the core event</text><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="204,612.5483,330,612.5483,342,624.5483,330,636.5483,204,636.5483,192,624.5483,204,612.5483" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="271" y="646.7588">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="204" y="628.3564">Was not a core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="342" y="621.9541">no</text><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="267,783.8882,279,795.8882,267,807.8882,255,795.8882,267,783.8882" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="199,502.8691,335,502.8691,347,514.8691,335,526.8691,199,526.8691,187,514.8691,199,502.8691" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="271" y="537.0796">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="199" y="518.6772">Termination requested?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="167" y="512.2749">yes</text><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="136.2344" style="stroke: #000000; stroke-width: 2.0;" width="208" x="163" y="852.6899"/><path d="M210,853.6899 L210,861.9868 L200,871.9868 L163,871.9868 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="166" y="866.6851">outro</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="173" y="888.9868"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="183" y="910.1255">unregister from core event</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="203.5" y="942.9556"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="213.5" y="964.0942">terminate thread</text><ellipse cx="267" cy="1018.9243" fill="none" filter="url(#fi9az5e5ckvfv)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="267.5" cy="1019.4243" fill="#000000" filter="url(#fi9az5e5ckvfv)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="173.9268" y2="193.9268"/><polygon fill="#A80036" points="263,183.9268,267,193.9268,271,183.9268,267,187.9268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="227.8955" y2="247.8955"/><polygon fill="#A80036" points="263,237.8955,267,247.8955,271,237.8955,267,241.8955" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="281.8643" y2="301.8643"/><polygon fill="#A80036" points="263,291.8643,267,301.8643,271,291.8643,267,295.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="335.833" y2="355.833"/><polygon fill="#A80036" points="263,345.833,267,355.833,271,345.833,267,349.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="389.8018" y2="409.8018"/><polygon fill="#A80036" points="263,399.8018,267,409.8018,271,399.8018,267,403.8018" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="92.8594" y2="139.958"/><polygon fill="#A80036" points="263,129.958,267,139.958,271,129.958,267,133.958" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="694.9194" y2="729.9194"/><polygon fill="#A80036" points="263,719.9194,267,729.9194,271,719.9194,267,723.9194" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="636.5483" y2="660.9507"/><polygon fill="#A80036" points="263,650.9507,267,660.9507,271,650.9507,267,654.9507" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342" x2="463.5" y1="624.5483" y2="624.5483"/><polygon fill="#A80036" points="459.5,702.4194,463.5,712.4194,467.5,702.4194,463.5,706.4194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="463.5" x2="463.5" y1="624.5483" y2="795.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="463.5" x2="279" y1="795.8882" y2="795.8882"/><polygon fill="#A80036" points="289,791.8882,279,795.8882,289,799.8882,285,795.8882" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="763.8882" y2="783.8882"/><polygon fill="#A80036" points="263,773.8882,267,783.8882,271,773.8882,267,777.8882" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="592.5483" y2="612.5483"/><polygon fill="#A80036" points="263,602.5483,267,612.5483,271,602.5483,267,606.5483" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="526.8691" y2="558.5796"/><polygon fill="#A80036" points="263,548.5796,267,558.5796,271,548.5796,267,552.5796" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="807.8882" y2="817.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="481.5" y1="817.8882" y2="817.8882"/><polygon fill="#A80036" points="477.5,669.5327,481.5,659.5327,485.5,669.5327,481.5,665.5327" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="481.5" x2="481.5" y1="514.8691" y2="817.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="481.5" x2="347" y1="514.8691" y2="514.8691"/><polygon fill="#A80036" points="357,510.8691,347,514.8691,357,518.8691,353,514.8691" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="187" x2="32" y1="514.8691" y2="514.8691"/><polygon fill="#A80036" points="28,655.5327,32,665.5327,36,655.5327,32,659.5327" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="32" y1="514.8691" y2="829.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="267" y1="829.8882" y2="829.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="829.8882" y2="888.9868"/><polygon fill="#A80036" points="263,878.9868,267,888.9868,271,878.9868,267,882.9868" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="443.7705" y2="502.8691"/><polygon fill="#A80036" points="263,492.8691,267,502.8691,271,492.8691,267,496.8691" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="922.9556" y2="942.9556"/><polygon fill="#A80036" points="263,932.9556,267,942.9556,271,932.9556,267,936.9556" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="976.9243" y2="1008.9243"/><polygon fill="#A80036" points="263,998.9243,267,1008.9243,271,998.9243,267,1002.9243" style="stroke: #A80036; stroke-width: 1.0;"/><!-- |
---|---|---|---|
2 | @startuml |
||
3 | |||
4 | title **µRtWare**\n_main()\n |
||
5 | |||
6 | |||
7 | |||
8 | start |
||
9 | partition "setup" { |
||
10 | :register to core event; |
||
11 | :execute setup callback; |
||
12 | note |
||
13 | must not loop! |
||
14 | endnote |
||
15 | :check returned event mask not to define the core event; |
||
16 | :suspend all child threads (if any, recursively); |
||
17 | :synchronize by calling ""urtCoreSynchronizeNdes()""; |
||
18 | :resume all child threads (if any, recusively); |
||
19 | } |
||
20 | partition "loop" { |
||
21 | while (Termination requested?) is (no) |
||
22 | :wait for any event; |
||
23 | if (Was not a core event?) then (yes) |
||
24 | :execute loop callback; |
||
25 | note |
||
26 | must not loop! |
||
27 | endnote |
||
28 | :check returned event mask not to define the core event; |
||
29 | else (no) |
||
30 | endif |
||
31 | endwhile (yes) |
||
32 | } |
||
33 | partition "outro" { |
||
34 | :unregister from core event; |
||
35 | :terminate thread; |
||
36 | } |
||
37 | stop |
||
38 | |||
39 | @enduml |
||
40 | |||
41 | PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018) |
||
42 | (GPL source distribution) |
||
43 | Java Runtime: OpenJDK Runtime Environment |
||
44 | JVM: OpenJDK 64-Bit Server VM |
||
45 | Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13 |
||
46 | Operating System: Linux |
||
47 | OS Version: 4.15.0-36-generic |
||
48 | Default Encoding: UTF-8 |
||
49 | Language: en |
||
50 | Country: US |
||
51 | --></g></svg> |