Xbee receiver

Dependencies:   C12832 mbed

main.cpp

Committer:
nnoitre
Date:
2016-03-23
Revision:
1:30d319218526
Parent:
0:b78d22fdc409
Child:
2:d7d8778f9780

File content as of revision 1:30d319218526:

#include "mbed.h"
#include "C12832.h"

DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);

Serial xbee(p9,p10);
//DigitalOut nReset(p30);             //reset pin of the xbee

C12832 lcd(p5, p7, p6, p8, p11);    //Used for the LCD

char a;
int ID=0b00000001;
int ACK;
int teller;
char received[7];
int check;
int i;

void send(){
    xbee.putc(0x7E);
    xbee.putc(received[2]);
    xbee.putc(received[1]);
    xbee.putc(ACK);
    xbee.putc(0x7E);
}

int main(){
    xbee.baud(57600);
    myled1=1;
    wait(0.2);
    myled1=0;
    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){
                    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;
                }
            }
        }
    }
}