Code for an ethernet-enabled mbed that calls to a web api, and reasons with JSON resonses
Dependencies: NetServices RPCInterface mbed picojson xbee_api
main.cpp@0:d956c5c1bdd6, 2014-01-25 (annotated)
- Committer:
- ammanvedi
- Date:
- Sat Jan 25 16:51:41 2014 +0000
- Revision:
- 0:d956c5c1bdd6
- Child:
- 1:7485d913aaf5
initial commit ; ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ammanvedi | 0:d956c5c1bdd6 | 1 | #include "mbed.h" |
ammanvedi | 0:d956c5c1bdd6 | 2 | #include "EthernetNetIf.h" |
ammanvedi | 0:d956c5c1bdd6 | 3 | #include "HTTPClient.h" |
ammanvedi | 0:d956c5c1bdd6 | 4 | #include "NTPClient.h" |
ammanvedi | 0:d956c5c1bdd6 | 5 | #include "HTTPServer.h" |
ammanvedi | 0:d956c5c1bdd6 | 6 | #include "RPCFunction.h" |
ammanvedi | 0:d956c5c1bdd6 | 7 | |
ammanvedi | 0:d956c5c1bdd6 | 8 | #define HOSTNAME "HUB-01" |
ammanvedi | 0:d956c5c1bdd6 | 9 | |
ammanvedi | 0:d956c5c1bdd6 | 10 | EthernetNetIf eth(HOSTNAME); |
ammanvedi | 0:d956c5c1bdd6 | 11 | HTTPClient http; |
ammanvedi | 0:d956c5c1bdd6 | 12 | NTPClient ntp; |
ammanvedi | 0:d956c5c1bdd6 | 13 | |
ammanvedi | 0:d956c5c1bdd6 | 14 | |
ammanvedi | 0:d956c5c1bdd6 | 15 | |
ammanvedi | 0:d956c5c1bdd6 | 16 | int main() { |
ammanvedi | 0:d956c5c1bdd6 | 17 | |
ammanvedi | 0:d956c5c1bdd6 | 18 | |
ammanvedi | 0:d956c5c1bdd6 | 19 | printf("Try starting the program with the network disconnected and then connect after a few timeouts reported\n\n"); |
ammanvedi | 0:d956c5c1bdd6 | 20 | EthernetErr ethErr; |
ammanvedi | 0:d956c5c1bdd6 | 21 | int count = 0; |
ammanvedi | 0:d956c5c1bdd6 | 22 | do { |
ammanvedi | 0:d956c5c1bdd6 | 23 | printf("Setting up %d...\n", ++count); |
ammanvedi | 0:d956c5c1bdd6 | 24 | ethErr = eth.setup(); |
ammanvedi | 0:d956c5c1bdd6 | 25 | if (ethErr) printf("Timeout\n", ethErr); |
ammanvedi | 0:d956c5c1bdd6 | 26 | } while (ethErr != ETH_OK); |
ammanvedi | 0:d956c5c1bdd6 | 27 | |
ammanvedi | 0:d956c5c1bdd6 | 28 | printf("Connected OK\n"); |
ammanvedi | 0:d956c5c1bdd6 | 29 | const char* hwAddr = eth.getHwAddr(); |
ammanvedi | 0:d956c5c1bdd6 | 30 | printf("HW address : %02x:%02x:%02x:%02x:%02x:%02x\n", |
ammanvedi | 0:d956c5c1bdd6 | 31 | hwAddr[0], hwAddr[1], hwAddr[2], |
ammanvedi | 0:d956c5c1bdd6 | 32 | hwAddr[3], hwAddr[4], hwAddr[5]); |
ammanvedi | 0:d956c5c1bdd6 | 33 | |
ammanvedi | 0:d956c5c1bdd6 | 34 | IpAddr ethIp = eth.getIp(); |
ammanvedi | 0:d956c5c1bdd6 | 35 | printf("IP address : %d.%d.%d.%d\n", ethIp[0], ethIp[1], ethIp[2], ethIp[3]); |
ammanvedi | 0:d956c5c1bdd6 | 36 | printf("Check router DHCP table for name : %s\n", eth.getHostname()); |
ammanvedi | 0:d956c5c1bdd6 | 37 | |
ammanvedi | 0:d956c5c1bdd6 | 38 | printf("\nHTTPClient get...\n"); |
ammanvedi | 0:d956c5c1bdd6 | 39 | HTTPText txt; |
ammanvedi | 0:d956c5c1bdd6 | 40 | HTTPResult r = http.get("192.168.0.4:3000/devices", &txt); |
ammanvedi | 0:d956c5c1bdd6 | 41 | if (r==HTTP_OK) { |
ammanvedi | 0:d956c5c1bdd6 | 42 | printf("Result ok : %s\n", txt.gets()); |
ammanvedi | 0:d956c5c1bdd6 | 43 | } else { |
ammanvedi | 0:d956c5c1bdd6 | 44 | printf("Error %d\n", r); |
ammanvedi | 0:d956c5c1bdd6 | 45 | } |
ammanvedi | 0:d956c5c1bdd6 | 46 | |
ammanvedi | 0:d956c5c1bdd6 | 47 | |
ammanvedi | 0:d956c5c1bdd6 | 48 | } |