Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: model.cpp
- Revision:
- 11:95e4e04a7dd2
- Parent:
- 10:dc94bacfccc6
- Child:
- 12:1c7b59097090
--- a/model.cpp Wed Dec 14 17:52:35 2016 +0000 +++ b/model.cpp Sun Dec 18 13:52:01 2016 +0000 @@ -2,13 +2,13 @@ int pom=0; DigitalOut cervena(LED1); DigitalOut zelena(LED2); -Model::Model(Serial *pci)//:cmd(new Commands) +Model::Model(Serial *pci) { + + cmd= new Commands(); pc=pci; pc->baud(57600); - pc->attach(this,&Model::SerialCallBack,Serial::RxIrq); - tc.attach(this,&Model::TickerCallBack,1); cmd->MotorDown[0]=0x2; cmd->MotorDown[1]=0xff; cmd->MotorDown[2]=0xff; @@ -22,9 +22,10 @@ cmd->MotorStop[0]=0x1; cmd->Lock[0]=0x00; watchDog[0]=0x01; - sendPacket(0xa0,0xfe,0x0, watchDog,1); + sendDataOk = true; +// sendPacket(0xa0,0xfe,0x0, watchDog,1); +// sendPacket(0xa0,0xf,0x0, cmd->Lock,1); watchDog[0]=0x2; - DataIn= new char[6](); cmd->LedOn[0]=0x01; cmd->LedOff[0]=0x00; @@ -42,17 +43,21 @@ p2=1; p1=1; p0=1; + pc->attach(this,&Model::SerialCallBack,Serial::RxIrq); +// tc.attach(this,&Model::TickerCallBack,1); } void Model::SerialCallBack() { - pom++; - if(pom==1) { - zelena=0; - } else { - zelena=1; - pom=0; - } +// pom++; +// if(pom==1) { +// zelena=0; +// cervena=0; +// } else { +// zelena=1; +// cervena=1; +// pom=0; +// } startByteIn=pc->getc(); targetAdd=pc->getc(); sourceAdd=pc->getc(); @@ -60,48 +65,54 @@ for (unsigned int i=0; i< DataLength; i++) { DataIn[i]=pc->getc(); } -// if(DataLength!=0x00) CrcIn=pc->getc(); + switch( sourceAdd) { case 0xc4: case 0xb4: + if(poschodie!=4) mapPoschodie.find("p4")->second=true; break; case 0xb3: case 0xc3: + if(poschodie!=3) mapPoschodie.find("p3")->second=true; break; case 0xb2: case 0xc2: + if(poschodie!=2) mapPoschodie.find("p2")->second=true; break; case 0xb1: case 0xc1: + if(poschodie!=1) mapPoschodie.find("p1")->second=true; break; case 0xb0: case 0xc0: + if(poschodie!=0) mapPoschodie.find("p0")->second=true; break; default: ; } +// if(startByteIn==0xa0&&targetAdd==0x00&&sourceAdd==0x00&&DataLength==0x00) { +// sendDataOk=false; +// zelena=0; +// cervena=0; +// } } -Serial* Model::getSerial(void) -{ - return pc; -} void Model::TickerCallBack() { - sendPacket(0xa0,0xfe,0x00, watchDog,1); +// sendPacket(0xa0,0xfe,0x00, watchDog,1); pom++; if (pom==1) { zelena =0; - cervena=1; +// cervena=1; } else { zelena=1; - cervena=0; +// cervena=0; pom=0; } @@ -120,7 +131,11 @@ } void Model::sendPacket(char startByte,char target,char source,char *data,int DataSize) { +// sendDataOk=true; //packet format : || start byte: a0 | reciever adress - 1B | sender adress - 1B | data lenght - 1B | data - 0-265B | crc8 - 1B || +// do{ + +// cervena=1; int dataLenght = DataSize; char crc8 = crcCalc(target, source, data,dataLenght); pc->putc(startByte); @@ -131,6 +146,12 @@ pc->putc(data[i]); } pc->putc(crc8); + +// wait(0.003); + +// } while(sendDataOk); +// zelena=1; + } void Model::doSomething(char data) {