Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of RCControlOOP by
WirelessMousr.cpp@6:29a4a4eba154, 2014-10-11 (annotated)
- Committer:
- mfillinois
- Date:
- Sat Oct 11 09:30:52 2014 +0000
- Revision:
- 6:29a4a4eba154
- Parent:
- 5:dda15798ba1f
Changed L and R to upper case;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mfillinois | 0:78e2af20cbf3 | 1 | #include "WirelessMousr.h" |
mfillinois | 0:78e2af20cbf3 | 2 | |
mfillinois | 6:29a4a4eba154 | 3 | WirelessMousr::WirelessMousr() : Mousr(), pc(p28, p27) {} //USE FOR BT |
mfillinois | 6:29a4a4eba154 | 4 | //WirelessMousr::WirelessMousr() : Mousr(), pc(USBTX, USBRX) {} //USE FOR USB |
mfillinois | 0:78e2af20cbf3 | 5 | |
mfillinois | 0:78e2af20cbf3 | 6 | int WirelessMousr::init() |
mfillinois | 0:78e2af20cbf3 | 7 | { |
mfillinois | 0:78e2af20cbf3 | 8 | pc.attach(this,&WirelessMousr::rxCallback); |
mfillinois | 0:78e2af20cbf3 | 9 | wait(0.1); |
mfillinois | 0:78e2af20cbf3 | 10 | return 0; |
mfillinois | 0:78e2af20cbf3 | 11 | } |
mfillinois | 0:78e2af20cbf3 | 12 | |
mfillinois | 0:78e2af20cbf3 | 13 | void WirelessMousr::rxCallback() |
mfillinois | 0:78e2af20cbf3 | 14 | { |
mfillinois | 3:b3ec75e9163f | 15 | char message = this->pc.getc(); // read RX character, clearing interrupt |
mfillinois | 3:b3ec75e9163f | 16 | static char oldstate; |
mfillinois | 3:b3ec75e9163f | 17 | char newstate; |
mfillinois | 3:b3ec75e9163f | 18 | float pwmval; |
mfillinois | 3:b3ec75e9163f | 19 | int numerator; |
mfillinois | 3:b3ec75e9163f | 20 | float denominator; |
mfillinois | 3:b3ec75e9163f | 21 | this->pc.putc(message); |
mfillinois | 6:29a4a4eba154 | 22 | //this->pc.putc('\n'); |
mfillinois | 6:29a4a4eba154 | 23 | //this->pc.putc('\r'); |
mfillinois | 3:b3ec75e9163f | 24 | newstate = message; |
mfillinois | 0:78e2af20cbf3 | 25 | |
mfillinois | 3:b3ec75e9163f | 26 | |
mfillinois | 6:29a4a4eba154 | 27 | if ((oldstate == 'L') || (oldstate == 'R')) |
mfillinois | 3:b3ec75e9163f | 28 | { |
mfillinois | 5:dda15798ba1f | 29 | //this->pc.putc('V'); |
mfillinois | 3:b3ec75e9163f | 30 | |
mfillinois | 5:dda15798ba1f | 31 | numerator = ((int)message - 50); |
mfillinois | 5:dda15798ba1f | 32 | denominator = (float) 50; |
mfillinois | 3:b3ec75e9163f | 33 | pwmval = ((float) numerator) / denominator; |
mfillinois | 6:29a4a4eba154 | 34 | //pc.printf("%f \n \r",pwmval); |
mfillinois | 6:29a4a4eba154 | 35 | //pc.printf("%d",message); |
mfillinois | 6:29a4a4eba154 | 36 | |
mfillinois | 6:29a4a4eba154 | 37 | if (oldstate == 'L') |
mfillinois | 3:b3ec75e9163f | 38 | { |
mfillinois | 3:b3ec75e9163f | 39 | this->lefttire(pwmval); |
mfillinois | 5:dda15798ba1f | 40 | //this->pc.putc('L'); |
mfillinois | 5:dda15798ba1f | 41 | //this->pc.putc('L'); |
mfillinois | 3:b3ec75e9163f | 42 | } |
mfillinois | 6:29a4a4eba154 | 43 | else if (oldstate == 'R') |
mfillinois | 3:b3ec75e9163f | 44 | { |
mfillinois | 3:b3ec75e9163f | 45 | this->righttire(pwmval); |
mfillinois | 5:dda15798ba1f | 46 | //this->pc.putc('R'); |
mfillinois | 5:dda15798ba1f | 47 | //this->pc.putc('R'); |
mfillinois | 3:b3ec75e9163f | 48 | } |
mfillinois | 3:b3ec75e9163f | 49 | } |
mfillinois | 3:b3ec75e9163f | 50 | else |
mfillinois | 3:b3ec75e9163f | 51 | { |
mfillinois | 3:b3ec75e9163f | 52 | switch(message) |
mfillinois | 3:b3ec75e9163f | 53 | { |
mfillinois | 3:b3ec75e9163f | 54 | case 'q': //STOP |
mfillinois | 3:b3ec75e9163f | 55 | this->left90(); |
mfillinois | 6:29a4a4eba154 | 56 | /*this->pc.putc('L'); |
mfillinois | 3:b3ec75e9163f | 57 | this->pc.putc('9'); |
mfillinois | 3:b3ec75e9163f | 58 | this->pc.putc('0'); |
mfillinois | 6:29a4a4eba154 | 59 | this->pc.putc('\n');*/ |
mfillinois | 3:b3ec75e9163f | 60 | break; |
mfillinois | 3:b3ec75e9163f | 61 | case 'a': //STRAIGHT |
mfillinois | 3:b3ec75e9163f | 62 | this->left180(); |
mfillinois | 6:29a4a4eba154 | 63 | /* this->pc.putc('L'); |
mfillinois | 3:b3ec75e9163f | 64 | this->pc.putc('8'); |
mfillinois | 3:b3ec75e9163f | 65 | this->pc.putc('0'); |
mfillinois | 6:29a4a4eba154 | 66 | this->pc.putc('\n');*/ |
mfillinois | 3:b3ec75e9163f | 67 | break; |
mfillinois | 3:b3ec75e9163f | 68 | case 'e': //STRAIGHT SLOW |
mfillinois | 3:b3ec75e9163f | 69 | this->right90(); |
mfillinois | 6:29a4a4eba154 | 70 | /* this->pc.putc('R'); |
mfillinois | 3:b3ec75e9163f | 71 | this->pc.putc('9'); |
mfillinois | 3:b3ec75e9163f | 72 | this->pc.putc('0'); |
mfillinois | 6:29a4a4eba154 | 73 | this->pc.putc('\n');*/ |
mfillinois | 3:b3ec75e9163f | 74 | break; |
mfillinois | 3:b3ec75e9163f | 75 | case 'd': //ROTATE LEFT MEDIUM |
mfillinois | 3:b3ec75e9163f | 76 | this->right180(); |
mfillinois | 6:29a4a4eba154 | 77 | /* this->pc.putc('R'); |
mfillinois | 3:b3ec75e9163f | 78 | this->pc.putc('8'); |
mfillinois | 3:b3ec75e9163f | 79 | this->pc.putc('0'); |
mfillinois | 6:29a4a4eba154 | 80 | this->pc.putc('\n');*/ |
mfillinois | 3:b3ec75e9163f | 81 | break; |
mfillinois | 3:b3ec75e9163f | 82 | case 's': //ROTATE RIGHT MEDIUM |
mfillinois | 3:b3ec75e9163f | 83 | this->stop(); |
mfillinois | 6:29a4a4eba154 | 84 | /* this->pc.putc('S'); |
mfillinois | 3:b3ec75e9163f | 85 | this->pc.putc('T'); |
mfillinois | 3:b3ec75e9163f | 86 | this->pc.putc('P'); |
mfillinois | 6:29a4a4eba154 | 87 | this->pc.putc('\n'); break;*/ |
mfillinois | 3:b3ec75e9163f | 88 | } |
mfillinois | 3:b3ec75e9163f | 89 | } |
mfillinois | 3:b3ec75e9163f | 90 | oldstate = newstate; |
mfillinois | 3:b3ec75e9163f | 91 | } |