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:
- 2:3cb49ae40d02
- Parent:
- 1:998a963e2ead
- Child:
- 3:9ee509852c9a
diff -r 998a963e2ead -r 3cb49ae40d02 model.cpp --- a/model.cpp Wed Dec 07 22:17:39 2016 +0000 +++ b/model.cpp Fri Dec 09 21:45:17 2016 +0000 @@ -31,71 +31,152 @@ } void Model::doSomething(char data) { - switch(data) { + case 0xb4: case 0xc4: - mapPoschodie.find("p4")->second=true; - if(poschodie<(0xc3-0xc0+1)) { //chod nahor - sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,sizeof(cmd->MotorUp)); + if( mapPoschodie.find("p4")->second==false) { + mapPoschodie.find("p4")->second=true; + if(poschodie<4) { //chod nahor + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + sendPacket(0xa0,0x14,0x00,cmd->LedOn,1); + sendPacket(0xa0,0x24,0x00,cmd->LedOn,1); + } + } + break; + case 0xb3: + case 0xc3://tlacidlo vonkajsie 3. poschodie + if( mapPoschodie.find("p3")->second==false) { + sendPacket(0xa0,0x13,0x00,cmd->LedOn,1); + sendPacket(0xa0,0x23,0x00,cmd->LedOn,1); + mapPoschodie.find("p3")->second=true; + if(poschodie<3) { //chod nahor + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } else + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); } break; - case 0xc3://tlacidlo vonkajsie 3. poschodie - mapPoschodie.find("p3")->second=true; - if(poschodie<(0xc2-0xc0+1)) { //chod nahor - sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,sizeof(cmd->MotorUp)); - } else - sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,sizeof(cmd->MotorDown)); - break; + case 0xb2: case 0xc2://tlacidlo vonkajsie 2. poschodie - mapPoschodie.find("p2")->second=true; - if(poschodie<(0xc1-0xc0+1)) { //chod nahor - sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,sizeof(cmd->MotorUp)); - } else - sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,sizeof(cmd->MotorDown)); + if( mapPoschodie.find("p2")->second==false) { + sendPacket(0xa0,0x12,0x00,cmd->LedOn,1); + sendPacket(0xa0,0x22,0x00,cmd->LedOn,1); + mapPoschodie.find("p2")->second=true; + if(poschodie<2) { //chod nahor + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } else + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } break; + case 0xb1: case 0xc1://tlacidlo vonkajsie 1. poschodie - mapPoschodie.find("p1")->second=true; - if(poschodie<(0xc0-0xc0+1)) { //chod nahor - sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,sizeof(cmd->MotorUp)); - } else - sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,sizeof(cmd->MotorDown)); + if( mapPoschodie.find("p1")->second==false) { + sendPacket(0xa0,0x11,0x00,cmd->LedOn,1); + sendPacket(0xa0,0x21,0x00,cmd->LedOn,1); + mapPoschodie.find("p1")->second=true; + if(poschodie<1) { //chod nahor + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } else + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } break; case 0xc0://tlacidlo vonkajsie prizemie - mapPoschodie.find("p0")->second=true; - sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,sizeof(cmd->MotorDown)); + if( mapPoschodie.find("p0")->second==false) { + sendPacket(0xa0,0x10,0x00,cmd->LedOn,1); + sendPacket(0xa0,0x20,0x00,cmd->LedOn,1); + mapPoschodie.find("p0")->second=true; + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } + break; + case 0xe4: + poschodie=4; + if( mapPoschodie.find("p4")->second==true) { + mapPoschodie.find("p4")->second=false; + sendPacket(0xa0,0x24,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x14,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x14,0x00,cmd->LedOff,1); + sendPacket(0xa0,0xf1,0x00,cmd->MotorStop,1); + wait(3); + if(mapPoschodie.find("p3")->second==true||mapPoschodie.find("p2")->second==true||mapPoschodie.find("p1")->second==true||mapPoschodie.find("p0")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } + } break; case 0xe3: poschodie=3; if( mapPoschodie.find("p3")->second==true) { mapPoschodie.find("p3")->second=false; + sendPacket(0xa0,0x13,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x23,0x00,cmd->LedOff,1); sendPacket(0xa0,0xf1,0x00,cmd->MotorStop,1); + wait(3); + if(mapPoschodie.find("p2")->second==true||mapPoschodie.find("p1")->second==true||mapPoschodie.find("p0")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } else if(mapPoschodie.find("p4")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } } break; case 0xe2: poschodie=2; if( mapPoschodie.find("p2")->second==true) { mapPoschodie.find("p2")->second=false; + sendPacket(0xa0,0x12,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x22,0x00,cmd->LedOff,1); sendPacket(0xa0,0xf1,0x00,cmd->MotorStop,1); + wait(3); + if(mapPoschodie.find("p2")->second==true||mapPoschodie.find("p1")->second==true||mapPoschodie.find("p0")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } else if(mapPoschodie.find("p3")->second==true||mapPoschodie.find("p4")->second==true) { + + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } } + break; case 0xe1: poschodie=1; if( mapPoschodie.find("p1")->second==true) { mapPoschodie.find("p1")->second=false; + sendPacket(0xa0,0x11,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x21,0x00,cmd->LedOff,1); sendPacket(0xa0,0xf1,0x00,cmd->MotorStop,1); + wait(3); + if(mapPoschodie.find("p0")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorDown,5); + } else if(mapPoschodie.find("p2")->second==true||mapPoschodie.find("p3")->second==true||mapPoschodie.find("p4")->second==true) { + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } } break; case 0xe0: poschodie=0; if( mapPoschodie.find("p0")->second==true) { mapPoschodie.find("p0")->second=false; + sendPacket(0xa0,0x10,0x00,cmd->LedOff,1); + sendPacket(0xa0,0x20,0x00,cmd->LedOff,1); sendPacket(0xa0,0xf1,0x00,cmd->MotorStop,1); } + else if(mapPoschodie.find("p1")->second==true||mapPoschodie.find("p2")->second==true||mapPoschodie.find("p3")->second==true||mapPoschodie.find("p4")->second==true) { + + sendPacket(0xa0,0xf1,0x00,cmd->MotorUp,5); + } break; default: + ; + } } +void Model::setDoorStatus(bool mValue) +{ + if(mValue==true) { + cmd->Lock[1]=0x01;//Lock door + } else { + cmd->Lock[1]=0x00;//;Unlock door + } + sendPacket(0xa0,0xf0,0x0, cmd->Lock,1); +} + unsigned char Model::crcArray[]= { 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,