Mathias Peers
/
ReceiverV2
Xbee receiver
main.cpp@2:d7d8778f9780, 2016-03-23 (annotated)
- Committer:
- nnoitre
- Date:
- Wed Mar 23 13:02:24 2016 +0000
- Revision:
- 2:d7d8778f9780
- Parent:
- 1:30d319218526
Commentaar
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nnoitre | 0:b78d22fdc409 | 1 | #include "mbed.h" |
nnoitre | 1:30d319218526 | 2 | #include "C12832.h" |
nnoitre | 0:b78d22fdc409 | 3 | |
nnoitre | 0:b78d22fdc409 | 4 | DigitalOut myled1(LED1); |
nnoitre | 0:b78d22fdc409 | 5 | DigitalOut myled2(LED2); |
nnoitre | 0:b78d22fdc409 | 6 | DigitalOut myled3(LED3); |
nnoitre | 0:b78d22fdc409 | 7 | DigitalOut myled4(LED4); |
nnoitre | 0:b78d22fdc409 | 8 | |
nnoitre | 1:30d319218526 | 9 | Serial xbee(p9,p10); |
nnoitre | 1:30d319218526 | 10 | //DigitalOut nReset(p30); //reset pin of the xbee |
nnoitre | 1:30d319218526 | 11 | |
nnoitre | 1:30d319218526 | 12 | C12832 lcd(p5, p7, p6, p8, p11); //Used for the LCD |
nnoitre | 0:b78d22fdc409 | 13 | |
nnoitre | 1:30d319218526 | 14 | char a; |
nnoitre | 1:30d319218526 | 15 | int ID=0b00000001; |
nnoitre | 1:30d319218526 | 16 | int ACK; |
nnoitre | 1:30d319218526 | 17 | int teller; |
nnoitre | 1:30d319218526 | 18 | char received[7]; |
nnoitre | 1:30d319218526 | 19 | int check; |
nnoitre | 1:30d319218526 | 20 | int i; |
nnoitre | 2:d7d8778f9780 | 21 | int Checksum; |
nnoitre | 2:d7d8778f9780 | 22 | // methode zenden |
nnoitre | 1:30d319218526 | 23 | void send(){ |
nnoitre | 1:30d319218526 | 24 | xbee.putc(0x7E); |
nnoitre | 2:d7d8778f9780 | 25 | xbee.putc(ID); |
nnoitre | 1:30d319218526 | 26 | xbee.putc(received[1]); |
nnoitre | 1:30d319218526 | 27 | xbee.putc(ACK); |
nnoitre | 2:d7d8778f9780 | 28 | xbee.putc(Checksum); |
nnoitre | 1:30d319218526 | 29 | xbee.putc(0x7E); |
nnoitre | 1:30d319218526 | 30 | } |
nnoitre | 0:b78d22fdc409 | 31 | |
nnoitre | 1:30d319218526 | 32 | int main(){ |
nnoitre | 2:d7d8778f9780 | 33 | xbee.baud(57600); //xbee klaarzetten |
nnoitre | 2:d7d8778f9780 | 34 | while(1){ |
nnoitre | 0:b78d22fdc409 | 35 | if(xbee.readable()) { //Checks if the data is readable |
nnoitre | 2:d7d8778f9780 | 36 | xbee.gets(received,8); //laad het frame in de array in |
nnoitre | 2:d7d8778f9780 | 37 | check=(received[1]+received[2]+received[3]+received[4])%255; //checksum berekeken |
nnoitre | 2:d7d8778f9780 | 38 | if(received[2]==ID){ //als de boodschap voor deze module bedoeld is |
nnoitre | 2:d7d8778f9780 | 39 | if(received[0]==0x7E){ //als de startflag ontvangen is |
nnoitre | 1:30d319218526 | 40 | myled1=!myled1; |
nnoitre | 2:d7d8778f9780 | 41 | if(received[6]==0x7E){ //als de eindflag ontvangen is |
nnoitre | 2:d7d8778f9780 | 42 | myled2=!myled2; |
nnoitre | 2:d7d8778f9780 | 43 | if(check==received[5]) {//als de checksum klopt |
nnoitre | 2:d7d8778f9780 | 44 | myled3=!myled3; |
nnoitre | 2:d7d8778f9780 | 45 | teller++; |
nnoitre | 2:d7d8778f9780 | 46 | lcd.cls(); |
nnoitre | 2:d7d8778f9780 | 47 | lcd.printf("%d",teller); |
nnoitre | 2:d7d8778f9780 | 48 | ACK=0b00001111; //ack als ack instellen |
nnoitre | 2:d7d8778f9780 | 49 | Checksum=(ID+received[1]+ACK)%255; //nieuwe checksum berekenen |
nnoitre | 2:d7d8778f9780 | 50 | send(); //verzenden |
nnoitre | 2:d7d8778f9780 | 51 | while(i<5){ //array leegmaken |
nnoitre | 2:d7d8778f9780 | 52 | received[i]=0; |
nnoitre | 2:d7d8778f9780 | 53 | i++; |
nnoitre | 2:d7d8778f9780 | 54 | } |
nnoitre | 2:d7d8778f9780 | 55 | i=0; |
nnoitre | 2:d7d8778f9780 | 56 | } |
nnoitre | 2:d7d8778f9780 | 57 | if(received[5]!=check){ //als de checksum niet klopt |
nnoitre | 2:d7d8778f9780 | 58 | myled4=!myled4; |
nnoitre | 2:d7d8778f9780 | 59 | ACK=0b11110000; //ack als NACK instellen |
nnoitre | 2:d7d8778f9780 | 60 | Checksum=(ID+received[1]+ACK)%255; //nieuwe checksum berekenen |
nnoitre | 2:d7d8778f9780 | 61 | send(); //verzenden |
nnoitre | 2:d7d8778f9780 | 62 | while(i<5){ //array leegmaken |
nnoitre | 2:d7d8778f9780 | 63 | received[i]=0; |
nnoitre | 2:d7d8778f9780 | 64 | i++; |
nnoitre | 2:d7d8778f9780 | 65 | } |
nnoitre | 2:d7d8778f9780 | 66 | i=0; |
nnoitre | 2:d7d8778f9780 | 67 | } |
nnoitre | 1:30d319218526 | 68 | } |
nnoitre | 1:30d319218526 | 69 | } |
nnoitre | 0:b78d22fdc409 | 70 | } |
nnoitre | 0:b78d22fdc409 | 71 | } |
nnoitre | 0:b78d22fdc409 | 72 | } |
nnoitre | 1:30d319218526 | 73 | } |