DP / Mbed 2 deprecated RCControlOOPWithThrottle

Dependencies:   mbed

Fork of RCControlOOP by DP

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?

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