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 Patrick Barrett

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?

UserRevisionLine numberNew 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 }