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@1:e694ee3b4a7f, 2014-09-21 (annotated)
- Committer:
- mfillinois
- Date:
- Sun Sep 21 14:43:47 2014 +0000
- Revision:
- 1:e694ee3b4a7f
- Parent:
- 0:78e2af20cbf3
- Child:
- 2:e9042e88abf1
OOP RC
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 | 0:78e2af20cbf3 | 21 | case 's': |
mfillinois | 0:78e2af20cbf3 | 22 | this->stop(); break; |
mfillinois | 0:78e2af20cbf3 | 23 | case 'w': |
mfillinois | 1:e694ee3b4a7f | 24 | pc.putc('g'); |
mfillinois | 0:78e2af20cbf3 | 25 | this->straight(getStraightSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 26 | case 'a': |
mfillinois | 1:e694ee3b4a7f | 27 | this->left(getRotateSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 28 | case 'd': |
mfillinois | 1:e694ee3b4a7f | 29 | this->right(getRotateSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 30 | case 'x': |
mfillinois | 0:78e2af20cbf3 | 31 | this->backwards(getStraightSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 32 | case 'q': |
mfillinois | 0:78e2af20cbf3 | 33 | this->left(getRotateFastSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 34 | case 'e': |
mfillinois | 0:78e2af20cbf3 | 35 | this->right(getRotateFastSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 36 | case 'z': |
mfillinois | 0:78e2af20cbf3 | 37 | this->left(getRotateSlowSpeed()); break; |
mfillinois | 0:78e2af20cbf3 | 38 | case 'c': |
mfillinois | 0:78e2af20cbf3 | 39 | this->right(getRotateSlowSpeed()); break; |
mfillinois | 1:e694ee3b4a7f | 40 | case '1': |
mfillinois | 1:e694ee3b4a7f | 41 | this->flipLeft(); break; |
mfillinois | 1:e694ee3b4a7f | 42 | case '3': |
mfillinois | 1:e694ee3b4a7f | 43 | this->flipRight(); break; |
mfillinois | 0:78e2af20cbf3 | 44 | } |
mfillinois | 0:78e2af20cbf3 | 45 | } |