DP / Mbed 2 deprecated RCControlOOPWithThrottle

Dependencies:   mbed

Fork of RCControlOOP by DP

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?

UserRevisionLine numberNew 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 }