HU YANG
/
AnalogOut-HelloWorld
aa
Fork of AnalogOut-HelloWorld by
mdevice.cpp@5:e6536d2d5aba, 2016-10-10 (annotated)
- Committer:
- fewerhy
- Date:
- Mon Oct 10 20:40:05 2016 +0000
- Revision:
- 5:e6536d2d5aba
stable
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fewerhy | 5:e6536d2d5aba | 1 | #include "mdevice.h" |
fewerhy | 5:e6536d2d5aba | 2 | |
fewerhy | 5:e6536d2d5aba | 3 | mdevice::mdevice() |
fewerhy | 5:e6536d2d5aba | 4 | { |
fewerhy | 5:e6536d2d5aba | 5 | mSpeedPort0.period(0.00002857142f); |
fewerhy | 5:e6536d2d5aba | 6 | mSpeedPort1.period(0.00002857142f); |
fewerhy | 5:e6536d2d5aba | 7 | mIndexSig0=true; |
fewerhy | 5:e6536d2d5aba | 8 | mIndexSig1=true; |
fewerhy | 5:e6536d2d5aba | 9 | mPos0=0; |
fewerhy | 5:e6536d2d5aba | 10 | mPos1=0; |
fewerhy | 5:e6536d2d5aba | 11 | mDir0=1; |
fewerhy | 5:e6536d2d5aba | 12 | mDir1=1; |
fewerhy | 5:e6536d2d5aba | 13 | mButton=0; |
fewerhy | 5:e6536d2d5aba | 14 | mPreButton=0; |
fewerhy | 5:e6536d2d5aba | 15 | mButtonEdge=0; |
fewerhy | 5:e6536d2d5aba | 16 | } |
fewerhy | 5:e6536d2d5aba | 17 | |
fewerhy | 5:e6536d2d5aba | 18 | void mdevice::updateButton() |
fewerhy | 5:e6536d2d5aba | 19 | { |
fewerhy | 5:e6536d2d5aba | 20 | if (buttonPort>0.3f) |
fewerhy | 5:e6536d2d5aba | 21 | { |
fewerhy | 5:e6536d2d5aba | 22 | mButton=1; |
fewerhy | 5:e6536d2d5aba | 23 | } |
fewerhy | 5:e6536d2d5aba | 24 | else |
fewerhy | 5:e6536d2d5aba | 25 | { |
fewerhy | 5:e6536d2d5aba | 26 | mButton=0; |
fewerhy | 5:e6536d2d5aba | 27 | } |
fewerhy | 5:e6536d2d5aba | 28 | |
fewerhy | 5:e6536d2d5aba | 29 | //detect up edge |
fewerhy | 5:e6536d2d5aba | 30 | if (mPreButton==0&& mButton==1) |
fewerhy | 5:e6536d2d5aba | 31 | { |
fewerhy | 5:e6536d2d5aba | 32 | mButtonEdge=1; |
fewerhy | 5:e6536d2d5aba | 33 | } |
fewerhy | 5:e6536d2d5aba | 34 | //detect down edge |
fewerhy | 5:e6536d2d5aba | 35 | else if (mPreButton==1&& mButton==0) |
fewerhy | 5:e6536d2d5aba | 36 | { |
fewerhy | 5:e6536d2d5aba | 37 | mButtonEdge=-1; |
fewerhy | 5:e6536d2d5aba | 38 | } |
fewerhy | 5:e6536d2d5aba | 39 | else |
fewerhy | 5:e6536d2d5aba | 40 | { |
fewerhy | 5:e6536d2d5aba | 41 | mButtonEdge=0; |
fewerhy | 5:e6536d2d5aba | 42 | } |
fewerhy | 5:e6536d2d5aba | 43 | mPreButton=mButton; |
fewerhy | 5:e6536d2d5aba | 44 | } |
fewerhy | 5:e6536d2d5aba | 45 | |
fewerhy | 5:e6536d2d5aba | 46 | void mdevice::runMotor0(float s) |
fewerhy | 5:e6536d2d5aba | 47 | { |
fewerhy | 5:e6536d2d5aba | 48 | if (s>0.001) |
fewerhy | 5:e6536d2d5aba | 49 | { |
fewerhy | 5:e6536d2d5aba | 50 | mDir0=1; |
fewerhy | 5:e6536d2d5aba | 51 | mDirPort0=1; |
fewerhy | 5:e6536d2d5aba | 52 | mSpeedPort0.write(s); |
fewerhy | 5:e6536d2d5aba | 53 | } |
fewerhy | 5:e6536d2d5aba | 54 | else if (s<-0.001) |
fewerhy | 5:e6536d2d5aba | 55 | { |
fewerhy | 5:e6536d2d5aba | 56 | mDir0=-1; |
fewerhy | 5:e6536d2d5aba | 57 | mDirPort0=0; |
fewerhy | 5:e6536d2d5aba | 58 | mSpeedPort0.write(-s); |
fewerhy | 5:e6536d2d5aba | 59 | } |
fewerhy | 5:e6536d2d5aba | 60 | else |
fewerhy | 5:e6536d2d5aba | 61 | { |
fewerhy | 5:e6536d2d5aba | 62 | mSpeedPort0.write(0.0f); |
fewerhy | 5:e6536d2d5aba | 63 | } |
fewerhy | 5:e6536d2d5aba | 64 | } |
fewerhy | 5:e6536d2d5aba | 65 | |
fewerhy | 5:e6536d2d5aba | 66 | void mdevice::runMotor1(float s) |
fewerhy | 5:e6536d2d5aba | 67 | { |
fewerhy | 5:e6536d2d5aba | 68 | if (s>0.001) |
fewerhy | 5:e6536d2d5aba | 69 | { |
fewerhy | 5:e6536d2d5aba | 70 | mDir1=1; |
fewerhy | 5:e6536d2d5aba | 71 | mDirPort1=1; |
fewerhy | 5:e6536d2d5aba | 72 | mSpeedPort1.write(s); |
fewerhy | 5:e6536d2d5aba | 73 | } |
fewerhy | 5:e6536d2d5aba | 74 | else if (s<-0.001) |
fewerhy | 5:e6536d2d5aba | 75 | { |
fewerhy | 5:e6536d2d5aba | 76 | mDir1=-1; |
fewerhy | 5:e6536d2d5aba | 77 | mDirPort1=0; |
fewerhy | 5:e6536d2d5aba | 78 | mSpeedPort1.write(-s); |
fewerhy | 5:e6536d2d5aba | 79 | } |
fewerhy | 5:e6536d2d5aba | 80 | else |
fewerhy | 5:e6536d2d5aba | 81 | { |
fewerhy | 5:e6536d2d5aba | 82 | mSpeedPort1.write(0.0f); |
fewerhy | 5:e6536d2d5aba | 83 | } |
fewerhy | 5:e6536d2d5aba | 84 | } |
fewerhy | 5:e6536d2d5aba | 85 | |
fewerhy | 5:e6536d2d5aba | 86 | void mdevice::updateEncoder0() |
fewerhy | 5:e6536d2d5aba | 87 | { |
fewerhy | 5:e6536d2d5aba | 88 | if (encoderPort0<0.3f ) |
fewerhy | 5:e6536d2d5aba | 89 | { |
fewerhy | 5:e6536d2d5aba | 90 | if (mIndexSig0==true) |
fewerhy | 5:e6536d2d5aba | 91 | { |
fewerhy | 5:e6536d2d5aba | 92 | mIndexSig0=false; |
fewerhy | 5:e6536d2d5aba | 93 | mPos0=mPos0+mDir0; |
fewerhy | 5:e6536d2d5aba | 94 | } |
fewerhy | 5:e6536d2d5aba | 95 | } |
fewerhy | 5:e6536d2d5aba | 96 | else |
fewerhy | 5:e6536d2d5aba | 97 | { |
fewerhy | 5:e6536d2d5aba | 98 | mIndexSig0=true; |
fewerhy | 5:e6536d2d5aba | 99 | } |
fewerhy | 5:e6536d2d5aba | 100 | } |
fewerhy | 5:e6536d2d5aba | 101 | |
fewerhy | 5:e6536d2d5aba | 102 | void mdevice::updateEncoder1() |
fewerhy | 5:e6536d2d5aba | 103 | { |
fewerhy | 5:e6536d2d5aba | 104 | if (encoderPort1<0.3f ) |
fewerhy | 5:e6536d2d5aba | 105 | { |
fewerhy | 5:e6536d2d5aba | 106 | if (mIndexSig1==true) |
fewerhy | 5:e6536d2d5aba | 107 | { |
fewerhy | 5:e6536d2d5aba | 108 | mIndexSig1=false; |
fewerhy | 5:e6536d2d5aba | 109 | mPos1=mPos1+mDir1; |
fewerhy | 5:e6536d2d5aba | 110 | } |
fewerhy | 5:e6536d2d5aba | 111 | } |
fewerhy | 5:e6536d2d5aba | 112 | else |
fewerhy | 5:e6536d2d5aba | 113 | { |
fewerhy | 5:e6536d2d5aba | 114 | mIndexSig1=true; |
fewerhy | 5:e6536d2d5aba | 115 | } |
fewerhy | 5:e6536d2d5aba | 116 | } |
fewerhy | 5:e6536d2d5aba | 117 | |
fewerhy | 5:e6536d2d5aba | 118 | void mdevice::updateDeviceStatus() |
fewerhy | 5:e6536d2d5aba | 119 | { |
fewerhy | 5:e6536d2d5aba | 120 | updateEncoder0(); |
fewerhy | 5:e6536d2d5aba | 121 | updateEncoder1(); |
fewerhy | 5:e6536d2d5aba | 122 | updateButton(); |
fewerhy | 5:e6536d2d5aba | 123 | } |
fewerhy | 5:e6536d2d5aba | 124 | |
fewerhy | 5:e6536d2d5aba | 125 | int mdevice::getButton() |
fewerhy | 5:e6536d2d5aba | 126 | { |
fewerhy | 5:e6536d2d5aba | 127 | return mButton; |
fewerhy | 5:e6536d2d5aba | 128 | } |
fewerhy | 5:e6536d2d5aba | 129 | |
fewerhy | 5:e6536d2d5aba | 130 | int mdevice::getMotorPos0() |
fewerhy | 5:e6536d2d5aba | 131 | { |
fewerhy | 5:e6536d2d5aba | 132 | return mPos0; |
fewerhy | 5:e6536d2d5aba | 133 | } |
fewerhy | 5:e6536d2d5aba | 134 | |
fewerhy | 5:e6536d2d5aba | 135 | int mdevice::getMotorPos1() |
fewerhy | 5:e6536d2d5aba | 136 | { |
fewerhy | 5:e6536d2d5aba | 137 | return mPos1; |
fewerhy | 5:e6536d2d5aba | 138 | } |
fewerhy | 5:e6536d2d5aba | 139 | |
fewerhy | 5:e6536d2d5aba | 140 | int mdevice::getButtonEdge() |
fewerhy | 5:e6536d2d5aba | 141 | { |
fewerhy | 5:e6536d2d5aba | 142 | return mButtonEdge; |
fewerhy | 5:e6536d2d5aba | 143 | } |
fewerhy | 5:e6536d2d5aba | 144 |