Big Mouth Billy Bass automation library
Diff: billybass.hpp
- Revision:
- 0:84aaade0de8f
- Child:
- 3:6c91a6232c4a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/billybass.hpp Mon Jun 17 22:17:59 2013 +0000 @@ -0,0 +1,45 @@ +#ifndef __included_billybass_hpp +#define __included_billybass_hpp + +#include "mbed.h" +#include "config.hpp" +#include <list> +#include <vector> +#include <cmath> + +extern AnalogOut speaker; +extern Serial pc; + +class BillyBass +{ +public: + + BillyBass(PinName tailPin, PinName mouthPin, PinName bodyPin) : + tail(tailPin), mouth(mouthPin), body(bodyPin) + { + tail.write(0); + mouth.write(0); + body.write(0); + if (numFish < MAX_FISH) fish[numFish++] = this; + // else error + } + + // if *_pName, it will get the string name of the output + DigitalOut *outputNamed(char const *_outputName, char const **_pName = 0); + + static BillyBass *bassNumber(unsigned which) { return (which >= numFish) ? 0 : fish[which]; } + static unsigned getNumFish() { return numFish; } + +protected: + static BillyBass* fish[ MAX_FISH ]; + static unsigned numFish; + static char const * mouthName; + static char const * bodyName; + static char const * tailName; + + DigitalOut tail; + DigitalOut mouth; + DigitalOut body; +}; + +#endif