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