Hello everybody, I'm happy to announce that the first Alpha versions of the new OpenMoCo libraries are available.
These libraries are the core of the new TimeLapse Engine designed to run on the nanoMoCo boards, and are already implemented in the (alpha) TLE for the nanoMoCo. While some of these libraries are only useful if you want to use MoCoBus networking (an improved version of the serial protocol used in the TLE, now supporting up to 65k addressable nodes on a single network) over TTL or RS-485, a couple of the others may be particularly interesting to other DIY projects:
OMCamera is a simple, event-driven, non-blocking camera control implementation, automatically handling exposure, focus, exp+focus, and post-exposure delays all with no delays in the execution of your sketch. A simple callback function informs your sketch when the particular action is done.
OMMotor is another simple, event-driven, non-blocking library for motor control. It handles both continuous and specified (move X steps) motion, complete microstep control, and more - all while introducing no delays in your sketch.
OMState is a simple state engine - allowing you to clean up your code and implement your logic flow without a bunch of if's and else's, and instead using simple state codes. Callbacks again trigger the right action when a state is entered.
The library documentation (doxygen) is here: http://openmoco.org/docs/OMLibraries/index.html and the source (including the new TLE written against the libraries) is here: http://openmoco.svn.sourceforge.net/viewvc/openmoco/OpenMocoComponents/nanoMoCo/trunk/ (Or, download tarball link: http://openmoco.svn.sourceforge.net/viewvc/openmoco/OpenMocoComponents/nanoMoCo/trunk/?view=tar )
I look forward to any feedback, suggestions, etc. Thanks!