There are packages like that, that exist, just not for Eiffel! There
is a C# implementation of what you are after -
http://lego.fokke.net/
- One could simply compile a DLL and reuse it from Eiffel for .NET.
Using Eiffel for .NET is just like using Eiffel except some libraries
come in binary packages. It's dead simple and I can give you a hand if
you wanted to go this route until I have something working for you.
NXT# is self contained too, and it use bluetooth messaging directly
using SPP and .NET's serial port library classes. No Fantom needed.
This is actually the way I'd prefer to do things but Eiffel doesn't
yet (yet because it's on my personal project to-do list) have serial
or bluetooth library.
I took a quick look at Fantom API and it looks to be straight forward
to wrap, so I'll actually start work on it and create a new project on
Origo. It doesn't help you yet because you want the higher level
abstractions, but once the communication details are implemented,
designing a framework should be pretty straight forward. As I said, it
is a project I wanted to work on and your interest has piqued mine again.
There is no need for and Eiffel > LEGO compiler, that's only necessary
if you wanted to installed programs on the brick itself. This method
has it's advantages but many disadvantages too. Those doing more
constructive things are actually running the logic on their systems
and communicating instructions to the brick via bluetooth. The brick
has only 64kb of memory, 32kb which is allocated to programs. To
compile Eiffel to run of the brick we'd actually need to port the
Eiffel runtime and overwrite the LEGO standard firmware to utilize our
runtime. Then we'd need a micro version of EiffelBase to be written
and then some really good optimizations. It would be a lot of work,
and I haven't even mentioned about a deployment, debugging mechanism
and debugging protocol yet ;)
If you want to use Eiffel, the real solution is to develop logic on
your system and feed commands to the brick. That way there is no space
or memory limitations, you can process logic and sensor input way, way
faster and you get to use Eiffel :)
I've been scheduling a refresh (aka format) of my Mac, finally
ditching Windows from it (Apple did a good job of converting me, or
maybe I was just tired of Windows), so I should have a running version
EiffelStudio soon. I've not downloaded the OS firmware yet because I
would like to build the Fantom driver myself. Current the "driver" is
actually x86 only, which sucks for those using x64 platforms and may
have an impact on bluetooth utilization - one reason I want to use
serial communication directly. By the by, I need to run some tests to
be sure it works on my Intel Mac before I get started :)
Once I get things rolling and set up the project space, I'll send you
an invite.
> Paul, I was hoping to find a C package with commands equivalent
> to "MOTOR.run", "MOTER.run_fast", etc. but I think that was a little
> naive. It seems that Fantom is an interface that allows you to
> communicate with the robot in order to send byte streams to a file on
> the robot; these byte steams being (I think) the assembly code which
> the robot can then execute.
>
> So, does this mean that we need an Eiffel to LEGO compiler first? I
> was hoping to just put wrappers around a C package.
>
> BTW, I'm using a Windows PC.
>
>
http://blogs.msdn.com/coding4fun/archive/2006/10/26/877488.aspx gives
> some details but I have never used .net and I was hoping for a pure
> Eiffel solution.
>
>
> So...right now I am tired of reading about this and don't know where
> to begin.
>
> jjj
>
>
>
> --- In
eiffel_...@yahoogroups.com, "Paul Bates" <paul.bates@>
> wrote:
> >
> > I've not looked into Fantom that much, but I had reservations using
> > anything LEGO made available because there bluetooth support was
> > limited to PPC Macs. I know they released an update of G-NXT, which
> > was supposed to contain software built for Intel Macs so maybe it's
> > the way to go now, especially if Fantom provides API features to
> > encapsulate the bluetooth messaging protocol used by the brick so I
> > don't have to implement those message ;)
> >
> > Once I find out what I did to my Mac to cripple GTK/X11
> applications,
> > I'll look into it and see if I can get something working. Or if you
> > plan on starting something yourself then lets keep in touch so I can
> > help you out where I can.
> >
> > Paul.
> >
> > --- In
eiffel_...@yahoogroups.com, "Jimmy J. Johnson"