Saltware / Mbed 2 deprecated Water Play

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

Committer:
sbouber1
Date:
Sun Jun 19 22:21:08 2016 +0000
Revision:
57:8dc3192ff150
Parent:
46:7e4c1f2ab76c
Child:
65:b277b4067d4a
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sbouber1 28:f4a4ee58d57e 1 #ifndef __PIDCONTROLLER_H__
sbouber1 28:f4a4ee58d57e 2 #define __PIDCONTROLLER_H__
sbouber1 28:f4a4ee58d57e 3
sbouber1 28:f4a4ee58d57e 4 #include "mbed.h"
sbouber1 32:1e4919a44196 5 #include "DRV8825.h"
sbouber1 32:1e4919a44196 6 #include "stdio.h"
sbouber1 28:f4a4ee58d57e 7 #include "SensorController.h"
sbouber1 57:8dc3192ff150 8 #include "settings.h"
sbouber1 28:f4a4ee58d57e 9
sbouber1 28:f4a4ee58d57e 10
sbouber1 32:1e4919a44196 11 #define MAX_SPEED 8000
sbouber1 32:1e4919a44196 12 #define MICROSTEPS_PER_STEP 16
sbouber1 32:1e4919a44196 13
sbouber1 32:1e4919a44196 14 #define LEFT 1
sbouber1 32:1e4919a44196 15 #define RIGHT 0
sbouber1 32:1e4919a44196 16
sbouber1 38:930469a33001 17
sbouber1 28:f4a4ee58d57e 18 class PIDController : public Controller {
sbouber1 28:f4a4ee58d57e 19
sbouber1 28:f4a4ee58d57e 20
sbouber1 28:f4a4ee58d57e 21 public:
sbouber1 28:f4a4ee58d57e 22 PIDController(bool threaded, int interval_ms, SensorController *temp, SensorController *salt, SensorController *proximity)
sbouber1 28:f4a4ee58d57e 23 : Controller(threaded, interval_ms) {
sbouber1 28:f4a4ee58d57e 24 this->temp = temp;
sbouber1 28:f4a4ee58d57e 25 this->salt = salt;
sbouber1 28:f4a4ee58d57e 26 this->proximity = proximity;
joran 40:1668630544c7 27 this->pumping = false;
joran 44:7c932cc5991b 28 this->heating = false;
sbouber1 28:f4a4ee58d57e 29 }
sbouber1 28:f4a4ee58d57e 30
sbouber1 28:f4a4ee58d57e 31 virtual void update();
sbouber1 28:f4a4ee58d57e 32
sbouber1 57:8dc3192ff150 33 virtual std::string getName();
sbouber1 35:c9261391a995 34
sbouber1 57:8dc3192ff150 35 bool isHeating();
sbouber1 57:8dc3192ff150 36
sbouber1 57:8dc3192ff150 37 bool isPumping();
sbouber1 46:7e4c1f2ab76c 38
sbouber1 46:7e4c1f2ab76c 39 void doTestingStuff(int ml);
sbouber1 28:f4a4ee58d57e 40
sbouber1 28:f4a4ee58d57e 41 private:
sbouber1 28:f4a4ee58d57e 42 SensorController *temp;
sbouber1 28:f4a4ee58d57e 43 SensorController *salt;
sbouber1 57:8dc3192ff150 44 SensorController *proximity;
joran 40:1668630544c7 45
sbouber1 35:c9261391a995 46 bool heating;
joran 40:1668630544c7 47 bool pumping;
sbouber1 28:f4a4ee58d57e 48
sbouber1 57:8dc3192ff150 49 void pumpSaltWater(int ml);
sbouber1 32:1e4919a44196 50
sbouber1 57:8dc3192ff150 51 void pumpFreshWater(int ml);
sbouber1 32:1e4919a44196 52
sbouber1 57:8dc3192ff150 53 void pumpWater(DRV8825 *mtr, int ml);
sbouber1 32:1e4919a44196 54
sbouber1 32:1e4919a44196 55 float getMlSaltyWater(float, float);
sbouber1 32:1e4919a44196 56
sbouber1 32:1e4919a44196 57 float getMlFreshWater(float, float);
sbouber1 32:1e4919a44196 58
sbouber1 35:c9261391a995 59 float getSaltInGrams();
sbouber1 28:f4a4ee58d57e 60
sbouber1 57:8dc3192ff150 61 void setHeating(bool enabled);
sbouber1 28:f4a4ee58d57e 62 };
sbouber1 28:f4a4ee58d57e 63
sbouber1 28:f4a4ee58d57e 64
sbouber1 28:f4a4ee58d57e 65 #endif