1am

Committer:
sowmy87
Date:
Mon Dec 13 06:04:02 2010 +0000
Revision:
2:9e0d3f159ec3
Parent:
1:9a7e6c978adb
Child:
3:94b650d0861d

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sowmy87 0:d2dcb47dc8e9 1 /**
sowmy87 0:d2dcb47dc8e9 2 * Includes
sowmy87 0:d2dcb47dc8e9 3 */
sowmy87 0:d2dcb47dc8e9 4 #include "Serializer.h"
sowmy87 0:d2dcb47dc8e9 5
sowmy87 0:d2dcb47dc8e9 6 Serial pcc(USBTX, USBRX);
sowmy87 0:d2dcb47dc8e9 7
sowmy87 0:d2dcb47dc8e9 8 Serializer::Serializer() {
sowmy87 0:d2dcb47dc8e9 9 serial=new Serial(p28,p27);
sowmy87 0:d2dcb47dc8e9 10 serial->baud(BAUD);
sowmy87 0:d2dcb47dc8e9 11 Initialize();
sowmy87 0:d2dcb47dc8e9 12 }
sowmy87 0:d2dcb47dc8e9 13
sowmy87 0:d2dcb47dc8e9 14 int Serializer::Initialize() {
sowmy87 0:d2dcb47dc8e9 15 char c1=0;
sowmy87 0:d2dcb47dc8e9 16 DigitalOut led1(LED1);
sowmy87 0:d2dcb47dc8e9 17 DigitalOut led2(LED2);
sowmy87 0:d2dcb47dc8e9 18 DigitalOut led3(LED3);
sowmy87 0:d2dcb47dc8e9 19 DigitalOut led4(LED4);
sowmy87 0:d2dcb47dc8e9 20
sowmy87 0:d2dcb47dc8e9 21 led1=1;
sowmy87 0:d2dcb47dc8e9 22 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 23 serial->printf("fw\r");
sowmy87 0:d2dcb47dc8e9 24 wait(.25);
sowmy87 0:d2dcb47dc8e9 25 led2=1;
sowmy87 0:d2dcb47dc8e9 26 while (serial->readable()) {
sowmy87 0:d2dcb47dc8e9 27 c1=serial->getc();
sowmy87 0:d2dcb47dc8e9 28 pcc.putc(c1);
sowmy87 0:d2dcb47dc8e9 29 }
sowmy87 0:d2dcb47dc8e9 30 if (c1!='>')
sowmy87 1:9a7e6c978adb 31 for (int i=0;i<5;i++) {
sowmy87 0:d2dcb47dc8e9 32 led1=led2=led3=led4=1;
sowmy87 0:d2dcb47dc8e9 33 wait(0.5);
sowmy87 0:d2dcb47dc8e9 34 led1=led2=led3=led4=0;
sowmy87 0:d2dcb47dc8e9 35 wait(0.5);
sowmy87 0:d2dcb47dc8e9 36 }
sowmy87 0:d2dcb47dc8e9 37 wait(.25);
sowmy87 0:d2dcb47dc8e9 38 led3=1;
sowmy87 0:d2dcb47dc8e9 39 wait(.25);
sowmy87 0:d2dcb47dc8e9 40 led4=1;
sowmy87 0:d2dcb47dc8e9 41 SetVPID(10,0,5,10);
sowmy87 0:d2dcb47dc8e9 42 wait(0.25);
sowmy87 0:d2dcb47dc8e9 43 led1=0;
sowmy87 0:d2dcb47dc8e9 44 wait(.25);
sowmy87 0:d2dcb47dc8e9 45 ClearCount();
sowmy87 0:d2dcb47dc8e9 46 led2=0;
sowmy87 0:d2dcb47dc8e9 47 wait(.25);
sowmy87 0:d2dcb47dc8e9 48 led3=0;
sowmy87 0:d2dcb47dc8e9 49 wait(.25);
sowmy87 0:d2dcb47dc8e9 50 led4=0;
sowmy87 0:d2dcb47dc8e9 51 _lPWM=_rPWM=0;
sowmy87 1:9a7e6c978adb 52 _isBusy=0;
sowmy87 1:9a7e6c978adb 53 _irqIsBusy=0;
sowmy87 0:d2dcb47dc8e9 54 // serial->attach(this, &Serializer::InterruptHandler);
sowmy87 0:d2dcb47dc8e9 55
sowmy87 0:d2dcb47dc8e9 56 return 0;
sowmy87 0:d2dcb47dc8e9 57 }
sowmy87 0:d2dcb47dc8e9 58
sowmy87 0:d2dcb47dc8e9 59 Serializer::~Serializer() {
sowmy87 0:d2dcb47dc8e9 60 delete serial;
sowmy87 0:d2dcb47dc8e9 61 }
sowmy87 0:d2dcb47dc8e9 62
sowmy87 0:d2dcb47dc8e9 63 void Serializer::Stop() {
sowmy87 0:d2dcb47dc8e9 64 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 65 serial->printf("stop\r");
sowmy87 0:d2dcb47dc8e9 66 leftSpeed=rightSpeed=0;
sowmy87 0:d2dcb47dc8e9 67 // pc.printf("Stop\r\n");
sowmy87 0:d2dcb47dc8e9 68 }
sowmy87 0:d2dcb47dc8e9 69
sowmy87 0:d2dcb47dc8e9 70 void Serializer::ClearCountLeft() {
sowmy87 0:d2dcb47dc8e9 71 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 72 serial->printf("clrenc 1\r");
sowmy87 0:d2dcb47dc8e9 73 }
sowmy87 0:d2dcb47dc8e9 74 void Serializer::ClearCountRight() {
sowmy87 0:d2dcb47dc8e9 75 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 76 serial->printf("clrenc 2\r");
sowmy87 0:d2dcb47dc8e9 77 }
sowmy87 0:d2dcb47dc8e9 78
sowmy87 0:d2dcb47dc8e9 79 void Serializer::ClearCount() {
sowmy87 0:d2dcb47dc8e9 80 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 81 serial->printf("clrenc 1 2\r");
sowmy87 0:d2dcb47dc8e9 82 }
sowmy87 0:d2dcb47dc8e9 83
sowmy87 0:d2dcb47dc8e9 84 void Serializer::SetSpeedLeft(int inPsec) {
sowmy87 0:d2dcb47dc8e9 85 if (inPsec>MAX_SPEED)inPsec=MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 86 if (inPsec<-MAX_SPEED)inPsec=-MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 87 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 88 serial->printf("mogo 1:%i\r", -inPsec);
sowmy87 0:d2dcb47dc8e9 89 leftSpeed=inPsec;
sowmy87 0:d2dcb47dc8e9 90 }
sowmy87 0:d2dcb47dc8e9 91 void Serializer::SetSpeedRight(int inPsec) {
sowmy87 0:d2dcb47dc8e9 92 if (inPsec>MAX_SPEED)inPsec=MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 93 if (inPsec<-MAX_SPEED)inPsec=-MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 94 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 95 serial->printf("mogo 2:%i\r", -inPsec);
sowmy87 0:d2dcb47dc8e9 96 rightSpeed=inPsec;
sowmy87 0:d2dcb47dc8e9 97 }
sowmy87 0:d2dcb47dc8e9 98
sowmy87 0:d2dcb47dc8e9 99 void Serializer::SetSpeed(int inPsec) {
sowmy87 0:d2dcb47dc8e9 100 pcc.printf("inSpeed %i\n\r",inPsec);
sowmy87 0:d2dcb47dc8e9 101 if (inPsec>MAX_SPEED)inPsec=MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 102 if (inPsec<-MAX_SPEED)inPsec=-MAX_SPEED;
sowmy87 0:d2dcb47dc8e9 103 inPsec*=-1;
sowmy87 0:d2dcb47dc8e9 104 pcc.printf("mogo 1:%i\n\r",inPsec);
sowmy87 0:d2dcb47dc8e9 105 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 106 serial->printf("mogo 1:%i 2:%i\r", inPsec, inPsec);
sowmy87 0:d2dcb47dc8e9 107 leftSpeed=rightSpeed=inPsec;
sowmy87 0:d2dcb47dc8e9 108 }
sowmy87 0:d2dcb47dc8e9 109
sowmy87 0:d2dcb47dc8e9 110 void Serializer::SetVPID(int p,int i,int d,int l) {
sowmy87 0:d2dcb47dc8e9 111 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 112 serial->printf("vpid %i:%i:%i:%i\r", p,i,d,l);
sowmy87 0:d2dcb47dc8e9 113 }
sowmy87 0:d2dcb47dc8e9 114
sowmy87 0:d2dcb47dc8e9 115 void Serializer::SetDPID(int p,int i,int d,int a) {
sowmy87 0:d2dcb47dc8e9 116 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 117 serial->printf("dpid %i:%i:%i:%i\r", p,i,d,a);
sowmy87 0:d2dcb47dc8e9 118 }
sowmy87 0:d2dcb47dc8e9 119
sowmy87 0:d2dcb47dc8e9 120 void Serializer::DiGoLeft(int dist,int inPsec) {
sowmy87 1:9a7e6c978adb 121 /* if(_isBusy)
sowmy87 1:9a7e6c978adb 122 return;
sowmy87 1:9a7e6c978adb 123 _isBusy=1;
sowmy87 1:9a7e6c978adb 124 */
sowmy87 0:d2dcb47dc8e9 125 if (serial->writeable())
sowmy87 1:9a7e6c978adb 126 serial->printf("digo 1:%i:%i\r",dist*PULSES_PER_INCH, inPsec);
sowmy87 0:d2dcb47dc8e9 127 }
sowmy87 0:d2dcb47dc8e9 128 void Serializer::DiGoRight(int dist,int inPsec) {
sowmy87 1:9a7e6c978adb 129 /* if(_isBusy)
sowmy87 1:9a7e6c978adb 130 return;
sowmy87 1:9a7e6c978adb 131 _isBusy=1;
sowmy87 1:9a7e6c978adb 132 */
sowmy87 0:d2dcb47dc8e9 133 if (serial->writeable())
sowmy87 1:9a7e6c978adb 134 serial->printf("digo 2:%i:%i\r",dist*PULSES_PER_INCH, inPsec);
sowmy87 0:d2dcb47dc8e9 135 }
sowmy87 0:d2dcb47dc8e9 136 void Serializer::DiGo(int dist,int inPsec) {
sowmy87 1:9a7e6c978adb 137 /* if(_isBusy)
sowmy87 1:9a7e6c978adb 138 return;
sowmy87 1:9a7e6c978adb 139 _isBusy=1;
sowmy87 1:9a7e6c978adb 140 */
sowmy87 0:d2dcb47dc8e9 141 if (serial->writeable()) {
sowmy87 1:9a7e6c978adb 142 serial->printf("digo 1:%i:%i 2:%i:%i\r", \
sowmy87 0:d2dcb47dc8e9 143 -dist*PULSES_PER_INCH, \
sowmy87 1:9a7e6c978adb 144 inPsec, \
sowmy87 0:d2dcb47dc8e9 145 -dist*PULSES_PER_INCH, \
sowmy87 0:d2dcb47dc8e9 146 inPsec);
sowmy87 0:d2dcb47dc8e9 147
sowmy87 0:d2dcb47dc8e9 148 }
sowmy87 0:d2dcb47dc8e9 149 }
sowmy87 0:d2dcb47dc8e9 150
sowmy87 1:9a7e6c978adb 151 int Serializer::IsBusy() {
sowmy87 1:9a7e6c978adb 152
sowmy87 1:9a7e6c978adb 153 if (_isBusy&&serial->writeable()) {
sowmy87 1:9a7e6c978adb 154 serial->printf("pids\r");
sowmy87 1:9a7e6c978adb 155 wait(0.01);
sowmy87 1:9a7e6c978adb 156 }
sowmy87 1:9a7e6c978adb 157 return _isBusy;
sowmy87 1:9a7e6c978adb 158 }
sowmy87 1:9a7e6c978adb 159 /*
sowmy87 1:9a7e6c978adb 160 char tmp=0;
sowmy87 1:9a7e6c978adb 161 if (_isBusy) {
sowmy87 1:9a7e6c978adb 162 if (serial->writeable()) {
sowmy87 1:9a7e6c978adb 163 serial->printf("pids\r");
sowmy87 1:9a7e6c978adb 164 }
sowmy87 1:9a7e6c978adb 165 wait(0.1);
sowmy87 1:9a7e6c978adb 166 while (serial->readable()) {
sowmy87 1:9a7e6c978adb 167 tmp=serial->getc();
sowmy87 1:9a7e6c978adb 168 pcc.putc(tmp);
sowmy87 1:9a7e6c978adb 169 if (tmp=='1')
sowmy87 1:9a7e6c978adb 170 _isBusy=1;
sowmy87 1:9a7e6c978adb 171 else if (tmp=='0')
sowmy87 1:9a7e6c978adb 172 _isBusy=0;
sowmy87 1:9a7e6c978adb 173 }
sowmy87 1:9a7e6c978adb 174 }
sowmy87 1:9a7e6c978adb 175 pcc.printf("IsBusy = %i\n\r",_isBusy);
sowmy87 1:9a7e6c978adb 176 return _isBusy;
sowmy87 1:9a7e6c978adb 177 */
sowmy87 1:9a7e6c978adb 178
sowmy87 1:9a7e6c978adb 179
sowmy87 1:9a7e6c978adb 180
sowmy87 0:d2dcb47dc8e9 181 void Serializer::TurnLeft(int deg) {
sowmy87 0:d2dcb47dc8e9 182
sowmy87 0:d2dcb47dc8e9 183 }
sowmy87 0:d2dcb47dc8e9 184
sowmy87 0:d2dcb47dc8e9 185 void Serializer::TurnRight(int deg) {
sowmy87 0:d2dcb47dc8e9 186
sowmy87 0:d2dcb47dc8e9 187
sowmy87 0:d2dcb47dc8e9 188 }
sowmy87 0:d2dcb47dc8e9 189 void Serializer::PivetLeft(int deg) {
sowmy87 0:d2dcb47dc8e9 190
sowmy87 1:9a7e6c978adb 191 Stop();
sowmy87 1:9a7e6c978adb 192 pcc.printf("deg = %i\t",deg);
sowmy87 1:9a7e6c978adb 193 deg=deg*PIVET_ADJUSTMENT;
sowmy87 1:9a7e6c978adb 194 //pcc.printf("adj = %i\n\r",deg);
sowmy87 0:d2dcb47dc8e9 195 wait(0.1);
sowmy87 0:d2dcb47dc8e9 196 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 197 serial->printf("digo 1:%i:%i 2:%i:%i\r",deg,PIVET_SPEED,-deg,PIVET_SPEED);
sowmy87 0:d2dcb47dc8e9 198
sowmy87 0:d2dcb47dc8e9 199 }
sowmy87 0:d2dcb47dc8e9 200 void Serializer::PivetRight(int deg) {
sowmy87 0:d2dcb47dc8e9 201 this->Stop();
sowmy87 1:9a7e6c978adb 202 deg=deg*PIVET_ADJUSTMENT;
sowmy87 0:d2dcb47dc8e9 203 wait(0.1);
sowmy87 0:d2dcb47dc8e9 204 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 205 serial->printf("digo 1:%i:%i 2:%i:%i\r",-deg,PIVET_SPEED,deg,PIVET_SPEED);
sowmy87 0:d2dcb47dc8e9 206
sowmy87 0:d2dcb47dc8e9 207 }
sowmy87 0:d2dcb47dc8e9 208
sowmy87 0:d2dcb47dc8e9 209 void Serializer::SetLeftPWM(int pwm) {
sowmy87 0:d2dcb47dc8e9 210 _lPWM=-pwm;
sowmy87 0:d2dcb47dc8e9 211 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 212 serial->printf("pwm 1:%i\r",_lPWM);
sowmy87 0:d2dcb47dc8e9 213
sowmy87 0:d2dcb47dc8e9 214 }
sowmy87 0:d2dcb47dc8e9 215
sowmy87 0:d2dcb47dc8e9 216 void Serializer::SetRightPWM(int pwm) {
sowmy87 0:d2dcb47dc8e9 217 _rPWM=-pwm;
sowmy87 0:d2dcb47dc8e9 218 if (serial->writeable())
sowmy87 0:d2dcb47dc8e9 219 serial->printf("pwm 2:%i\r",_rPWM);
sowmy87 0:d2dcb47dc8e9 220 }
sowmy87 0:d2dcb47dc8e9 221
sowmy87 0:d2dcb47dc8e9 222 int Serializer::GetCountLeft() {
sowmy87 0:d2dcb47dc8e9 223 if (serial->writeable()) {
sowmy87 0:d2dcb47dc8e9 224 serial->printf("getenc 1\r");
sowmy87 1:9a7e6c978adb 225 // pcc.printf("Sendreq\t");
sowmy87 0:d2dcb47dc8e9 226 }
sowmy87 0:d2dcb47dc8e9 227 wait(0.01);
sowmy87 0:d2dcb47dc8e9 228 int ret=0;
sowmy87 0:d2dcb47dc8e9 229 char c=0;
sowmy87 0:d2dcb47dc8e9 230 while (serial->readable()) {
sowmy87 1:9a7e6c978adb 231 // pcc.printf("Reading");
sowmy87 0:d2dcb47dc8e9 232 c=serial->getc();
sowmy87 1:9a7e6c978adb 233 // pcc.putc(c);
sowmy87 0:d2dcb47dc8e9 234 if (c>='0'&&c<='9') {
sowmy87 0:d2dcb47dc8e9 235 c-='0';
sowmy87 0:d2dcb47dc8e9 236 ret*=10;
sowmy87 0:d2dcb47dc8e9 237 ret+=c;
sowmy87 0:d2dcb47dc8e9 238 }
sowmy87 0:d2dcb47dc8e9 239 }
sowmy87 0:d2dcb47dc8e9 240 return ret;
sowmy87 0:d2dcb47dc8e9 241 }
sowmy87 0:d2dcb47dc8e9 242
sowmy87 0:d2dcb47dc8e9 243 int Serializer::GetCountRight() {
sowmy87 0:d2dcb47dc8e9 244 if (serial->writeable()) {
sowmy87 0:d2dcb47dc8e9 245 serial->printf("getenc 2\r");
sowmy87 1:9a7e6c978adb 246 // pcc.printf("Sendreq\t");
sowmy87 0:d2dcb47dc8e9 247 }
sowmy87 0:d2dcb47dc8e9 248 wait(0.01);
sowmy87 0:d2dcb47dc8e9 249 int ret=0;
sowmy87 0:d2dcb47dc8e9 250 char c=0;
sowmy87 0:d2dcb47dc8e9 251 while (serial->readable()) {
sowmy87 1:9a7e6c978adb 252 // pcc.printf("Reading");
sowmy87 0:d2dcb47dc8e9 253 c=serial->getc();
sowmy87 1:9a7e6c978adb 254 // pcc.putc(c);
sowmy87 0:d2dcb47dc8e9 255 if (c>='0'&&c<='9') {
sowmy87 0:d2dcb47dc8e9 256 c-='0';
sowmy87 0:d2dcb47dc8e9 257 ret*=10;
sowmy87 0:d2dcb47dc8e9 258 ret+=c;
sowmy87 0:d2dcb47dc8e9 259 }
sowmy87 0:d2dcb47dc8e9 260 }
sowmy87 0:d2dcb47dc8e9 261 return ret;
sowmy87 0:d2dcb47dc8e9 262 }
sowmy87 0:d2dcb47dc8e9 263 int Serializer::GetCount() {
sowmy87 0:d2dcb47dc8e9 264 return GetCountLeft();
sowmy87 0:d2dcb47dc8e9 265 }
sowmy87 2:9e0d3f159ec3 266 float Serializer::GetDistanceLeft() {
sowmy87 2:9e0d3f159ec3 267 return float(GetCountLeft()*PULSE_DISTANCE);
sowmy87 0:d2dcb47dc8e9 268 }
sowmy87 2:9e0d3f159ec3 269 float Serializer::GetDistanceRight() {
sowmy87 2:9e0d3f159ec3 270 return float(GetCountRight()*PULSE_DISTANCE);
sowmy87 0:d2dcb47dc8e9 271 }
sowmy87 2:9e0d3f159ec3 272 float Serializer::GetDistance() {
sowmy87 2:9e0d3f159ec3 273 return float(GetCountLeft()*PULSE_DISTANCE);
sowmy87 0:d2dcb47dc8e9 274 }
sowmy87 0:d2dcb47dc8e9 275
sowmy87 0:d2dcb47dc8e9 276
sowmy87 0:d2dcb47dc8e9 277 //unused and untested
sowmy87 0:d2dcb47dc8e9 278 int Serializer::GetReply() {
sowmy87 0:d2dcb47dc8e9 279 int returnValue=0;
sowmy87 0:d2dcb47dc8e9 280 char c=0;
sowmy87 0:d2dcb47dc8e9 281 char readyToReturn=0;
sowmy87 0:d2dcb47dc8e9 282 char ack=0;
sowmy87 0:d2dcb47dc8e9 283 char nack=0;
sowmy87 0:d2dcb47dc8e9 284 wait(0.0001);
sowmy87 0:d2dcb47dc8e9 285 while (serial->readable()) {
sowmy87 0:d2dcb47dc8e9 286 c=serial->getc();
sowmy87 0:d2dcb47dc8e9 287 if (readyToReturn)continue;
sowmy87 0:d2dcb47dc8e9 288 if (c=='N'&&nack==0)nack=1;
sowmy87 0:d2dcb47dc8e9 289 else nack=0;
sowmy87 0:d2dcb47dc8e9 290 if (c=='A'&&ack==0)ack++;
sowmy87 0:d2dcb47dc8e9 291 else ack=nack=0;
sowmy87 0:d2dcb47dc8e9 292 if (c=='C'&&ack==1)ack++;
sowmy87 0:d2dcb47dc8e9 293 else ack=nack=0;
sowmy87 0:d2dcb47dc8e9 294 if (c=='K'&&ack==2)ack++;
sowmy87 0:d2dcb47dc8e9 295 else ack=nack=0;
sowmy87 0:d2dcb47dc8e9 296 if (ack==3)
sowmy87 0:d2dcb47dc8e9 297 if (nack==1)
sowmy87 0:d2dcb47dc8e9 298 returnValue=1;
sowmy87 0:d2dcb47dc8e9 299 else
sowmy87 0:d2dcb47dc8e9 300 returnValue=0;
sowmy87 0:d2dcb47dc8e9 301 if (c=='>')readyToReturn=1;
sowmy87 0:d2dcb47dc8e9 302 }
sowmy87 0:d2dcb47dc8e9 303 return returnValue;
sowmy87 0:d2dcb47dc8e9 304 }
sowmy87 0:d2dcb47dc8e9 305
sowmy87 0:d2dcb47dc8e9 306
sowmy87 0:d2dcb47dc8e9 307 void Serializer::InterruptHandler() {
sowmy87 1:9a7e6c978adb 308 char c=0;
sowmy87 1:9a7e6c978adb 309 char bsy=_isBusy;
sowmy87 0:d2dcb47dc8e9 310 while (serial->readable()) {
sowmy87 0:d2dcb47dc8e9 311 c=serial->getc();
sowmy87 1:9a7e6c978adb 312 if (!_isBusy)
sowmy87 1:9a7e6c978adb 313 continue;
sowmy87 1:9a7e6c978adb 314
sowmy87 1:9a7e6c978adb 315 if (c=='1')
sowmy87 1:9a7e6c978adb 316 bsy=1;
sowmy87 1:9a7e6c978adb 317 else if (c=='0')
sowmy87 1:9a7e6c978adb 318 bsy=0;
sowmy87 0:d2dcb47dc8e9 319 }
sowmy87 1:9a7e6c978adb 320 pcc.putc(_isBusy+'0');
sowmy87 1:9a7e6c978adb 321 if (_isBusy&&!bsy) _isBusy=0;
sowmy87 1:9a7e6c978adb 322 }