Big Mouth Billy Bass automation library
billybass.hpp
- Committer:
- bikeNomad
- Date:
- 2013-06-17
- Revision:
- 0:84aaade0de8f
- Child:
- 3:6c91a6232c4a
File content as of revision 0:84aaade0de8f:
#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