Go Down

Topic: New library: event based switches, task framework and io abstraction. (Read 300 times) previous topic - next topic

davetcc

I've built a library out of some components that I've used in a few of my own projects, they may well be useful for people building non-trivial applications on the Arduino platform. The library is open source and there's even a forked version of LiquidCrystal that's been altered to use the IO abstraction; as such it can now be configured to work on shift registers, Arduino pins or an 8574 i2c expander.

The library is made up of the following:

  • A task eventing framework that works similarly to an executor framework (or setTimeout in javascript). This also provides simplified interrupt handling (aka signals).
  • A button management component that provides callbacks similar to UI development, with de-bouncing, repeat key, hold presses and rotary encoder support.
  • An IO abstraction that allows regular code (and libraries) to be interchangable between pins, shift registers and PCF8574 i2c devices. More devices could easily be added.


The URL with github links and documentation is:
http://www.thecoderscorner.com/products/arduino-downloads/io-abstraction/

There's a few rough edges here and there at the moment, and a couple of outstanding issues around power management support, but it's now getting to a point where it's quite usable, but I'd welcome any feedback.
Long time Arduino user who enjoys DIY audio and AV equipment.

-dev

Quote
I'd welcome any feedback.
Have you seen Cosa?

Post it on github if you want people to try it.  I never take downloads from private sites.
Really, I used to be /dev.  :(

davetcc

Sorry The download is on GitHub but some of the documentation is on my site:

https://github.com/davetcc/IoAbstraction
Long time Arduino user who enjoys DIY audio and AV equipment.

davetcc

To be honest I looked at cosa and many others before embarking on open sourcing the library we've used internally at the coders corner. 

My view point is that some people just want a very simple library that takes away a few rough edges, I may be wrong. But at the end of the day I think there is room for all solutions to have their niche.
Long time Arduino user who enjoys DIY audio and AV equipment.

Go Up