Committer:
gtg795y
Date:
Thu Nov 25 00:10:20 2010 +0000
Revision:
0:a6113b3c872b
Child:
1:d0f6e726b244
v 0.0000000000000000000000000000000000001b
Do not use. Undocumented, untested, incomplete.
For 4180 group test purposes only.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gtg795y 0:a6113b3c872b 1 #include "Serializer.h"
gtg795y 0:a6113b3c872b 2
gtg795y 0:a6113b3c872b 3 Serial pc(USBTX,USBRX);
gtg795y 0:a6113b3c872b 4
gtg795y 0:a6113b3c872b 5 Serializer::Serializer() {
gtg795y 0:a6113b3c872b 6 serial=new Serial(p28,p27);
gtg795y 0:a6113b3c872b 7 wait(2);
gtg795y 0:a6113b3c872b 8
gtg795y 0:a6113b3c872b 9 isBusy=0;
gtg795y 0:a6113b3c872b 10 serial->attach(this, &Serializer::InterruptHandler);
gtg795y 0:a6113b3c872b 11 }
gtg795y 0:a6113b3c872b 12
gtg795y 0:a6113b3c872b 13 Serializer::~Serializer() {
gtg795y 0:a6113b3c872b 14 delete serial;
gtg795y 0:a6113b3c872b 15 }
gtg795y 0:a6113b3c872b 16
gtg795y 0:a6113b3c872b 17 void Serializer::Reset() {
gtg795y 0:a6113b3c872b 18 // if (serial->writeable())
gtg795y 0:a6113b3c872b 19 // serial->printf("reset\r");
gtg795y 0:a6113b3c872b 20 }
gtg795y 0:a6113b3c872b 21 int Serializer::IsBusy() {
gtg795y 0:a6113b3c872b 22 if (serial->writeable())
gtg795y 0:a6113b3c872b 23 serial->printf("pids\r");
gtg795y 0:a6113b3c872b 24 return isBusy;
gtg795y 0:a6113b3c872b 25
gtg795y 0:a6113b3c872b 26 }
gtg795y 0:a6113b3c872b 27 void Serializer::Stop() {
gtg795y 0:a6113b3c872b 28 if (serial->writeable())
gtg795y 0:a6113b3c872b 29 serial->printf("stop\r");
gtg795y 0:a6113b3c872b 30 }
gtg795y 0:a6113b3c872b 31
gtg795y 0:a6113b3c872b 32 int Serializer::GetCountLeft() {
gtg795y 0:a6113b3c872b 33 return 0;
gtg795y 0:a6113b3c872b 34 }
gtg795y 0:a6113b3c872b 35 int Serializer::GetCountRight() {
gtg795y 0:a6113b3c872b 36 return 0;
gtg795y 0:a6113b3c872b 37 }
gtg795y 0:a6113b3c872b 38
gtg795y 0:a6113b3c872b 39 void Serializer::ClearCountLeft() {
gtg795y 0:a6113b3c872b 40 if (serial->writeable())
gtg795y 0:a6113b3c872b 41 serial->printf("clrenc 1\r");
gtg795y 0:a6113b3c872b 42 }
gtg795y 0:a6113b3c872b 43 void Serializer::ClearCountRight() {
gtg795y 0:a6113b3c872b 44 if (serial->writeable())
gtg795y 0:a6113b3c872b 45 serial->printf("clrenc 2\r");
gtg795y 0:a6113b3c872b 46 }
gtg795y 0:a6113b3c872b 47
gtg795y 0:a6113b3c872b 48 void Serializer::ClearCount() {
gtg795y 0:a6113b3c872b 49 if (serial->writeable())
gtg795y 0:a6113b3c872b 50 serial->printf("clrenc 1 2\r");
gtg795y 0:a6113b3c872b 51 }
gtg795y 0:a6113b3c872b 52
gtg795y 0:a6113b3c872b 53 void Serializer::SetSpeedLeft(int speed) {
gtg795y 0:a6113b3c872b 54 if (serial->writeable())
gtg795y 0:a6113b3c872b 55 serial->printf("mogo 1:%i\r", -speed);
gtg795y 0:a6113b3c872b 56 }
gtg795y 0:a6113b3c872b 57 void Serializer::SetSpeedRight(int speed) {
gtg795y 0:a6113b3c872b 58 if (serial->writeable())
gtg795y 0:a6113b3c872b 59 serial->printf("mogo 2:%i\r", -speed);
gtg795y 0:a6113b3c872b 60 }
gtg795y 0:a6113b3c872b 61 void Serializer::SetSpeed(int speed) {
gtg795y 0:a6113b3c872b 62 if (serial->writeable())
gtg795y 0:a6113b3c872b 63 serial->printf("mogo 1:%i 2:%i\r", -speed, -speed);
gtg795y 0:a6113b3c872b 64 }
gtg795y 0:a6113b3c872b 65
gtg795y 0:a6113b3c872b 66 void Serializer::SetVPID(int a,int b,int c,int d) {
gtg795y 0:a6113b3c872b 67 }
gtg795y 0:a6113b3c872b 68 void Serializer::SetDPID(int a,int b,int,int) {
gtg795y 0:a6113b3c872b 69 }
gtg795y 0:a6113b3c872b 70
gtg795y 0:a6113b3c872b 71 void Serializer::DiGoLeft(int dist,int speed) {
gtg795y 0:a6113b3c872b 72 if (serial->writeable())
gtg795y 0:a6113b3c872b 73 serial->printf("digo 1:%i:%i\r",-dist, speed);
gtg795y 0:a6113b3c872b 74 }
gtg795y 0:a6113b3c872b 75 void Serializer::DiGoRight(int dist,int speed) {
gtg795y 0:a6113b3c872b 76 if (serial->writeable())
gtg795y 0:a6113b3c872b 77 serial->printf("digo 2:%i:%i\r",-dist, speed);
gtg795y 0:a6113b3c872b 78 }
gtg795y 0:a6113b3c872b 79 void Serializer::DiGo(int dist,int speed) {
gtg795y 0:a6113b3c872b 80 if (serial->writeable())
gtg795y 0:a6113b3c872b 81 serial->printf("digo 1:%i:%i 2:%i:%i\r",-dist, speed, -dist, speed);
gtg795y 0:a6113b3c872b 82 }
gtg795y 0:a6113b3c872b 83
gtg795y 0:a6113b3c872b 84
gtg795y 0:a6113b3c872b 85 void Serializer::InterruptHandler() {
gtg795y 0:a6113b3c872b 86 serial->getc();
gtg795y 0:a6113b3c872b 87 /* pc.putc(serial->getc());
gtg795y 0:a6113b3c872b 88 isBusy=1;
gtg795y 0:a6113b3c872b 89 int isReady=0;
gtg795y 0:a6113b3c872b 90 int len=0;
gtg795y 0:a6113b3c872b 91 while (serial->readable()) {
gtg795y 0:a6113b3c872b 92 rxBuffer[len++]=serial->getc();
gtg795y 0:a6113b3c872b 93 if (len>96)break;
gtg795y 0:a6113b3c872b 94 }
gtg795y 0:a6113b3c872b 95 for (int i=0;i<len;i++) {
gtg795y 0:a6113b3c872b 96 if ((rxBuffer[i]=='A')&&(rxBuffer[i+1]=='C')&&(rxBuffer[i+2]=='K')) {
gtg795y 0:a6113b3c872b 97 if (i&&(rxBuffer[i-1]=='N'))
gtg795y 0:a6113b3c872b 98 response=NEGATIVE;
gtg795y 0:a6113b3c872b 99 else
gtg795y 0:a6113b3c872b 100 response=WILCO;
gtg795y 0:a6113b3c872b 101 continue;
gtg795y 0:a6113b3c872b 102 }
gtg795y 0:a6113b3c872b 103 if (rxBuffer[i]=='>'){
gtg795y 0:a6113b3c872b 104 isReady=1;
gtg795y 0:a6113b3c872b 105 break;
gtg795y 0:a6113b3c872b 106 }
gtg795y 0:a6113b3c872b 107
gtg795y 0:a6113b3c872b 108 }
gtg795y 0:a6113b3c872b 109
gtg795y 0:a6113b3c872b 110
gtg795y 0:a6113b3c872b 111 isBusy=0;
gtg795y 0:a6113b3c872b 112 return;
gtg795y 0:a6113b3c872b 113 */
gtg795y 0:a6113b3c872b 114 }