Committer:
gtg795y
Date:
Fri Nov 26 21:00:50 2010 +0000
Revision:
1:d0f6e726b244
Parent:
0:a6113b3c872b
Child:
2:0a3c369d0076
0.00000000002b

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gtg795y 1:d0f6e726b244 1 #include "Serializer.h"
gtg795y 1:d0f6e726b244 2
gtg795y 1:d0f6e726b244 3 Serial pc(USBTX,USBRX);
gtg795y 1:d0f6e726b244 4
gtg795y 1:d0f6e726b244 5 Serializer::Serializer() {
gtg795y 1:d0f6e726b244 6 serial=new Serial(p28,p27);
gtg795y 1:d0f6e726b244 7 wait(2);
gtg795y 1:d0f6e726b244 8 }
gtg795y 1:d0f6e726b244 9
gtg795y 1:d0f6e726b244 10 Serializer::~Serializer() {
gtg795y 1:d0f6e726b244 11 delete serial;
gtg795y 1:d0f6e726b244 12 }
gtg795y 1:d0f6e726b244 13
gtg795y 1:d0f6e726b244 14 void Serializer::Stop() {
gtg795y 1:d0f6e726b244 15 if (serial->writeable())
gtg795y 1:d0f6e726b244 16 serial->printf("stop\r");
gtg795y 1:d0f6e726b244 17 }
gtg795y 1:d0f6e726b244 18
gtg795y 1:d0f6e726b244 19 void Serializer::ClearCountLeft() {
gtg795y 1:d0f6e726b244 20 if (serial->writeable())
gtg795y 1:d0f6e726b244 21 serial->printf("clrenc 1\r");
gtg795y 1:d0f6e726b244 22 }
gtg795y 1:d0f6e726b244 23 void Serializer::ClearCountRight() {
gtg795y 1:d0f6e726b244 24 if (serial->writeable())
gtg795y 1:d0f6e726b244 25 serial->printf("clrenc 2\r");
gtg795y 1:d0f6e726b244 26 }
gtg795y 1:d0f6e726b244 27
gtg795y 1:d0f6e726b244 28 void Serializer::ClearCount() {
gtg795y 1:d0f6e726b244 29 if (serial->writeable())
gtg795y 1:d0f6e726b244 30 serial->printf("clrenc 1 2\r");
gtg795y 1:d0f6e726b244 31 }
gtg795y 1:d0f6e726b244 32
gtg795y 1:d0f6e726b244 33 void Serializer::SetSpeedLeft(int speed) {
gtg795y 1:d0f6e726b244 34 if (serial->writeable())
gtg795y 1:d0f6e726b244 35 serial->printf("mogo 1:%i\r", -speed);
gtg795y 1:d0f6e726b244 36 }
gtg795y 1:d0f6e726b244 37 void Serializer::SetSpeedRight(int speed) {
gtg795y 1:d0f6e726b244 38 if (serial->writeable())
gtg795y 1:d0f6e726b244 39 serial->printf("mogo 2:%i\r", -speed);
gtg795y 1:d0f6e726b244 40 }
gtg795y 1:d0f6e726b244 41 void Serializer::SetSpeed(int speed) {
gtg795y 1:d0f6e726b244 42 if (serial->writeable())
gtg795y 1:d0f6e726b244 43 serial->printf("mogo 1:%i 2:%i\r", -speed, -speed);
gtg795y 1:d0f6e726b244 44 }
gtg795y 1:d0f6e726b244 45
gtg795y 1:d0f6e726b244 46 void Serializer::SetVPID(int p,int i,int d,int l) {
gtg795y 1:d0f6e726b244 47 if (serial->writeable())
gtg795y 1:d0f6e726b244 48 serial->printf("vpid %i:%i:%i:%i\r", p,i,d,l);
gtg795y 1:d0f6e726b244 49 }
gtg795y 1:d0f6e726b244 50
gtg795y 1:d0f6e726b244 51 void Serializer::SetDPID(int p,int i,int d,int a) {
gtg795y 1:d0f6e726b244 52 if (serial->writeable())
gtg795y 1:d0f6e726b244 53 serial->printf("dpid %i:%i:%i:%i\r", p,i,d,a);
gtg795y 1:d0f6e726b244 54 }
gtg795y 1:d0f6e726b244 55
gtg795y 1:d0f6e726b244 56 void Serializer::DiGoLeft(int dist,int speed) {
gtg795y 1:d0f6e726b244 57 if (serial->writeable())
gtg795y 1:d0f6e726b244 58 serial->printf("digo 1:%i:%i\r",-dist, speed);
gtg795y 1:d0f6e726b244 59 }
gtg795y 1:d0f6e726b244 60 void Serializer::DiGoRight(int dist,int speed) {
gtg795y 1:d0f6e726b244 61 if (serial->writeable())
gtg795y 1:d0f6e726b244 62 serial->printf("digo 2:%i:%i\r",-dist, speed);
gtg795y 1:d0f6e726b244 63 }
gtg795y 1:d0f6e726b244 64 void Serializer::DiGo(int dist,int speed) {
gtg795y 1:d0f6e726b244 65 if (serial->writeable())
gtg795y 1:d0f6e726b244 66 serial->printf("digo 1:%i:%i 2:%i:%i\r",-dist, speed, -dist, speed);
gtg795y 1:d0f6e726b244 67 }
gtg795y 1:d0f6e726b244 68
gtg795y 1:d0f6e726b244 69
gtg795y 1:d0f6e726b244 70
gtg795y 1:d0f6e726b244 71 //unused and untested
gtg795y 1:d0f6e726b244 72 int Serializer::GetReply() {
gtg795y 1:d0f6e726b244 73 int returnValue=0;
gtg795y 1:d0f6e726b244 74 char c=0;
gtg795y 1:d0f6e726b244 75 char readyToReturn=0;
gtg795y 1:d0f6e726b244 76 char ack=0;
gtg795y 1:d0f6e726b244 77 char nack=0;
gtg795y 1:d0f6e726b244 78 wait(0.0001);
gtg795y 1:d0f6e726b244 79 while (serial->readable()) {
gtg795y 1:d0f6e726b244 80 c=serial->getc();
gtg795y 1:d0f6e726b244 81 if(readyToReturn)continue;
gtg795y 1:d0f6e726b244 82 if (c=='N'&&nack==0)nack=1;
gtg795y 1:d0f6e726b244 83 else nack=0;
gtg795y 1:d0f6e726b244 84 if (c=='A'&&ack==0)ack++;
gtg795y 1:d0f6e726b244 85 else ack=nack=0;
gtg795y 1:d0f6e726b244 86 if (c=='C'&&ack==1)ack++;
gtg795y 1:d0f6e726b244 87 else ack=nack=0;
gtg795y 1:d0f6e726b244 88 if (c=='K'&&ack==2)ack++;
gtg795y 1:d0f6e726b244 89 else ack=nack=0;
gtg795y 1:d0f6e726b244 90 if (ack==3)
gtg795y 1:d0f6e726b244 91 if (nack==1)
gtg795y 1:d0f6e726b244 92 returnValue=1;
gtg795y 1:d0f6e726b244 93 else
gtg795y 1:d0f6e726b244 94 returnValue=0;
gtg795y 1:d0f6e726b244 95 if(c=='>')readyToReturn=1;
gtg795y 1:d0f6e726b244 96 }
gtg795y 1:d0f6e726b244 97 return returnValue;
gtg795y 1:d0f6e726b244 98 }