compile ok 20140330 , update mbed and mbed-rtos

Dependencies:   C12832 EthernetInterface HTTPClient mbed-rtos mbed MbedJSONValue

Fork of HTTPClient_HelloWorld by Takahiro Kubo

Committer:
lamadio
Date:
Fri Apr 25 20:24:32 2014 +0000
Revision:
6:e822b760261d
Parent:
5:6d5842b97059
Round Trip through Dweet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:0e0debc29569 1 #include "mbed.h"
donatien 0:0e0debc29569 2 #include "EthernetInterface.h"
donatien 0:0e0debc29569 3 #include "HTTPClient.h"
lamadio 4:b157cc2de561 4 #include "C12832.h"
lamadio 5:6d5842b97059 5 #include "MbedJSONValue.h"
donatien 0:0e0debc29569 6
donatien 1:d263603373ac 7 EthernetInterface eth;
donatien 1:d263603373ac 8 HTTPClient http;
lamadio 4:b157cc2de561 9 char str[2048];
lamadio 4:b157cc2de561 10 C12832 lcd(p5, p7, p6, p8, p11);
lamadio 6:e822b760261d 11 bool updateLEDs = false;
lamadio 6:e822b760261d 12 void timeoutCallback()
lamadio 6:e822b760261d 13 {
lamadio 6:e822b760261d 14 updateLEDs = true;
lamadio 6:e822b760261d 15 }
donatien 1:d263603373ac 16
donatien 0:0e0debc29569 17 int main()
donatien 0:0e0debc29569 18 {
lamadio 6:e822b760261d 19 BusIn joy(p15,p12,p13,p16);
lamadio 6:e822b760261d 20 DigitalIn fire(p14);
lamadio 6:e822b760261d 21 BusOut leds(LED1,LED2,LED3,LED4);
lamadio 6:e822b760261d 22 Timeout timeout;
lamadio 6:e822b760261d 23
lamadio 6:e822b760261d 24 timeout.attach(&timeoutCallback, 5);
lamadio 6:e822b760261d 25
donatien 0:0e0debc29569 26 eth.init(); //Use DHCP
donatien 0:0e0debc29569 27 eth.connect();
donatien 0:0e0debc29569 28
lamadio 6:e822b760261d 29 int lastJoy = 0;
lamadio 4:b157cc2de561 30 while(1)
donatien 2:270e2d0bb85a 31 {
lamadio 6:e822b760261d 32 int currentJoy = joy;
lamadio 6:e822b760261d 33 if (currentJoy != lastJoy)
lamadio 6:e822b760261d 34 {
lamadio 6:e822b760261d 35 lastJoy = currentJoy;
lamadio 6:e822b760261d 36 updateLEDs = true;
lamadio 6:e822b760261d 37
lamadio 6:e822b760261d 38 char url[1024];
lamadio 6:e822b760261d 39 sprintf(url, "https://dweet.io/dweet/for/modern-wheel?joy=%d", currentJoy);
lamadio 6:e822b760261d 40
lamadio 6:e822b760261d 41 http.get(url, str, sizeof(str));
lamadio 6:e822b760261d 42 }
lamadio 6:e822b760261d 43
lamadio 6:e822b760261d 44 if (updateLEDs)
lamadio 6:e822b760261d 45 {
lamadio 6:e822b760261d 46 //GET data
lamadio 6:e822b760261d 47 int ret = http.get("https://dweet.io/get/latest/dweet/for/modern-wheel", str, sizeof(str));
lamadio 6:e822b760261d 48 if (!ret)
lamadio 6:e822b760261d 49 {
lamadio 6:e822b760261d 50 lcd.cls();
lamadio 6:e822b760261d 51 lcd.locate(0,0);
lamadio 6:e822b760261d 52 lcd.printf("read %d", strlen(str));
lamadio 6:e822b760261d 53 MbedJSONValue v;
lamadio 6:e822b760261d 54 const char* start = str;
lamadio 6:e822b760261d 55 const char* end = (const char*)(str + strlen(str));
lamadio 6:e822b760261d 56 std::string err;
lamadio 6:e822b760261d 57 parse(v, start, end, &err);
lamadio 6:e822b760261d 58 if (!err.empty())
lamadio 6:e822b760261d 59 {
lamadio 6:e822b760261d 60 lcd.cls();
lamadio 6:e822b760261d 61 lcd.printf("Error - %s", err.c_str());
lamadio 6:e822b760261d 62 }
lamadio 6:e822b760261d 63 else
lamadio 6:e822b760261d 64 {
lamadio 6:e822b760261d 65 lcd.cls();
lamadio 6:e822b760261d 66 int joyValue = v["with"][0]["content"]["joy"].get<int>();
lamadio 6:e822b760261d 67 if (fire)
lamadio 6:e822b760261d 68 {
lamadio 6:e822b760261d 69 leds=0xf;
lamadio 6:e822b760261d 70 }
lamadio 6:e822b760261d 71 else
lamadio 6:e822b760261d 72 {
lamadio 6:e822b760261d 73 leds=joyValue;
lamadio 6:e822b760261d 74 }
lamadio 6:e822b760261d 75 }
lamadio 6:e822b760261d 76 }
lamadio 6:e822b760261d 77 else
lamadio 6:e822b760261d 78 {
lamadio 6:e822b760261d 79 lcd.printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
lamadio 6:e822b760261d 80 }
lamadio 6:e822b760261d 81 }
lamadio 6:e822b760261d 82 updateLEDs = false;
lamadio 6:e822b760261d 83
donatien 2:270e2d0bb85a 84 }
donatien 0:0e0debc29569 85 eth.disconnect();
donatien 0:0e0debc29569 86 }