1 line
32 KiB
XML
1 line
32 KiB
XML
<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="0 0 1046.27734375 2217.671875" style="max-width: 1046.28px; background-color: white;" class="flowchart" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape rect,#my-svg .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="5" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart-v2" id="my-svg_flowchart-v2-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="my-svg_flowchart-v2-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="my-svg_flowchart-v2-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_START_A_0" d="M358.719,62L358.719,66.167C358.719,70.333,358.719,78.667,358.789,86.417C358.859,94.167,359,101.334,359.07,104.917L359.14,108.501"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_A_DROP1_0" d="M310.275,256.244L295.401,270.484C280.527,284.725,250.779,313.206,235.905,332.947C221.031,352.688,221.031,363.688,221.031,369.188L221.031,374.688"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_A_B_0" d="M408.163,256.244L422.87,270.484C437.577,284.725,466.992,313.206,481.699,336.947C496.406,360.688,496.406,379.688,496.406,389.188L496.406,398.688"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B_C_0" d="M496.406,456.688L496.406,464.854C496.406,473.021,496.406,489.354,496.406,501.021C496.406,512.688,496.406,519.688,496.406,523.188L496.406,526.688"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_C_D_0" d="M496.406,608.688L496.406,612.854C496.406,617.021,496.406,625.354,496.477,633.104C496.547,640.854,496.687,648.021,496.758,651.605L496.828,655.188"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_D_E_0" d="M437.523,783.523L408.068,799.504C378.612,815.484,319.701,847.445,290.245,889.182C260.789,930.919,260.789,982.432,260.789,1033.945C260.789,1085.458,260.789,1136.971,260.789,1168.228C260.789,1199.484,260.789,1210.484,260.789,1215.984L260.789,1221.484"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_D_F_0" d="M540.905,798.908L553.232,812.324C565.559,825.741,590.213,852.573,602.615,871.573C615.016,890.573,615.165,901.74,615.239,907.323L615.314,912.907"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_F_DROP2_0" d="M563.394,1100.011L551.556,1114.757C539.719,1129.502,516.043,1158.993,504.205,1179.239C492.367,1199.484,492.367,1210.484,492.367,1215.984L492.367,1221.484"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_F_G_0" d="M666.154,1101.197L677.203,1115.745C688.251,1130.293,710.348,1159.389,721.397,1179.437C732.445,1199.484,732.445,1210.484,732.445,1215.984L732.445,1221.484"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_E_H_0" d="M260.789,1279.484L260.789,1283.651C260.789,1287.818,260.789,1296.151,261.464,1303.83C262.14,1311.508,263.491,1318.532,264.166,1322.044L264.841,1325.556"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_G_H_0" d="M653.078,1270.777L628.703,1276.395C604.328,1282.013,555.578,1293.249,503.517,1304.966C451.456,1316.683,396.083,1328.882,368.397,1334.981L340.711,1341.08"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_H_I_0" d="M270.789,1383.484L270.789,1387.651C270.789,1391.818,270.789,1400.151,270.859,1407.901C270.93,1415.651,271.07,1422.818,271.14,1426.402L271.211,1429.985"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_I_DROP3_0" d="M217.7,1610.161L204.417,1625.176C191.134,1640.191,164.567,1670.22,151.283,1690.735C138,1711.25,138,1722.25,138,1727.75L138,1733.25"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_I_J_0" d="M324.878,1610.161L337.994,1625.176C351.111,1640.191,377.345,1670.22,390.461,1694.735C403.578,1719.25,403.578,1738.25,403.578,1747.75L403.578,1757.25"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_G_K_0" d="M737.638,1279.484L738.439,1283.651C739.24,1287.818,740.843,1296.151,741.644,1303.818C742.445,1311.484,742.445,1318.484,742.445,1321.984L742.445,1325.484"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_K_L_0" d="M742.445,1383.484L742.445,1387.651C742.445,1391.818,742.445,1400.151,742.522,1412.423C742.599,1424.695,742.753,1440.906,742.83,1449.012L742.907,1457.117"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_L_M_0" d="M705.631,1599.303L693.039,1616.128C680.447,1632.952,655.263,1666.601,642.67,1692.926C630.078,1719.25,630.078,1738.25,630.078,1747.75L630.078,1757.25"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_L_N_0" d="M780.259,1599.303L792.685,1616.128C805.11,1632.952,829.961,1666.601,842.387,1690.926C854.813,1715.25,854.813,1730.25,854.813,1737.75L854.813,1745.25"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_N_O_0" d="M854.813,1827.25L854.813,1833.417C854.813,1839.583,854.813,1851.917,854.883,1861.667C854.953,1871.417,855.094,1878.584,855.164,1882.167L855.234,1885.751"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_O_RECONNECT_0" d="M815.827,2018.686L804.489,2031.35C793.151,2044.015,770.476,2069.343,759.138,2087.508C747.801,2105.672,747.801,2116.672,747.801,2122.172L747.801,2127.672"/><path marker-end="url(#my-svg_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_O_P_0" d="M894.798,2018.686L905.969,2031.35C917.14,2044.015,939.482,2069.343,950.653,2089.508C961.824,2109.672,961.824,2124.672,961.824,2132.172L961.824,2139.672"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(221.03125, 341.6875)" class="edgeLabel"><g transform="translate(-12.890625, -12)" class="label"><foreignObject height="24" width="25.78125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Full</p></span></div></foreignObject></g></g><g transform="translate(496.40625, 341.6875)" class="edgeLabel"><g transform="translate(-11.5625, -12)" class="label"><foreignObject height="24" width="23.125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>OK</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(260.7890625, 1033.9453125)" class="edgeLabel"><g transform="translate(-10.2265625, -12)" class="label"><foreignObject height="24" width="20.453125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>No</p></span></div></foreignObject></g></g><g transform="translate(614.8671875, 879.40625)" class="edgeLabel"><g transform="translate(-13.0546875, -12)" class="label"><foreignObject height="24" width="26.109375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Yes</p></span></div></foreignObject></g></g><g transform="translate(492.3671875, 1188.484375)" class="edgeLabel"><g transform="translate(-25.796875, -12)" class="label"><foreignObject height="24" width="51.59375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Locked</p></span></div></foreignObject></g></g><g transform="translate(732.4453125, 1188.484375)" class="edgeLabel"><g transform="translate(-11.5625, -12)" class="label"><foreignObject height="24" width="23.125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>OK</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(138, 1700.25)" class="edgeLabel"><g transform="translate(-12.890625, -12)" class="label"><foreignObject height="24" width="25.78125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Full</p></span></div></foreignObject></g></g><g transform="translate(403.578125, 1700.25)" class="edgeLabel"><g transform="translate(-11.5625, -12)" class="label"><foreignObject height="24" width="23.125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>OK</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(630.078125, 1700.25)" class="edgeLabel"><g transform="translate(-50.6953125, -12)" class="label"><foreignObject height="24" width="101.390625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Empty/Locked</p></span></div></foreignObject></g></g><g transform="translate(854.8125, 1700.25)" class="edgeLabel"><g transform="translate(-32.0234375, -12)" class="label"><foreignObject height="24" width="64.046875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Has data</p></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(747.80078125, 2094.671875)" class="edgeLabel"><g transform="translate(-12.890625, -12)" class="label"><foreignObject height="24" width="25.78125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>Fail</p></span></div></foreignObject></g></g><g transform="translate(961.82421875, 2094.671875)" class="edgeLabel"><g transform="translate(-11.5625, -12)" class="label"><foreignObject height="24" width="23.125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"><p>OK</p></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(358.71875, 35)" id="flowchart-START-0" class="node default"><rect height="54" width="259.875" y="-27" x="-129.9375" style="" class="basic label-container"/><g transform="translate(-99.9375, -12)" style="" class="label"><rect/><foreignObject height="24" width="199.875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>MPU reads @50ms = 20 Hz</p></span></div></foreignObject></g></g><g transform="translate(358.71875, 208.34375)" id="flowchart-A-1" class="node default"><polygon transform="translate(-96.34375,96.34375)" class="label-container" points="96.34375,0 192.6875,-96.34375 96.34375,-192.6875 0,-96.34375"/><g transform="translate(-57.34375, -24)" style="" class="label"><rect/><foreignObject height="48" width="114.6875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>IMU_CHANNEL<br />try_send</p></span></div></foreignObject></g></g><g transform="translate(221.03125, 429.6875)" id="flowchart-DROP1-3" class="node default"><rect height="102" width="260" y="-51" x="-130" style="fill:#ffcccc !important" class="basic label-container"/><g transform="translate(-100, -36)" style="" class="label"><rect/><foreignObject height="72" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>❌ DROP: Channel full<br />16 slots @ 50ms = 800ms buffer</p></span></div></foreignObject></g></g><g transform="translate(496.40625, 429.6875)" id="flowchart-B-5" class="node default"><rect height="54" width="190.75" y="-27" x="-95.375" style="" class="basic label-container"/><g transform="translate(-65.375, -12)" style="" class="label"><rect/><foreignObject height="24" width="130.75"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Main Loop receive</p></span></div></foreignObject></g></g><g transform="translate(496.40625, 569.6875)" id="flowchart-C-7" class="node default"><rect height="78" width="204.96875" y="-39" x="-102.484375" style="" class="basic label-container"/><g transform="translate(-72.484375, -24)" style="" class="label"><rect/><foreignObject height="48" width="144.96875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Drain loop:<br />Get freshest reading</p></span></div></foreignObject></g></g><g transform="translate(496.40625, 750.546875)" id="flowchart-D-9" class="node default"><polygon transform="translate(-91.859375,91.859375)" class="label-container" points="91.859375,0 183.71875,-91.859375 91.859375,-183.71875 0,-91.859375"/><g transform="translate(-52.859375, -24)" style="" class="label"><rect/><foreignObject height="48" width="105.71875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Time check:<br />≥3s since last?</p></span></div></foreignObject></g></g><g transform="translate(260.7890625, 1252.484375)" id="flowchart-E-11" class="node default"><rect height="54" width="140.890625" y="-27" x="-70.4453125" style="" class="basic label-container"/><g transform="translate(-40.4453125, -12)" style="" class="label"><rect/><foreignObject height="24" width="80.890625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Skip MQTT</p></span></div></foreignObject></g></g><g transform="translate(614.8671875, 1033.9453125)" id="flowchart-F-13" class="node default"><polygon transform="translate(-117.5390625,117.5390625)" class="label-container" points="117.5390625,0 235.078125,-117.5390625 117.5390625,-235.078125 0,-117.5390625"/><g transform="translate(-78.5390625, -24)" style="" class="label"><rect/><foreignObject height="48" width="157.078125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>mqtt_set_imu<br />try_lock IMU_LATEST</p></span></div></foreignObject></g></g><g transform="translate(492.3671875, 1252.484375)" id="flowchart-DROP2-15" class="node default"><rect height="54" width="211.578125" y="-27" x="-105.7890625" style="fill:#ffcccc !important" class="basic label-container"/><g transform="translate(-75.7890625, -12)" style="" class="label"><rect/><foreignObject height="24" width="151.578125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>❌ SKIP: Mutex busy</p></span></div></foreignObject></g></g><g transform="translate(732.4453125, 1252.484375)" id="flowchart-G-17" class="node default"><rect height="54" width="158.734375" y="-27" x="-79.3671875" style="" class="basic label-container"/><g transform="translate(-49.3671875, -12)" style="" class="label"><rect/><foreignObject height="24" width="98.734375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Store payload</p></span></div></foreignObject></g></g><g transform="translate(270.7890625, 1356.484375)" id="flowchart-H-19" class="node default"><rect height="54" width="132.03125" y="-27" x="-66.015625" style="" class="basic label-container"/><g transform="translate(-36.015625, -12)" style="" class="label"><rect/><foreignObject height="24" width="72.03125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>show_imu</p></span></div></foreignObject></g></g><g transform="translate(270.7890625, 1548.3671875)" id="flowchart-I-23" class="node default"><polygon transform="translate(-114.8828125,114.8828125)" class="label-container" points="114.8828125,0 229.765625,-114.8828125 114.8828125,-229.765625 0,-114.8828125"/><g transform="translate(-75.8828125, -24)" style="" class="label"><rect/><foreignObject height="48" width="151.765625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>DISPLAY_CHANNEL<br />try_send</p></span></div></foreignObject></g></g><g transform="translate(138, 1788.25)" id="flowchart-DROP3-25" class="node default"><rect height="102" width="260" y="-51" x="-130" style="fill:#ffcccc !important" class="basic label-container"/><g transform="translate(-100, -36)" style="" class="label"><rect/><foreignObject height="72" width="200"><div style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>❌ DROP: Display slow<br />8 slots @ 100ms = 800ms buffer</p></span></div></foreignObject></g></g><g transform="translate(403.578125, 1788.25)" id="flowchart-J-27" class="node default"><rect height="54" width="171.15625" y="-27" x="-85.578125" style="" class="basic label-container"/><g transform="translate(-55.578125, -12)" style="" class="label"><rect/><foreignObject height="24" width="111.15625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Display renders</p></span></div></foreignObject></g></g><g transform="translate(742.4453125, 1356.484375)" id="flowchart-K-29" class="node default"><rect height="54" width="176.78125" y="-27" x="-88.390625" style="" class="basic label-container"/><g transform="translate(-58.390625, -12)" style="" class="label"><rect/><foreignObject height="24" width="116.78125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>MQTT Task loop</p></span></div></foreignObject></g></g><g transform="translate(742.4453125, 1548.3671875)" id="flowchart-L-31" class="node default"><polygon transform="translate(-87.75,87.75)" class="label-container" points="87.75,0 175.5,-87.75 87.75,-175.5 0,-87.75"/><g transform="translate(-48.75, -24)" style="" class="label"><rect/><foreignObject height="48" width="97.5"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>IMU_LATEST<br />try_lock</p></span></div></foreignObject></g></g><g transform="translate(630.078125, 1788.25)" id="flowchart-M-33" class="node default"><rect height="54" width="181.84375" y="-27" x="-90.921875" style="" class="basic label-container"/><g transform="translate(-60.921875, -12)" style="" class="label"><rect/><foreignObject height="24" width="121.84375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Skip this iteration</p></span></div></foreignObject></g></g><g transform="translate(854.8125, 1788.25)" id="flowchart-N-35" class="node default"><rect height="78" width="167.625" y="-39" x="-83.8125" style="" class="basic label-container"/><g transform="translate(-53.8125, -24)" style="" class="label"><rect/><foreignObject height="48" width="107.625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Send to broker<br />QoS0 no retain</p></span></div></foreignObject></g></g><g transform="translate(854.8125, 1973.4609375)" id="flowchart-O-37" class="node default"><polygon transform="translate(-84.2109375,84.2109375)" class="label-container" points="84.2109375,0 168.421875,-84.2109375 84.2109375,-168.421875 0,-84.2109375"/><g transform="translate(-57.2109375, -12)" style="" class="label"><rect/><foreignObject height="24" width="114.421875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>TCP send result</p></span></div></foreignObject></g></g><g transform="translate(747.80078125, 2170.671875)" id="flowchart-RECONNECT-39" class="node default"><rect height="78" width="175.140625" y="-39" x="-87.5703125" style="fill:#ffcccc !important" class="basic label-container"/><g transform="translate(-57.5703125, -24)" style="" class="label"><rect/><foreignObject height="48" width="115.140625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>❌ Session dies<br />Reconnect in 5s</p></span></div></foreignObject></g></g><g transform="translate(961.82421875, 2170.671875)" id="flowchart-P-41" class="node default"><rect height="54" width="152.90625" y="-27" x="-76.453125" style="fill:#ccffcc !important" class="basic label-container"/><g transform="translate(-46.453125, -12)" style="" class="label"><rect/><foreignObject height="24" width="92.90625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>✅ Data sent</p></span></div></foreignObject></g></g></g></g></g></svg> |