Charles,

On 1/16/2014 8:48 AM, Charles Steinkuehler wrote:
> I am reviewing the new configuration setup for 2.6 and trying to modify
> the BeagleBone ARM configurations to follow suit but I have a few questions:
>
> * How do I determine if a configuration should go into by_machine or
> by_interface, or am I to somehow create symlinks so it shows up in both?

I'm going to step back (and up onto the soap box) and ask the question 
that seems (at least to me) to get skipped....
         What are we trying to accomplish with the config dir structure?
             My answer: Make it easy for an _end user_ to find the LCNC 
config(s) he needs.

I tend to come at this from an end user point of view - I think about a 
user that is new to LCNC and I imagine that it would be nice to be able 
to easily find the stuff that pertains to what they have - while happily 
ignoring the rest.

Today (anything pre UB), LCNC essentially assumes an x86 PC 
architecture. If you want to run LCNC, you get a PC and pick some 
interface hardware you like (EX: PP or Pico or mesa cards).  Thus, it's 
not a surprise that the LCNC configs are heavily PC oriented. That's 
natural as that is has "has gone before". You don't get ARM or other 
non-PC architectures until you have UB and machine kit stuff and what 
gets developed on top of branches like those...

So, presuming that we are heading toward UB in the 2.6 release, this 
creates what I see as the first goal for the config dir structure:
1) The structure needs to provide (at minimum) some organization that it 
does not mix PC and non-PC architectures in a flat structure.
That's what I was doing when I did the ARM sub dir structure last 
summer.  I think we are there re this goal with either what Dewey has 
done or what I did for the arm tree in machinekit - as long as we keep a 
structure that separates PC and non-PC architectures.

My bias: I have little interest in the developer / programmer view of 
file optimization in this case. I really don't care if files are in more 
than one place, or they are in one place and found via simlinks etc. I 
happen to think that the way LCNC pieces themselves go together is much 
less important and should not drive the config dir structure.

The natural thing for a user to do is: Hum what am I using for a control 
computer? Ah, a my buddy gave me a beagle bone (or RASPI or...) - ok, 
let's look in the BB area. What have I got to hook stuff up to (i.e. 
what's my hardware interface gadget)?    I got a spiffy new K9 board 
that plugs into a BB; OK, let's try the BB/K9 dir.... This just seems to 
me to be the natural way people will look for configs (today).

I realize that what I just described is a bit more "system integrator" 
oriented than I'd expect over the long haul. It certainly points out 
that you still have to be a system integrator to figure out LCNC. But 
that's just where we are in the market development for non-PC LCNC 
controls.  If/when there is significant market presence for (non-PC) 
controls, it may merit some polishing re config dir structure. I feel we 
can address that if/when it becomes a need.

Frankly any dir structure that separates, and thereby recognizes, that 
the LCNC world is not all PCs will be a good improvement. If we get that 
as a min, I'm (probably) happy for 2.6.

> * Most of my configurations will use the same interface, but may have
> different pinouts.  For example, the same 3D printer machine could be
> controlled by virtual identical *.ini and *.hal files, with only a small
> *.hal file snippet changed to reflect the use of different I/O pins by
> various hardware (ie: BeBoPr board, BeBoPr+ or generic CNC board, K9
> board, etc).  What is the recommended procedure for reflecting this in
> the configuration structure?
Just my 2cents: To me this is what an end user does not care about. They 
don't really care about if pins are driven by GPIO or PRU code etc. Thus 
this is  a lower in the dir thing - i.e. it's a sub config choice for a 
hdw interface.
To me the goal is for an end user (not a system integrator) to easily 
find what they can use - which is not the same as easily find what they 
can start from and then modify (they want to be users, not system 
integrator programmers).

Dave

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to