Skip to content

Commit 08d4807

Browse files
committed
Doc - Getting started - add diagram Architecture C1
1 parent 4eaf89c commit 08d4807

File tree

3 files changed

+213
-0
lines changed

3 files changed

+213
-0
lines changed

docs/src/getting-started/about-linuxcnc.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
provide motion such as PUMA or SCARA robots.
4545
* LinuxCNC runs on Linux using real time extensions.
4646

47+
== Architecture - Context diagram
48+
49+
.Architecture
50+
image::images/LCNC_Architecture_C1.drawio.svg["LinuxCNC Architecture - Context diagram",align="center"]
51+
52+
4753
== The Operating System
4854

4955
LinuxCNC is available as ready-to-use packages for Debian
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.3.6 Chrome/140.0.7339.249 Electron/38.8.0 Safari/537.36" version="29.3.6">
2+
<diagram name="LinuxCNC C1 - HAL Boundary View" id="hg-Ft9fOhNlRWeP2RBG8">
3+
<mxGraphModel dx="1186" dy="831" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="800" background="none" math="0" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="nIgP8kuDs4C2zodZy1t4-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;" value="CNC machine operator" vertex="1">
8+
<mxGeometry height="81" width="200" x="81" y="39" as="geometry" />
9+
</mxCell>
10+
<mxCell id="nIgP8kuDs4C2zodZy1t4-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="GUI&#xa;Axis / Gmoccapy / Qt" vertex="1">
11+
<mxGeometry height="80" width="200" x="81" y="158" as="geometry" />
12+
</mxCell>
13+
<mxCell id="nIgP8kuDs4C2zodZy1t4-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="LinuxCNC Core Runtime&#xa;&#xa;• Motion controller&#xa;• Trajectory planner&#xa;• Kinematics&#xa;• Task controller&#xa;• G-code interpreter&#xa;• Status &amp; command IPC" vertex="1">
14+
<mxGeometry height="200" width="440" x="321" y="39" as="geometry" />
15+
</mxCell>
16+
<mxCell id="nIgP8kuDs4C2zodZy1t4-5" parent="1" style="whiteSpace=wrap;html=1;strokeWidth=3;fillColor=#ffe6cc;strokeColor=#d79b00;" value="HAL Interface Boundary&#xa;Pins · Signals · Threads · Functions" vertex="1">
17+
<mxGeometry height="40" width="631" x="170" y="299" as="geometry" />
18+
</mxCell>
19+
<mxCell id="nIgP8kuDs4C2zodZy1t4-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="HAL Configuration&#xa;(.hal files, loadrt, nets)&#xa;&#xa;Integrator-defined topology" vertex="1">
20+
<mxGeometry height="99" width="181" x="220" y="379" as="geometry" />
21+
</mxCell>
22+
<mxCell id="nIgP8kuDs4C2zodZy1t4-25" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;" target="nIgP8kuDs4C2zodZy1t4-9" value="">
23+
<mxGeometry relative="1" as="geometry" />
24+
</mxCell>
25+
<mxCell id="nIgP8kuDs4C2zodZy1t4-36" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;" target="nIgP8kuDs4C2zodZy1t4-29">
26+
<mxGeometry relative="1" as="geometry">
27+
<Array as="points">
28+
<mxPoint x="350" y="728" />
29+
<mxPoint x="861" y="728" />
30+
</Array>
31+
<mxPoint x="261" y="728" as="targetPoint" />
32+
</mxGeometry>
33+
</mxCell>
34+
<mxCell id="R6Wb_xS_bgafuBxYuA12-9" connectable="0" parent="nIgP8kuDs4C2zodZy1t4-36" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="For more complicated machines" vertex="1">
35+
<mxGeometry relative="1" x="0.189" y="-1" as="geometry">
36+
<mxPoint x="15" y="-10" as="offset" />
37+
</mxGeometry>
38+
</mxCell>
39+
<mxCell id="nIgP8kuDs4C2zodZy1t4-41" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" target="nIgP8kuDs4C2zodZy1t4-38">
40+
<mxGeometry relative="1" as="geometry" />
41+
</mxCell>
42+
<mxCell id="nIgP8kuDs4C2zodZy1t4-7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;" value="Integrator&#xa;(machine builder)" vertex="1">
43+
<mxGeometry height="60" width="131" x="250" y="578" as="geometry" />
44+
</mxCell>
45+
<mxCell id="nIgP8kuDs4C2zodZy1t4-31" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="nIgP8kuDs4C2zodZy1t4-8">
46+
<mxGeometry relative="1" as="geometry">
47+
<Array as="points">
48+
<mxPoint x="730" y="459" />
49+
<mxPoint x="730" y="459" />
50+
</Array>
51+
</mxGeometry>
52+
</mxCell>
53+
<mxCell id="nIgP8kuDs4C2zodZy1t4-32" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.002;entryY=0.197;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-8">
54+
<mxGeometry relative="1" as="geometry">
55+
<Array as="points">
56+
<mxPoint x="741" y="399" />
57+
</Array>
58+
<mxPoint x="731" y="398" as="targetPoint" />
59+
</mxGeometry>
60+
</mxCell>
61+
<mxCell id="nIgP8kuDs4C2zodZy1t4-8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="HAL Modules&lt;br&gt;(drivers, counters, stepgens, logic)" vertex="1">
62+
<mxGeometry height="100" width="280" x="441" y="379" as="geometry" />
63+
</mxCell>
64+
<mxCell id="nIgP8kuDs4C2zodZy1t4-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;" value="Machine Hardware&#xa;(axes, spindle, IO, safety)" vertex="1">
65+
<mxGeometry height="180" width="160" x="421" y="518" as="geometry" />
66+
</mxCell>
67+
<mxCell id="nIgP8kuDs4C2zodZy1t4-10" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-2" style="endArrow=block;html=1;startArrow=block;startFill=1;" target="nIgP8kuDs4C2zodZy1t4-3">
68+
<mxGeometry relative="1" as="geometry" />
69+
</mxCell>
70+
<mxCell id="nIgP8kuDs4C2zodZy1t4-11" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-3" style="endArrow=block;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.001;entryY=0.793;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=block;startFill=1;" target="nIgP8kuDs4C2zodZy1t4-4">
71+
<mxGeometry relative="1" as="geometry" />
72+
</mxCell>
73+
<mxCell id="nIgP8kuDs4C2zodZy1t4-12" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-7" style="endArrow=block;html=1;startArrow=none;startFill=0;exitX=0.471;exitY=-0.024;exitDx=0;exitDy=0;exitPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-6">
74+
<mxGeometry relative="1" as="geometry" />
75+
</mxCell>
76+
<mxCell id="nIgP8kuDs4C2zodZy1t4-13" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-6" style="endArrow=block;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.222;entryY=1.025;entryDx=0;entryDy=0;entryPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-5">
77+
<mxGeometry relative="1" as="geometry">
78+
<mxPoint x="261" y="341" as="targetPoint" />
79+
</mxGeometry>
80+
</mxCell>
81+
<mxCell id="nIgP8kuDs4C2zodZy1t4-14" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-8" style="endArrow=block;html=1;startArrow=block;startFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;">
82+
<mxGeometry relative="1" as="geometry">
83+
<mxPoint x="581" y="338" as="targetPoint" />
84+
</mxGeometry>
85+
</mxCell>
86+
<mxCell id="nIgP8kuDs4C2zodZy1t4-15" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-8" style="endArrow=block;html=1;startArrow=block;startFill=1;exitX=0.211;exitY=1.02;exitDx=0;exitDy=0;exitPerimeter=0;">
87+
<mxGeometry relative="1" as="geometry">
88+
<mxPoint x="500" y="518" as="targetPoint" />
89+
</mxGeometry>
90+
</mxCell>
91+
<mxCell id="nIgP8kuDs4C2zodZy1t4-16" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="nIgP8kuDs4C2zodZy1t4-4" value="">
92+
<mxGeometry height="50" relative="1" width="50" as="geometry">
93+
<mxPoint x="541" y="298" as="sourcePoint" />
94+
<mxPoint x="511" y="279" as="targetPoint" />
95+
</mxGeometry>
96+
</mxCell>
97+
<mxCell id="nIgP8kuDs4C2zodZy1t4-18" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-22" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;dashed=1;" target="nIgP8kuDs4C2zodZy1t4-2" value="">
98+
<mxGeometry height="50" relative="1" width="50" as="geometry">
99+
<Array as="points">
100+
<mxPoint x="681" y="758" />
101+
<mxPoint x="321" y="758" />
102+
<mxPoint x="41" y="758" />
103+
<mxPoint x="41" y="79" />
104+
</Array>
105+
<mxPoint x="521" y="698" as="sourcePoint" />
106+
<mxPoint x="41" y="-51" as="targetPoint" />
107+
</mxGeometry>
108+
</mxCell>
109+
<mxCell id="R6Wb_xS_bgafuBxYuA12-8" connectable="0" parent="nIgP8kuDs4C2zodZy1t4-18" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" value="Optional" vertex="1">
110+
<mxGeometry relative="1" x="-0.339" as="geometry">
111+
<mxPoint as="offset" />
112+
</mxGeometry>
113+
</mxCell>
114+
<mxCell id="nIgP8kuDs4C2zodZy1t4-21" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="nIgP8kuDs4C2zodZy1t4-9">
115+
<mxGeometry relative="1" as="geometry" />
116+
</mxCell>
117+
<mxCell id="nIgP8kuDs4C2zodZy1t4-22" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eeeeee;strokeColor=#36393d;dashed=1;" value="Machine Hardware&lt;br&gt;(Panels, buttons, potentiometers)" vertex="1">
118+
<mxGeometry height="180" width="160" x="601" y="518" as="geometry" />
119+
</mxCell>
120+
<mxCell id="nIgP8kuDs4C2zodZy1t4-24" edge="1" parent="1" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.856;entryY=1.013;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" target="nIgP8kuDs4C2zodZy1t4-8" value="">
121+
<mxGeometry height="50" relative="1" width="50" as="geometry">
122+
<mxPoint x="681" y="518" as="sourcePoint" />
123+
<mxPoint x="731" y="469" as="targetPoint" />
124+
</mxGeometry>
125+
</mxCell>
126+
<mxCell id="nIgP8kuDs4C2zodZy1t4-34" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="nIgP8kuDs4C2zodZy1t4-27">
127+
<mxGeometry relative="1" as="geometry" />
128+
</mxCell>
129+
<mxCell id="nIgP8kuDs4C2zodZy1t4-43" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="nIgP8kuDs4C2zodZy1t4-3">
130+
<mxGeometry relative="1" as="geometry">
131+
<Array as="points">
132+
<mxPoint x="830" y="269" />
133+
<mxPoint x="181" y="269" />
134+
</Array>
135+
</mxGeometry>
136+
</mxCell>
137+
<mxCell id="nIgP8kuDs4C2zodZy1t4-26" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;" value="Developers / Testers" vertex="1">
138+
<mxGeometry height="80" width="120" x="801" y="118" as="geometry" />
139+
</mxCell>
140+
<mxCell id="nIgP8kuDs4C2zodZy1t4-27" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="HAL Components - Library" vertex="1">
141+
<mxGeometry height="40" width="200" x="761" y="379" as="geometry" />
142+
</mxCell>
143+
<mxCell id="nIgP8kuDs4C2zodZy1t4-29" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;dashed=1;" value="HAL Components - Custom" vertex="1">
144+
<mxGeometry height="40" width="200" x="761" y="439" as="geometry" />
145+
</mxCell>
146+
<mxCell id="nIgP8kuDs4C2zodZy1t4-33" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.6;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.514;exitDx=0;exitDy=0;exitPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-4">
147+
<mxGeometry relative="1" as="geometry" />
148+
</mxCell>
149+
<mxCell id="nIgP8kuDs4C2zodZy1t4-42" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;dashed=1;">
150+
<mxGeometry relative="1" as="geometry">
151+
<Array as="points">
152+
<mxPoint x="220" y="659" />
153+
<mxPoint x="220" y="529" />
154+
<mxPoint x="270" y="529" />
155+
</Array>
156+
<mxPoint x="270" y="479" as="targetPoint" />
157+
</mxGeometry>
158+
</mxCell>
159+
<mxCell id="R6Wb_xS_bgafuBxYuA12-2" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;">
160+
<mxGeometry relative="1" as="geometry">
161+
<Array as="points">
162+
<mxPoint x="130" y="508" />
163+
<mxPoint x="130" y="508" />
164+
</Array>
165+
<mxPoint x="130.02857142857135" y="658" as="sourcePoint" />
166+
<mxPoint x="130" y="478" as="targetPoint" />
167+
</mxGeometry>
168+
</mxCell>
169+
<mxCell id="nIgP8kuDs4C2zodZy1t4-38" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;dashed=1;" value="Wizards&lt;div&gt;PNCconf / Stepconf&lt;/div&gt;" vertex="1">
170+
<mxGeometry height="60" width="200" x="81" y="659" as="geometry" />
171+
</mxCell>
172+
<mxCell id="R6Wb_xS_bgafuBxYuA12-4" edge="1" parent="1" source="R6Wb_xS_bgafuBxYuA12-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" target="nIgP8kuDs4C2zodZy1t4-4">
173+
<mxGeometry relative="1" as="geometry">
174+
<Array as="points">
175+
<mxPoint x="145" y="289" />
176+
<mxPoint x="431" y="289" />
177+
</Array>
178+
</mxGeometry>
179+
</mxCell>
180+
<mxCell id="R6Wb_xS_bgafuBxYuA12-6" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.018;entryY=1.039;entryDx=0;entryDy=0;entryPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-5">
181+
<mxGeometry relative="1" as="geometry">
182+
<Array as="points">
183+
<mxPoint x="181" y="391" />
184+
<mxPoint x="181" y="353" />
185+
<mxPoint x="181" y="353" />
186+
</Array>
187+
<mxPoint x="178.76" y="391" as="sourcePoint" />
188+
<mxPoint x="183.24899999999997" y="353" as="targetPoint" />
189+
</mxGeometry>
190+
</mxCell>
191+
<mxCell id="R6Wb_xS_bgafuBxYuA12-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="INI Configuration" vertex="1">
192+
<mxGeometry height="99" width="130" x="80" y="379" as="geometry" />
193+
</mxCell>
194+
<mxCell id="R6Wb_xS_bgafuBxYuA12-3" edge="1" parent="1" source="nIgP8kuDs4C2zodZy1t4-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.69;entryY=1.007;entryDx=0;entryDy=0;entryPerimeter=0;" target="R6Wb_xS_bgafuBxYuA12-1">
195+
<mxGeometry relative="1" as="geometry" />
196+
</mxCell>
197+
<mxCell id="R6Wb_xS_bgafuBxYuA12-5" edge="1" parent="1" source="R6Wb_xS_bgafuBxYuA12-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.161;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" target="nIgP8kuDs4C2zodZy1t4-3">
198+
<mxGeometry relative="1" as="geometry" />
199+
</mxCell>
200+
</root>
201+
</mxGraphModel>
202+
</diagram>
203+
</mxfile>

docs/src/getting-started/images/LCNC_Architecture_C1.drawio.svg

Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)