111
Dependencies: BufferedSerial FastPWM mbed
controlt.cpp@0:f3108add3d98, 2016-04-12 (annotated)
- Committer:
- sbh9428
- Date:
- Tue Apr 12 06:52:10 2016 +0000
- Revision:
- 0:f3108add3d98
11
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sbh9428 | 0:f3108add3d98 | 1 | /* |
sbh9428 | 0:f3108add3d98 | 2 | * controlt.cpp |
sbh9428 | 0:f3108add3d98 | 3 | * |
sbh9428 | 0:f3108add3d98 | 4 | * Created on: 2016. 2. 19. |
sbh9428 | 0:f3108add3d98 | 5 | * Author: sbh9428 |
sbh9428 | 0:f3108add3d98 | 6 | */ |
sbh9428 | 0:f3108add3d98 | 7 | |
sbh9428 | 0:f3108add3d98 | 8 | #include "controlt.h" |
sbh9428 | 0:f3108add3d98 | 9 | |
sbh9428 | 0:f3108add3d98 | 10 | control_t::control_t() { |
sbh9428 | 0:f3108add3d98 | 11 | // TODO Auto-generated constructor stub |
sbh9428 | 0:f3108add3d98 | 12 | |
sbh9428 | 0:f3108add3d98 | 13 | } |
sbh9428 | 0:f3108add3d98 | 14 | |
sbh9428 | 0:f3108add3d98 | 15 | control_t::control_t(pump_t *_dry, pump_t *_wet, humSensor_t *humSensor, BufferedSerial *_pc) |
sbh9428 | 0:f3108add3d98 | 16 | { |
sbh9428 | 0:f3108add3d98 | 17 | dry=_dry; |
sbh9428 | 0:f3108add3d98 | 18 | wet=_wet; |
sbh9428 | 0:f3108add3d98 | 19 | |
sbh9428 | 0:f3108add3d98 | 20 | pc=_pc; |
sbh9428 | 0:f3108add3d98 | 21 | |
sbh9428 | 0:f3108add3d98 | 22 | mode=0; |
sbh9428 | 0:f3108add3d98 | 23 | } |
sbh9428 | 0:f3108add3d98 | 24 | |
sbh9428 | 0:f3108add3d98 | 25 | control_t::~control_t() { |
sbh9428 | 0:f3108add3d98 | 26 | // TODO Auto-generated destructor stub |
sbh9428 | 0:f3108add3d98 | 27 | } |
sbh9428 | 0:f3108add3d98 | 28 | |
sbh9428 | 0:f3108add3d98 | 29 | void control_t::setP(float _P) |
sbh9428 | 0:f3108add3d98 | 30 | { |
sbh9428 | 0:f3108add3d98 | 31 | P=_P; |
sbh9428 | 0:f3108add3d98 | 32 | } |
sbh9428 | 0:f3108add3d98 | 33 | |
sbh9428 | 0:f3108add3d98 | 34 | void control_t::setI(float _I) |
sbh9428 | 0:f3108add3d98 | 35 | { |
sbh9428 | 0:f3108add3d98 | 36 | I=_I; |
sbh9428 | 0:f3108add3d98 | 37 | } |
sbh9428 | 0:f3108add3d98 | 38 | |
sbh9428 | 0:f3108add3d98 | 39 | void control_t::setD(float _D) |
sbh9428 | 0:f3108add3d98 | 40 | { |
sbh9428 | 0:f3108add3d98 | 41 | D=_D; |
sbh9428 | 0:f3108add3d98 | 42 | } |
sbh9428 | 0:f3108add3d98 | 43 | |
sbh9428 | 0:f3108add3d98 | 44 | void control_t::setMode(int _mode) |
sbh9428 | 0:f3108add3d98 | 45 | { |
sbh9428 | 0:f3108add3d98 | 46 | mode=_mode; |
sbh9428 | 0:f3108add3d98 | 47 | } |
sbh9428 | 0:f3108add3d98 | 48 | |
sbh9428 | 0:f3108add3d98 | 49 | void control_t::setPower(float _power) |
sbh9428 | 0:f3108add3d98 | 50 | { |
sbh9428 | 0:f3108add3d98 | 51 | power=_power; |
sbh9428 | 0:f3108add3d98 | 52 | } |
sbh9428 | 0:f3108add3d98 | 53 | |
sbh9428 | 0:f3108add3d98 | 54 | void control_t::setRatio(float _ratio) |
sbh9428 | 0:f3108add3d98 | 55 | { |
sbh9428 | 0:f3108add3d98 | 56 | ratio=_ratio; |
sbh9428 | 0:f3108add3d98 | 57 | } |
sbh9428 | 0:f3108add3d98 | 58 | |
sbh9428 | 0:f3108add3d98 | 59 | float control_t::getP() |
sbh9428 | 0:f3108add3d98 | 60 | { |
sbh9428 | 0:f3108add3d98 | 61 | return P; |
sbh9428 | 0:f3108add3d98 | 62 | } |
sbh9428 | 0:f3108add3d98 | 63 | |
sbh9428 | 0:f3108add3d98 | 64 | float control_t::getI() |
sbh9428 | 0:f3108add3d98 | 65 | { |
sbh9428 | 0:f3108add3d98 | 66 | return I; |
sbh9428 | 0:f3108add3d98 | 67 | } |
sbh9428 | 0:f3108add3d98 | 68 | |
sbh9428 | 0:f3108add3d98 | 69 | float control_t::getD() |
sbh9428 | 0:f3108add3d98 | 70 | { |
sbh9428 | 0:f3108add3d98 | 71 | return D; |
sbh9428 | 0:f3108add3d98 | 72 | } |
sbh9428 | 0:f3108add3d98 | 73 | |
sbh9428 | 0:f3108add3d98 | 74 | int control_t::getMode() |
sbh9428 | 0:f3108add3d98 | 75 | { |
sbh9428 | 0:f3108add3d98 | 76 | return D; |
sbh9428 | 0:f3108add3d98 | 77 | } |
sbh9428 | 0:f3108add3d98 | 78 | |
sbh9428 | 0:f3108add3d98 | 79 | float control_t::getPower() |
sbh9428 | 0:f3108add3d98 | 80 | { |
sbh9428 | 0:f3108add3d98 | 81 | return power; |
sbh9428 | 0:f3108add3d98 | 82 | } |
sbh9428 | 0:f3108add3d98 | 83 | float control_t::getRatio() |
sbh9428 | 0:f3108add3d98 | 84 | { |
sbh9428 | 0:f3108add3d98 | 85 | return ratio; |
sbh9428 | 0:f3108add3d98 | 86 | } |
sbh9428 | 0:f3108add3d98 | 87 | |
sbh9428 | 0:f3108add3d98 | 88 | void control_t::refreshPWM() |
sbh9428 | 0:f3108add3d98 | 89 | { |
sbh9428 | 0:f3108add3d98 | 90 | humidity=humSensor->getHumidity(); |
sbh9428 | 0:f3108add3d98 | 91 | switch(mode) |
sbh9428 | 0:f3108add3d98 | 92 | { |
sbh9428 | 0:f3108add3d98 | 93 | case 0: |
sbh9428 | 0:f3108add3d98 | 94 | dry->setPWM(0); |
sbh9428 | 0:f3108add3d98 | 95 | wet->setPWM(0); |
sbh9428 | 0:f3108add3d98 | 96 | break; |
sbh9428 | 0:f3108add3d98 | 97 | case 1: |
sbh9428 | 0:f3108add3d98 | 98 | dryValue=power*(1-ratio); |
sbh9428 | 0:f3108add3d98 | 99 | wetValue=power*ratio; |
sbh9428 | 0:f3108add3d98 | 100 | dry->setPWM(dryValue); |
sbh9428 | 0:f3108add3d98 | 101 | wet->setPWM(wetValue); |
sbh9428 | 0:f3108add3d98 | 102 | break; |
sbh9428 | 0:f3108add3d98 | 103 | |
sbh9428 | 0:f3108add3d98 | 104 | |
sbh9428 | 0:f3108add3d98 | 105 | } |
sbh9428 | 0:f3108add3d98 | 106 | printf("%d %1.3f %1.3f\n", mode, dryValue, wetValue); |
sbh9428 | 0:f3108add3d98 | 107 | } |
sbh9428 | 0:f3108add3d98 | 108 |