![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Xbee receiver
Revision 2:d7d8778f9780, committed 2016-03-23
- Comitter:
- nnoitre
- Date:
- Wed Mar 23 13:02:24 2016 +0000
- Parent:
- 1:30d319218526
- Commit message:
- Commentaar
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 30d319218526 -r d7d8778f9780 main.cpp --- a/main.cpp Wed Mar 23 11:50:42 2016 +0000 +++ b/main.cpp Wed Mar 23 13:02:24 2016 +0000 @@ -18,53 +18,54 @@ char received[7]; int check; int i; - +int Checksum; +// methode zenden void send(){ xbee.putc(0x7E); - xbee.putc(received[2]); + xbee.putc(ID); xbee.putc(received[1]); xbee.putc(ACK); + xbee.putc(Checksum); xbee.putc(0x7E); } int main(){ - xbee.baud(57600); - myled1=1; - wait(0.2); - myled1=0; - while(1) { + xbee.baud(57600); //xbee klaarzetten + while(1){ if(xbee.readable()) { //Checks if the data is readable - xbee.gets(received,8); - check=(received[1]+received[2]+received[3]+received[4])%255; - if(received[2]=ID){ - if(received[0]==0x7E){ + xbee.gets(received,8); //laad het frame in de array in + check=(received[1]+received[2]+received[3]+received[4])%255; //checksum berekeken + if(received[2]==ID){ //als de boodschap voor deze module bedoeld is + if(received[0]==0x7E){ //als de startflag ontvangen is myled1=!myled1; - } - if(received[6]==0x7E){ - myled2=!myled2; - } - if(check==received[5]) { - myled3=!myled3; - teller++; - lcd.cls(); - lcd.printf("%d",teller); - ACK=0b00001111; - send(); - while(i<5){ - received[i]=0; - i++; + if(received[6]==0x7E){ //als de eindflag ontvangen is + myled2=!myled2; + if(check==received[5]) {//als de checksum klopt + myled3=!myled3; + teller++; + lcd.cls(); + lcd.printf("%d",teller); + ACK=0b00001111; //ack als ack instellen + Checksum=(ID+received[1]+ACK)%255; //nieuwe checksum berekenen + send(); //verzenden + while(i<5){ //array leegmaken + received[i]=0; + i++; + } + i=0; + } + if(received[5]!=check){ //als de checksum niet klopt + myled4=!myled4; + ACK=0b11110000; //ack als NACK instellen + Checksum=(ID+received[1]+ACK)%255; //nieuwe checksum berekenen + send(); //verzenden + while(i<5){ //array leegmaken + received[i]=0; + i++; + } + i=0; + } } - i=0; - } - if(received[5]!=check){ - myled4=!myled4; - ACK=0b11110000; - send(); - while(i<5){ - received[i]=0; - i++; - } - i=0; } } }