zzz
Dependencies: C12832_lcd ConfigFile LM75B WiflyInterface2 mbed-rtos mbed
Fork of Xbee_Hello_World_B by
Diff: main.cpp
- Revision:
- 1:15d917484a8d
- Parent:
- 0:122702c9168a
- Child:
- 2:ae1a5862504b
--- a/main.cpp Fri Aug 31 14:47:12 2012 +0000 +++ b/main.cpp Fri Sep 16 07:34:22 2016 +0000 @@ -1,14 +1,89 @@ #include "mbed.h" #include "xbee.h" +#include "C12832_lcd.h" +#include <string> +#include "EthernetInterface.h" -xbee xbee1(p9,p10,p11); //Initalise xbee_lib +xbee xbee1(p9,p10,p30); //Initalise xbee_lib +C12832_LCD lcd; +DigitalOut LanLED(LED1); +DigitalOut XbeeLED(LED2); +DigitalOut LanDataLED(LED3); +EthernetInterface eth; + +bool setupEthernet() { + lcd.cls(); + lcd.locate(0,0); + lcd.printf("Start Ethernet Setup\n"); + + eth.init("172.16.0.2","255.255.0.0","172.16.0.1"); + if(eth.connect()!=0) { + lcd.printf("Not connected!\n"); + return false; + } else { + lcd.printf("IP Address : %s\n", eth.getIPAddress()); + return true; + } +} + +void setupXbee() { + lcd.cls(); + lcd.locate(0,0); + lcd.printf("Start Xbee Setup\n"); + xbee1.Reset(); + xbee1.ConfigMode(); + xbee1.SetPanId(123); + int mac [8]; + xbee1.GetSerial(mac); + xbee1.WriteSettings(); + xbee1.ExitConfigMode(); + lcd.printf("%d %d %d %d %d %d %d %d\n",mac[0],mac[1],mac[2],mac[3],mac[4],mac[5],mac[6],mac[7]); + lcd.printf("Done Setup!\n"); +} -int main() -{ - char read_data[202]; //Xbee buffer size is 202 bytes +int main() { + bool flag=true; + flag=setupEthernet(); + LanLED=flag; + wait(0.5); + setupXbee(); - while(1) { - xbee1.RecieveData(read_data,0); //Read data from the XBee - xbee1.SendData(read_data); //Send data to XBee + if (flag) { + UDPSocket socket; + socket.init(); + Endpoint server; + server.set_address("172.16.0.1",40000); + + int count=0; + char read_data[202]; //Xbee buffer size is 202 bytes + + while(1) { + char temp[202]; + XbeeLED=1; + xbee1.RecieveData(temp,10); //Read data from the XBee + XbeeLED=0; + for (int i=0;i<10 && temp[i]!='\0';i++) { + if (temp[i]=='|') { + count=0; + } else if (temp[i]=='&') { + string real_data=""; + for (int i2=0;i2<count;i2++) { + real_data+=read_data[i2]; + } + lcd.cls(); + lcd.locate(0,3); + lcd.printf("%s",real_data); + LanDataLED=1; + socket.sendTo(server,read_data,real_data.length()); + LanDataLED=0; + count=0; + for (int i2=0;i2<202;i2++) { + read_data[i2]='\0'; + } + } else { + read_data[count++]=temp[i]; + } + } + } } } \ No newline at end of file