Implemented RPCs for CoreXY
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.4 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.4">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.4 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.4">
|
||||||
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
||||||
<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">
|
<mxGraphModel dx="989" dy="600" 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="ZwaYYf2tyudIqjw2MeNF-1" value="<font style="font-size: 50px;">Node</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-1" value="<font style="font-size: 50px;">Node</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="2700" y="2070" width="2510" height="1130" as="geometry" />
|
<mxGeometry x="2700" y="2070" width="2510" height="1130" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-483" value="<font style="font-size: 50px;">I2C Hub (Rpi Pico)</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-483" value="<font style="font-size: 50px;">I2C Hub (Rpi Pico)</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
@@ -205,10 +205,10 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-38" value="0x2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-38" value="0x2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="201.95" y="960" width="40" height="40" as="geometry" />
|
<mxGeometry x="201.95" y="960" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-39" value="Move" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-39" value="Goto" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="242.45" y="920" width="80" height="40" as="geometry" />
|
<mxGeometry x="242.45" y="920" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-40" value="Move" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-40" value="Goto" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="242.45" y="960" width="80" height="40" as="geometry" />
|
<mxGeometry x="242.45" y="960" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-42" value="X: uint" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-42" value="X: uint" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
@@ -407,7 +407,7 @@
|
|||||||
<mxGeometry x="323.88" y="1120" width="480" height="40" as="geometry" />
|
<mxGeometry x="323.88" y="1120" width="480" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-117" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-117" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="324.95" y="1040" width="480" height="40" as="geometry" />
|
<mxGeometry x="324.95" y="1040" width="615.05" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-118" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-118" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="323.17" y="960" width="481.78" height="40" as="geometry" />
|
<mxGeometry x="323.17" y="960" width="481.78" height="40" as="geometry" />
|
||||||
@@ -1545,7 +1545,7 @@
|
|||||||
<mxGeometry x="3896" y="2429" width="129.39" height="40" as="geometry" />
|
<mxGeometry x="3896" y="2429" width="129.39" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-48" value="<div style="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; color: rgb(204, 204, 204);"><div style="line-height: 19px;"><font color="#9cdcfe">send()</font></div></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-48" value="<div style="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; color: rgb(204, 204, 204);"><div style="line-height: 19px;"><font color="#9cdcfe">send()</font></div></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="3730" y="2662.5" width="129.39" height="40" as="geometry" />
|
<mxGeometry x="3910" y="2662.5" width="129.39" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="XcvvJTe7fp8kAcVMuZUQ-48" target="XcvvJTe7fp8kAcVMuZUQ-8" edge="1">
|
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="XcvvJTe7fp8kAcVMuZUQ-48" target="XcvvJTe7fp8kAcVMuZUQ-8" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
@@ -1612,7 +1612,7 @@
|
|||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-11" value="size" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-11" value="size" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1282.21" y="1419.5" width="80.95" height="20" as="geometry" />
|
<mxGeometry x="1282.21" y="1419.5" width="80.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-4" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-4" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1000" y="2810" width="270" height="100" as="geometry" />
|
<mxGeometry x="1000" y="2810" width="270" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-12" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-12" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
@@ -1630,18 +1630,72 @@
|
|||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-16" value="Reset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-16" value="Reset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="241.95" y="640" width="81" height="40" as="geometry" />
|
<mxGeometry x="241.95" y="640" width="81" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-2" value="Port" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-2" value="Port" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1523.16" y="1241" width="76.84" height="20" as="geometry" />
|
<mxGeometry x="1523.16" y="1241" width="76.84" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-5" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-5" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1570.28" y="2917.5" width="270" height="100" as="geometry" />
|
<mxGeometry x="1570.28" y="2917.5" width="270" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-6" value="CI_Rev_Instructions 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=#000000;shape=mxgraph.azure.queue_generic;labelBackgroundColor=default;flipH=0;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-6" value="CI_Rev_Instructions 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=#000000;shape=mxgraph.azure.queue_generic;labelBackgroundColor=default;flipH=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1328.33" y="2940" width="183.33" height="55" as="geometry" />
|
<mxGeometry x="1328.33" y="2940" width="183.33" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-7" 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="ZwaYYf2tyudIqjw2MeNF-7" 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" parent="1" vertex="1">
|
||||||
<mxGeometry x="98.31999999999994" y="1504.41" width="40" height="32" as="geometry" />
|
<mxGeometry x="98.31999999999994" y="1504.41" width="40" height="32" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-8" value="" style="shape=mxgraph.mockup.markup.redX;fillColor=#ff0000;html=1;shadow=0;whiteSpace=wrap;strokeColor=none;" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="145" y="1290" width="675" height="60" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-9" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="98.31999999999994" y="1380" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-11" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="98.31999999999994" y="1225" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-12" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1369.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-13" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1407.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-15" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1450.41" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-16" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1050" y="1240" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-17" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1198.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-18" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1160" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-19" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1617.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-20" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1535.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-1" 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="85.37999999999994" y="868" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-2" 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="101.32999999999993" y="1108" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-3" value="<span style="font-size: 10px;">X</span><span style="font-size: 8.33333px;"><sub>Cells&nbsp;</sub>uint</span>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="795.88" y="1020" width="78.29" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-4" value="<span style="font-size: 10px;">Y</span><span style="font-size: 8.33333px;"><sub>Cells&nbsp;</sub>uint</span>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="874.17" y="1020" width="65.83" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-5" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="786.17" y="1000" width="80.72" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-6" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="859.28" y="1000" width="80.72" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-7" 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="101.32999999999993" y="1021" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.4 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.4">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.4 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.4">
|
||||||
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
<diagram name="Page-1" id="VLDBnTalcAr4j7jpmEzg">
|
||||||
<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">
|
<mxGraphModel dx="989" dy="600" 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="ZwaYYf2tyudIqjw2MeNF-1" value="<font style="font-size: 50px;">Node</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-1" value="<font style="font-size: 50px;">Node</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="2700" y="2070" width="2510" height="1130" as="geometry" />
|
<mxGeometry x="2700" y="2070" width="2510" height="1130" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-483" value="<font style="font-size: 50px;">I2C Hub (Rpi Pico)</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-483" value="<font style="font-size: 50px;">I2C Hub (Rpi Pico)</font>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#82b366;strokeWidth=7;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
@@ -205,10 +205,10 @@
|
|||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-38" value="0x2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-38" value="0x2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="201.95" y="960" width="40" height="40" as="geometry" />
|
<mxGeometry x="201.95" y="960" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-39" value="Move" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-39" value="Goto" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="242.45" y="920" width="80" height="40" as="geometry" />
|
<mxGeometry x="242.45" y="920" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-40" value="Move" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-40" value="Goto" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="242.45" y="960" width="80" height="40" as="geometry" />
|
<mxGeometry x="242.45" y="960" width="80" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-42" value="X: uint" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-42" value="X: uint" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
@@ -407,7 +407,7 @@
|
|||||||
<mxGeometry x="323.88" y="1120" width="480" height="40" as="geometry" />
|
<mxGeometry x="323.88" y="1120" width="480" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-117" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-117" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="324.95" y="1040" width="480" height="40" as="geometry" />
|
<mxGeometry x="324.95" y="1040" width="615.05" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="weFQkCekfF49Ojb9-c9R-118" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
<mxCell id="weFQkCekfF49Ojb9-c9R-118" value="&lt;Nothing&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="323.17" y="960" width="481.78" height="40" as="geometry" />
|
<mxGeometry x="323.17" y="960" width="481.78" height="40" as="geometry" />
|
||||||
@@ -1545,7 +1545,7 @@
|
|||||||
<mxGeometry x="3896" y="2429" width="129.39" height="40" as="geometry" />
|
<mxGeometry x="3896" y="2429" width="129.39" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-48" value="<div style="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; color: rgb(204, 204, 204);"><div style="line-height: 19px;"><font color="#9cdcfe">send()</font></div></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-48" value="<div style="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; color: rgb(204, 204, 204);"><div style="line-height: 19px;"><font color="#9cdcfe">send()</font></div></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="3730" y="2662.5" width="129.39" height="40" as="geometry" />
|
<mxGeometry x="3910" y="2662.5" width="129.39" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="XcvvJTe7fp8kAcVMuZUQ-48" target="XcvvJTe7fp8kAcVMuZUQ-8" edge="1">
|
<mxCell id="XcvvJTe7fp8kAcVMuZUQ-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="XcvvJTe7fp8kAcVMuZUQ-48" target="XcvvJTe7fp8kAcVMuZUQ-8" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
@@ -1612,7 +1612,7 @@
|
|||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-11" value="size" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-11" value="size" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1282.21" y="1419.5" width="80.95" height="20" as="geometry" />
|
<mxGeometry x="1282.21" y="1419.5" width="80.95" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-4" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-4" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1000" y="2810" width="270" height="100" as="geometry" />
|
<mxGeometry x="1000" y="2810" width="270" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-12" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-12" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
@@ -1630,21 +1630,78 @@
|
|||||||
<mxCell id="xHqxyqidxHPQPkM2u2fy-16" value="Reset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
<mxCell id="xHqxyqidxHPQPkM2u2fy-16" value="Reset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="241.95" y="640" width="81" height="40" as="geometry" />
|
<mxGeometry x="241.95" y="640" width="81" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-2" value="Port" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-2" value="Port" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1523.16" y="1241" width="76.84" height="20" as="geometry" />
|
<mxGeometry x="1523.16" y="1241" width="76.84" height="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-5" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-5" value="i2C Package Rx Task" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeWidth=2;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1570.28" y="2917.5" width="270" height="100" as="geometry" />
|
<mxGeometry x="1570.28" y="2917.5" width="270" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-6" value="CI_Rev_Instructions 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=#000000;shape=mxgraph.azure.queue_generic;labelBackgroundColor=default;flipH=0;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-6" value="CI_Rev_Instructions 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=#000000;shape=mxgraph.azure.queue_generic;labelBackgroundColor=default;flipH=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1328.33" y="2940" width="183.33" height="55" as="geometry" />
|
<mxGeometry x="1328.33" y="2940" width="183.33" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-7" 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="ZwaYYf2tyudIqjw2MeNF-7" 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" parent="1" vertex="1">
|
||||||
<mxGeometry x="98.31999999999994" y="1504.41" width="40" height="32" as="geometry" />
|
<mxGeometry x="98.31999999999994" y="1504.41" width="40" height="32" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="ZwaYYf2tyudIqjw2MeNF-8" value="" style="shape=mxgraph.mockup.markup.redX;fillColor=#ff0000;html=1;shadow=0;whiteSpace=wrap;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-8" value="" style="shape=mxgraph.mockup.markup.redX;fillColor=#ff0000;html=1;shadow=0;whiteSpace=wrap;strokeColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="145" y="1290" width="675" height="60" as="geometry" />
|
<mxGeometry x="145" y="1290" width="675" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-9" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="98.31999999999994" y="1380" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-11" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="98.31999999999994" y="1225" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-12" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1369.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-13" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1407.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-15" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1450.41" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-16" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1050" y="1240" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-17" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1198.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-18" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1082.18" y="1160" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-19" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1617.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="ZwaYYf2tyudIqjw2MeNF-20" 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" parent="1" vertex="1">
|
||||||
|
<mxGeometry x="1090" y="1535.5" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-1" 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="85.37999999999994" y="868" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-2" 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="101.32999999999993" y="1108" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-3" value="<span style="font-size: 10px;">X</span><span style="font-size: 8.33333px;"><sub>Cells&nbsp;</sub>uint</span>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="795.88" y="1020" width="78.29" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-4" value="<span style="font-size: 10px;">Y</span><span style="font-size: 8.33333px;"><sub>Cells&nbsp;</sub>uint</span>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="874.17" y="1020" width="65.83" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-5" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="786.17" y="1000" width="80.72" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-6" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="859.28" y="1000" width="80.72" height="20" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-7" 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="101.32999999999993" y="1021" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-8" 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="85.37999999999994" y="940" width="40" height="32" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="PalTPUc4YgjrWZW5Ocwr-9" value="Missing Offset:" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||||
|
<mxGeometry x="840" y="956" width="60" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
</diagram>
|
</diagram>
|
||||||
|
|||||||
@@ -3,8 +3,14 @@
|
|||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
|
|
||||||
enum GobotRPCNumber {
|
enum GobotRPCNumber {
|
||||||
|
HOME_XY = 0x1,
|
||||||
|
SET_PADDING = 0x2,
|
||||||
|
GOTO = 0x3,
|
||||||
|
RELEASE_MOTORS = 0x4,
|
||||||
|
|
||||||
DROP_STONE = 0x5,
|
DROP_STONE = 0x5,
|
||||||
MOVE_Z_AXIS = 0x7,
|
MOVE_Z_AXIS = 0x7,
|
||||||
|
|
||||||
VACUM = 0x8,
|
VACUM = 0x8,
|
||||||
RESET = 0xc,
|
RESET = 0xc,
|
||||||
GET_INFO = 0xd
|
GET_INFO = 0xd
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ typedef void (*onPackageRxCallback)(void * args, char *data, uint16_t len, Gobot
|
|||||||
enum NODE_TYPE: uint8_t {
|
enum NODE_TYPE: uint8_t {
|
||||||
NODE_TYPE_VACUM = 0xa1,
|
NODE_TYPE_VACUM = 0xa1,
|
||||||
NODE_TYPE_HEAD = 0xa2,
|
NODE_TYPE_HEAD = 0xa2,
|
||||||
|
NODE_TYPE_COREXY = 0xa3,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct InfoData {
|
struct InfoData {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "hardware/irq.h"
|
#include "hardware/irq.h"
|
||||||
|
|
||||||
struct GobotRPC_NI_Package_Transport {
|
struct GobotRPC_NI_Package_Transport {
|
||||||
char data[32];
|
char data[256];
|
||||||
uint length;
|
uint length;
|
||||||
uint index;
|
uint index;
|
||||||
};
|
};
|
||||||
|
|||||||
BIN
i2c-hub/uart-adapter/src/gobotrpc/mapping.py
(Stored with Git LFS)
BIN
i2c-hub/uart-adapter/src/gobotrpc/mapping.py
(Stored with Git LFS)
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_home.py
(Stored with Git LFS)
Normal file
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_home.py
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_release_motors.py
(Stored with Git LFS)
Normal file
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_release_motors.py
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_set_padding.py
(Stored with Git LFS)
Normal file
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/package_set_padding.py
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/packages_goto.py
(Stored with Git LFS)
Normal file
BIN
i2c-hub/uart-adapter/src/gobotrpc/packages/corexy/packages_goto.py
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
i2c-hub/uart-adapter/src/gobotrpc/rpc_packages_corexy.py
(Stored with Git LFS)
Normal file
BIN
i2c-hub/uart-adapter/src/gobotrpc/rpc_packages_corexy.py
(Stored with Git LFS)
Normal file
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.
@@ -37,6 +37,9 @@
|
|||||||
"raspberry-pi-pico.cmakePath": "${HOME}/.pico-sdk/cmake/v3.29.9/bin/cmake",
|
"raspberry-pi-pico.cmakePath": "${HOME}/.pico-sdk/cmake/v3.29.9/bin/cmake",
|
||||||
"raspberry-pi-pico.ninjaPath": "${HOME}/.pico-sdk/ninja/v1.12.1/ninja",
|
"raspberry-pi-pico.ninjaPath": "${HOME}/.pico-sdk/ninja/v1.12.1/ninja",
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"cstdint": "cpp"
|
"cstdint": "cpp",
|
||||||
|
"array": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"string_view": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ project(core-xy-firmware C CXX ASM)
|
|||||||
# Add FreeRTOS
|
# Add FreeRTOS
|
||||||
include(cmake/FreeRTOS_Kernel_import.cmake)
|
include(cmake/FreeRTOS_Kernel_import.cmake)
|
||||||
|
|
||||||
|
# Adding GobotRPC Node Library
|
||||||
|
include(lib/gobotrpc/cmake/gobotRPC_Node.cmake)
|
||||||
|
|
||||||
# Initialise the Raspberry Pi Pico SDK
|
# Initialise the Raspberry Pi Pico SDK
|
||||||
pico_sdk_init()
|
pico_sdk_init()
|
||||||
|
|
||||||
@@ -44,7 +47,6 @@ add_executable(core-xy-firmware
|
|||||||
src/main.cpp
|
src/main.cpp
|
||||||
src/motors.cpp
|
src/motors.cpp
|
||||||
src/corexy/init.cpp
|
src/corexy/init.cpp
|
||||||
src/corexy/tasks.cpp
|
|
||||||
src/corexy/motorFunctions.cpp
|
src/corexy/motorFunctions.cpp
|
||||||
src/corexy/limitSwitches.cpp
|
src/corexy/limitSwitches.cpp
|
||||||
src/corexy/position.cpp
|
src/corexy/position.cpp
|
||||||
@@ -76,6 +78,7 @@ target_link_libraries(core-xy-firmware
|
|||||||
|
|
||||||
tmc2209_driver
|
tmc2209_driver
|
||||||
FreeRTOS-Kernel-Heap4
|
FreeRTOS-Kernel-Heap4
|
||||||
|
GobotRPC_Node_RP2040_I2C
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add the standard include files to the build
|
# Add the standard include files to the build
|
||||||
|
|||||||
@@ -72,8 +72,8 @@
|
|||||||
/* Memory allocation related definitions. */
|
/* Memory allocation related definitions. */
|
||||||
#define configSUPPORT_STATIC_ALLOCATION 0
|
#define configSUPPORT_STATIC_ALLOCATION 0
|
||||||
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
#define configSUPPORT_DYNAMIC_ALLOCATION 1
|
||||||
#define configTOTAL_HEAP_SIZE (1024 * 64)
|
#define configTOTAL_HEAP_SIZE (1024 * 128)
|
||||||
#define configAPPLICATION_ALLOCATED_HEAP (1024 * 32)
|
#define configAPPLICATION_ALLOCATED_HEAP (1024 * 64)
|
||||||
|
|
||||||
/* Hook function related definitions. */
|
/* Hook function related definitions. */
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 0
|
#define configCHECK_FOR_STACK_OVERFLOW 0
|
||||||
@@ -104,11 +104,11 @@
|
|||||||
|
|
||||||
#if FREE_RTOS_KERNEL_SMP // set by the RP2040 SMP port of FreeRTOS
|
#if FREE_RTOS_KERNEL_SMP // set by the RP2040 SMP port of FreeRTOS
|
||||||
/* SMP port only */
|
/* SMP port only */
|
||||||
#define configUSE_PASSIVE_IDLE_HOOK 0
|
#define configNUMBER_OF_CORES 2
|
||||||
#define configNUMBER_OF_CORES 1
|
|
||||||
#define configTICK_CORE 0
|
#define configTICK_CORE 0
|
||||||
#define configRUN_MULTIPLE_PRIORITIES 1
|
#define configRUN_MULTIPLE_PRIORITIES 1
|
||||||
//#define configUSE_CORE_AFFINITY 1
|
#define configUSE_CORE_AFFINITY 1
|
||||||
|
#define configUSE_PASSIVE_IDLE_HOOK 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* RP2040 specific */
|
/* RP2040 specific */
|
||||||
|
|||||||
@@ -81,9 +81,8 @@ private:
|
|||||||
int untilNextHome = HOME_COUNT;
|
int untilNextHome = HOME_COUNT;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CoreXYMaschine(TMC2209_UART * uart_driver0, TMC2209_UART * uart_driver1, TMC2209_step_dual * step_driver);
|
CoreXYMaschine(TMC2209_UART * uart_driver0, TMC2209_UART * uart_driver1, TMC2209_step_dual * step_driver, uint core);
|
||||||
|
|
||||||
void runTasks();
|
|
||||||
void homeFast(MotorPosition * last_pos, bool ignoreMutex);
|
void homeFast(MotorPosition * last_pos, bool ignoreMutex);
|
||||||
void home(MotorPosition * last_pos);
|
void home(MotorPosition * last_pos);
|
||||||
|
|
||||||
|
|||||||
17
motor-control/core-xy-firmware/include/pinConfigNode.hpp
Normal file
17
motor-control/core-xy-firmware/include/pinConfigNode.hpp
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#pragma once
|
||||||
|
#define CORE_MASK_GOBOTRPC 0b01
|
||||||
|
#define CORE_MASK_MOTOR 0b01
|
||||||
|
|
||||||
|
#define LED1_PIN 25
|
||||||
|
#define LED2_PIN 16
|
||||||
|
|
||||||
|
#define RELAY_PIN 15
|
||||||
|
|
||||||
|
#define GORPC_INT_PIN 17
|
||||||
|
#define GORPC_SDA_PIN 18
|
||||||
|
#define GORPC_SCL_PIN 19
|
||||||
|
|
||||||
|
#define INTERRUPTION_DURATION ((int)(2.5 * 1000))
|
||||||
|
#define INTERRUPTION_DELAY 5 * 1000
|
||||||
|
|
||||||
|
#define I2C_ADDR 0x23
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
CoreXYMaschine::CoreXYMaschine(TMC2209_UART * uart_driver0, TMC2209_UART * uart_driver1, TMC2209_step_dual * step_driver) {
|
CoreXYMaschine::CoreXYMaschine(TMC2209_UART * uart_driver0, TMC2209_UART * uart_driver1, TMC2209_step_dual * step_driver, uint core) {
|
||||||
this->uart_driver0 = uart_driver0;
|
this->uart_driver0 = uart_driver0;
|
||||||
this->uart_driver1 = uart_driver1;
|
this->uart_driver1 = uart_driver1;
|
||||||
this->step_driver = step_driver;
|
this->step_driver = step_driver;
|
||||||
|
|||||||
@@ -28,9 +28,10 @@ void CoreXYMaschine::home(MotorPosition * last_pos) {
|
|||||||
xSemaphoreTake(xMoveMutex, portMAX_DELAY);
|
xSemaphoreTake(xMoveMutex, portMAX_DELAY);
|
||||||
MotorPosition res = {0, 0};
|
MotorPosition res = {0, 0};
|
||||||
|
|
||||||
homeXY(step_driver, ORIGIN, HOME_SPEED_FAST, 0, &res);
|
homeXY(step_driver, ORIGIN, HOME_SPEED_FAST, 0, last_pos);
|
||||||
homeXY(step_driver, ORIGIN, HOME_SPEED_SLOW, 500, &res);
|
homeXY(step_driver, ORIGIN, HOME_SPEED_SLOW, 500, &res);
|
||||||
posUnknow = false;
|
posUnknow = false;
|
||||||
|
|
||||||
current_pos = {x:0, y:0};
|
current_pos = {x:0, y:0};
|
||||||
untilNextHome = HOME_COUNT;
|
untilNextHome = HOME_COUNT;
|
||||||
xSemaphoreGive(xMoveMutex);
|
xSemaphoreGive(xMoveMutex);
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
#include "CoreXY.hpp"
|
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
|
||||||
#include "task.h"
|
|
||||||
#include "stdio.h"
|
|
||||||
|
|
||||||
void waitForUserInput() {
|
|
||||||
getchar();
|
|
||||||
}
|
|
||||||
|
|
||||||
void performGridCall(CoreXYMaschine * machine) {
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
|
|
||||||
MotorPosition p0 = {.x=1296, .y=1802};
|
|
||||||
MotorPosition p1 = {.x=16696, .y=18722};
|
|
||||||
|
|
||||||
// machine->homeFast(&p0, false);
|
|
||||||
// printf("First Position\n");
|
|
||||||
// machine->setMotorEnabled(false);
|
|
||||||
// waitForUserInput();
|
|
||||||
// machine->setMotorEnabled(true);
|
|
||||||
// machine->homeFast(&p0, false);
|
|
||||||
//
|
|
||||||
// printf("Second Position\n");
|
|
||||||
// machine->setMotorEnabled(false);
|
|
||||||
// waitForUserInput();
|
|
||||||
// machine->setMotorEnabled(true);
|
|
||||||
// machine->homeFast(&p1, false);
|
|
||||||
//
|
|
||||||
// printf("First Position: %d, %d\n", p0.x, p0.y);
|
|
||||||
// printf("Second Position: %d, %d\n", p1.x, p1.y);
|
|
||||||
//
|
|
||||||
BoardMessurements messurements = calcBoardMessurements(p0, p1, 19, 19);
|
|
||||||
machine->setBoardMessurements(messurements);
|
|
||||||
printf("Hi!\n");
|
|
||||||
machine->home(NULL);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->gotoPosition(10, 9);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->gotoPosition(9, 10);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->gotoPosition(8, 9);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->gotoPosition(9, 8);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->gotoPosition(10, 7);
|
|
||||||
waitForUserInput();
|
|
||||||
machine->home(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
//machine->gotoPosition(7, 6);
|
|
||||||
|
|
||||||
//for(int i = 0; i < 19; i++) {
|
|
||||||
// for(int j = 0; j < 19; j++) {
|
|
||||||
// machine->gotoPosition(i, j);
|
|
||||||
// vTaskDelay(100 / portTICK_PERIOD_MS);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
//machine->home(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void vTaskInitMotorHome(void *pvParameters) {
|
|
||||||
CoreXYMaschine * machine = (CoreXYMaschine *)pvParameters;
|
|
||||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
|
||||||
|
|
||||||
MotorPosition res;
|
|
||||||
machine->home(&res);
|
|
||||||
|
|
||||||
performGridCall(machine);
|
|
||||||
|
|
||||||
vTaskDelete(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CoreXYMaschine::runTasks() {
|
|
||||||
xTaskCreate(vTaskInitMotorHome, "Initial Motor Home", 1024, this, 5, NULL);
|
|
||||||
|
|
||||||
vTaskStartScheduler();
|
|
||||||
while(1) {
|
|
||||||
tight_loop_contents();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -24,6 +24,12 @@
|
|||||||
#include "FreeRTOSConfig.h"
|
#include "FreeRTOSConfig.h"
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
#include "queue.h"
|
||||||
|
|
||||||
|
#include "pinConfigNode.hpp"
|
||||||
|
#include "node_interface_hardware.hpp"
|
||||||
|
#include "node_interface.hpp"
|
||||||
|
#include "protocol.hpp"
|
||||||
|
|
||||||
#define LED_PIN 25
|
#define LED_PIN 25
|
||||||
|
|
||||||
@@ -55,83 +61,20 @@ enum SYSTEM_STATE {
|
|||||||
|
|
||||||
SYSTEM_STATE system_state = STARTUP;
|
SYSTEM_STATE system_state = STARTUP;
|
||||||
|
|
||||||
/*
|
struct AppData {
|
||||||
void homeMotors0(TMC2209_step_dual * driver) {
|
xQueueHandle txQueue;
|
||||||
|
xQueueHandle rxQueue;
|
||||||
|
GobotRPC_NI * gobotrpc_ni;
|
||||||
|
CoreXYMaschine * machine;
|
||||||
|
};
|
||||||
|
|
||||||
driver->set_conf0(10000, 1);
|
AppData g_appData;
|
||||||
driver->pulse0(10000);
|
|
||||||
driver->wait0(0);
|
|
||||||
|
|
||||||
driver->set_conf0(10000, 0);
|
|
||||||
driver->pulse0(100000);
|
|
||||||
while(!gpio_get(LIMIT2_PIN)) {
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
driver->pulse0(0);
|
|
||||||
sleep_ms(500);
|
|
||||||
|
|
||||||
// Second Run
|
|
||||||
driver->set_conf0(5000, 1);
|
|
||||||
driver->pulse0(200);
|
|
||||||
driver->wait0(0);
|
|
||||||
|
|
||||||
driver->set_conf0(500, 0);
|
|
||||||
driver->pulse0(5000);
|
|
||||||
while(!gpio_get(LIMIT2_PIN)) {
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
driver->pulse0(0);
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void homeMotors1(TMC2209_step_dual * driver) {
|
|
||||||
|
|
||||||
driver->set_conf1(10000, 1);
|
|
||||||
driver->pulse1(5000);
|
|
||||||
driver->wait1(0);
|
|
||||||
|
|
||||||
driver->set_conf1(10000, 0);
|
|
||||||
driver->pulse1(100000);
|
|
||||||
while(!gpio_get(LIMIT3_PIN)) {
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
driver->pulse1(0);
|
|
||||||
sleep_ms(500);
|
|
||||||
|
|
||||||
// Second Run
|
|
||||||
driver->set_conf1(5000, 1);
|
|
||||||
driver->pulse1(200);
|
|
||||||
driver->wait1(0);
|
|
||||||
|
|
||||||
driver->set_conf1(500, 0);
|
|
||||||
driver->pulse1(5000);
|
|
||||||
while(!gpio_get(LIMIT3_PIN)) {
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
driver->pulse1(0);
|
|
||||||
sleep_ms(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void task_home0(void *pvParameters) {
|
|
||||||
TMC2209_step_dual * driver = (TMC2209_step_dual *)pvParameters;
|
|
||||||
vTaskDelay(500);
|
|
||||||
homeMotors0(driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
void task_home1(void *pvParameters) {
|
|
||||||
TMC2209_step_dual * driver = (TMC2209_step_dual *)pvParameters;
|
|
||||||
homeMotors1(driver);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
void MainTaskMotors(void * pvParameters) {
|
||||||
|
AppData * appData = (AppData *) pvParameters;
|
||||||
|
|
||||||
|
// Initing Motors
|
||||||
int main() {
|
|
||||||
stdio_init_all();
|
|
||||||
|
|
||||||
printf("Hello, World!\n");
|
|
||||||
|
|
||||||
TMC2209_step_dual step_driver = TMC2209_step_dual(
|
TMC2209_step_dual step_driver = TMC2209_step_dual(
|
||||||
STEP0_PIN, STEP1_PIN,
|
STEP0_PIN, STEP1_PIN,
|
||||||
DIR0_PIN, DIR1_PIN,
|
DIR0_PIN, DIR1_PIN,
|
||||||
@@ -142,123 +85,139 @@ int main() {
|
|||||||
TMC2209_UART uart_driver0 = TMC2209_UART(uart0, 0, 19200, 0, 1);
|
TMC2209_UART uart_driver0 = TMC2209_UART(uart0, 0, 19200, 0, 1);
|
||||||
TMC2209_UART uart_driver1 = TMC2209_UART(uart1, 0, 19200, 4, 5);
|
TMC2209_UART uart_driver1 = TMC2209_UART(uart1, 0, 19200, 4, 5);
|
||||||
|
|
||||||
CoreXYMaschine machine = CoreXYMaschine(&uart_driver0, &uart_driver1, &step_driver);
|
CoreXYMaschine machine = CoreXYMaschine(&uart_driver0, &uart_driver1, &step_driver, CORE_MASK_MOTOR);
|
||||||
|
appData->machine = &machine;
|
||||||
|
|
||||||
volatile uint8_t a = uart_driver0.read(REG_ADDR_CHOPPER_CHOPCONF);
|
volatile uint8_t a = uart_driver0.read(REG_ADDR_CHOPPER_CHOPCONF);
|
||||||
volatile uint8_t b = uart_driver1.read(REG_ADDR_CHOPPER_CHOPCONF);
|
volatile uint8_t b = uart_driver1.read(REG_ADDR_CHOPPER_CHOPCONF);
|
||||||
|
|
||||||
machine.runTasks();
|
appData->machine->home(NULL);
|
||||||
|
vTaskSuspend(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
void onRxPackage(void * args, char *data, uint16_t len, GobotRPCTypes type, GobotRPCNumber number) {
|
||||||
gpio_init(LIMIT0_PIN);
|
AppData * appData = (AppData *) args;
|
||||||
gpio_set_dir(LIMIT0_PIN, GPIO_IN);
|
char txBuffer[32];
|
||||||
gpio_pull_up(LIMIT0_PIN);
|
|
||||||
gpio_set_input_hysteresis_enabled(LIMIT0_PIN, true);
|
|
||||||
|
|
||||||
gpio_init(LIMIT1_PIN);
|
switch (number) {
|
||||||
gpio_set_dir(LIMIT1_PIN, GPIO_IN);
|
case GobotRPCNumber::GET_INFO: {
|
||||||
gpio_pull_up(LIMIT1_PIN);
|
InfoData info = appData->gobotrpc_ni->getInfo();
|
||||||
gpio_set_input_hysteresis_enabled(LIMIT1_PIN, true);
|
txBuffer[0] = (info.addr >> 24) & 0xFF;
|
||||||
|
txBuffer[1] = (info.addr >> 16) & 0xFF;
|
||||||
|
txBuffer[2] = (info.addr >> 8) & 0xFF;
|
||||||
|
txBuffer[3] = info.addr & 0xFF;
|
||||||
|
txBuffer[4] = info.type;
|
||||||
|
|
||||||
gpio_init(LIMIT2_PIN);
|
g_appData.gobotrpc_ni->sendPackage(txBuffer, 5, GobotRPCTypes::RESPONSE, GobotRPCNumber::GET_INFO);
|
||||||
gpio_set_dir(LIMIT2_PIN, GPIO_IN);
|
break;
|
||||||
gpio_pull_up(LIMIT2_PIN);
|
|
||||||
gpio_set_input_hysteresis_enabled(LIMIT2_PIN, true);
|
|
||||||
|
|
||||||
gpio_init(LIMIT3_PIN);
|
|
||||||
gpio_set_dir(LIMIT3_PIN, GPIO_IN);
|
|
||||||
gpio_pull_up(LIMIT3_PIN);
|
|
||||||
gpio_set_input_hysteresis_enabled(LIMIT3_PIN, true);
|
|
||||||
|
|
||||||
gpio_set_irq_enabled_with_callback(
|
|
||||||
LIMIT0_PIN,
|
|
||||||
GPIO_IRQ_EDGE_RISE,
|
|
||||||
true,
|
|
||||||
isr_LimitSwitch
|
|
||||||
);
|
|
||||||
gpio_set_irq_enabled_with_callback(
|
|
||||||
LIMIT1_PIN,
|
|
||||||
GPIO_IRQ_EDGE_RISE,
|
|
||||||
true,
|
|
||||||
isr_LimitSwitch
|
|
||||||
);
|
|
||||||
gpio_set_irq_enabled_with_callback(
|
|
||||||
LIMIT2_PIN,
|
|
||||||
GPIO_IRQ_EDGE_RISE,
|
|
||||||
true,
|
|
||||||
isr_LimitSwitch
|
|
||||||
);
|
|
||||||
gpio_set_irq_enabled_with_callback(
|
|
||||||
LIMIT3_PIN,
|
|
||||||
GPIO_IRQ_EDGE_RISE,
|
|
||||||
true,
|
|
||||||
isr_LimitSwitch
|
|
||||||
);
|
|
||||||
|
|
||||||
gpio_init(RGB2_B_PIN);
|
|
||||||
gpio_init(RGB2_G_PIN);
|
|
||||||
gpio_init(RGB2_R_PIN);
|
|
||||||
gpio_set_dir(RGB2_B_PIN, GPIO_OUT);
|
|
||||||
gpio_set_dir(RGB2_G_PIN, GPIO_OUT);
|
|
||||||
gpio_set_dir(RGB2_R_PIN, GPIO_OUT);
|
|
||||||
|
|
||||||
gpio_init(RGB1_B_PIN);
|
|
||||||
gpio_init(RGB1_G_PIN);
|
|
||||||
gpio_set_dir(RGB1_B_PIN, GPIO_OUT);
|
|
||||||
gpio_set_dir(RGB1_G_PIN, GPIO_OUT);
|
|
||||||
|
|
||||||
gpio_put(RGB1_B_PIN, 1);
|
|
||||||
gpio_put(RGB1_G_PIN, 1);
|
|
||||||
gpio_put(RGB2_B_PIN, 1);
|
|
||||||
gpio_put(RGB2_G_PIN, 1);
|
|
||||||
gpio_put(RGB2_R_PIN, 1);
|
|
||||||
|
|
||||||
|
|
||||||
gpio_init(LED_PIN);
|
|
||||||
gpio_set_dir(LED_PIN, GPIO_OUT);
|
|
||||||
|
|
||||||
//step_driver.set_conf0(10000, 0);
|
|
||||||
//step_driver.pulse0(1000000);
|
|
||||||
homeMotors0(&step_driver);
|
|
||||||
printf("Home0 done\n");
|
|
||||||
homeMotors1(&step_driver);
|
|
||||||
printf("Home1 done\n");
|
|
||||||
*/
|
|
||||||
//xTaskCreate(task_home0, "Home0", 1024, &step_driver, 5, NULL);
|
|
||||||
//xTaskCreate(task_home1, "Home1", 1024, &step_driver, 5, NULL);
|
|
||||||
|
|
||||||
/*
|
|
||||||
while (true) {
|
|
||||||
sleep_ms(50);
|
|
||||||
gpio_put(LED_PIN, 0);
|
|
||||||
sleep_ms(50);
|
|
||||||
gpio_put(LED_PIN, 1);
|
|
||||||
|
|
||||||
if(gpio_get(LIMIT1_PIN)) {
|
|
||||||
gpio_put(RGB1_B_PIN, 0);
|
|
||||||
} else {
|
|
||||||
gpio_put(RGB1_B_PIN, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(LIMIT3_PIN)) {
|
case GobotRPCNumber::RESET: {
|
||||||
gpio_put(RGB1_G_PIN, 0);
|
softwareReset();
|
||||||
} else {
|
break;
|
||||||
gpio_put(RGB1_G_PIN, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(LIMIT0_PIN)) {
|
case GobotRPCNumber::HOME_XY: {
|
||||||
gpio_put(RGB2_B_PIN, 0);
|
MotorPosition pos;
|
||||||
} else {
|
appData->machine->home(&pos);
|
||||||
gpio_put(RGB2_B_PIN, 1);
|
txBuffer[0] = (pos.x >> 24) & 0xFF;
|
||||||
|
txBuffer[1] = (pos.x >> 16) & 0xFF;
|
||||||
|
txBuffer[2] = (pos.x >> 8) & 0xFF;
|
||||||
|
txBuffer[3] = pos.x & 0xFF;
|
||||||
|
|
||||||
|
txBuffer[4] = (pos.y >> 24) & 0xFF;
|
||||||
|
txBuffer[5] = (pos.y >> 16) & 0xFF;
|
||||||
|
txBuffer[6] = (pos.y >> 8) & 0xFF;
|
||||||
|
txBuffer[7] = pos.y & 0xFF;
|
||||||
|
|
||||||
|
g_appData.gobotrpc_ni->sendPackage(txBuffer, 8, GobotRPCTypes::RESPONSE, GobotRPCNumber::HOME_XY);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(gpio_get(LIMIT2_PIN)) {
|
case GobotRPCNumber::RELEASE_MOTORS: {
|
||||||
gpio_put(RGB2_G_PIN, 0);
|
bool enable = data[0];
|
||||||
} else {
|
appData->machine->setMotorEnabled(enable);
|
||||||
gpio_put(RGB2_G_PIN, 1);
|
g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::RELEASE_MOTORS);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case GobotRPCNumber::SET_PADDING: {
|
||||||
|
MotorPosition p1;
|
||||||
|
MotorPosition p2;
|
||||||
|
MotorPosition p3;
|
||||||
|
|
||||||
|
p1.x = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
|
||||||
|
p1.y = (data[4] << 24) | (data[5] << 16) | (data[6] << 8) | data[7];
|
||||||
|
p2.x = (data[8] << 24) | (data[9] << 16) | (data[10] << 8) | data[11];
|
||||||
|
p2.y = (data[12] << 24) | (data[13] << 16) | (data[14] << 8) | data[15];
|
||||||
|
p3.x = (data[16] << 24) | (data[17] << 16) | (data[18] << 8) | data[19];
|
||||||
|
p3.y = (data[20] << 24) | (data[21] << 16) | (data[22] << 8) | data[23];
|
||||||
|
uint8_t cellX = data[24];
|
||||||
|
uint8_t cellY = data[25];
|
||||||
|
|
||||||
|
BoardMessurements messurements = calcBoardMessurements(p1, p2, cellX, cellY);
|
||||||
|
appData->machine->setBoardMessurements(messurements);
|
||||||
|
g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::SET_PADDING);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case GobotRPCNumber::GOTO: {
|
||||||
|
int x = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
|
||||||
|
int y = (data[4] << 24) | (data[5] << 16) | (data[6] << 8) | data[7];
|
||||||
|
bool offset = data[8] > 0;
|
||||||
|
appData->machine->gotoPosition(x, y);
|
||||||
|
g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::GOTO);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
}
|
||||||
|
|
||||||
return 0;
|
void MainTaskGobotRPC(void * pvParameters) {
|
||||||
|
AppData * appData = (AppData *) pvParameters;
|
||||||
|
|
||||||
|
GobotRPC_NI_Hardware_RP2040_I2C gobotrpc_ni_hardware(
|
||||||
|
appData->txQueue, appData->rxQueue, CORE_MASK_GOBOTRPC,
|
||||||
|
i2c1, I2C_ADDR, GORPC_SDA_PIN, GORPC_SCL_PIN, GORPC_INT_PIN
|
||||||
|
);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
gpio_put(LED1_PIN, 0);
|
||||||
|
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||||
|
gpio_put(LED1_PIN, 1);
|
||||||
|
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
stdio_init_all();
|
||||||
|
|
||||||
|
printf("Hello, World!\n");
|
||||||
|
|
||||||
|
gpio_init(LED_PIN);
|
||||||
|
gpio_set_dir(LED1_PIN, GPIO_OUT);
|
||||||
|
gpio_put(LED_PIN, 1);
|
||||||
|
|
||||||
|
// Creating Queues
|
||||||
|
g_appData.txQueue = xQueueCreate(16, sizeof(GobotRPC_NI_Package_Transport));
|
||||||
|
g_appData.rxQueue = xQueueCreate(16, sizeof(GobotRPC_NI_Package_Transport));
|
||||||
|
|
||||||
|
// Setting up GobotRPC
|
||||||
|
InfoData info = {.addr=I2C_ADDR, .type=NODE_TYPE_COREXY};
|
||||||
|
|
||||||
|
GobotRPC_NI gobotrpc_ni(CORE_MASK_MOTOR, g_appData.txQueue, g_appData.rxQueue, info);
|
||||||
|
gobotrpc_ni.registerOnPackageRxCallback(onRxPackage, &g_appData);
|
||||||
|
g_appData.gobotrpc_ni = &gobotrpc_ni;
|
||||||
|
|
||||||
|
// Starting Tasks
|
||||||
|
xTaskCreateAffinitySet(MainTaskMotors, "Main Task Motors", 1024, &g_appData, 5, CORE_MASK_MOTOR, NULL);
|
||||||
|
xTaskCreateAffinitySet(MainTaskGobotRPC, "Main Task GobotRPC", 1024, &g_appData, 5, CORE_MASK_GOBOTRPC, NULL);
|
||||||
|
|
||||||
|
vTaskStartScheduler();
|
||||||
|
while(1) {
|
||||||
|
tight_loop_contents();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ void TMC2209_step_dual::init_gpio() {
|
|||||||
gpio_set_dir(this->enable1_pin, GPIO_OUT);
|
gpio_set_dir(this->enable1_pin, GPIO_OUT);
|
||||||
gpio_put(this->enable0_pin, 0);
|
gpio_put(this->enable0_pin, 0);
|
||||||
gpio_put(this->enable1_pin, 0);
|
gpio_put(this->enable1_pin, 0);
|
||||||
sleep_ms(1);
|
vTaskDelay(1 / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
gpio_init(this->dir0_pin);
|
gpio_init(this->dir0_pin);
|
||||||
gpio_init(this->dir1_pin);
|
gpio_init(this->dir1_pin);
|
||||||
@@ -62,7 +62,7 @@ void TMC2209_step_dual::init_gpio() {
|
|||||||
gpio_set_dir(this->dir1_pin, GPIO_OUT);
|
gpio_set_dir(this->dir1_pin, GPIO_OUT);
|
||||||
gpio_put(this->dir0_pin, 1);
|
gpio_put(this->dir0_pin, 1);
|
||||||
gpio_put(this->dir1_pin, 1);
|
gpio_put(this->dir1_pin, 1);
|
||||||
sleep_ms(1);
|
vTaskDelay(1 / portTICK_PERIOD_MS);
|
||||||
};
|
};
|
||||||
|
|
||||||
void TMC2209_step_dual::init_pio() {
|
void TMC2209_step_dual::init_pio() {
|
||||||
|
|||||||
Reference in New Issue
Block a user