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@2:e9042e88abf1, 2014-10-08 (annotated)
- Committer:
- mfillinois
- Date:
- Wed Oct 08 16:59:47 2014 +0000
- Revision:
- 2:e9042e88abf1
- Parent:
- 1:e694ee3b4a7f
- Child:
- 3:b3ec75e9163f
RC control for sending button presses from Android to control
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 | 0:78e2af20cbf3 | 3 | WirelessMousr::WirelessMousr() : Mousr(), pc(p28, p27) {} |
mfillinois | 0:78e2af20cbf3 | 4 | |
mfillinois | 0:78e2af20cbf3 | 5 | int WirelessMousr::init() |
mfillinois | 0:78e2af20cbf3 | 6 | { |
mfillinois | 0:78e2af20cbf3 | 7 | pc.attach(this,&WirelessMousr::rxCallback); |
mfillinois | 0:78e2af20cbf3 | 8 | wait(0.1); |
mfillinois | 0:78e2af20cbf3 | 9 | return 0; |
mfillinois | 0:78e2af20cbf3 | 10 | } |
mfillinois | 0:78e2af20cbf3 | 11 | |
mfillinois | 0:78e2af20cbf3 | 12 | void WirelessMousr::rxCallback() |
mfillinois | 0:78e2af20cbf3 | 13 | { |
mfillinois | 0:78e2af20cbf3 | 14 | char state = this->pc.getc(); // read RX character, clearing interrupt |
mfillinois | 0:78e2af20cbf3 | 15 | pc.putc(state); // loopback |
mfillinois | 0:78e2af20cbf3 | 16 | pc.putc(10); |
mfillinois | 0:78e2af20cbf3 | 17 | |
mfillinois | 0:78e2af20cbf3 | 18 | // state machine |
mfillinois | 1:e694ee3b4a7f | 19 | switch(state) |
mfillinois | 1:e694ee3b4a7f | 20 | { |
mfillinois | 2:e9042e88abf1 | 21 | case 'v': //STOP |
mfillinois | 0:78e2af20cbf3 | 22 | this->stop(); break; |
mfillinois | 2:e9042e88abf1 | 23 | case 'w': //STRAIGHT |
mfillinois | 2:e9042e88abf1 | 24 | //pc.putc('g'); |
mfillinois | 0:78e2af20cbf3 | 25 | this->straight(getStraightSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 26 | case 's': //STRAIGHT SLOW |
mfillinois | 2:e9042e88abf1 | 27 | //pc.putc('g'); |
mfillinois | 2:e9042e88abf1 | 28 | this->straight(getStraightSlowSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 29 | case 'a': //ROTATE LEFT MEDIUM |
mfillinois | 1:e694ee3b4a7f | 30 | this->left(getRotateSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 31 | case 'd': //ROTATE RIGHT MEDIUM |
mfillinois | 1:e694ee3b4a7f | 32 | this->right(getRotateSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 33 | case 'x': //BACKWARDS |
mfillinois | 2:e9042e88abf1 | 34 | this->backwards(getStraightSlowSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 35 | case 'q': //ROTATE LEFT FAST (CHANGE TO CIRCLE) |
mfillinois | 2:e9042e88abf1 | 36 | pc.putc('g'); |
mfillinois | 0:78e2af20cbf3 | 37 | this->left(getRotateFastSpeed()); break; |
mfillinois | 2:e9042e88abf1 | 38 | case 'e': //ROTATE RIGHT FAST (CHANGE TO CIRCLE) |
mfillinois | 0:78e2af20cbf3 | 39 | this->right(getRotateFastSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 40 | case 'z': |
mfillinois | 0:78e2af20cbf3 | 41 | this->left(getRotateSlowSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 42 | case 'c': |
mfillinois | 0:78e2af20cbf3 | 43 | this->right(getRotateSlowSpeed()); break; |
mfillinois | 1:e694ee3b4a7f | 44 | case '1': |
mfillinois | 1:e694ee3b4a7f | 45 | this->flipLeft(); break; |
mfillinois | 1:e694ee3b4a7f | 46 | case '3': |
mfillinois | 1:e694ee3b4a7f | 47 | this->flipRight(); break; |
mfillinois | 0:78e2af20cbf3 | 48 | } |
mfillinois | 0:78e2af20cbf3 | 49 | } |