Fixed major UART Issue, I hate it
This commit is contained in:
@@ -1,9 +1,15 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/25.0.1 Chrome/128.0.6613.186 Electron/32.2.6 Safari/537.36" version="25.0.1">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/25.0.1 Chrome/128.0.6613.186 Electron/32.2.6 Safari/537.36" version="25.0.1">
|
||||||
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
||||||
<mxGraphModel dx="1434" dy="870" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
<mxGraphModel dx="819" dy="497" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-348" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1090" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1095.47" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-208" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-208" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="1880" y="900" as="sourcePoint" />
|
<mxPoint x="1880" y="900" as="sourcePoint" />
|
||||||
@@ -484,10 +490,10 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-145" value="RESPONSE" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-145" value="RESPONSE" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
<mxGeometry x="125.38" y="1401" width="79.5" height="40" as="geometry" />
|
<mxGeometry x="125.38" y="1401" width="79.5" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-146" value="0x7" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-146" value="0x8" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="204.88" y="1361" width="40" height="40" as="geometry" />
|
<mxGeometry x="204.88" y="1361" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-147" value="0x7" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-147" value="0x8" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="204.88" y="1401" width="40" height="40" as="geometry" />
|
<mxGeometry x="204.88" y="1401" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-148" value="Set Vacum" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-148" value="Set Vacum" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
@@ -535,10 +541,10 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-165" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-165" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1401.69" y="230" width="718.31" height="20" as="geometry" />
|
<mxGeometry x="1401.69" y="230" width="718.31" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-167" value="CRC" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-167" value="16" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1960.98" y="170" width="160" height="40" as="geometry" />
|
<mxGeometry x="1960.98" y="170" width="160" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-168" value="32" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-168" value="16" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1960.98" y="150" width="160" height="20" as="geometry" />
|
<mxGeometry x="1960.98" y="150" width="160" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-170" value="<b><font style="font-size: 16px;">I2C Cable</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-170" value="<b><font style="font-size: 16px;">I2C Cable</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
@@ -736,73 +742,73 @@
|
|||||||
<mxGeometry x="1540" y="760" width="80" height="40" as="geometry" />
|
<mxGeometry x="1540" y="760" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-232" value="<b><font style="font-size: 20px;">GoRPC Ctrl Protocol</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-232" value="<b><font style="font-size: 20px;">GoRPC Ctrl Protocol</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.49" y="1080" width="240" height="40" as="geometry" />
|
<mxGeometry x="1200.61" y="1040" width="600" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-233" value="Msg Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-233" value="Msg Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1280.34" y="1140" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.9499999999998" y="1140" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-234" value="Data (max 255b )" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-234" value="Data (max 255b )" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.98" y="1140" width="439.02" height="20" as="geometry" />
|
<mxGeometry x="1361.9599999999998" y="1141" width="439.02" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-235" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-235" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1280.34" y="1120" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.9499999999998" y="1120" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-236" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-236" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360" y="1120" width="440" height="20" as="geometry" />
|
<mxGeometry x="1360.9799999999998" y="1121" width="440" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-237" value="TX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-237" value="TX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1200" y="1200" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.61" y="1200" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-239" value="0x01" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-239" value="0x01" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1201" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1201" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-240" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-240" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1181" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1181" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-241" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-241" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.64" y="1201" width="239.02" height="19" as="geometry" />
|
<mxGeometry x="1441.1499999999999" y="1203" width="359.46" height="19" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-242" value="RX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-242" value="RX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1239" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1239" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-243" value="0x02" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-243" value="0x02" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.01" y="1239" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.62" y="1239" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-244" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-244" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1361.2800000000002" y="1239" width="238.04" height="20" as="geometry" />
|
<mxGeometry x="1441.6399999999999" y="1240" width="358.97" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-245" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-245" value="0-251" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.3200000000002" y="1219" width="240" height="20" as="geometry" />
|
<mxGeometry x="1441.1499999999999" y="1221" width="349.46" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-247" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-247" value="0-251" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.9800000000002" y="1180" width="240" height="20" as="geometry" />
|
<mxGeometry x="1440.4699999999998" y="1181" width="360.14" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-248" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-248" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1219" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1219" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-249" value="Perform Scan" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-249" value="Perform Scan" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1280" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1280" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-250" value="0x03" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-250" value="0x03" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.62" y="1281" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1202.2299999999998" y="1281" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-251" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-251" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1260" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1260" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-252" value="Scan Result" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-252" value="Scan Result" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1320" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1320" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-253" value="0x04" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-253" value="0x04" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.4699999999998" y="1320" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1202.0799999999997" y="1320" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-254" value="Address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-254" value="Address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.32" y="1320" width="160" height="20" as="geometry" />
|
<mxGeometry x="1362.8399999999997" y="1320" width="160" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-255" value="Node Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-255" value="Node Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1519.32" y="1320" width="118.05" height="20" as="geometry" />
|
<mxGeometry x="1523.5399999999997" y="1320" width="118.05" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-256" value="Status" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-256" value="Status" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1637.37" y="1320" width="81.95" height="20" as="geometry" />
|
<mxGeometry x="1641.5899999999997" y="1320" width="81.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-257" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-257" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="332.45" y="770" width="160" height="20" as="geometry" />
|
<mxGeometry x="332.45" y="770" width="160" height="20" as="geometry" />
|
||||||
@@ -811,16 +817,16 @@
|
|||||||
<mxGeometry x="491.72999999999996" y="770" width="160.72" height="20" as="geometry" />
|
<mxGeometry x="491.72999999999996" y="770" width="160.72" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-259" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-259" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1361.28" y="1300" width="160" height="20" as="geometry" />
|
<mxGeometry x="1362.2599999999998" y="1301" width="160" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-260" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-260" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1521.28" y="1300" width="118.05" height="20" as="geometry" />
|
<mxGeometry x="1522.2599999999998" y="1301" width="118.05" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-261" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-261" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1639.33" y="1300" width="81.95" height="20" as="geometry" />
|
<mxGeometry x="1640.3099999999997" y="1301" width="81.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-262" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-262" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1300" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1300" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-267" value="<span style="font-weight: 400;">GobotRPC_CI</span>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-267" value="<span style="font-weight: 400;">GobotRPC_CI</span>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1910" y="1022" width="270" height="190" as="geometry" />
|
<mxGeometry x="1910" y="1022" width="270" height="190" as="geometry" />
|
||||||
@@ -912,13 +918,13 @@
|
|||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-304" value="Heart Beat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-304" value="Heart Beat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1201.69" y="1361" width="80" height="21" as="geometry" />
|
<mxGeometry x="1122.3" y="1361" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-306" value="0xff" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-306" value="0xff" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.6599999999999" y="1361" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.2699999999998" y="1361" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-307" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-307" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1340" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1340" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-308" value="<div style="background-color: rgb(31, 31, 31); line-height: 19px;"><font face="Droid Sans Mono, monospace, monospace" color="#dcdcaa"><span style="font-size: 14px; white-space: pre;">GobotRPC_CI_heartBeatTaskFn</span></font><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-308" value="<div style="background-color: rgb(31, 31, 31); line-height: 19px;"><font face="Droid Sans Mono, monospace, monospace" color="#dcdcaa"><span style="font-size: 14px; white-space: pre;">GobotRPC_CI_heartBeatTaskFn</span></font><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="2330" y="950" width="280" height="40" as="geometry" />
|
<mxGeometry x="2330" y="950" width="280" height="40" as="geometry" />
|
||||||
@@ -927,16 +933,16 @@
|
|||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-311" value="Print Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-311" value="Print Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.49" y="1401" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.1" y="1401" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-312" value="0xfe" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-312" value="0xfe" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.9999999999998" y="1401" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.6099999999997" y="1401" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-313" value="Text" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-313" value="Text" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.3200000000002" y="1401" width="238.04" height="20" as="geometry" />
|
<mxGeometry x="1360.3" y="1402" width="440.31" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-314" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-314" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1358.3400000000001" y="1381" width="240" height="20" as="geometry" />
|
<mxGeometry x="1359.32" y="1382" width="441.29" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-316" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1" target="weFQkCekfF49Ojb9-c9R-315">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-316" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1" target="weFQkCekfF49Ojb9-c9R-315">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
@@ -950,6 +956,149 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-317" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;fillColor=#2D9C5E;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;shape=mxgraph.gcp2.check" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-317" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;fillColor=#2D9C5E;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;shape=mxgraph.gcp2.check" vertex="1" parent="1">
|
||||||
<mxGeometry x="1700.28" y="760" width="40" height="32" as="geometry" />
|
<mxGeometry x="1700.28" y="760" width="40" height="32" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-318" value="Addr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.84" y="1201" width="79.66" height="21" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-319" value="Addr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.84" y="1238.5" width="79.66" height="21" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-320" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.2599999999998" y="1221" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-321" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1359.3199999999997" y="1182" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-322" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.6999999999998" y="1140" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-323" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1201" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-324" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1239" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-325" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1281" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-326" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1320" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-327" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.32" y="1361.5" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-328" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1279.9299999999998" y="1401" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-329" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1283.18" y="1301" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-330" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1282.6000000000001" y="1261" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-331" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.5900000000001" y="1219" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-332" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1282.3000000000002" y="1180" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-333" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1283.1800000000003" y="1341" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-334" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.2700000000002" y="1381" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-335" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1201.5800000000002" y="1381" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-336" value="Counted to sizes" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1200" y="1100" width="600.61" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-337" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.2699999999998" y="1121" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-338" target="weFQkCekfF49Ojb9-c9R-344">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-338" value="Full Buffer Queue" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.azure.queue_generic;flipH=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1382.84" y="1680" width="183.33" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-366" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.51;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-339" target="weFQkCekfF49Ojb9-c9R-365">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-339" value="Empty Buffer Queue" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.azure.queue_generic" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1390" y="1830" width="183.33" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-341" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1360" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1361.03" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-342" value="ISR" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1090" y="1650" width="270" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-353" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.93;entryY=0.058;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-344" target="weFQkCekfF49Ojb9-c9R-361">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="1250" y="1707.4166666666667" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-344" value="InputBuffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1269.61" y="1692.5" width="70" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-349" value="Core0" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1038.15" y="1610" width="722" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-361" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1215" y="1700" width="15" height="160" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-362" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-361" target="weFQkCekfF49Ojb9-c9R-339">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1230" y="1870" as="sourcePoint" />
|
||||||
|
<mxPoint x="1280" y="1820" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-363" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1621.17" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1622.2" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-364" value="RX Processing" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1619.98" y="1650" width="171" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-365" value="InputBuffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1650.28" y="1842.5" width="70" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-367" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1730.28" y="1700" width="19.72" height="174" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-368" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.018;entryY=0.488;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-367" target="weFQkCekfF49Ojb9-c9R-338">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1660" y="1770" as="sourcePoint" />
|
||||||
|
<mxPoint x="1710" y="1720" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-369" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1030" y="1600" as="sourcePoint" />
|
||||||
|
<mxPoint x="2030" y="1600" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-370" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="2030" y="1930" as="sourcePoint" />
|
||||||
|
<mxPoint x="2030" y="1600" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-371" value="<div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: &quot;Droid Sans Mono&quot;, &quot;monospace&quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #9cdcfe;">cb_rxData</span></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1800" y="1760" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-373" value="" style="endArrow=classic;html=1;rounded=0;entryX=-0.009;entryY=0.431;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.935;exitY=0.449;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-367" target="weFQkCekfF49Ojb9-c9R-371">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1750" y="1790" as="sourcePoint" />
|
||||||
|
<mxPoint x="1800" y="1740" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/25.0.1 Chrome/128.0.6613.186 Electron/32.2.6 Safari/537.36" version="25.0.1">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/25.0.1 Chrome/128.0.6613.186 Electron/32.2.6 Safari/537.36" version="25.0.1">
|
||||||
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
||||||
<mxGraphModel dx="1674" dy="870" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
<mxGraphModel dx="1195" dy="725" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-348" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1090" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1095.47" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-208" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-208" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="1880" y="900" as="sourcePoint" />
|
<mxPoint x="1880" y="900" as="sourcePoint" />
|
||||||
@@ -484,10 +490,10 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-145" value="RESPONSE" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-145" value="RESPONSE" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
<mxGeometry x="125.38" y="1401" width="79.5" height="40" as="geometry" />
|
<mxGeometry x="125.38" y="1401" width="79.5" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-146" value="0x7" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-146" value="0x8" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="204.88" y="1361" width="40" height="40" as="geometry" />
|
<mxGeometry x="204.88" y="1361" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-147" value="0x7" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-147" value="0x8" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="204.88" y="1401" width="40" height="40" as="geometry" />
|
<mxGeometry x="204.88" y="1401" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-148" value="Set Vacum" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-148" value="Set Vacum" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
@@ -736,91 +742,88 @@
|
|||||||
<mxGeometry x="1540" y="760" width="80" height="40" as="geometry" />
|
<mxGeometry x="1540" y="760" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-232" value="<b><font style="font-size: 20px;">GoRPC Ctrl Protocol</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-232" value="<b><font style="font-size: 20px;">GoRPC Ctrl Protocol</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.49" y="1080" width="240" height="40" as="geometry" />
|
<mxGeometry x="1200.61" y="1040" width="600" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-233" value="Msg Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-233" value="Msg Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1280.34" y="1140" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.9499999999998" y="1140" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-234" value="Data (max 255b )" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-234" value="Data (max 255b )" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.98" y="1140" width="439.02" height="20" as="geometry" />
|
<mxGeometry x="1361.9599999999998" y="1141" width="439.02" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-235" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-235" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1280.34" y="1120" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.9499999999998" y="1120" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-236" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-236" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360" y="1120" width="440" height="20" as="geometry" />
|
<mxGeometry x="1360.9799999999998" y="1121" width="440" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-237" value="TX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-237" value="TX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1200" y="1200" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.61" y="1200" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-239" value="0x01" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-239" value="0x01" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1201" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1201" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-240" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-240" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1181" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1181" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-241" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-241" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.64" y="1201" width="239.02" height="19" as="geometry" />
|
<mxGeometry x="1441.1499999999999" y="1203" width="359.46" height="19" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-242" value="RX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-242" value="RX Package" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1239" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1239" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-243" value="0x02" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-243" value="0x02" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.01" y="1239" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.62" y="1239" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-244" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-244" value="GoRPC Package" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1361.2800000000002" y="1239" width="238.04" height="20" as="geometry" />
|
<mxGeometry x="1441.6399999999999" y="1240" width="358.97" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-245" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-245" value="0-251" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.3200000000002" y="1219" width="240" height="20" as="geometry" />
|
<mxGeometry x="1441.1499999999999" y="1221" width="349.46" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-247" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-247" value="0-251" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1360.9800000000002" y="1180" width="240" height="20" as="geometry" />
|
<mxGeometry x="1440.4699999999998" y="1181" width="360.14" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-248" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-248" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.28" y="1219" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1201.8899999999999" y="1219" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-249" value="Perform Scan" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-249" value="Perform Scan" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1280" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1280" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-250" value="0x03" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-250" value="0x03" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.62" y="1281" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1202.2299999999998" y="1281" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-251" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-251" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1260" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1260" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-252" value="Scan Result" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-252" value="Scan Result" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.66" y="1320" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.27" y="1320" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-253" value="0x04" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-253" value="0x04" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1281.4699999999998" y="1320" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1202.0799999999997" y="1320" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-254" value="Address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-254" value="Address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.32" y="1320" width="160" height="20" as="geometry" />
|
<mxGeometry x="1362.8399999999997" y="1320" width="160" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-255" value="Node Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-255" value="Node Type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1519.32" y="1320" width="118.05" height="20" as="geometry" />
|
<mxGeometry x="1523.5399999999997" y="1320" width="118.05" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-256" value="Status" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-256" value="Status" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1637.37" y="1320" width="81.95" height="20" as="geometry" />
|
<mxGeometry x="1641.5899999999997" y="1320" width="81.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-257" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="332.45" y="770" width="160" height="20" as="geometry" />
|
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-258" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-258" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="491.72999999999996" y="770" width="160.72" height="20" as="geometry" />
|
<mxGeometry x="491.72999999999996" y="770" width="160.72" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-259" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-259" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1361.28" y="1300" width="160" height="20" as="geometry" />
|
<mxGeometry x="1362.2599999999998" y="1301" width="160" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-260" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-260" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1521.28" y="1300" width="118.05" height="20" as="geometry" />
|
<mxGeometry x="1522.2599999999998" y="1301" width="118.05" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-261" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-261" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1639.33" y="1300" width="81.95" height="20" as="geometry" />
|
<mxGeometry x="1640.3099999999997" y="1301" width="81.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-262" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-262" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1300" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1300" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-267" value="<span style="font-weight: 400;">GobotRPC_CI</span>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-267" value="<span style="font-weight: 400;">GobotRPC_CI</span>" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1910" y="1022" width="270" height="190" as="geometry" />
|
<mxGeometry x="1910" y="1022" width="270" height="190" as="geometry" />
|
||||||
@@ -912,13 +915,13 @@
|
|||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-304" value="Heart Beat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-304" value="Heart Beat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1201.69" y="1361" width="80" height="21" as="geometry" />
|
<mxGeometry x="1122.3" y="1361" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-306" value="0xff" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-306" value="0xff" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.6599999999999" y="1361" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.2699999999998" y="1361" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-307" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-307" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.66" y="1340" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.27" y="1340" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-308" value="<div style="background-color: rgb(31, 31, 31); line-height: 19px;"><font face="Droid Sans Mono, monospace, monospace" color="#dcdcaa"><span style="font-size: 14px; white-space: pre;">GobotRPC_CI_heartBeatTaskFn</span></font><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-308" value="<div style="background-color: rgb(31, 31, 31); line-height: 19px;"><font face="Droid Sans Mono, monospace, monospace" color="#dcdcaa"><span style="font-size: 14px; white-space: pre;">GobotRPC_CI_heartBeatTaskFn</span></font><br></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="2330" y="950" width="280" height="40" as="geometry" />
|
<mxGeometry x="2330" y="950" width="280" height="40" as="geometry" />
|
||||||
@@ -927,16 +930,16 @@
|
|||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-311" value="Print Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-311" value="Print Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1199.49" y="1401" width="80" height="21" as="geometry" />
|
<mxGeometry x="1120.1" y="1401" width="80" height="21" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-312" value="0xfe" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-312" value="0xfe" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1279.9999999999998" y="1401" width="79.66" height="20" as="geometry" />
|
<mxGeometry x="1200.6099999999997" y="1401" width="79.66" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-313" value="Text" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-313" value="Text" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1359.3200000000002" y="1401" width="238.04" height="20" as="geometry" />
|
<mxGeometry x="1360.3" y="1402" width="440.31" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-314" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-314" value="0-255" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
<mxGeometry x="1358.3400000000001" y="1381" width="240" height="20" as="geometry" />
|
<mxGeometry x="1359.32" y="1382" width="441.29" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-316" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1" target="weFQkCekfF49Ojb9-c9R-315">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-316" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1" target="weFQkCekfF49Ojb9-c9R-315">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
@@ -950,6 +953,149 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-317" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;fillColor=#2D9C5E;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;shape=mxgraph.gcp2.check" vertex="1" parent="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-317" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;fillColor=#2D9C5E;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;shape=mxgraph.gcp2.check" vertex="1" parent="1">
|
||||||
<mxGeometry x="1700.28" y="760" width="40" height="32" as="geometry" />
|
<mxGeometry x="1700.28" y="760" width="40" height="32" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-318" value="Addr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.84" y="1201" width="79.66" height="21" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-319" value="Addr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.84" y="1238.5" width="79.66" height="21" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-320" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1362.2599999999998" y="1221" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-321" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1359.3199999999997" y="1182" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-322" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.6999999999998" y="1140" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-323" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1201" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-324" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1239" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-325" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1281" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-326" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.8899999999999" y="1320" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-327" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.32" y="1361.5" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-328" value="size" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1279.9299999999998" y="1401" width="80.95" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-329" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1283.18" y="1301" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-330" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1282.6000000000001" y="1261" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-331" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1281.5900000000001" y="1219" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-332" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1282.3000000000002" y="1180" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-333" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1283.1800000000003" y="1341" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-334" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.2700000000002" y="1381" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-335" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1201.5800000000002" y="1381" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-336" value="Counted to sizes" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1200" y="1100" width="600.61" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-337" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1280.2699999999998" y="1121" width="79.66" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-345" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-338" target="weFQkCekfF49Ojb9-c9R-344">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-338" value="Full Buffer Queue" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.azure.queue_generic;flipH=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1382.84" y="1680" width="183.33" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-366" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.51;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-339" target="weFQkCekfF49Ojb9-c9R-365">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-339" value="Empty Buffer Queue" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#00188D;shape=mxgraph.azure.queue_generic" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1390" y="1830" width="183.33" height="55" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-341" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1360" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1361.03" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-342" value="ISR" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1090" y="1650" width="270" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-353" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.93;entryY=0.058;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-344" target="weFQkCekfF49Ojb9-c9R-361">
|
||||||
|
<mxGeometry relative="1" as="geometry">
|
||||||
|
<mxPoint x="1250" y="1707.4166666666667" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-344" value="InputBuffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1269.61" y="1692.5" width="70" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-349" value="Core0" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1038.15" y="1610" width="722" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-361" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1215" y="1700" width="15" height="160" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-362" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-361" target="weFQkCekfF49Ojb9-c9R-339">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1230" y="1870" as="sourcePoint" />
|
||||||
|
<mxPoint x="1280" y="1820" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-363" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1621.17" y="1920" as="sourcePoint" />
|
||||||
|
<mxPoint x="1622.2" y="1640" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-364" value="RX Processing" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1619.98" y="1650" width="171" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-365" value="InputBuffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1650.28" y="1842.5" width="70" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-367" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1730.28" y="1700" width="19.72" height="174" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-368" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.018;entryY=0.488;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-367" target="weFQkCekfF49Ojb9-c9R-338">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1660" y="1770" as="sourcePoint" />
|
||||||
|
<mxPoint x="1710" y="1720" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-369" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1030" y="1600" as="sourcePoint" />
|
||||||
|
<mxPoint x="2030" y="1600" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-370" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="2030" y="1930" as="sourcePoint" />
|
||||||
|
<mxPoint x="2030" y="1600" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-371" value="<div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: &quot;Droid Sans Mono&quot;, &quot;monospace&quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #9cdcfe;">cb_rxData</span></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="1800" y="1760" width="160" height="40" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="weFQkCekfF49Ojb9-c9R-373" value="" style="endArrow=classic;html=1;rounded=0;entryX=-0.009;entryY=0.431;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.935;exitY=0.449;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="weFQkCekfF49Ojb9-c9R-367" target="weFQkCekfF49Ojb9-c9R-371">
|
||||||
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
|
<mxPoint x="1750" y="1790" as="sourcePoint" />
|
||||||
|
<mxPoint x="1800" y="1740" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
add_library(GobotRPC STATIC
|
add_library(GobotRPC STATIC
|
||||||
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/base.cpp
|
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/base.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/hardware_rp2040_uart.cpp
|
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/uart_rp2040/hardware_rp2040_uart.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/hardware_base.cpp
|
${CMAKE_CURRENT_LIST_DIR}/../ctrl_interface/uart_rp2040/rx.cpp
|
||||||
${CMAKE_CURRENT_LIST_DIR}/../crc16.cpp
|
${CMAKE_CURRENT_LIST_DIR}/../crc16.cpp
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/../protocol_base.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(GobotRPC PUBLIC
|
target_include_directories(GobotRPC PUBLIC
|
||||||
|
|||||||
@@ -21,10 +21,12 @@ void GobotRPC_CI_rxData_cb(void * args, char *data, size_t len) {
|
|||||||
|
|
||||||
void GobotRPC_CI::onRxData(char *data, size_t len) {
|
void GobotRPC_CI::onRxData(char *data, size_t len) {
|
||||||
GobotRPC_CI_CMD cmd = (GobotRPC_CI_CMD)data[0];
|
GobotRPC_CI_CMD cmd = (GobotRPC_CI_CMD)data[0];
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case TX_CI_PACKET:
|
case TX_CI_PACKET:
|
||||||
if(this->cb_TxPacket != NULL) {
|
if(this->cb_TxPacket != NULL) {
|
||||||
this->cb_TxPacket(this->cb_TxPacket_args, data+1, len-1);
|
uint32_t addr = (data[2] << 24) | (data[3] << 16) | (data[4] << 8) | data[5];
|
||||||
|
this->cb_TxPacket(this->cb_TxPacket_args, data+6, len-6, addr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -37,10 +39,16 @@ void GobotRPC_CI::registerCB_TxPacket(callback_TxPacket cb, void *args) {
|
|||||||
this->cb_TxPacket_args = args;
|
this->cb_TxPacket_args = args;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GobotRPC_CI::send_RxPacket(char *data, size_t len) {
|
void GobotRPC_CI::send_RxPacket(char *data, size_t len, uint32_t addr) {
|
||||||
data[0] = RX_CI_PACKET;
|
data[0] = RX_CI_PACKET;
|
||||||
|
data[1] = len + CI_RX_PACKAGE_DATA_OFFSET;
|
||||||
|
|
||||||
this->hardware->send(data, len+1);
|
data[2] = (addr >> 24) & 0xff;
|
||||||
|
data[3] = (addr >> 16) & 0xff;
|
||||||
|
data[4] = (addr >> 8) & 0xff;
|
||||||
|
data[5] = addr & 0xff;
|
||||||
|
|
||||||
|
this->hardware->send(data, len+6);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Heartbeat Task
|
// Heartbeat Task
|
||||||
@@ -51,9 +59,9 @@ void GobotRPC_CI_heartBeatTaskFn(void *args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GobotRPC_CI::heartBeartTaskFn() {
|
void GobotRPC_CI::heartBeartTaskFn() {
|
||||||
char heartBeatPacket[] = {0xff};
|
char heartBeatPacket[] = {0xff, 0x02};
|
||||||
while(1) {
|
while(1) {
|
||||||
this->hardware->send(heartBeatPacket, 1);
|
this->hardware->send(heartBeatPacket, 2);
|
||||||
vTaskDelay(GOBOTRPC_HEARTBEAT_INTERVAL / portTICK_PERIOD_MS);
|
vTaskDelay(GOBOTRPC_HEARTBEAT_INTERVAL / portTICK_PERIOD_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#include "ctrl_interface_hardware.hpp"
|
|
||||||
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
#include "ctrl_interface_hardware.hpp"
|
|
||||||
#include "pinConfig.hpp"
|
|
||||||
|
|
||||||
#include "pico/stdlib.h"
|
|
||||||
#include "hardware/uart.h"
|
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
|
||||||
#include "task.h"
|
|
||||||
#include "queue.h"
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
// Initialize stuff
|
|
||||||
GobotRPC_CI_Hardware_RP2040_UART * g_GobotRPC_CI_Hardware_RP2040_UART;
|
|
||||||
|
|
||||||
GobotRPC_CI_Hardware_RP2040_UART::GobotRPC_CI_Hardware_RP2040_UART(uart_inst_t *uart, uint baudrate) {
|
|
||||||
g_GobotRPC_CI_Hardware_RP2040_UART = this;
|
|
||||||
|
|
||||||
emptyInputBuffersQueue = xQueueCreate(NUM_INPUT_BUFFERS, sizeof(inputBuffers_t *));
|
|
||||||
filledInputBuffersQueue = xQueueCreate(NUM_INPUT_BUFFERS, sizeof(inputBuffers_t *));
|
|
||||||
|
|
||||||
for(int i = 0; i < NUM_INPUT_BUFFERS; i++) {
|
|
||||||
inputBuffers_t * p = &inputBufferPool[i];
|
|
||||||
memset(p->data, 0xff, 256);
|
|
||||||
p->len = 0;
|
|
||||||
xQueueSend(emptyInputBuffersQueue, &p, portMAX_DELAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
txMutex = xSemaphoreCreateMutex();
|
|
||||||
|
|
||||||
this->uart = uart;
|
|
||||||
uart_init(this->uart, baudrate);
|
|
||||||
|
|
||||||
gpio_set_function(GOBOTRPC_CI_UART_RX, UART_FUNCSEL_NUM(uart, GOBOTRPC_CI_UART_RX));
|
|
||||||
gpio_set_function(GOBOTRPC_CI_UART_TX, UART_FUNCSEL_NUM(uart, GOBOTRPC_CI_UART_TX));
|
|
||||||
|
|
||||||
uart_set_hw_flow(uart, false, false);
|
|
||||||
uart_set_format(uart, 8, 1, UART_PARITY_NONE);
|
|
||||||
uart_set_baudrate(uart, baudrate);
|
|
||||||
uart_set_fifo_enabled(uart, true);
|
|
||||||
|
|
||||||
int UART_IRQ = uart == uart0 ? UART0_IRQ : UART1_IRQ;
|
|
||||||
|
|
||||||
irq_set_exclusive_handler(UART_IRQ, GobotRPC_CI_Hardware_RP2040_UART_isr);
|
|
||||||
irq_set_enabled(UART_IRQ, true);
|
|
||||||
|
|
||||||
uart_set_irq_enables(uart, true, false);
|
|
||||||
|
|
||||||
|
|
||||||
xTaskCreate(GobotRPC_CI_Hardware_RP2040_UART_RXTaskFn, "UART RX Task", 2048, this, 4, &this->rxTaskHandle);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART::registerCB_RxData(callback_rxData cb, void *args) {
|
|
||||||
this->cb_rxData = cb;
|
|
||||||
this->cb_rxData_args = args;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Sending data
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART::send(char *data, size_t len) {
|
|
||||||
xSemaphoreTake(txMutex, portMAX_DELAY);
|
|
||||||
uart_write_blocking(this->uart, (uint8_t *)(data), len);
|
|
||||||
xSemaphoreGive(txMutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rx ISR
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART_isr() {
|
|
||||||
GobotRPC_CI_Hardware_RP2040_UART *uart = (GobotRPC_CI_Hardware_RP2040_UART *)g_GobotRPC_CI_Hardware_RP2040_UART;
|
|
||||||
uart->rxISR();
|
|
||||||
};
|
|
||||||
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART::rxISR() {
|
|
||||||
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
|
|
||||||
|
|
||||||
inputBuffers_t * inputBuffer;
|
|
||||||
|
|
||||||
xQueueReceiveFromISR(emptyInputBuffersQueue, &inputBuffer, &xHigherPriorityTaskWoken);
|
|
||||||
|
|
||||||
int i;
|
|
||||||
for(i = 0; uart_is_readable(this->uart) && i < 256; i++) {
|
|
||||||
volatile uint8_t c = uart_getc(this->uart);
|
|
||||||
inputBuffer->data[i] = c;
|
|
||||||
}
|
|
||||||
inputBuffer->len = i;
|
|
||||||
|
|
||||||
xQueueSendFromISR(filledInputBuffersQueue, &inputBuffer, &xHigherPriorityTaskWoken);
|
|
||||||
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rx Task
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART_RXTaskFn(void *args) {
|
|
||||||
GobotRPC_CI_Hardware_RP2040_UART *uart = (GobotRPC_CI_Hardware_RP2040_UART *)args;
|
|
||||||
uart->rxTask();
|
|
||||||
};
|
|
||||||
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART::rxTask() {
|
|
||||||
inputBuffers_t * inputBuffer;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
xQueueReceive(filledInputBuffersQueue, &inputBuffer, portMAX_DELAY);
|
|
||||||
|
|
||||||
if(inputBuffer->len > 0) {
|
|
||||||
cb_rxData(cb_rxData_args, inputBuffer->data, inputBuffer->len);
|
|
||||||
}
|
|
||||||
|
|
||||||
xQueueSend(emptyInputBuffersQueue, &inputBuffer, portMAX_DELAY);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
#include "ctrl_interface_hardware.hpp"
|
||||||
|
#include "pinConfig.hpp"
|
||||||
|
|
||||||
|
#include "pico/stdlib.h"
|
||||||
|
#include "hardware/uart.h"
|
||||||
|
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
|
#include "queue.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
// Initialize stuff
|
||||||
|
GobotRPC_CI_Hardware_RP2040_UART * g_GobotRPC_CI_Hardware_RP2040_UART;
|
||||||
|
|
||||||
|
GobotRPC_CI_Hardware_RP2040_UART::GobotRPC_CI_Hardware_RP2040_UART(uart_inst_t *uart, uint baudrate) {
|
||||||
|
g_GobotRPC_CI_Hardware_RP2040_UART = this;
|
||||||
|
|
||||||
|
initRxTaskAndQueues();
|
||||||
|
|
||||||
|
txMutex = xSemaphoreCreateMutex();
|
||||||
|
|
||||||
|
this->uart = uart;
|
||||||
|
uart_init(this->uart, baudrate);
|
||||||
|
|
||||||
|
gpio_set_function(GOBOTRPC_CI_UART_RX, UART_FUNCSEL_NUM(uart, GOBOTRPC_CI_UART_RX));
|
||||||
|
gpio_set_function(GOBOTRPC_CI_UART_TX, UART_FUNCSEL_NUM(uart, GOBOTRPC_CI_UART_TX));
|
||||||
|
|
||||||
|
uart_set_hw_flow(uart, false, false);
|
||||||
|
uart_set_format(uart, 8, 1, UART_PARITY_NONE);
|
||||||
|
uart_set_baudrate(uart, baudrate);
|
||||||
|
uart_set_fifo_enabled(uart, true);
|
||||||
|
|
||||||
|
int UART_IRQ = uart == uart0 ? UART0_IRQ : UART1_IRQ;
|
||||||
|
|
||||||
|
irq_set_exclusive_handler(UART_IRQ, GobotRPC_CI_Hardware_RP2040_UART_isr);
|
||||||
|
irq_set_enabled(UART_IRQ, true);
|
||||||
|
|
||||||
|
uart_set_irq_enables(uart, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART::registerCB_RxData(callback_rxData cb, void *args) {
|
||||||
|
this->cb_rxData = cb;
|
||||||
|
this->cb_rxData_args = args;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Sending data
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART::send(char *data, size_t len) {
|
||||||
|
xSemaphoreTake(txMutex, portMAX_DELAY);
|
||||||
|
uart_write_blocking(this->uart, (uint8_t *)(data), len);
|
||||||
|
uart_tx_wait_blocking(this->uart);
|
||||||
|
xSemaphoreGive(txMutex);
|
||||||
|
}
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
#include "ctrl_interface_hardware.hpp"
|
||||||
|
#include "pico/stdlib.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "FreeRTOSConfig.h"
|
||||||
|
|
||||||
|
// External Functions
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART_isr() {
|
||||||
|
GobotRPC_CI_Hardware_RP2040_UART *uart = (GobotRPC_CI_Hardware_RP2040_UART *)g_GobotRPC_CI_Hardware_RP2040_UART;
|
||||||
|
uart->onRx_ISR();
|
||||||
|
};
|
||||||
|
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART_Task_RXProcessing(void *args) {
|
||||||
|
GobotRPC_CI_Hardware_RP2040_UART *uart = (GobotRPC_CI_Hardware_RP2040_UART *)args;
|
||||||
|
uart->rxProcessingTaskFn();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init
|
||||||
|
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART::initRxTaskAndQueues() {
|
||||||
|
emptyInputBuffersQueue = xQueueCreate(NUM_INPUT_BUFFERS, sizeof(inputBuffers_t *));
|
||||||
|
filledInputBuffersQueue = xQueueCreate(NUM_INPUT_BUFFERS, sizeof(inputBuffers_t *));
|
||||||
|
|
||||||
|
for(int i = 0; i < NUM_INPUT_BUFFERS; i++) {
|
||||||
|
inputBuffers_t * p = &inputBufferPool[i];
|
||||||
|
memset(p->data, 0xff, 256);
|
||||||
|
p->len = 0;
|
||||||
|
p->state = NEW;
|
||||||
|
p->expected_length = 0;
|
||||||
|
xQueueSend(emptyInputBuffersQueue, &p, portMAX_DELAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
rxSignalSemaphore = xSemaphoreCreateBinary();
|
||||||
|
xTaskCreate(GobotRPC_CI_Hardware_RP2040_UART_Task_RXProcessing, "UART RX Processing", 1024, this, 3, &this->rxProcessingTaskHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
inputBufferRXState_t fillBuffer(inputBuffers_t * buffer, char data) {
|
||||||
|
switch(buffer->state) {
|
||||||
|
case NEW:
|
||||||
|
buffer->data[0] = data;
|
||||||
|
buffer->len = 1;
|
||||||
|
buffer->state = READ_SIZE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case READ_SIZE:
|
||||||
|
buffer->data[1] = data;
|
||||||
|
buffer->expected_length = data;
|
||||||
|
buffer->len += 1;
|
||||||
|
|
||||||
|
if(buffer->len == buffer->expected_length) {
|
||||||
|
buffer->state = FULL;
|
||||||
|
} else {
|
||||||
|
buffer->state = READ_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case READ_DATA:
|
||||||
|
buffer->data[buffer->len] = data;
|
||||||
|
buffer->len += 1;
|
||||||
|
|
||||||
|
if(buffer->len == buffer->expected_length) {
|
||||||
|
buffer->state = FULL;
|
||||||
|
} else {
|
||||||
|
buffer->state = READ_DATA;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FULL:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return buffer->state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// real Task Fns
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART::onRx_ISR() {
|
||||||
|
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
|
static inputBuffers_t * inputBuffer = NULL;
|
||||||
|
|
||||||
|
while (uart_is_readable(this->uart)) {
|
||||||
|
|
||||||
|
if(inputBuffer == NULL) {
|
||||||
|
xQueueReceiveFromISR(emptyInputBuffersQueue, &inputBuffer, &xHigherPriorityTaskWoken);
|
||||||
|
|
||||||
|
if(inputBuffer == NULL) {
|
||||||
|
return; // No more buffers -> device overload
|
||||||
|
}
|
||||||
|
|
||||||
|
inputBuffer->state = NEW;
|
||||||
|
inputBuffer->len = 0;
|
||||||
|
inputBuffer->expected_length = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputBufferRXState_t state = fillBuffer(inputBuffer, uart_getc(this->uart));
|
||||||
|
|
||||||
|
if (state == FULL) {
|
||||||
|
xQueueSendFromISR(filledInputBuffersQueue, &inputBuffer, &xHigherPriorityTaskWoken);
|
||||||
|
inputBuffer = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART::rxProcessingTaskFn() {
|
||||||
|
inputBuffers_t * inputBuffer = NULL;
|
||||||
|
|
||||||
|
while(1) {
|
||||||
|
xQueueReceive(filledInputBuffersQueue, &inputBuffer, portMAX_DELAY);
|
||||||
|
|
||||||
|
if(this->cb_rxData != NULL) {
|
||||||
|
this->cb_rxData(this->cb_rxData_args, inputBuffer->data, inputBuffer->len);
|
||||||
|
}
|
||||||
|
|
||||||
|
vTaskDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,7 +9,13 @@ enum GobotRPC_CI_CMD {
|
|||||||
SCAN_RESULT_CI_PACKET = 0x04,
|
SCAN_RESULT_CI_PACKET = 0x04,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (*callback_TxPacket)(void * args, char *data, size_t len);
|
#define CI_TX_PACKAGE_DATA_OFFSET 6
|
||||||
|
#define CI_TX_PACKAGE_SIZE(data_len) (data_len + CI_TX_PACKAGE_SIZE)
|
||||||
|
|
||||||
|
#define CI_RX_PACKAGE_DATA_OFFSET 6
|
||||||
|
#define CI_RX_PACKAGE_SIZE(data_len) (data_len + CI_RX_PACKAGE_DATA_OFFSET)
|
||||||
|
|
||||||
|
typedef void (*callback_TxPacket)(void * args, char *data, size_t len, uint32_t addr);
|
||||||
void GobotRPC_CI_rxData_cb(void * args, char *data, size_t len);
|
void GobotRPC_CI_rxData_cb(void * args, char *data, size_t len);
|
||||||
void GobotRPC_CI_heartBeatTaskFn(void *args);
|
void GobotRPC_CI_heartBeatTaskFn(void *args);
|
||||||
|
|
||||||
@@ -26,7 +32,7 @@ public:
|
|||||||
GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware);
|
GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware);
|
||||||
|
|
||||||
void registerCB_TxPacket(callback_TxPacket cb, void *args);
|
void registerCB_TxPacket(callback_TxPacket cb, void *args);
|
||||||
void send_RxPacket(char *data, size_t len);
|
void send_RxPacket(char *data, size_t len, uint32_t addr);
|
||||||
|
|
||||||
void onRxData(char *data, size_t len);
|
void onRxData(char *data, size_t len);
|
||||||
|
|
||||||
|
|||||||
@@ -19,13 +19,23 @@ public:
|
|||||||
#include "hardware/uart.h"
|
#include "hardware/uart.h"
|
||||||
|
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART_isr();
|
void GobotRPC_CI_Hardware_RP2040_UART_isr();
|
||||||
void GobotRPC_CI_Hardware_RP2040_UART_RXTaskFn(void *args);
|
void GobotRPC_CI_Hardware_RP2040_UART_Task_RXBuffering(void *args);
|
||||||
|
void GobotRPC_CI_Hardware_RP2040_UART_Task_RXProcessing(void *args);
|
||||||
|
|
||||||
#define NUM_INPUT_BUFFERS 16
|
#define NUM_INPUT_BUFFERS 16
|
||||||
|
|
||||||
|
enum inputBufferRXState_t {
|
||||||
|
NEW,
|
||||||
|
READ_SIZE,
|
||||||
|
READ_DATA,
|
||||||
|
FULL
|
||||||
|
};
|
||||||
|
|
||||||
struct inputBuffers_t {
|
struct inputBuffers_t {
|
||||||
char data[256];
|
char data[256];
|
||||||
|
size_t expected_length;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
inputBufferRXState_t state;
|
||||||
};
|
};
|
||||||
|
|
||||||
class GobotRPC_CI_Hardware_RP2040_UART : public I_GobotRPC_CI_Hardware {
|
class GobotRPC_CI_Hardware_RP2040_UART : public I_GobotRPC_CI_Hardware {
|
||||||
@@ -34,22 +44,28 @@ private:
|
|||||||
|
|
||||||
inputBuffers_t inputBufferPool[NUM_INPUT_BUFFERS];
|
inputBuffers_t inputBufferPool[NUM_INPUT_BUFFERS];
|
||||||
|
|
||||||
TaskHandle_t rxTaskHandle;
|
TaskHandle_t rxProcessingTaskHandle;
|
||||||
SemaphoreHandle_t txMutex;
|
|
||||||
|
|
||||||
|
|
||||||
|
SemaphoreHandle_t rxSignalSemaphore;
|
||||||
QueueHandle_t emptyInputBuffersQueue;
|
QueueHandle_t emptyInputBuffersQueue;
|
||||||
QueueHandle_t filledInputBuffersQueue;
|
QueueHandle_t filledInputBuffersQueue;
|
||||||
|
|
||||||
callback_rxData cb_rxData;
|
callback_rxData cb_rxData;
|
||||||
void * cb_rxData_args;
|
void * cb_rxData_args;
|
||||||
|
|
||||||
|
SemaphoreHandle_t txMutex;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GobotRPC_CI_Hardware_RP2040_UART(uart_inst_t *uart, uint baudrate);
|
GobotRPC_CI_Hardware_RP2040_UART(uart_inst_t *uart, uint baudrate);
|
||||||
void send(char *data, size_t len) override;
|
void send(char *data, size_t len) override;
|
||||||
void registerCB_RxData(callback_rxData cb, void *args);
|
void registerCB_RxData(callback_rxData cb, void *args);
|
||||||
|
|
||||||
void rxISR();
|
void initRxTaskAndQueues();
|
||||||
void rxTask();
|
void onRx_ISR();
|
||||||
|
void rxBufferingTaskFn();
|
||||||
|
void rxProcessingTaskFn();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern GobotRPC_CI_Hardware_RP2040_UART * g_GobotRPC_CI_Hardware_RP2040_UART;
|
extern GobotRPC_CI_Hardware_RP2040_UART * g_GobotRPC_CI_Hardware_RP2040_UART;
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
|
enum GobotRPCNumber {
|
||||||
|
VACUM = 0x8
|
||||||
|
};
|
||||||
|
|
||||||
|
enum GobotRPCTypes {
|
||||||
|
REQUEST = 0b00,
|
||||||
|
RESPONSE = 0b01,
|
||||||
|
ERROR = 0b10
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GobotRPC_Package_DATA_OFFSET 2
|
||||||
|
#define CALC_SIZE_GobotRPC_PACKAGE(data_len) (data_len + GobotRPC_Package_DATA_OFFSET + 2)
|
||||||
|
|
||||||
|
struct GobotRPCHeaderInfo {
|
||||||
|
public:
|
||||||
|
GobotRPCNumber number;
|
||||||
|
GobotRPCTypes type;
|
||||||
|
size_t len;
|
||||||
|
};
|
||||||
|
|
||||||
|
void assembleGobotRPCHeader(char * buffer, GobotRPCNumber number, GobotRPCTypes data_size, size_t);
|
||||||
|
void assembleCRC(char * buffer, size_t data_len);
|
||||||
|
|
||||||
|
GobotRPCHeaderInfo extractGobotRPCHeader(char * buffer);
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#include "protocol.hpp"
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "pico/stdlib.h"
|
||||||
|
|
||||||
|
#include "crc16.hpp"
|
||||||
|
|
||||||
|
void assembleGobotRPCHeader(char * buffer, GobotRPCNumber number, GobotRPCTypes type, size_t len) {
|
||||||
|
buffer[0] = ((number & 0b1111) << 4) | ((type & 0b11) << 2);
|
||||||
|
buffer[1] = (len + 4) & 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
GobotRPCHeaderInfo extractGobotRPCHeader(char * buffer) {
|
||||||
|
GobotRPCHeaderInfo info;
|
||||||
|
info.number = (GobotRPCNumber)((buffer[0] >> 4) & 0b1111);
|
||||||
|
info.type = (GobotRPCTypes)((buffer[0] >> 2) & 0b11);
|
||||||
|
info.len = buffer[1];
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
void assembleCRC(char * buffer, size_t data_len) {
|
||||||
|
unsigned short crc = crc16(buffer, data_len + GobotRPC_Package_DATA_OFFSET);
|
||||||
|
buffer[GobotRPC_Package_DATA_OFFSET + data_len + 1] = crc & 0xff;
|
||||||
|
buffer[GobotRPC_Package_DATA_OFFSET + data_len + 0] = (crc >> 8) & 0xff;
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
|
||||||
#include "crc16.hpp"
|
#include "protocol.hpp"
|
||||||
|
|
||||||
#define LED_PIN 25
|
#define LED_PIN 25
|
||||||
|
|
||||||
@@ -21,16 +21,16 @@ void vTaskMain(void * pvParameters) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void onTxPacket(void * args, char *data, size_t len) {
|
void onTxPacket(void * args, char *data, size_t len, uint32_t addr) {
|
||||||
GobotRPC_CI * gobotRPC_ci = (GobotRPC_CI *)args;
|
GobotRPC_CI * gobotRPC_ci = (GobotRPC_CI *)args;
|
||||||
|
|
||||||
char buffer[] = {0x00, 0x74, 0x04, 0x00, 0x00};
|
char bufferPackage[CI_RX_PACKAGE_SIZE(CALC_SIZE_GobotRPC_PACKAGE(0))];
|
||||||
unsigned short crc = crc16(buffer + 1, 2);
|
char * gorpcPackageOffset = bufferPackage + CI_RX_PACKAGE_DATA_OFFSET;
|
||||||
|
|
||||||
buffer[4] = crc & 0xff;
|
assembleGobotRPCHeader(gorpcPackageOffset, GobotRPCNumber::VACUM, GobotRPCTypes::RESPONSE, 0);
|
||||||
buffer[3] = (crc >> 8) & 0xff;
|
assembleCRC(gorpcPackageOffset, 0);
|
||||||
|
|
||||||
gobotRPC_ci->send_RxPacket(buffer, 4);
|
gobotRPC_ci->send_RxPacket(bufferPackage, CALC_SIZE_GobotRPC_PACKAGE(0), addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py
(Stored with Git LFS)
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/util.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/gobotrpc/util.py
(Stored with Git LFS)
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/main.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/main.py
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/uart_interface/ci_packages.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/uart_interface/ci_packages.py
(Stored with Git LFS)
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/uart_interface/serial.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/uart_interface/serial.py
(Stored with Git LFS)
Binary file not shown.
Reference in New Issue
Block a user