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@80:38e274c4dafa, 2016-06-24 (annotated)
- Committer:
- sbouber1
- Date:
- Fri Jun 24 13:51:42 2016 +0000
- Revision:
- 80:38e274c4dafa
- Parent:
- 78:a44ad011dd41
final
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 | 65:b277b4067d4a | 4 | #include <iostream> |
sbouber1 | 65:b277b4067d4a | 5 | |
sbouber1 | 28:f4a4ee58d57e | 6 | #include "mbed.h" |
sbouber1 | 32:1e4919a44196 | 7 | #include "DRV8825.h" |
sbouber1 | 32:1e4919a44196 | 8 | #include "stdio.h" |
sbouber1 | 28:f4a4ee58d57e | 9 | #include "SensorController.h" |
sbouber1 | 57:8dc3192ff150 | 10 | #include "settings.h" |
sbouber1 | 28:f4a4ee58d57e | 11 | |
sbouber1 | 28:f4a4ee58d57e | 12 | |
sbouber1 | 32:1e4919a44196 | 13 | #define MAX_SPEED 8000 |
sbouber1 | 32:1e4919a44196 | 14 | #define MICROSTEPS_PER_STEP 16 |
sbouber1 | 32:1e4919a44196 | 15 | |
sbouber1 | 32:1e4919a44196 | 16 | #define LEFT 1 |
sbouber1 | 32:1e4919a44196 | 17 | #define RIGHT 0 |
sbouber1 | 32:1e4919a44196 | 18 | |
sbouber1 | 38:930469a33001 | 19 | |
sbouber1 | 28:f4a4ee58d57e | 20 | class PIDController : public Controller { |
sbouber1 | 28:f4a4ee58d57e | 21 | |
sbouber1 | 28:f4a4ee58d57e | 22 | |
sbouber1 | 28:f4a4ee58d57e | 23 | public: |
sbouber1 | 28:f4a4ee58d57e | 24 | PIDController(bool threaded, int interval_ms, SensorController *temp, SensorController *salt, SensorController *proximity) |
sbouber1 | 28:f4a4ee58d57e | 25 | : Controller(threaded, interval_ms) { |
sbouber1 | 28:f4a4ee58d57e | 26 | this->temp = temp; |
sbouber1 | 28:f4a4ee58d57e | 27 | this->salt = salt; |
sbouber1 | 28:f4a4ee58d57e | 28 | this->proximity = proximity; |
joran | 40:1668630544c7 | 29 | this->pumping = false; |
joran | 44:7c932cc5991b | 30 | this->heating = false; |
sbouber1 | 28:f4a4ee58d57e | 31 | } |
sbouber1 | 28:f4a4ee58d57e | 32 | |
sbouber1 | 78:a44ad011dd41 | 33 | ~PIDController(); |
sbouber1 | 78:a44ad011dd41 | 34 | |
sbouber1 | 28:f4a4ee58d57e | 35 | virtual void update(); |
sbouber1 | 28:f4a4ee58d57e | 36 | |
sbouber1 | 57:8dc3192ff150 | 37 | virtual std::string getName(); |
sbouber1 | 35:c9261391a995 | 38 | |
sbouber1 | 57:8dc3192ff150 | 39 | bool isHeating(); |
sbouber1 | 57:8dc3192ff150 | 40 | |
sbouber1 | 57:8dc3192ff150 | 41 | bool isPumping(); |
sbouber1 | 46:7e4c1f2ab76c | 42 | |
sbouber1 | 46:7e4c1f2ab76c | 43 | void doTestingStuff(int ml); |
sbouber1 | 28:f4a4ee58d57e | 44 | |
sbouber1 | 28:f4a4ee58d57e | 45 | private: |
sbouber1 | 28:f4a4ee58d57e | 46 | SensorController *temp; |
sbouber1 | 28:f4a4ee58d57e | 47 | SensorController *salt; |
sbouber1 | 57:8dc3192ff150 | 48 | SensorController *proximity; |
joran | 40:1668630544c7 | 49 | |
sbouber1 | 35:c9261391a995 | 50 | bool heating; |
joran | 40:1668630544c7 | 51 | bool pumping; |
sbouber1 | 28:f4a4ee58d57e | 52 | |
sbouber1 | 57:8dc3192ff150 | 53 | void pumpSaltWater(int ml); |
sbouber1 | 32:1e4919a44196 | 54 | |
sbouber1 | 57:8dc3192ff150 | 55 | void pumpFreshWater(int ml); |
sbouber1 | 32:1e4919a44196 | 56 | |
sbouber1 | 57:8dc3192ff150 | 57 | void pumpWater(DRV8825 *mtr, int ml); |
sbouber1 | 32:1e4919a44196 | 58 | |
sbouber1 | 32:1e4919a44196 | 59 | float getMlSaltyWater(float, float); |
sbouber1 | 32:1e4919a44196 | 60 | |
sbouber1 | 32:1e4919a44196 | 61 | float getMlFreshWater(float, float); |
sbouber1 | 32:1e4919a44196 | 62 | |
sbouber1 | 35:c9261391a995 | 63 | float getSaltInGrams(); |
sbouber1 | 28:f4a4ee58d57e | 64 | |
sbouber1 | 57:8dc3192ff150 | 65 | void setHeating(bool enabled); |
sbouber1 | 28:f4a4ee58d57e | 66 | }; |
sbouber1 | 28:f4a4ee58d57e | 67 | |
sbouber1 | 28:f4a4ee58d57e | 68 | |
sbouber1 | 28:f4a4ee58d57e | 69 | #endif |