zzz

Dependencies:   C12832_lcd ConfigFile LM75B WiflyInterface2 mbed-rtos mbed

Fork of Xbee_Hello_World_B by Tristan Hughes

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