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
main.cpp
- Committer:
- kingkingyyk
- Date:
- 2016-09-16
- Revision:
- 1:15d917484a8d
- Parent:
- 0:122702c9168a
- Child:
- 2:ae1a5862504b
File content as of revision 1:15d917484a8d:
#include "mbed.h"
#include "xbee.h"
#include "C12832_lcd.h"
#include <string>
#include "EthernetInterface.h"
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() {
bool flag=true;
flag=setupEthernet();
LanLED=flag;
wait(0.5);
setupXbee();
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];
}
}
}
}
}
