Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API's missing #35

Open
ArcEye opened this issue Aug 2, 2018 · 1 comment
Open

API's missing #35

ArcEye opened this issue Aug 2, 2018 · 1 comment
Labels
Cross-Stacks Issue Applies to both machinekit-cc and machinekit-hal

Comments

@ArcEye
Copy link
Collaborator

ArcEye commented Aug 2, 2018

Issue by mhaberler
Wed Apr 2 19:56:40 2014
Originally opened as machinekit/machinekit#99


API's should cover programmatic access to core functionality, optionally remote

The core component interfaces currently are:

  • HAL library: local, C++ and Python - no remote access
  • halrmt: deprecated, unsuitable for programmatic access, poor code
  • linuxcncrsh: a telnet interface, unsuitable for programmatic access, poor code
  • schedrmt: based on linuxcncrsh, supposed to be an improvement over same, completely undocumented, no known uses, poor code
  • the linuxcnc Python module: local access only, covers only a small subset of NML messages
  • raw NML bindings: C++ only, limited remote access (no known uses ATM), very restrictive formats and use
  • Web UI: there is a start with emcweb, with all the downsides of NML behind it.

Axis UI interfaces: axis-remote: specific to Axis and tkinter. Not a general API.
Others: none known

Problem: programmatic/remote access to LinuxCNC is currently utterly inadaequate.

@ArcEye ArcEye added the problem label Aug 2, 2018
@ArcEye
Copy link
Collaborator Author

ArcEye commented Aug 2, 2018

Comment by mhaberler
Mon Apr 7 17:35:00 2014


After looking at this code (halrmt, linuxcncrsh, schedrmt), my conclusion is: delete it, start from scratch. It is just too bad, no point in wasting time on this.

A relatively sane C API is shcom.{hh,cc}: https://github.com/machinekit/machinekit/blob/master/src/emc/usr_intf/shcom.hh

it seems that basic API can be retained across the 'no more NML' transition.

Going forward, the submission of commands could be based on a zeroMQ/protobuf based RPC (remote procedure call). Operations requiring status retrieval through EMC_STAT will need to be adapted to the new style, and that is still shaking out. But that can come later.

restate problem: specify a zeroMQ/protobuf based RPC interface to LinuxCNC.

@ArcEye ArcEye added Cross-Stacks Issue Applies to both machinekit-cc and machinekit-hal and removed problem labels Aug 2, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cross-Stacks Issue Applies to both machinekit-cc and machinekit-hal
Projects
None yet
Development

No branches or pull requests

1 participant