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
PIDController.h@38:930469a33001, 2016-06-14 (annotated)
- 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?
User | Revision | Line number | New 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 |