Am 06.08.2013 um 17:39 schrieb Alexey Starikovskiy <aysta...@gmail.com>:
> Michael, > Please excuse my ignorance, could you describe how the messaging pass the > kernel/userspace boundary? the scenario I laid out was mostly for task/UI interaction, and didnt touch on the later parts since it can be addressed in isolation; motion command submission is very similar though I assume you know the current status - the usrmotintf.cc atrocity generates non-NML format messages (basically just C structs) from the commands received by task and pushes this down a homegrown queue towards motion, even only since NML messages cant be consumed in the kernel due to C++ dependencies the future scenario will look like so in steps: - first the NML channel/buffer transport will go, and be replaced by the ZMQ scheme as I laid it out - next the NML messages themselves will be replaced by protobuf-encoded messages - third, the motion command interface will switch to HAL ringbuffers, which are queues which can transcend the user process/kernel or RT thread boundary - RT components are already able to decode and encode protobuf messages, meaning the end-to-end-principle at last is reinstated - Michael -- ps: the following examples are unpolished, but you get the idea, these encompass the RT/userland boundary and serialisation: the HAL ring API for creation, deletion and attaching: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=blob;f=src/hal/hal_ring.h;h=6fc99aa763a4b1017aa8b173ecf1747c13cae282;hb=cb479c9a14b39c23daaa4deb97e4e29da4d3870d#l45 an RT comp which just creates a ring buffer: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=blob;f=src/hal/msgcomponents/ringload.c;h=19148f84abb9827bc320ee53570ea71038736947;hb=cb479c9a14b39c23daaa4deb97e4e29da4d3870d another RT comp which attaches to a ring, and processes commands from the ring: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=blob;f=src/hal/msgcomponents/ringread.comp;h=49afe00db060acd1e2251b327cf94efcd0b7368a;hb=cb479c9a14b39c23daaa4deb97e4e29da4d3870d a Python fragment which does RPC with protobuf-encoded messages over a HAL ring: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=blob;f=src/hal/msgcomponents/pbring-demo.py;h=7e585551e533c578eafd04586367641db7b0dfd7;hb=cb479c9a14b39c23daaa4deb97e4e29da4d3870d the corresponding RT component: http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=blob;f=src/hal/msgcomponents/pbring.comp;h=21b56ad826f480851b93455e6bd1a000cc60cbe8;hb=cb479c9a14b39c23daaa4deb97e4e29da4d3870d the ring operations proper are done through header-only static inlines: http://git.linuxcnc.org/gitweb?p=linuxcnc.git;a=blob;f=src/rtapi/ring.h;h=37298ce004cfade02422b1835b200a91679db7c5;hb=9898998e7e9dde11158b02a12d0d6d891ecd882e > > Thanks, > Alex. > > > On Tue, Aug 6, 2013 at 7:27 PM, Michael Haberler <mai...@mah.priv.at> wrote: > >> I've written up a note how NML to ZMQ transport migration could pan out, >> laying out the steps involved and the socket interaction patterns. >> >> http://static.mah.priv.at/public/nmlzmq.html >> >> next step is a Python mockup for design verification >> >> feedback welcome >> >> -Michael >> >> >> >> >> ------------------------------------------------------------------------------ >> Get your SQL database under version control now! >> Version control is standard for application code, but databases havent >> caught up. So what steps can you take to put your SQL databases under >> version control? Why should you start doing it? Read more to find out. >> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk >> _______________________________________________ >> Emc-developers mailing list >> Emc-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/emc-developers >> > ------------------------------------------------------------------------------ > Get your SQL database under version control now! > Version control is standard for application code, but databases havent > caught up. So what steps can you take to put your SQL databases under > version control? Why should you start doing it? Read more to find out. > http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers ------------------------------------------------------------------------------ Get 100% visibility into Java/.NET code with AppDynamics Lite! It's a free troubleshooting tool designed for production. Get down to code-level detail for bottlenecks, with <2% overhead. Download for free and get started troubleshooting in minutes. http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers