Revision e87bd7c7 doc/activitydiagrams/node/_main.svg

View differences:

doc/activitydiagrams/node/_main.svg
1
<?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="231px" preserveAspectRatio="none" style="width:347px;height:231px;" version="1.1" viewBox="0 0 347 231" width="347px" zoomAndPan="magnify"><defs><filter height="300%" id="f26rqh0ndbjfe" 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="128" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="139.5" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="175.5" y="68.6143"/><path d="M10,72.8594 L10,138.2578 L335,138.2578 L335,82.8594 L325,72.8594 L10,72.8594 " fill="#FBFB77" filter="url(#f26rqh0ndbjfe)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M325,72.8594 L325,82.8594 L335,82.8594 L325,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="133.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="137.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="137.5" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="166.5" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="211.5" x2="335" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="304" x="16" y="105.0591">Optional Argument to the thread main function.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="335" y1="113.125" y2="113.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="335" y1="115.125" y2="115.125"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="10" x2="127" y1="125.6914" y2="125.6914"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="129.6919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="131" y="129.6919">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="180" y="129.6919">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="218" x2="335" y1="125.6914" y2="125.6914"/><ellipse cx="172.5" cy="168.2578" fill="#000000" filter="url(#f26rqh0ndbjfe)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="172.5" cy="209.2578" fill="#FFFFFF" filter="url(#f26rqh0ndbjfe)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="172.5" cy="209.2578" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172.5" x2="172.5" y1="138.2578" y2="158.2578"/><polygon fill="#A80036" points="168.5,148.2578,172.5,158.2578,176.5,148.2578,172.5,152.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172.5" x2="172.5" y1="178.2578" y2="198.2578"/><polygon fill="#A80036" points="168.5,188.2578,172.5,198.2578,176.5,188.2578,172.5,192.2578" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a5c7c5c139192c185c6c2afaa3cf1663]
1
<?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="1630px" preserveAspectRatio="none" style="width:821px;height:1630px;" version="1.1" viewBox="0 0 821 1630" width="821px" zoomAndPan="magnify"><defs><filter height="300%" id="f18z385qfrf5hk" 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="365" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="376.5" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="412.5" y="68.6143"/><path d="M219,72.8594 L219,153.3906 L761,153.3906 L761,82.8594 L751,72.8594 L219,72.8594 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M751,72.8594 L751,82.8594 L761,82.8594 L751,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="451" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="455" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="25" x="455" y="89.4263">arg</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="41" x="484" y="89.4263">: void*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="529" x2="761" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="225" y="105.0591">Optional Argument to the thread main function (see</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="561" y="105.0591">urt_osThreadFunction_t</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="737" y="105.0591">).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="239" x="225" y="120.1919">This functions expects no arguments.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="761" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="219" x2="444.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="448.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="448.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="497.5" y="144.8247">: void</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="535.5" x2="761" y1="140.8242" y2="140.8242"/><ellipse cx="490" cy="183.3906" fill="#000000" filter="url(#f18z385qfrf5hk)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="600.9141" style="stroke: #000000; stroke-width: 2.0;" width="800" x="10" y="204.1924"/><path d="M60,205.1924 L60,213.4893 L50,223.4893 L10,223.4893 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="13" y="218.1875">setup</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="411.5" y="240.4893"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="421.5" y="261.6279">register to core event</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="402,294.458,578,294.458,590,306.458,578,318.458,402,318.458,390,306.458,402,294.458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="402" y="310.2661">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="445" y="310.2661">setupcallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="540" y="310.2661">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="370" y="303.8638">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="590" y="303.8638">no</text><path d="M30,332.876 L30,358.0088 A0,0 0 0 0 30,358.0088 L201,358.0088 A0,0 0 0 0 201,358.0088 L201,350.876 L221,345.4424 L201,342.876 L201,342.876 L191,332.876 L30,332.876 A0,0 0 0 0 30,332.876 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M191,332.876 L191,342.876 L201,342.876 L191,332.876 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="36" y="349.9429">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="221" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="231" y="349.5967">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="285" y="349.5967">setupcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="169" y="430.8291"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="179" y="451.9678">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="204" y="451.9678">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="124,382.4268,497,382.4268,509,394.4268,497,406.4268,124,406.4268,112,394.4268,124,382.4268" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="314.5" y="416.6372">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="124" y="398.2349">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="264" y="398.2349">setupcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="373" y="398.2349">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="509" y="391.8325">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="310.5,484.7979,322.5,496.7979,310.5,508.7979,298.5,496.7979,310.5,484.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="541" y="328.458"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="551" y="349.5967">act as if</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="605" y="349.5967">stupcallback</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="693" y="349.5967">returned 0xF..F</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,514.7979,502,526.7979,490,538.7979,478,526.7979,490,514.7979" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="361" y="607.2002"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="371" y="628.3389">suspend all child threads (recursively)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="341" x="319.5" y="661.1689"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="329.5" y="682.3076">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="182" x="468.5" y="682.3076">urtCoreSynchronizeNodes(1)</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="364.5" y="715.1377"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="374.5" y="736.2764">resume all child threads (recursively)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="399,558.7979,581,558.7979,593,570.7979,581,582.7979,399,582.7979,387,570.7979,399,558.7979" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="593.0083">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="399" y="574.606">Core status is</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="484" y="574.606">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="6" x="575" y="574.606">?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="593" y="568.2036">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,769.1064,502,781.1064,490,793.1064,478,781.1064,490,769.1064" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="467.7183" style="stroke: #000000; stroke-width: 2.0;" width="581" x="169" y="815.9082"/><path d="M209,816.9082 L209,825.2051 L199,835.2051 L169,835.2051 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="172" y="829.9033">loop</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="370" y="907.9155"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="380" y="929.0542">Wait for a specified or a core event</text><path d="M213,1014.7046 L213,1039.8374 A0,0 0 0 0 213,1039.8374 L384,1039.8374 A0,0 0 0 0 384,1039.8374 L384,1032.7046 L404,1027.271 L384,1024.7046 L384,1024.7046 L374,1014.7046 L213,1014.7046 A0,0 0 0 0 213,1014.7046 " fill="#FBFB77" filter="url(#f18z385qfrf5hk)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M374,1014.7046 L374,1024.7046 L384,1024.7046 L374,1014.7046 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="219" y="1031.7715">Callback must not loop.</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="404" y="1010.2866"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="414" y="1031.4253">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="98" x="468" y="1031.4253">loopcallback()</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="348.5" y="1127.6577"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="358.5" y="1148.7964">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="383.5" y="1148.7964">urtCoreStopNodes(URT_STATUS_ERROR)</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="307,1079.2554,673,1079.2554,685,1091.2554,673,1103.2554,307,1103.2554,295,1091.2554,307,1079.2554" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1113.4658">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="307" y="1095.0635">Event mask returned by</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="447" y="1095.0635">loopcallback()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="549" y="1095.0635">redefines core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685" y="1088.6611">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1181.6265,502,1193.6265,490,1205.6265,478,1193.6265,490,1181.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="430,961.8843,550,961.8843,562,973.8843,550,985.8843,430,985.8843,418,973.8843,430,961.8843" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="996.0947">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="430" y="977.6924">Core event received?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="562" y="971.29">yes</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1225.6265,502,1237.6265,490,1249.6265,478,1237.6265,490,1225.6265" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="401.5,852.2051,578.5,852.2051,590.5,864.2051,578.5,876.2051,401.5,876.2051,389.5,864.2051,401.5,852.2051" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="886.4155">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="177" x="401.5" y="868.0132">Thread termination requested?</text><rect fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" height="282.6055" style="stroke: #000000; stroke-width: 2.0;" width="451" x="270.5" y="1294.4282"/><path d="M317.5,1295.4282 L317.5,1303.7251 L307.5,1313.7251 L270.5,1313.7251 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="273.5" y="1308.4233">outro</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="399" x="290.5" y="1379.1274"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="50" x="300.5" y="1400.2661">execute</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="354.5" y="1400.2661">shutdowncallback()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="484.5" y="1400.2661">with core's status as argument</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="391.5,1330.7251,588.5,1330.7251,600.5,1342.7251,588.5,1354.7251,391.5,1354.7251,379.5,1342.7251,391.5,1330.7251" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="494" y="1364.9355">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="391.5" y="1346.5332">Node's</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="434.5" y="1346.5332">shutdowncallback</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="550.5" y="1346.5332">is set?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="600.5" y="1340.1309">no</text><polygon fill="#FEFECE" filter="url(#f18z385qfrf5hk)" points="490,1433.0962,502,1445.0962,490,1457.0962,478,1445.0962,490,1433.0962" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="396" y="1477.0962"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="406" y="1498.2349">unregister from core event</text><rect fill="#FEFECE" filter="url(#f18z385qfrf5hk)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="305" x="337.5" y="1531.0649"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="285" x="347.5" y="1552.2036">terminate node thread (and all child threads)</text><ellipse cx="490" cy="1608.0337" fill="#FFFFFF" filter="url(#f18z385qfrf5hk)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="490" cy="1608.0337" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="153.3906" y2="173.3906"/><polygon fill="#A80036" points="486,163.3906,490,173.3906,494,163.3906,490,167.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="406.4268" y2="430.8291"/><polygon fill="#A80036" points="306.5,420.8291,310.5,430.8291,314.5,420.8291,310.5,424.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="509" x2="521" y1="394.4268" y2="394.4268"/><polygon fill="#A80036" points="517,437.8135,521,447.8135,525,437.8135,521,441.8135" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="521" y1="394.4268" y2="496.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="521" x2="322.5" y1="496.7979" y2="496.7979"/><polygon fill="#A80036" points="332.5,492.7979,322.5,496.7979,332.5,500.7979,328.5,496.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="464.7979" y2="484.7979"/><polygon fill="#A80036" points="306.5,474.7979,310.5,484.7979,314.5,474.7979,310.5,478.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="362.4268" y2="382.4268"/><polygon fill="#A80036" points="306.5,372.4268,310.5,382.4268,314.5,372.4268,310.5,376.4268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="390" x2="310.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="306.5,318.458,310.5,328.458,314.5,318.458,310.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="590" x2="669.5" y1="306.458" y2="306.458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="306.458" y2="328.458"/><polygon fill="#A80036" points="665.5,318.458,669.5,328.458,673.5,318.458,669.5,322.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="310.5" y1="508.7979" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="478" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="468,522.7979,478,526.7979,468,530.7979,472,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="669.5" y1="362.4268" y2="526.7979"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="669.5" x2="502" y1="526.7979" y2="526.7979"/><polygon fill="#A80036" points="512,522.7979,502,526.7979,512,530.7979,508,526.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="274.458" y2="294.458"/><polygon fill="#A80036" points="486,284.458,490,294.458,494,284.458,490,288.458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="641.1689" y2="661.1689"/><polygon fill="#A80036" points="486,651.1689,490,661.1689,494,651.1689,490,655.1689" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="695.1377" y2="715.1377"/><polygon fill="#A80036" points="486,705.1377,490,715.1377,494,705.1377,490,709.1377" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="582.7979" y2="607.2002"/><polygon fill="#A80036" points="486,597.2002,490,607.2002,494,597.2002,490,601.2002" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="593" x2="670.5" y1="570.7979" y2="570.7979"/><polygon fill="#A80036" points="666.5,668.1533,670.5,678.1533,674.5,668.1533,670.5,672.1533" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="670.5" y1="570.7979" y2="781.1064"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.5" x2="502" y1="781.1064" y2="781.1064"/><polygon fill="#A80036" points="512,777.1064,502,781.1064,512,785.1064,508,781.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="749.1064" y2="769.1064"/><polygon fill="#A80036" points="486,759.1064,490,769.1064,494,759.1064,490,763.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="538.7979" y2="558.7979"/><polygon fill="#A80036" points="486,548.7979,490,558.7979,494,548.7979,490,552.7979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="193.3906" y2="240.4893"/><polygon fill="#A80036" points="486,230.4893,490,240.4893,494,230.4893,490,234.4893" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1103.2554" y2="1127.6577"/><polygon fill="#A80036" points="486,1117.6577,490,1127.6577,494,1117.6577,490,1121.6577" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685" x2="697" y1="1091.2554" y2="1091.2554"/><polygon fill="#A80036" points="693,1134.6421,697,1144.6421,701,1134.6421,697,1138.6421" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="697" y1="1091.2554" y2="1193.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="502" y1="1193.6265" y2="1193.6265"/><polygon fill="#A80036" points="512,1189.6265,502,1193.6265,512,1197.6265,508,1193.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1161.6265" y2="1181.6265"/><polygon fill="#A80036" points="486,1171.6265,490,1181.6265,494,1171.6265,490,1175.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1044.2554" y2="1079.2554"/><polygon fill="#A80036" points="486,1069.2554,490,1079.2554,494,1069.2554,490,1073.2554" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="985.8843" y2="1010.2866"/><polygon fill="#A80036" points="486,1000.2866,490,1010.2866,494,1000.2866,490,1004.2866" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562" x2="707" y1="973.8843" y2="973.8843"/><polygon fill="#A80036" points="703,1100.1577,707,1110.1577,711,1100.1577,707,1104.1577" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="707" y1="973.8843" y2="1237.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="707" x2="502" y1="1237.6265" y2="1237.6265"/><polygon fill="#A80036" points="512,1233.6265,502,1237.6265,512,1241.6265,508,1237.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1205.6265" y2="1225.6265"/><polygon fill="#A80036" points="486,1215.6265,490,1225.6265,494,1215.6265,490,1219.6265" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="941.8843" y2="961.8843"/><polygon fill="#A80036" points="486,951.8843,490,961.8843,494,951.8843,490,955.8843" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="876.2051" y2="907.9155"/><polygon fill="#A80036" points="486,897.9155,490,907.9155,494,897.9155,490,901.9155" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1249.6265" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="731" y1="1259.6265" y2="1259.6265"/><polygon fill="#A80036" points="727,1067.271,731,1057.271,735,1067.271,731,1063.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="731" y1="864.2051" y2="1259.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="731" x2="590.5" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="600.5,860.2051,590.5,864.2051,600.5,868.2051,596.5,864.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="389.5" x2="191" y1="864.2051" y2="864.2051"/><polygon fill="#A80036" points="187,1053.271,191,1063.271,195,1053.271,191,1057.271" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="191" y1="864.2051" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="191" x2="490" y1="1271.6265" y2="1271.6265"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1271.6265" y2="1330.7251"/><polygon fill="#A80036" points="486,1320.7251,490,1330.7251,494,1320.7251,490,1324.7251" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="793.1064" y2="852.2051"/><polygon fill="#A80036" points="486,842.2051,490,852.2051,494,842.2051,490,846.2051" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1354.7251" y2="1379.1274"/><polygon fill="#A80036" points="486,1369.1274,490,1379.1274,494,1369.1274,490,1373.1274" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="600.5" x2="699.5" y1="1342.7251" y2="1342.7251"/><polygon fill="#A80036" points="695.5,1386.1118,699.5,1396.1118,703.5,1386.1118,699.5,1390.1118" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="699.5" y1="1342.7251" y2="1445.0962"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="699.5" x2="502" y1="1445.0962" y2="1445.0962"/><polygon fill="#A80036" points="512,1441.0962,502,1445.0962,512,1449.0962,508,1445.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1413.0962" y2="1433.0962"/><polygon fill="#A80036" points="486,1423.0962,490,1433.0962,494,1423.0962,490,1427.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1457.0962" y2="1477.0962"/><polygon fill="#A80036" points="486,1467.0962,490,1477.0962,494,1467.0962,490,1471.0962" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1511.0649" y2="1531.0649"/><polygon fill="#A80036" points="486,1521.0649,490,1531.0649,494,1521.0649,490,1525.0649" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="490" x2="490" y1="1565.0337" y2="1597.0337"/><polygon fill="#A80036" points="486,1587.0337,490,1597.0337,494,1587.0337,490,1591.0337" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[76359ecbe44076e6df4d6c6175398633]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\n_main()\n
......
6 6

  
7 7
note
8 8
  - - **arg** : void* - -
9
  Optional Argument to the thread main function.
9
  Optional Argument to the thread main function (see ""urt_osThreadFunction_t"").
10
  This functions expects no arguments.
10 11
  ====
11 12
  - - **return** : void - -
12 13
endnote
13 14

  
14 15

  
15 16
start
17
partition "setup" {
18
  :register to core event;
19
  if (Node's ""setupcallback"" is set?) then (yes)
20
    :execute ""setupcallback()"";
21
    note
22
      Callback must not loop.
23
    endnote
24
    if (Event mask returned by ""setupcallback()"" redefines core event?) then (yes)
25
      :call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
26
    else (no)
27
    endif
28
  else (no)
29
    :act as if ""stupcallback"" returned 0xF..F;
30
  endif
31
  if (Core status is ""URT_STATUS_OK""?) then (yes)
32
    :suspend all child threads (recursively);
33
    :synchronize by calling ""urtCoreSynchronizeNodes(1)"";
34
    :resume all child threads (recursively);
35
  else (no)
36
  endif
37
}
38
partition "loop" {
39
  while (Thread termination requested?) is (no)
40
    :Wait for a specified or a core event;
41
    if (Core event received?) then (yes)
42
    else (no)
43
      :execute ""loopcallback()"";
44
      note
45
        Callback must not loop.
46
      endnote
47
      if (Event mask returned by ""loopcallback()"" redefines core event?) then (yes)
48
        :call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
49
      else (no)
50
      endif
51
    endif
52
  endwhile
53
}
54
partition "outro" {
55
  if (Node's ""shutdowncallback"" is set?) then (yes)
56
    :execute ""shutdowncallback()"" with core's status as argument;
57
  else (no)
58
  endif
59
  :unregister from core event;
60
  :terminate node thread (and all child threads);
61
}
16 62
stop
17 63

  
18 64

  

Also available in: Unified diff