Xbee receiver

Dependencies:   C12832 mbed

Revision:
1:30d319218526
Parent:
0:b78d22fdc409
Child:
2:d7d8778f9780
--- a/main.cpp	Thu Mar 10 20:27:00 2016 +0000
+++ b/main.cpp	Wed Mar 23 11:50:42 2016 +0000
@@ -1,35 +1,72 @@
 #include "mbed.h"
+#include "C12832.h"
 
 DigitalOut myled1(LED1);
 DigitalOut myled2(LED2);
 DigitalOut myled3(LED3);
 DigitalOut myled4(LED4);
 
-InterruptIn down(p12);
-InterruptIn left(p13);
-InterruptIn up(p15);
-InterruptIn right(p16);
+Serial xbee(p9,p10);
+//DigitalOut nReset(p30);             //reset pin of the xbee
+
+C12832 lcd(p5, p7, p6, p8, p11);    //Used for the LCD
 
-Serial xbee(p9,p10);
+char a;
+int ID=0b00000001;
+int ACK;
+int teller;
+char received[7];
+int check;
+int i;
 
-char Source=0b00000010;
-char Des=0b00000001;
-char Item,Status,Checksum;
-char Item2 = 0x01;
-char Status2 = 0x01;
+void send(){
+    xbee.putc(0x7E);
+    xbee.putc(received[2]);
+    xbee.putc(received[1]);
+    xbee.putc(ACK);
+    xbee.putc(0x7E);
+}
 
-bool sending=1;
-
-int main() {
+int main(){
+    xbee.baud(57600);
+    myled1=1;
+    wait(0.2);
+    myled1=0;
     while(1) {
         if(xbee.readable()) {       //Checks if the data is readable
-            control = xbee.getc();        //Get the first character that's in the buffer
-            if(control==0b00001111){
-                sending=1;
-            }
-            if(control==0b11110000){
-                send();
+            xbee.gets(received,8);
+            check=(received[1]+received[2]+received[3]+received[4])%255;
+            if(received[2]=ID){
+                if(received[0]==0x7E){
+                    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++;
+                    }
+                    i=0;
+                }
+                if(received[5]!=check){
+                    myled4=!myled4;
+                    ACK=0b11110000;
+                    send();
+                    while(i<5){
+                        received[i]=0;
+                        i++;
+                    }
+                    i=0;
+                }
             }
         }
     }
-}
+}
\ No newline at end of file