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@2:ae1a5862504b, 2016-09-16 (annotated)
- Committer:
- kingkingyyk
- Date:
- Fri Sep 16 15:36:31 2016 +0000
- Revision:
- 2:ae1a5862504b
- Parent:
- 1:15d917484a8d
- Child:
- 3:12afbbb4b29d
Removed SaveConfig
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |
