a few semi-related notes:

I'd been looking into potential alternatives to the RCS/CMS/NML code in 
Linuxcnc for different reasons:

- the restrictions are substantial: fixed message size, a very limited 
interaction model (no really usable remote procedure call, no publish/subscribe 
interaction, an arcane approach to serialization, remote command injection etc)
- a really distibuted solution should address sharing HAL information across 
machines just alike, not just NML messages with ad-hoc HAL contents copied 
around at the C level
- it should support late binding, i.e. contents of messages defined at runtime 
(no need to recompile because some field/HAL bit is added)
- it should support easier and mostly autogenerated binding to at least Python
- the current NML code is C++-based and hence not kernel-compatible, which is 
an issue at the userland/RT component boundary (message transcoding required, 
eg. in src/emc/motion/usrmotif.c)
- the current code is substantial, but only a minimal part of the functionality 
is currently used, and knowhow on it is scarce 
- the current coding style, and mode of use encourage a piecemeal migration to 
a single machine model (shared filesystem assumed, poor distribution options 
etc), which is somewhat driven by the NML framework's limitations
- some recent ideas about a future linuxcnc structure would suggest a more 
close interaction of interpreter ad realtime modules, which has repercussions 
on the communications framework, and it is unclear to me whether NML will be on 
the help or issue side

this is btw a very similar laundry list like realtime middleware used e.g. in 
stock market transactions, like Tibco Rendezvous

the best list of candidate components I could find was:

- zeromq as messaging framework
- status distribution by reliable multicast (openpgm, already integrated in 
zeromq)
- google protobuf for message coding/decoding and language binding
- nanopb, a RT-module compatible protobuf library (if one were to use a unified 
message format from wire down to RT/userland comms)

A showstopper is licensing - zeromq is GPLv3 and I understand that excludes its 
use in linuxcnc

--

I'm writing this up because it might help someone looking for suitable 
components. 

Other than that, it's a thought experiment, not a proposal, and no pending 
patch if you will.

- Michael






Am 07.08.2012 um 21:38 schrieb Viesturs Lācis:

> 2012/8/7 Kent A. Reed <kentallanr...@gmail.com>:
>> 
>> The bigger picture is still very fuzzy and hence harder to answer. What
>> does it mean "to synchronize them, so that they work all together"?
>> 
> 
> Yes. I still do not know for sure the answer to this question.
> Because I have never seen any system like that, so I have no idea, how
> exactly do they work and I do not want to reinvent the wheel. Can
> anyone share some information or screenshots, what do those existing
> solutions have? What are they capable of?
> 
> I guess that in my case requirements could be limited down to this
> list (actually second point alone would do):
> 1) load a separate g-code file for each separate LinuxCNC station and
> separately execute them - this would actually be a remote control with
> several machine being controlled from one GUI;
> 2) upon pressing some button/changing a tab or whatever, make all the
> stations execute one g-code file - this would require modified
> interpreter and non-standard g-code to exceed current number of axis
> words and some additional commands in the middle of the code that
> would put each station on pause and then resume, when all stations
> have reached this "pause" command. I guess that non-standard code is
> not biggest issue, because those machines either run one code for a
> long time (so it is worth spending some time to prepare code) or they
> receive the commands "almost on the fly" from another application;
> 
>> Whatever this means, there has to be software written to implement it,
>> and the NML communications is only a small part of that implementation.
> 
> Yes, that is why I am now looking for a programmer.
> 
>> If you know CORBA the situation with RCS is analogous.
> 
> Sorry, this is first time I hear about it :))
> 
> 
> 2012/8/7 Joachim Franek <joachim.fra...@pibf.de>:
>> 
>> 
>> Have a look to
>> http://www.orocos.org/orocos/applications/krypton
> 
> BTW today I was pointed to this page:
> http://www.proview.se/v2/
> 
> That seems one very attractive application. And it runs on Linux. And
> it is opensource.
> 
> -- 
> Viesturs
> 
> If you can't fix it, you don't own it.
> http://www.ifixit.com/Manifesto
> 
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to