# CNC machine control

**URL:** <https://forum.opencyphal.org/t/cnc-machine-control/1016>\
**Category:** Development & Maintenance\
**Created:** [December 6, 2020, 9:01pm UTC](https://forum.opencyphal.org/t/cnc-machine-control/1016 "2020-12-06T21:01:33Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [December 7, 2020, 5:18pm UTC](https://forum.opencyphal.org/t/cnc-machine-control/1016/2 "2020-12-07T17:18:34Z")

</div>

Hi @mawildoer! I am not that well-versed in CNC but UAVCAN might be a good fit here, indeed, seeing as it is a real-time distributed system implementing potentially complex behaviors.

> [@mawildoer](#):
>
> These bindings are interpereted by a pre-processor, using intelligble names for the data bindings and functions, but boiled down to discrete bounded configuration along the lines of “axis 1, stop when: limit switch x is high, probe is high or stop input is high. axis 1, reset position to 0 when: limit switch x+ is high” ect…

It might be related to the automatic generation of application-layer interfaces from DSDL definitions. The issue was first raised in [High level node descriptor](https://forum.opencyphal.org/t/high-level-node-descriptor/318). One unnamed company that launches batches of micro-satellites into LEO implemented something of that variety internally, although they decided to keep their developments private. My point is that this question comes up regularly and it might be possible to find contributors to this feature in other domains outside CNC.

> [@mawildoer](#):
>
> So far, my approximate message types list I intend to create and perhaps standardise (pending community enthusiasm) is:
> 
> - Path: x, v, a, j + end time
> - Input state: input ID + state
> - Function bindings: node ID (and perhaps “all”/wildcard), function ID (ideally standard enumeration), data bindings (array, input IDs + state)

Your mentioning of function identifiers and instance identifiers looks a little concerning in this context. Maybe you should have a look at [The UAVCAN Guide](https://uavcan.org/guide) (if you haven’t already), where our vision of an optimal UAVCAN-based service-oriented design is explained in detail.

We have forwarded a link to this discussion to our local friends from [http://lecktor.com](http://lecktor.com), who may or may not be interested in a collaboration. (tagging @j3qq4hch)

> [@mawildoer](#):
>
> Thank you for such a beautiful design

🌞

---

_[View the full topic](https://forum.opencyphal.org/t/cnc-machine-control/1016)._
