Program for the water play project for the course Software Testing Practical 2016 given at the VU University

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

Committer:
sbouber1
Date:
Tue Jun 14 17:49:08 2016 +0000
Revision:
38:930469a33001
Parent:
35:c9261391a995
Child:
40:1668630544c7
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 28:f4a4ee58d57e 8
sbouber1 28:f4a4ee58d57e 9
sbouber1 32:1e4919a44196 10 #define MAX_SPEED 8000
sbouber1 32:1e4919a44196 11 #define MICROSTEPS_PER_STEP 16
sbouber1 32:1e4919a44196 12
sbouber1 32:1e4919a44196 13 #define LEFT 1
sbouber1 32:1e4919a44196 14 #define RIGHT 0
sbouber1 32:1e4919a44196 15
sbouber1 38:930469a33001 16 #define STARTUP_ITERATIONS 10
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;
sbouber1 28:f4a4ee58d57e 27 }
sbouber1 28:f4a4ee58d57e 28
sbouber1 28:f4a4ee58d57e 29 virtual void update();
sbouber1 28:f4a4ee58d57e 30
sbouber1 35:c9261391a995 31 virtual std::string get_name();
sbouber1 35:c9261391a995 32
sbouber1 35:c9261391a995 33 bool is_heating();
sbouber1 28:f4a4ee58d57e 34
sbouber1 28:f4a4ee58d57e 35 private:
sbouber1 28:f4a4ee58d57e 36 SensorController *temp;
sbouber1 28:f4a4ee58d57e 37 SensorController *salt;
sbouber1 28:f4a4ee58d57e 38 SensorController *proximity;
sbouber1 35:c9261391a995 39 bool heating;
sbouber1 28:f4a4ee58d57e 40
sbouber1 32:1e4919a44196 41 void pump_salt_water(int ml);
sbouber1 32:1e4919a44196 42
sbouber1 32:1e4919a44196 43 void pump_fresh_water(int ml);
sbouber1 32:1e4919a44196 44
sbouber1 32:1e4919a44196 45 void pump_water(DRV8825 *mtr, int ml);
sbouber1 32:1e4919a44196 46
sbouber1 32:1e4919a44196 47 float getMlSaltyWater(float, float);
sbouber1 32:1e4919a44196 48
sbouber1 32:1e4919a44196 49 float getMlFreshWater(float, float);
sbouber1 32:1e4919a44196 50
sbouber1 35:c9261391a995 51 float getSaltInGrams();
sbouber1 28:f4a4ee58d57e 52
sbouber1 35:c9261391a995 53 void set_heating(bool enabled);
sbouber1 28:f4a4ee58d57e 54 };
sbouber1 28:f4a4ee58d57e 55
sbouber1 28:f4a4ee58d57e 56
sbouber1 28:f4a4ee58d57e 57 #endif