compile ok 20140330 , update mbed and mbed-rtos
Dependencies: C12832 EthernetInterface HTTPClient mbed-rtos mbed MbedJSONValue
Fork of HTTPClient_HelloWorld by
main.cpp@6:e822b760261d, 2014-04-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |