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@2:86f64948da0f, 2014-01-25 (annotated)
- 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?
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 | 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 | } |