Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C12832_lcd ConfigFile LM75B WiflyInterface mbed-rtos mbed
Fork of Xbee_Hello_World_B by
Diff: main.cpp
- Revision:
- 1:15d917484a8d
- Parent:
- 0:122702c9168a
- Child:
- 2:ae1a5862504b
diff -r 122702c9168a -r 15d917484a8d main.cpp
--- 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
