A basic example of using the mbed NXP LPC1768 Application Board with Exosite.
Dependencies: C12832_lcd EthernetInterface HTTPClient LM75B MMA7660 RGBLed mbed-rtos mbed
Fork of exosite_http_example by
main.cpp@2:8907a25944ab, 2015-01-20 (annotated)
- Committer:
- PBarrett
- Date:
- Tue Jan 20 14:15:12 2015 +0000
- Revision:
- 2:8907a25944ab
- Parent:
- 1:ae20607dd0c1
- Child:
- 4:d6e87aea518f
using wolfSSL's HTTP libray (with modifications), basic read and (fake) write
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maanenson | 0:30a991e08e77 | 1 | #include "mbed.h" |
maanenson | 0:30a991e08e77 | 2 | #include "EthernetInterface.h" |
PBarrett | 2:8907a25944ab | 3 | #include "HTTPClient.h" |
PBarrett | 1:ae20607dd0c1 | 4 | #include "C12832_lcd.h" |
maanenson | 0:30a991e08e77 | 5 | |
PBarrett | 2:8907a25944ab | 6 | EthernetInterface eth; |
PBarrett | 2:8907a25944ab | 7 | HTTPClient http; |
PBarrett | 2:8907a25944ab | 8 | |
PBarrett | 2:8907a25944ab | 9 | |
PBarrett | 2:8907a25944ab | 10 | #define CIK "0000000000000000000000000000000000000000" |
PBarrett | 2:8907a25944ab | 11 | #define WRITE_ALIAS "temp" |
PBarrett | 2:8907a25944ab | 12 | #define READ_ALIASES "?screen" |
maanenson | 0:30a991e08e77 | 13 | |
PBarrett | 2:8907a25944ab | 14 | char EXO_CIK_HDR[] = "X-Exosite-CIK: " CIK "\r\n"; |
PBarrett | 2:8907a25944ab | 15 | char EXO_ACCEPT_HDR[] = "Accept: application/x-www-form-urlencoded; charset=utf-8\r\n"; |
PBarrett | 2:8907a25944ab | 16 | char EXO_CONTYP_HDR[] = "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"; |
PBarrett | 2:8907a25944ab | 17 | const char EXO_URI[] = "https://m2.exosite.com:443/onep:v1/stack/alias" READ_ALIASES; |
PBarrett | 2:8907a25944ab | 18 | // NOTE: Need to specify port due to parsing bug in lib on "onep:v1" |
PBarrett | 2:8907a25944ab | 19 | |
PBarrett | 2:8907a25944ab | 20 | #define TIMEOUT 2000 |
PBarrett | 2:8907a25944ab | 21 | #define BUFFSIZE 1024 |
maanenson | 0:30a991e08e77 | 22 | |
maanenson | 0:30a991e08e77 | 23 | AnalogIn aPot1(p19); |
PBarrett | 2:8907a25944ab | 24 | Timer send_timer, connection_timer, run_time; |
PBarrett | 1:ae20607dd0c1 | 25 | |
PBarrett | 1:ae20607dd0c1 | 26 | static C12832_LCD lcd; |
PBarrett | 1:ae20607dd0c1 | 27 | |
PBarrett | 1:ae20607dd0c1 | 28 | int main() |
PBarrett | 1:ae20607dd0c1 | 29 | { |
PBarrett | 1:ae20607dd0c1 | 30 | run_time.start(); |
PBarrett | 1:ae20607dd0c1 | 31 | send_timer.start(); |
PBarrett | 2:8907a25944ab | 32 | connection_timer.start(); |
maanenson | 0:30a991e08e77 | 33 | |
PBarrett | 1:ae20607dd0c1 | 34 | printf("\r\nStart\r\n"); |
PBarrett | 1:ae20607dd0c1 | 35 | |
PBarrett | 1:ae20607dd0c1 | 36 | eth.init(); //Use DHCP |
maanenson | 0:30a991e08e77 | 37 | |
PBarrett | 1:ae20607dd0c1 | 38 | lcd.printf("Exosite HTTP Cloud Demo"); |
PBarrett | 1:ae20607dd0c1 | 39 | lcd.locate(0,11); |
PBarrett | 1:ae20607dd0c1 | 40 | lcd.printf("MAC: %s", eth.getMACAddress()); |
PBarrett | 1:ae20607dd0c1 | 41 | lcd.locate(0,22); |
PBarrett | 1:ae20607dd0c1 | 42 | lcd.printf("IP: Requesting From DHCP..."); |
PBarrett | 1:ae20607dd0c1 | 43 | |
maanenson | 0:30a991e08e77 | 44 | eth.connect(); |
PBarrett | 1:ae20607dd0c1 | 45 | |
PBarrett | 1:ae20607dd0c1 | 46 | printf("IP Address is %s\r\n", eth.getIPAddress()); |
PBarrett | 1:ae20607dd0c1 | 47 | printf("MAC Address is %s\r\n", eth.getMACAddress()); |
maanenson | 0:30a991e08e77 | 48 | |
PBarrett | 1:ae20607dd0c1 | 49 | lcd.locate(0,22); |
PBarrett | 1:ae20607dd0c1 | 50 | lcd.printf("IP: %s ", eth.getIPAddress()); |
PBarrett | 1:ae20607dd0c1 | 51 | |
PBarrett | 1:ae20607dd0c1 | 52 | printf("[%f] Running...\r\n", run_time.read()); |
maanenson | 0:30a991e08e77 | 53 | |
maanenson | 0:30a991e08e77 | 54 | while (1) { |
PBarrett | 1:ae20607dd0c1 | 55 | int ret; |
PBarrett | 2:8907a25944ab | 56 | char incomming_buffer[BUFFSIZE]; |
PBarrett | 2:8907a25944ab | 57 | char outgoing_buffer[BUFFSIZE]; |
PBarrett | 2:8907a25944ab | 58 | HTTPText read_text = HTTPText(incomming_buffer, BUFFSIZE); |
PBarrett | 2:8907a25944ab | 59 | HTTPText write_map = HTTPText(outgoing_buffer); |
PBarrett | 1:ae20607dd0c1 | 60 | |
PBarrett | 2:8907a25944ab | 61 | snprintf(outgoing_buffer, BUFFSIZE, "tempf=%0.0f", 42.37); |
PBarrett | 1:ae20607dd0c1 | 62 | |
PBarrett | 2:8907a25944ab | 63 | connection_timer.reset(); |
PBarrett | 2:8907a25944ab | 64 | printf("[%f] Sending...\r\n", run_time.read()); |
PBarrett | 2:8907a25944ab | 65 | |
PBarrett | 2:8907a25944ab | 66 | http.setHeader(0,EXO_CIK_HDR); |
PBarrett | 2:8907a25944ab | 67 | http.setHeader(1,EXO_ACCEPT_HDR); |
PBarrett | 2:8907a25944ab | 68 | http.setHeader(2,EXO_CONTYP_HDR); |
PBarrett | 1:ae20607dd0c1 | 69 | |
PBarrett | 2:8907a25944ab | 70 | ret = http.post(EXO_URI, write_map, &read_text); |
PBarrett | 2:8907a25944ab | 71 | printf("Done! Status: %d, %d\r\n", ret, http.getHTTPResponseCode()); |
PBarrett | 2:8907a25944ab | 72 | lcd.locate(0,0); |
PBarrett | 2:8907a25944ab | 73 | lcd.printf(" "); |
PBarrett | 2:8907a25944ab | 74 | if (!ret) { |
PBarrett | 2:8907a25944ab | 75 | printf("Success, Got: %s\n", incomming_buffer); |
PBarrett | 2:8907a25944ab | 76 | lcd.locate(0,0); |
PBarrett | 2:8907a25944ab | 77 | lcd.printf(incomming_buffer); |
PBarrett | 2:8907a25944ab | 78 | } else { |
PBarrett | 2:8907a25944ab | 79 | printf("Error, Got: %s\n", incomming_buffer); |
PBarrett | 2:8907a25944ab | 80 | lcd.locate(0,0); |
PBarrett | 2:8907a25944ab | 81 | lcd.printf(incomming_buffer); |
maanenson | 0:30a991e08e77 | 82 | } |
maanenson | 0:30a991e08e77 | 83 | |
PBarrett | 2:8907a25944ab | 84 | printf("Completed in %f seconds.\r\n", connection_timer.read()); |
PBarrett | 1:ae20607dd0c1 | 85 | |
PBarrett | 1:ae20607dd0c1 | 86 | wait(5); |
maanenson | 0:30a991e08e77 | 87 | } |
maanenson | 0:30a991e08e77 | 88 | |
maanenson | 0:30a991e08e77 | 89 | } |