Xbee receiver

Dependencies:   C12832 mbed

Revision:
2:d7d8778f9780
Parent:
1:30d319218526
--- 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;
                 }
             }
         }