Files

64 lines
17 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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="520.7909px" preserveAspectRatio="none" style="width:705px;height:520px;" version="1.1" viewBox="0 0 705 520" width="705.0287px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="386.7169" x="118.5689" y="11.0058">A2 STRUCTURE — queue length 1 and three task contexts</text><!--MD5=[bea5b0d46523efab5ea1c1d339f396f0]
class Message--><rect fill="#EDF6FA" height="83.3616" id="Message" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="149.5792" x="5.4724" y="427.5163"/><ellipse cx="23.9874" cy="441.1973" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M25.6833,445.0593 Q25.2842,445.2589 24.8282,445.3586 Q24.3864,445.4726 23.9019,445.4726 Q22.149,445.4726 21.2227,444.3183 Q20.3106,443.164 20.3106,440.9835 Q20.3106,438.8031 21.2227,437.6488 Q22.149,436.4945 23.9019,436.4945 Q24.3864,436.4945 24.8425,436.6085 Q25.2985,436.7082 25.6833,436.922 L25.6833,438.8174 Q25.2415,438.4184 24.8282,438.2331 Q24.4149,438.0336 23.9731,438.0336 Q23.0468,438.0336 22.5623,438.7889 Q22.0778,439.5299 22.0778,440.9835 Q22.0778,442.4514 22.5623,443.1925 Q23.0468,443.9335 23.9731,443.9335 Q24.4149,443.9335 24.8282,443.7482 Q25.2415,443.563 25.6833,443.1497 L25.6833,445.0593 Z "/><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="109.4482" x="37.1212" y="445.3021">01 QueueMessage</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="6.3845" x2="154.1395" y1="454.8783" y2="454.8783"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="138.6344" x="10.9448" y="469.5324">sequence : uint32_t</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="131.3378" x="10.9448" y="483.3346">payload : uint32_t</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="138.6344" x="10.9448" y="497.1367">checksum : uint32_t</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="6.3845" x2="154.1395" y1="503.5813" y2="503.5813"/><!--MD5=[15b0de36700cf8bf422172734e699e19]
class Queue--><rect fill="#EDF6FA" height="92.7246" id="Queue" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="268.148" x="172.3809" y="143.0149"/><ellipse cx="185.1498" cy="161.3774" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M186.8457,165.2394 Q186.4467,165.4389 185.9907,165.5387 Q185.5489,165.6527 185.0643,165.6527 Q183.3115,165.6527 182.3851,164.4983 Q181.4731,163.344 181.4731,161.1636 Q181.4731,158.9832 182.3851,157.8288 Q183.3115,156.6745 185.0643,156.6745 Q185.5489,156.6745 186.0049,156.7885 Q186.4609,156.8883 186.8457,157.102 L186.8457,158.9974 Q186.4039,158.5984 185.9907,158.4131 Q185.5774,158.2136 185.1356,158.2136 Q184.2093,158.2136 183.7247,158.9689 Q183.2402,159.71 183.2402,161.1636 Q183.2402,162.6314 183.7247,163.3725 Q184.2093,164.1136 185.1356,164.1136 Q185.5774,164.1136 185.9907,163.9283 Q186.4039,163.743 186.8457,163.3298 L186.8457,165.2394 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="124.0413" x="195.1826" y="158.581">«FreeRTOS object»</text><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="58.3724" x="228.017" y="172.3832">02 Queue</text><rect fill="#FFFFFF" height="15.6263" style="stroke: #000000; stroke-width: 0.91206818586678; stroke-dasharray: 2.0,2.0;" width="118.5689" x="324.6963" y="140.2787"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="116.7447" x="325.6083" y="152.1966">1 × QueueMessage</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="173.293" x2="439.6169" y1="179.7399" y2="179.7399"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="87.5585" x="177.8533" y="194.394">uxLength = 1</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="109.4482" x="177.8533" y="208.1961">uxItemSize = 12</text><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="116.7447" x="177.8533" y="221.9983">waiting : List_t</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="173.293" x2="439.6169" y1="228.4429" y2="228.4429"/><!--MD5=[bcee973e2623bef0127252815a37a6e8]
class Receiver--><rect fill="#EDF6FA" height="51.3181" id="Receiver" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="107.624" x="241.6981" y="305.9741"/><ellipse cx="254.467" cy="324.3366" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M256.1629,328.1986 Q255.7639,328.3981 255.3078,328.4979 Q254.8661,328.6119 254.3815,328.6119 Q252.6286,328.6119 251.7023,327.4576 Q250.7902,326.3032 250.7902,324.1228 Q250.7902,321.9424 251.7023,320.7881 Q252.6286,319.6337 254.3815,319.6337 Q254.8661,319.6337 255.3221,319.7477 Q255.7781,319.8475 256.1629,320.0613 L256.1629,321.9566 Q255.7211,321.5576 255.3078,321.3724 Q254.8946,321.1728 254.4528,321.1728 Q253.5265,321.1728 253.0419,321.9281 Q252.5574,322.6692 252.5574,324.1228 Q252.5574,325.5907 253.0419,326.3317 Q253.5265,327.0728 254.4528,327.0728 Q254.8946,327.0728 255.3078,326.8875 Q255.7211,326.7023 256.1629,326.289 L256.1629,328.1986 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="65.6689" x="273.6205" y="321.5403">«task p3»</text><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="80.262" x="266.3239" y="335.3424">03 receiver</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="242.6101" x2="348.41" y1="342.6991" y2="342.6991"/><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="242.6101" x2="348.41" y1="349.9956" y2="349.9956"/><!--MD5=[7e0e21880190a3d3f8507b42d3153ce7]
class Sender--><rect fill="#EDF6FA" height="51.3181" id="Sender" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="93.031" x="77.5258" y="21.4727"/><ellipse cx="90.2948" cy="39.8351" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M91.9906,43.6972 Q91.5916,43.8967 91.1356,43.9965 Q90.6938,44.1105 90.2092,44.1105 Q88.4564,44.1105 87.53,42.9561 Q86.618,41.8018 86.618,39.6214 Q86.618,37.441 87.53,36.2866 Q88.4564,35.1323 90.2092,35.1323 Q90.6938,35.1323 91.1498,35.2463 Q91.6058,35.3461 91.9906,35.5598 L91.9906,37.4552 Q91.5488,37.0562 91.1356,36.8709 Q90.7223,36.6714 90.2805,36.6714 Q89.3542,36.6714 88.8696,37.4267 Q88.3851,38.1678 88.3851,39.6214 Q88.3851,41.0892 88.8696,41.8303 Q89.3542,42.5714 90.2805,42.5714 Q90.7223,42.5714 91.1356,42.3861 Q91.5488,42.2008 91.9906,41.7875 L91.9906,43.6972 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="65.6689" x="102.1516" y="37.0388">«task p2»</text><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="65.6689" x="102.1516" y="50.841">04 sender</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="78.4379" x2="169.6447" y1="58.1976" y2="58.1976"/><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="78.4379" x2="169.6447" y1="65.4942" y2="65.4942"/><!--MD5=[b38b728b548c0e3506dacd7eefeceafe]
class Verifier--><rect fill="#EDF6FA" height="51.3181" id="Verifier" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="107.624" x="420.4634" y="21.4727"/><ellipse cx="433.2324" cy="39.8351" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M434.9283,43.6972 Q434.5292,43.8967 434.0732,43.9965 Q433.6314,44.1105 433.1469,44.1105 Q431.394,44.1105 430.4677,42.9561 Q429.5556,41.8018 429.5556,39.6214 Q429.5556,37.441 430.4677,36.2866 Q431.394,35.1323 433.1469,35.1323 Q433.6314,35.1323 434.0875,35.2463 Q434.5435,35.3461 434.9283,35.5598 L434.9283,37.4552 Q434.4865,37.0562 434.0732,36.8709 Q433.6599,36.6714 433.2181,36.6714 Q432.2918,36.6714 431.8073,37.4267 Q431.3227,38.1678 431.3227,39.6214 Q431.3227,41.0892 431.8073,41.8303 Q432.2918,42.5714 433.2181,42.5714 Q433.6599,42.5714 434.0732,42.3861 Q434.4865,42.2008 434.9283,41.7875 L434.9283,43.6972 Z "/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="65.6689" x="452.3858" y="37.0388">«task p1»</text><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="80.262" x="445.0893" y="50.841">05 verifier</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="421.3755" x2="527.1754" y1="58.1976" y2="58.1976"/><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="421.3755" x2="527.1754" y1="65.4942" y2="65.4942"/><!--MD5=[13f56afd7aace6dccdfaaac41cf97a6a]
class Evidence--><rect fill="#EDF6FA" height="41.9551" id="Evidence" rx="4.5603" ry="4.5603" style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" width="195.1826" x="197.9188" y="448.2202"/><ellipse cx="210.6878" cy="461.9013" fill="#ADD1B2" rx="9.1207" ry="9.1207" style="stroke: #2B6F8E; stroke-width: 0.91206818586678;"/><path d="M212.3836,465.7633 Q211.9846,465.9628 211.5286,466.0626 Q211.0868,466.1766 210.6022,466.1766 Q208.8494,466.1766 207.923,465.0222 Q207.011,463.8679 207.011,461.6875 Q207.011,459.5071 207.923,458.3527 Q208.8494,457.1984 210.6022,457.1984 Q211.0868,457.1984 211.5428,457.3124 Q211.9988,457.4122 212.3836,457.6259 L212.3836,459.5213 Q211.9418,459.1223 211.5286,458.937 Q211.1153,458.7375 210.6735,458.7375 Q209.7472,458.7375 209.2626,459.4928 Q208.7781,460.2339 208.7781,461.6875 Q208.7781,463.1554 209.2626,463.8964 Q209.7472,464.6375 210.6735,464.6375 Q211.1153,464.6375 211.5286,464.4522 Q211.9418,464.2669 212.3836,463.8537 L212.3836,465.7633 Z "/><text fill="#183F53" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="167.8205" x="222.5446" y="466.006">06 bounded evidence[12]</text><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="198.8309" x2="392.1893" y1="475.5823" y2="475.5823"/><line style="stroke: #2B6F8E; stroke-width: 1.36810227880017;" x1="198.8309" x2="392.1893" y1="482.8788" y2="482.8788"/><!--MD5=[9ee1ac3479c04641a9fa33b0d8689cc5]
link Sender to Queue--><path d="M144.4078,73.0775 C156.0731,86.567 171.4415,102.9842 186.974,115.6528 C197.1071,123.9161 208.2525,131.9241 219.5439,139.4122 " fill="none" id="Sender-&gt;Queue" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><polygon fill="#8295A0" points="223.2378,141.8383,218.3716,134.2877,219.4235,139.3388,214.3724,140.3907,223.2378,141.8383" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="167.8205" x="187.886" y="112.0656">xQueueSend copies bytes</text><!--MD5=[09cfd712c72df97764c74258e9f74f00]
link Queue to Receiver--><path d="M302.8978,235.8816 C301.2652,256.841 299.3773,281.1476 297.9088,299.9088 " fill="none" id="Queue-&gt;Receiver" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><polygon fill="#8295A0" points="297.5622,304.4144,301.8328,296.5117,297.914,299.8677,294.558,295.9489,297.5622,304.4144" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="189.7102" x="301.5662" y="275.0248">xQueueReceive copies bytes</text><!--MD5=[64edf872e43ca0c8c575760486cc56fb]
link Receiver to Message--><path d="M255.7804,357.5971 C226.2476,376.2216 185.1954,402.1061 150.2176,424.169 " fill="none" id="Receiver-&gt;Message" style="stroke: #8295A0; stroke-width: 0.91206818586678; stroke-dasharray: 7.0,7.0;"/><polygon fill="#8295A0" points="146.7153,426.3762,155.6036,425.0763,150.5707,423.9405,151.7065,418.9077,146.7153,426.3762" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><!--MD5=[cf18d3e9a6aa366eff584d183c26af51]
link Sender to Message--><path d="M110.5883,73.1231 C106.6573,81.4959 102.7627,91.027 100.3275,100.1477 C70.3661,212.332 72.7922,350.3736 76.7505,421.296 " fill="none" id="Sender-&gt;Message" style="stroke: #8295A0; stroke-width: 0.91206818586678; stroke-dasharray: 7.0,7.0;"/><polygon fill="#8295A0" points="77.0059,425.7469,80.1799,417.3435,76.7458,421.194,72.8953,417.7598,77.0059,425.7469" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><!--MD5=[8800362ea40f2a880d9505a9840abf12]
link Receiver to Evidence--><path d="M295.5101,357.4421 C295.5101,381.5298 295.5101,417.894 295.5101,442.3374 " fill="none" id="Receiver-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><polygon fill="#8295A0" points="295.5101,446.5968,299.1584,438.3881,295.5101,442.0364,291.8618,438.3881,295.5101,446.5968" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="51.0758" x="296.4222" y="396.567">publish</text><!--MD5=[f07991540e7dcca70126c27ce366cf99]
link Sender to Evidence--><path d="M125.7104,73.0227 C128.7567,109.6423 136.8558,179.6618 156.8757,235.7448 C177.7165,294.1172 193.4953,304.0679 225.2808,357.287 C243.1118,387.139 264.6092,420.8035 279.0929,443.1583 " fill="none" id="Sender-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><polygon fill="#8295A0" points="281.5007,446.8704,280.0956,437.9981,279.0195,443.0441,273.9735,441.968,281.5007,446.8704" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="51.0758" x="176.2025" y="275.0248">publish</text><!--MD5=[56814c9b42e3ed7313d879f717312a3d]
link Verifier to Evidence--><path d="M522.3962,73.0319 C532.0185,80.4014 540.8473,89.4309 546.3288,100.1477 C570.0335,146.5446 694.9777,-39.5173 499.8134,278.612 C455.651,350.6016 376.7571,412.5766 331.0078,444.7453 " fill="none" id="Verifier-&gt;Evidence" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><polygon fill="#8295A0" points="327.551,447.1622,336.3716,445.4623,331.2925,444.5549,332.1999,439.4759,327.551,447.1622" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="43.7793" x="509.5087" y="275.0248">digest</text><!--MD5=[e12c46a982a3b860a0b38d721f27caf5]
link Verifier to Queue--><path d="M420.883,73.2143 C407.0195,80.9213 392.5541,90.0511 380.3324,100.1477 C366.8977,111.2384 354.0557,125.0198 342.9468,138.3633 " fill="none" id="Verifier-&gt;Queue" style="stroke: #8295A0; stroke-width: 0.91206818586678; stroke-dasharray: 7.0,7.0;"/><polygon fill="#8295A0" points="340.1285,141.8018,348.1614,137.7814,343.0261,138.2804,342.5272,133.1452,340.1285,141.8018" style="stroke: #8295A0; stroke-width: 0.91206818586678;"/><text fill="#000000" font-family="DejaVu Sans Mono" font-size="11.8569" lengthAdjust="spacingAndGlyphs" textLength="160.524" x="381.2445" y="112.0656">verifies FIFO / states</text><!--MD5=[d6742c39f103031da227304c6aece6b9]
@startuml
scale max 900*520
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName "DejaVu Sans Mono"
skinparam defaultFontSize 13
skinparam ArrowColor #8295a0
skinparam classBorderColor #2b6f8e
skinparam classBackgroundColor #edf6fa
skinparam classFontColor #183f53
skinparam roundcorner 10
top to bottom direction
title A2 STRUCTURE — queue length 1 and three task contexts
class "01 QueueMessage" as Message {
sequence : uint32_t
payload : uint32_t
checksum : uint32_t
}
class "02 Queue<1 × QueueMessage>" as Queue <<FreeRTOS object>> {
uxLength = 1
uxItemSize = 12
waiting : List_t
}
class "03 receiver" as Receiver <<task p3>>
class "04 sender" as Sender <<task p2>>
class "05 verifier" as Verifier <<task p1>>
class "06 bounded evidence[12]" as Evidence
Sender -down-> Queue : xQueueSend copies bytes
Queue -down-> Receiver : xQueueReceive copies bytes
Receiver ..> Message
Sender ..> Message
Receiver - -> Evidence : publish
Sender - -> Evidence : publish
Verifier - -> Evidence : digest
Verifier ..> Queue : verifies FIFO / states
@enduml
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 25.0.4-ea+4-1-Debian
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: null
--></g></svg>