DP / Mbed 2 deprecated RCControlOOPWithThrottle

Dependencies:   mbed

Fork of RCControlOOP by DP

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?

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