Page 1 of 7

Bounty for complete EV3 C/C++ API

Posted: 10 Oct 2013, 16:36
by pepijndevos
I'm super excited about the potential of the EV3 to run real C code. Yet there is currently no stable and feature complete C API available.

I read some of the efforts are stalled because their authors are becoming demotivated after looking too much at the horrible lms code.
I thought that maybe a small financial motivation might help speed things up.
Just a few bucks to show my support and so you can buy a nice book or a few beers to recover from looking at lms.

The contenders
  • BricxCC lms_api - no sensors
  • Robot Navigation - a few loose examples
  • Xander - sitting on some unreleased code
  • Alexander - sitting on some unreleased code
  • You?
The bounty

I pledge to pay €50 to the author of the first free and publicly available C or C++ api that satisfies the requirements below.
I know, it's not much. I'm a poor student.
Maybe other EV3 owners would like to chip in?

My Requirements

The API fully supports all motors and sensors that come with the EV3 and is easy to extend to support NXT and third party sensors.
The API can be compiled with the CodeSourcery Lite toolchain version 2009q1-203 or provides a SD card image that works with your toolchain.
Works on Linux, Mac and Windows. (Mac users will have to compile CodeSourcery from source)
There should be some documentation.
It should be amenable to usage via a FFI for use from scripting languages.

Re: Bounty for complete EV3 C/C++ API

Posted: 10 Oct 2013, 18:52
by HaWe
Is the work indeed stalling?

who would probably do it if not, e.g., John and Xander and Ivoc?

Re: Bounty for complete EV3 C/C++ API

Posted: 10 Oct 2013, 19:17
by pepijndevos
afanofosc wrote:If I get sufficiently motivated then all of the API layer will be completed and documented but at the moment I am feeling very unmotivated.
One of them will probably do it sometime, and if no one doesn't, I might try.
It's just very painful work they are doing in their spare time.

Re: Bounty for complete EV3 C/C++ API

Posted: 13 Oct 2013, 09:05
by pepijndevos
Doc, you sent me a PM but have disabled receiving messages. I'm also note exactly sure what you're asking.

But you seem eager to have an easy to use C API, so maybe you'd like to join me in financially encouraging those that are working on it?
I see it like a "thanks in advance" :-)

Re: Bounty for complete EV3 C/C++ API

Posted: 13 Oct 2013, 09:45
by HaWe
You actually make me unsure, AFAIK John and maybe also Xander are already and still working about it.
I think and hope it's still proceeding - pls CMIIW.

The only thing is that it's currently still too complicated for home programmers with those dozens of include files in the lms-api and project files and all that make or link or terminal stuff. Home programmers like me are overburdened by that. IMO we'll still need some weeks or even months to wait to have something that works easily and conveniently like it formerly did in the "World of Not Quite eXactly".

But it's up to the developers to express themselves.

Re: Bounty for complete EV3 C/C++ API

Posted: 13 Oct 2013, 22:55
by totokan
I wrote a proper serial sensor reader function and uploaded it a couple of weeks ago based on the robotnav low-level code. At this point, if you aren't a skilled enough coder to figure out how to do that yourself, you should just stick with the NXT for a while yet.

Re: Bounty for complete EV3 C/C++ API

Posted: 14 Oct 2013, 05:51
by mightor
I can't publish the code I have yet but I did give a copy of the sensor code to John Hansen a few weeks ago, so he could tweak it as he sees fit to make it work with BrixCC. My API was rather simplistic and probably not fit for purpose for what John is planning to with it.

The API I have made will be published eventually, but I don't have a date for you right now. It's based on GPLv2 code, so you rest assured that it will be published under the same license.

Regards,
Xander

Re: Bounty for complete EV3 C/C++ API

Posted: 14 Oct 2013, 07:12
by HaWe
Of course I can't speak for pepijndevos and I even don't know exactly what user API interface he is wishing or targetting -
what I actually meant is that an API which more or less looks like the NXC API (wishful if featuring some enhancements and sort of straightenings in some cases like I described already here) would be appreciated very much in my very personal opinion:
https://sourceforge.net/apps/phpbb/mind ... f=3&t=1862

I have no idea what a GPLv2 code library is and how it looks like.

Re: Bounty for complete EV3 C/C++ API

Posted: 14 Oct 2013, 07:30
by mightor
GPLv2 is a license, which states that derived work needs to be published if you intend to use it for something that is publicly available. Most code for Linux is based on this license, it's a very typical Open Source license, which ensures that open source code does not end up being used in closed source applications.

= Xander

Re: Bounty for complete EV3 C/C++ API

Posted: 14 Oct 2013, 17:29
by HaWe
so what you sent John has nothing to do with NQC-like or NXC-like code I suppose.
But that's what is actually needed - I doubt that anyone of the current "normal" NXC users is able to use obfuscated C code sensor polling (as far as I have already seen it posted here ). This stuff is surely useful for professional programmers and developers but by far not for normal NXC users (i.e., pupils and hobby programmers).
So what John and most of the normal users need is C API code which is close to NQC and NXC , but nevertheless it will have to be C coded header files, no Pascal at all (it finally is no bytecode API compiler for virtual machines like the Lego NXT firmware VM) ...!