Code for an ethernet-enabled mbed that calls to a web api, and reasons with JSON resonses

Dependencies:   NetServices RPCInterface mbed picojson xbee_api

Committer:
ammanvedi
Date:
Sat Jan 25 22:15:06 2014 +0000
Revision:
2:86f64948da0f
Parent:
1:7485d913aaf5
Child:
3:2f263c4517e2
init

Who changed what in which revision?

UserRevisionLine numberNew 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 2:86f64948da0f 7 #include "HTTPResult.h"
ammanvedi 2:86f64948da0f 8
ammanvedi 0:d956c5c1bdd6 9
ammanvedi 0:d956c5c1bdd6 10 #define HOSTNAME "HUB-01"
ammanvedi 0:d956c5c1bdd6 11
ammanvedi 0:d956c5c1bdd6 12 EthernetNetIf eth(HOSTNAME);
ammanvedi 0:d956c5c1bdd6 13 HTTPClient http;
ammanvedi 0:d956c5c1bdd6 14 NTPClient ntp;
ammanvedi 0:d956c5c1bdd6 15
ammanvedi 1:7485d913aaf5 16 using namespace std;
ammanvedi 0:d956c5c1bdd6 17
ammanvedi 0:d956c5c1bdd6 18 int main() {
ammanvedi 0:d956c5c1bdd6 19
ammanvedi 0:d956c5c1bdd6 20
ammanvedi 0:d956c5c1bdd6 21 printf("Try starting the program with the network disconnected and then connect after a few timeouts reported\n\n");
ammanvedi 0:d956c5c1bdd6 22 EthernetErr ethErr;
ammanvedi 0:d956c5c1bdd6 23 int count = 0;
ammanvedi 0:d956c5c1bdd6 24 do {
ammanvedi 0:d956c5c1bdd6 25 printf("Setting up %d...\n", ++count);
ammanvedi 0:d956c5c1bdd6 26 ethErr = eth.setup();
ammanvedi 0:d956c5c1bdd6 27 if (ethErr) printf("Timeout\n", ethErr);
ammanvedi 0:d956c5c1bdd6 28 } while (ethErr != ETH_OK);
ammanvedi 0:d956c5c1bdd6 29
ammanvedi 0:d956c5c1bdd6 30 printf("Connected OK\n");
ammanvedi 0:d956c5c1bdd6 31 const char* hwAddr = eth.getHwAddr();
ammanvedi 0:d956c5c1bdd6 32 printf("HW address : %02x:%02x:%02x:%02x:%02x:%02x\n",
ammanvedi 0:d956c5c1bdd6 33 hwAddr[0], hwAddr[1], hwAddr[2],
ammanvedi 0:d956c5c1bdd6 34 hwAddr[3], hwAddr[4], hwAddr[5]);
ammanvedi 0:d956c5c1bdd6 35
ammanvedi 0:d956c5c1bdd6 36 IpAddr ethIp = eth.getIp();
ammanvedi 0:d956c5c1bdd6 37 printf("IP address : %d.%d.%d.%d\n", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);
ammanvedi 2:86f64948da0f 38
ammanvedi 2:86f64948da0f 39 //the hub will register itself with the server
ammanvedi 2:86f64948da0f 40 HTTPMap msg;
ammanvedi 2:86f64948da0f 41
ammanvedi 2:86f64948da0f 42
ammanvedi 2:86f64948da0f 43 HTTPResult r1 = http.post("192.168.0.4:3000/hubconnect?h_id=mbed&h_name=ADAM&h_ip=192.168.0.1",msg,NULL);
ammanvedi 2:86f64948da0f 44 if( r1 == HTTP_OK )
ammanvedi 2:86f64948da0f 45 {
ammanvedi 2:86f64948da0f 46 printf("Hub %s registered with server\n", HOSTNAME);
ammanvedi 2:86f64948da0f 47 }
ammanvedi 2:86f64948da0f 48 else
ammanvedi 2:86f64948da0f 49 {
ammanvedi 2:86f64948da0f 50 printf("Couls not register, error : %d\n", r1);
ammanvedi 2:86f64948da0f 51 }
ammanvedi 2:86f64948da0f 52
ammanvedi 2:86f64948da0f 53
ammanvedi 2:86f64948da0f 54
ammanvedi 0:d956c5c1bdd6 55
ammanvedi 0:d956c5c1bdd6 56 printf("\nHTTPClient get...\n");
ammanvedi 0:d956c5c1bdd6 57 HTTPText txt;
ammanvedi 0:d956c5c1bdd6 58 HTTPResult r = http.get("192.168.0.4:3000/devices", &txt);
ammanvedi 0:d956c5c1bdd6 59 if (r==HTTP_OK) {
ammanvedi 0:d956c5c1bdd6 60 printf("Result ok : %s\n", txt.gets());
ammanvedi 0:d956c5c1bdd6 61 } else {
ammanvedi 2:86f64948da0f 62 printf("Error %s\n", txt.gets());
ammanvedi 0:d956c5c1bdd6 63 }
ammanvedi 0:d956c5c1bdd6 64
ammanvedi 0:d956c5c1bdd6 65
ammanvedi 0:d956c5c1bdd6 66 }