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
Ned Konz