polymorphic base structures for easily implementing different gaits. Triangle wave is already in there

Dependents:   robotic_fish_ver_4_9_pixy

Committer:
sandwich
Date:
Thu Jun 19 21:04:19 2014 +0000
Revision:
2:d95c40ac8a3e
Parent:
1:0aa1a6ccf5fe
sawtooth gait works. working on mixed signals gait;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sandwich 0:aec7653a5b19 1 #pragma once
sandwich 0:aec7653a5b19 2 #include "mbed.h"
sandwich 2:d95c40ac8a3e 3 #define MAXGAITS 10
sandwich 0:aec7653a5b19 4
sandwich 0:aec7653a5b19 5 class fishgait
sandwich 0:aec7653a5b19 6 {
sandwich 0:aec7653a5b19 7 protected:
sandwich 0:aec7653a5b19 8 Timer* t;
sandwich 0:aec7653a5b19 9 public:
sandwich 0:aec7653a5b19 10 fishgait(); //give the constructor a timer to use
sandwich 0:aec7653a5b19 11 ~fishgait();
sandwich 0:aec7653a5b19 12 void setTimer(Timer* tObject); //give the instance a timer to base its calculations off of instead of making a new one
sandwich 0:aec7653a5b19 13 virtual float compute()=0; //asbtract function to compute output duty cycle. Must redefine in child classes
sandwich 0:aec7653a5b19 14 };
sandwich 2:d95c40ac8a3e 15 /*
sandwich 2:d95c40ac8a3e 16 class mixedGait : public fishgait
sandwich 2:d95c40ac8a3e 17 {
sandwich 2:d95c40ac8a3e 18 private:
sandwich 2:d95c40ac8a3e 19 fishgait gaits[MAXGAITS];
sandwich 2:d95c40ac8a3e 20 float weights[MAXGAITS];
sandwich 2:d95c40ac8a3e 21 int count;
sandwich 2:d95c40ac8a3e 22 public:
sandwich 2:d95c40ac8a3e 23 mixedGait();
sandwich 2:d95c40ac8a3e 24 void attach(fishgait gait, float weight); //gait to attach and its weight in the overall result. weights will be normalized
sandwich 2:d95c40ac8a3e 25 float compute(); //return the mixed signal pattern
sandwich 2:d95c40ac8a3e 26 };
sandwich 2:d95c40ac8a3e 27 */
sandwich 0:aec7653a5b19 28 class triangleGait: public fishgait
sandwich 0:aec7653a5b19 29 {
sandwich 0:aec7653a5b19 30 private:
sandwich 2:d95c40ac8a3e 31 float frq;
sandwich 2:d95c40ac8a3e 32 float amp;
sandwich 0:aec7653a5b19 33 public:
sandwich 2:d95c40ac8a3e 34 triangleGait(float freq, float amplitude);
sandwich 0:aec7653a5b19 35 //~triangleGait();
sandwich 2:d95c40ac8a3e 36 float compute(); //this does a triangle wave pattern. frequency and amplitude controlled
sandwich 1:0aa1a6ccf5fe 37 };
sandwich 1:0aa1a6ccf5fe 38
sandwich 1:0aa1a6ccf5fe 39 class squareGait: public fishgait
sandwich 1:0aa1a6ccf5fe 40 {
sandwich 1:0aa1a6ccf5fe 41 private:
sandwich 2:d95c40ac8a3e 42 float frq;
sandwich 2:d95c40ac8a3e 43 float amp;
sandwich 1:0aa1a6ccf5fe 44 public:
sandwich 2:d95c40ac8a3e 45 squareGait(float freq, float amplitude);
sandwich 1:0aa1a6ccf5fe 46 //~triangleGait();
sandwich 2:d95c40ac8a3e 47 float compute(); //this does a triangle wave pattern. frequency and amplitude controlled
sandwich 2:d95c40ac8a3e 48 };
sandwich 2:d95c40ac8a3e 49
sandwich 2:d95c40ac8a3e 50 class sawGait: public fishgait
sandwich 2:d95c40ac8a3e 51 {
sandwich 2:d95c40ac8a3e 52 private:
sandwich 2:d95c40ac8a3e 53 float frq;
sandwich 2:d95c40ac8a3e 54 float amp;
sandwich 2:d95c40ac8a3e 55 public:
sandwich 2:d95c40ac8a3e 56 sawGait(float freq, float amplitude);
sandwich 2:d95c40ac8a3e 57 //~triangleGait();
sandwich 2:d95c40ac8a3e 58 float compute(); //this does a triangle wave pattern. frequency and amplitude controlled
sandwich 0:aec7653a5b19 59 };