Re: regarding future plans for EMC



Matt Shaver wrote:
> 
> Fred Herenius wrote:
> 
> > But I'll ask
> > again, are there any active plans concerning cleaning etc of code?
> 
> I guess it depends upon the meaning of "active", "plans", and "cleaning"
> ;) . Let me address these in reverse order:
> 
> "cleaning"
> There are too many #ifdefs. Part of the reason is that the EMC will
> (might?) compile and run on several different platforms (PC Linux, SGI,
> Windows, Alpha, etc.) and for Linux there are several versions of
> rtlinux supported as well as RTAI. If we could narrow the these choices
> down to one, a lot of the #ifdefs would go away. The problem is that,
> although 99.999% of all EMC systems are PC/rtlinux systems, there are (I
> assume) SOME users of the other platforms. Should they be abandoned?
> Should there be a streamlined EMClite (I really hate that name, don't
> use it...)? Another possible "have your cake and eat it too" solution
> would be to move as many of the conditional statements into the build
> system as possible using autoconf and automake. This leads me to...
> 
> "plans"
> Let's see, so far I've talked to Fred & Will at NISTand Ray Henry about
> switching to autoconf and automake. I also started reading _The Goat
> Book_ (http://sources.redhat.com/autobook/). I am in over my head, but
> flailing madly to stay afloat...
> 
> "active"
> This is the hardest one. For myself, before I could even begin to make
> any changes, I'd have to really understand the existing code. As I am
> only a beginning C programmer, that's a lot to swallow... Perhaps the
> thing to do first is to write better (more?) documentation.
> 
> Matt

All:

I've been lurking on this list for about 3 weeks now and this
is my first post to this list.  By way of introduction, I am
a CNC `wanna be'.  I am currently designing a 4-axis motion
control board for stepper motors using L298's and a future
`black box' that I call a buffer board.  These projects are
incomplete, but people are welcome to see what I have done
so far at:

  http://web.gramlich.net/projects/cnc/controller/index.html

With regards to the future plans for EMC (see quoted message above),
I thought I would throw in my relatively uninformed opinion and
see if anybody thinks it will fly...

I suspect that EMC can be partitioned into two pieces --
a front end and a back end:

 - The front end takes the G-codes in and emits computes
   the desired times and positions for the machine.  These
   are represented as N tuples, where the first value is
   the time in some convenient representation, and the
   remaining values are the values needed for each axis.
   For a three axis machine, the output of the first piece
   would be a stream of 4-tuples of the form (t, x, y, z).
   Note that the front end needs no knowledge of RTLinux
   or the like and can loose all of the RTLinux #ifdefs.
   This partioning has the added benifit of allowing the
   front end code to be more easily ported to other platforms.

 - The back end is the real-time piece that takes the N-tuples
   and causes the parallel port lines to wiggle the right
   way at the right times.  This can be done using RTLinux,
   RTAI, or using some `black box' protocol.  This code
  would need all of the RTLinux #ifdefs.  If the back end
   driver code got too ugly, it could be split into separately
   maintained drivers (e.g, an RTLinux driver, an RTAI driver,
   etc.)  Lastly, for those corporations that want to develop
   some super secret black box technology, they could invest
   their effort into building a back end driver for there
   platform, but continue to use the EMC front-end.

Anyhow, those are my basic thoughts on the subject.  If I'm
totally off base, I'd appreciate it if somebody would correct
me and appropriately redirect me.

Thanks,

-Wayne



Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact