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@32:1e4919a44196, 2016-06-14 (annotated)
- Committer:
- sbouber1
- Date:
- Tue Jun 14 11:12:44 2016 +0000
- Revision:
- 32:1e4919a44196
- Parent:
- 29:2b256a7ce0ae
- Child:
- 35:c9261391a995
pidcontroller
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 | 28:f4a4ee58d57e | 16 | class PIDController : public Controller { |
sbouber1 | 28:f4a4ee58d57e | 17 | |
sbouber1 | 28:f4a4ee58d57e | 18 | |
sbouber1 | 28:f4a4ee58d57e | 19 | public: |
sbouber1 | 28:f4a4ee58d57e | 20 | PIDController(bool threaded, int interval_ms, SensorController *temp, SensorController *salt, SensorController *proximity) |
sbouber1 | 28:f4a4ee58d57e | 21 | : Controller(threaded, interval_ms) { |
sbouber1 | 28:f4a4ee58d57e | 22 | this->temp = temp; |
sbouber1 | 28:f4a4ee58d57e | 23 | this->salt = salt; |
sbouber1 | 28:f4a4ee58d57e | 24 | this->proximity = proximity; |
sbouber1 | 28:f4a4ee58d57e | 25 | } |
sbouber1 | 28:f4a4ee58d57e | 26 | |
sbouber1 | 28:f4a4ee58d57e | 27 | virtual void update(); |
sbouber1 | 28:f4a4ee58d57e | 28 | |
sbouber1 | 28:f4a4ee58d57e | 29 | virtual std::string get_name(); |
joran | 29:2b256a7ce0ae | 30 | float getSaltInGrams(); |
sbouber1 | 28:f4a4ee58d57e | 31 | |
sbouber1 | 28:f4a4ee58d57e | 32 | private: |
sbouber1 | 28:f4a4ee58d57e | 33 | SensorController *temp; |
sbouber1 | 28:f4a4ee58d57e | 34 | SensorController *salt; |
sbouber1 | 28:f4a4ee58d57e | 35 | SensorController *proximity; |
sbouber1 | 28:f4a4ee58d57e | 36 | |
sbouber1 | 32:1e4919a44196 | 37 | void pump_salt_water(int ml); |
sbouber1 | 32:1e4919a44196 | 38 | |
sbouber1 | 32:1e4919a44196 | 39 | void pump_fresh_water(int ml); |
sbouber1 | 32:1e4919a44196 | 40 | |
sbouber1 | 32:1e4919a44196 | 41 | void pump_water(DRV8825 *mtr, int ml); |
sbouber1 | 32:1e4919a44196 | 42 | |
sbouber1 | 32:1e4919a44196 | 43 | float getMlSaltyWater(float, float); |
sbouber1 | 32:1e4919a44196 | 44 | |
sbouber1 | 32:1e4919a44196 | 45 | float getMlFreshWater(float, float); |
sbouber1 | 32:1e4919a44196 | 46 | |
sbouber1 | 28:f4a4ee58d57e | 47 | |
sbouber1 | 28:f4a4ee58d57e | 48 | }; |
sbouber1 | 28:f4a4ee58d57e | 49 | |
sbouber1 | 28:f4a4ee58d57e | 50 | |
sbouber1 | 28:f4a4ee58d57e | 51 | #endif |