On Thu, Sep 10, 2015 at 10:29:24AM -0700, tim Rowledge wrote:
On 09-09-2015, at 6:53 PM, David T. Lewis lewis@mail.msen.com wrote:
On Wed, Sep 09, 2015 at 11:17:08AM -0700, tim Rowledge wrote:
I?m trying - and so far failing - to do what should surely be a very simple thing. This isn?t a new situation? especially on unix.
I have a single C file with just two functions. I have a matching H file. I want to make them into a dynamic library that I can call via FFI. This really shouldn?t be rocket science stuff!
<OT> I assume there is some good reason that you would not do an end run around all that rocket science and just write a plugin?
Well I *did* originally point out that there was probably a really stupid mistake in my process and that is pretty much it. In my defence I was in the midst of FFI-ing to multiple external libraries for assorted Pi add-on doohickeys and getting somewhat inured to the idea.
But I think I may re-do it as a plugin today, not least because it seems that the ARM ffi interface has a problem with returning floats; they come back as Character null. I may not be a great IEEE floating point standard expert but that doesn?t seem quite right.
I don't know what got into me, but I brewed up a nice pot of coffee this morning and ended up with http://squeaksource.com/MadgwickAHRS/
This is a plugin, accessor class, and unit tests that claim to demonstrate that the plugin works.
I used FloatArray for parameter passing, on the theory that users of the plugin may be doing float (not double) arithmetic, so it may be more efficient to pass values in that manner.
It works with 32/64 bit image and host, and the plugin builds without complaint (trunk with Ian's Cmake build) if you put the library source files MadgwickAHRS.c and MadgwickAHRS.h in platforms/Cross/plugins/MadgwickAHRS/
The MadgwickAHRS library is licensed GPL, so it would be best to link the plugin dynamically to e.g. /usr/local/iib/libwmadgwickIMU.so.1 rather than static link to the C code as I have done so far. If there is any interest in the plugin, I'll see if I can figure out the linker magic.
See class MadgwickAHRSTest for examples.
Repository is at http://www.squeaksource.com/MadgwickAHRS
Tim, I added you as developer on the squeaksource.com repository in case you want to make use of this.
Dave