zzz

Dependencies:   C12832_lcd ConfigFile LM75B WiflyInterface2 mbed-rtos mbed

Fork of Xbee_Hello_World_B by Tristan Hughes

Committer:
kingkingyyk
Date:
Fri Sep 16 15:36:31 2016 +0000
Revision:
2:ae1a5862504b
Parent:
1:15d917484a8d
Child:
3:623e2b67ebaa
Removed SaveConfig

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tristanjph 0:122702c9168a 1 #include "mbed.h"
tristanjph 0:122702c9168a 2 #include "xbee.h"
kingkingyyk 1:15d917484a8d 3 #include "C12832_lcd.h"
kingkingyyk 1:15d917484a8d 4 #include <string>
kingkingyyk 1:15d917484a8d 5 #include "EthernetInterface.h"
tristanjph 0:122702c9168a 6
kingkingyyk 1:15d917484a8d 7 xbee xbee1(p9,p10,p30); //Initalise xbee_lib
kingkingyyk 1:15d917484a8d 8 C12832_LCD lcd;
kingkingyyk 1:15d917484a8d 9 DigitalOut LanLED(LED1);
kingkingyyk 1:15d917484a8d 10 DigitalOut XbeeLED(LED2);
kingkingyyk 1:15d917484a8d 11 DigitalOut LanDataLED(LED3);
kingkingyyk 1:15d917484a8d 12 EthernetInterface eth;
kingkingyyk 1:15d917484a8d 13
kingkingyyk 1:15d917484a8d 14 bool setupEthernet() {
kingkingyyk 1:15d917484a8d 15 lcd.cls();
kingkingyyk 1:15d917484a8d 16 lcd.locate(0,0);
kingkingyyk 1:15d917484a8d 17 lcd.printf("Start Ethernet Setup\n");
kingkingyyk 1:15d917484a8d 18
kingkingyyk 1:15d917484a8d 19 eth.init("172.16.0.2","255.255.0.0","172.16.0.1");
kingkingyyk 1:15d917484a8d 20 if(eth.connect()!=0) {
kingkingyyk 1:15d917484a8d 21 lcd.printf("Not connected!\n");
kingkingyyk 1:15d917484a8d 22 return false;
kingkingyyk 1:15d917484a8d 23 } else {
kingkingyyk 1:15d917484a8d 24 lcd.printf("IP Address : %s\n", eth.getIPAddress());
kingkingyyk 1:15d917484a8d 25 return true;
kingkingyyk 1:15d917484a8d 26 }
kingkingyyk 1:15d917484a8d 27 }
kingkingyyk 1:15d917484a8d 28
kingkingyyk 1:15d917484a8d 29 void setupXbee() {
kingkingyyk 1:15d917484a8d 30 lcd.cls();
kingkingyyk 1:15d917484a8d 31 lcd.locate(0,0);
kingkingyyk 1:15d917484a8d 32 lcd.printf("Start Xbee Setup\n");
kingkingyyk 1:15d917484a8d 33 xbee1.Reset();
kingkingyyk 1:15d917484a8d 34 xbee1.ConfigMode();
kingkingyyk 2:ae1a5862504b 35 xbee1.ResetConfig();
kingkingyyk 1:15d917484a8d 36 xbee1.SetPanId(123);
kingkingyyk 1:15d917484a8d 37 xbee1.ExitConfigMode();
kingkingyyk 1:15d917484a8d 38 lcd.printf("Done Setup!\n");
kingkingyyk 1:15d917484a8d 39 }
tristanjph 0:122702c9168a 40
kingkingyyk 1:15d917484a8d 41 int main() {
kingkingyyk 1:15d917484a8d 42 bool flag=true;
kingkingyyk 1:15d917484a8d 43 flag=setupEthernet();
kingkingyyk 1:15d917484a8d 44 LanLED=flag;
kingkingyyk 1:15d917484a8d 45 wait(0.5);
kingkingyyk 1:15d917484a8d 46 setupXbee();
tristanjph 0:122702c9168a 47
kingkingyyk 1:15d917484a8d 48 if (flag) {
kingkingyyk 1:15d917484a8d 49 UDPSocket socket;
kingkingyyk 1:15d917484a8d 50 socket.init();
kingkingyyk 1:15d917484a8d 51 Endpoint server;
kingkingyyk 1:15d917484a8d 52 server.set_address("172.16.0.1",40000);
kingkingyyk 1:15d917484a8d 53
kingkingyyk 1:15d917484a8d 54 int count=0;
kingkingyyk 1:15d917484a8d 55 char read_data[202]; //Xbee buffer size is 202 bytes
kingkingyyk 1:15d917484a8d 56
kingkingyyk 1:15d917484a8d 57 while(1) {
kingkingyyk 1:15d917484a8d 58 char temp[202];
kingkingyyk 1:15d917484a8d 59 XbeeLED=1;
kingkingyyk 1:15d917484a8d 60 xbee1.RecieveData(temp,10); //Read data from the XBee
kingkingyyk 1:15d917484a8d 61 XbeeLED=0;
kingkingyyk 1:15d917484a8d 62 for (int i=0;i<10 && temp[i]!='\0';i++) {
kingkingyyk 1:15d917484a8d 63 if (temp[i]=='|') {
kingkingyyk 1:15d917484a8d 64 count=0;
kingkingyyk 1:15d917484a8d 65 } else if (temp[i]=='&') {
kingkingyyk 1:15d917484a8d 66 string real_data="";
kingkingyyk 1:15d917484a8d 67 for (int i2=0;i2<count;i2++) {
kingkingyyk 1:15d917484a8d 68 real_data+=read_data[i2];
kingkingyyk 1:15d917484a8d 69 }
kingkingyyk 1:15d917484a8d 70 lcd.cls();
kingkingyyk 1:15d917484a8d 71 lcd.locate(0,3);
kingkingyyk 1:15d917484a8d 72 lcd.printf("%s",real_data);
kingkingyyk 1:15d917484a8d 73 LanDataLED=1;
kingkingyyk 1:15d917484a8d 74 socket.sendTo(server,read_data,real_data.length());
kingkingyyk 1:15d917484a8d 75 LanDataLED=0;
kingkingyyk 1:15d917484a8d 76 count=0;
kingkingyyk 1:15d917484a8d 77 for (int i2=0;i2<202;i2++) {
kingkingyyk 1:15d917484a8d 78 read_data[i2]='\0';
kingkingyyk 1:15d917484a8d 79 }
kingkingyyk 1:15d917484a8d 80 } else {
kingkingyyk 1:15d917484a8d 81 read_data[count++]=temp[i];
kingkingyyk 1:15d917484a8d 82 }
kingkingyyk 1:15d917484a8d 83 }
kingkingyyk 1:15d917484a8d 84 }
tristanjph 0:122702c9168a 85 }
tristanjph 0:122702c9168a 86 }