Gets serial communication from Xbee. Code should be on Coordinator. Will display distance in inches and if anything is within 2ft all BUS leds will illuminate.

Dependencies:   C12832_lcd mbed xbeeLibDannelly

Committer:
dannellyz
Date:
Mon Feb 16 04:56:26 2015 +0000
Revision:
0:d7df8ffb24da
round 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dannellyz 0:d7df8ffb24da 1 #include "mbed.h"
dannellyz 0:d7df8ffb24da 2 #include "xbee.h" // Include for xbee code
dannellyz 0:d7df8ffb24da 3 #include "C12832_lcd.h" // Include for LCD code
dannellyz 0:d7df8ffb24da 4 //For string maniputlation
dannellyz 0:d7df8ffb24da 5 #include <string>
dannellyz 0:d7df8ffb24da 6 #include <sstream>
dannellyz 0:d7df8ffb24da 7 #include <stdlib.h> //Include for atoi
dannellyz 0:d7df8ffb24da 8
dannellyz 0:d7df8ffb24da 9 xbee xbee1(p9,p10,p30); //Initalise xbee_lib varName(rx,tx,reset)
dannellyz 0:d7df8ffb24da 10 DigitalOut rst1(p30);
dannellyz 0:d7df8ffb24da 11 Serial pc(USBTX, USBRX); //Initalise PC serial comms
dannellyz 0:d7df8ffb24da 12 C12832_LCD lcd; //Initialize LCD Screen
dannellyz 0:d7df8ffb24da 13 BusOut leds(LED1,LED2,LED3,LED4);
dannellyz 0:d7df8ffb24da 14
dannellyz 0:d7df8ffb24da 15 //Code to send strings acsross xbee with xbee.h
dannellyz 0:d7df8ffb24da 16 //Code should be on the End Device
dannellyz 0:d7df8ffb24da 17 int main()
dannellyz 0:d7df8ffb24da 18 {
dannellyz 0:d7df8ffb24da 19 // reset the xbees (at least 200ns)
dannellyz 0:d7df8ffb24da 20 rst1 = 0;
dannellyz 0:d7df8ffb24da 21 wait_ms(1);
dannellyz 0:d7df8ffb24da 22 rst1 = 1;
dannellyz 0:d7df8ffb24da 23 wait_ms(1);
dannellyz 0:d7df8ffb24da 24
dannellyz 0:d7df8ffb24da 25 //Establish a variable to receive data from End Device
dannellyz 0:d7df8ffb24da 26 //Max buffer is 202
dannellyz 0:d7df8ffb24da 27 char receiveData[5];
dannellyz 0:d7df8ffb24da 28 char clean[4];
dannellyz 0:d7df8ffb24da 29 //Setup LCD screen
dannellyz 0:d7df8ffb24da 30 lcd.cls();
dannellyz 0:d7df8ffb24da 31 lcd.locate(0,1);
dannellyz 0:d7df8ffb24da 32
dannellyz 0:d7df8ffb24da 33 while(1) {
dannellyz 0:d7df8ffb24da 34 //Recieve data from Xbee
dannellyz 0:d7df8ffb24da 35 //Second argument is how many characters to read
dannellyz 0:d7df8ffb24da 36 //If zero it will read sizeof(firstArg)
dannellyz 0:d7df8ffb24da 37 xbee1.RecieveData(receiveData,5);
dannellyz 0:d7df8ffb24da 38
dannellyz 0:d7df8ffb24da 39 //Clean data by removing leader R with String manipulation
dannellyz 0:d7df8ffb24da 40 strncpy ( clean, receiveData+2, 3);
dannellyz 0:d7df8ffb24da 41
dannellyz 0:d7df8ffb24da 42 //Change value back to floats for possible use later
dannellyz 0:d7df8ffb24da 43 int inches = atoi (clean);
dannellyz 0:d7df8ffb24da 44
dannellyz 0:d7df8ffb24da 45 //If something is closer than 2ft illumiate BUS leds
dannellyz 0:d7df8ffb24da 46 if(inches < 24){
dannellyz 0:d7df8ffb24da 47 leds = 0xFFFF;
dannellyz 0:d7df8ffb24da 48 }
dannellyz 0:d7df8ffb24da 49 else{leds = 0;}
dannellyz 0:d7df8ffb24da 50 //Echo Locally...
dannellyz 0:d7df8ffb24da 51 pc.printf("Inches: %d\n", inches);
dannellyz 0:d7df8ffb24da 52 lcd.printf("Inches %d\n", inches);
dannellyz 0:d7df8ffb24da 53 }
dannellyz 0:d7df8ffb24da 54 }