Twitter for GSwifi see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/
Dependencies: GSwifi (old) mbed
main.cpp@1:933f14b313b6, 2012-10-28 (annotated)
- Committer:
- gsfan
- Date:
- Sun Oct 28 14:27:43 2012 +0000
- Revision:
- 1:933f14b313b6
- Parent:
- 0:8045b4b60fef
update library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsfan | 0:8045b4b60fef | 1 | #include "mbed.h" |
gsfan | 0:8045b4b60fef | 2 | #include "GSwifi.h" |
gsfan | 0:8045b4b60fef | 3 | |
gsfan | 0:8045b4b60fef | 4 | #define SECURE GSSEC_WPA_PSK |
gsfan | 0:8045b4b60fef | 5 | #define SSID "SSID" |
gsfan | 0:8045b4b60fef | 6 | #define PASS "passkey" |
gsfan | 0:8045b4b60fef | 7 | |
gsfan | 0:8045b4b60fef | 8 | #define TWITTER "Tweet%20from%20GainSpan%20Wi-Fi" |
gsfan | 0:8045b4b60fef | 9 | #define HTTP_HOST "api.supertweet.net" // SuperTweet.net |
gsfan | 0:8045b4b60fef | 10 | // #define HTTP_HOST "twitter-basicauth.appspot.com" // TOBASIC! |
gsfan | 0:8045b4b60fef | 11 | #define HTTP_URI "/1/statuses/update.xml" |
gsfan | 0:8045b4b60fef | 12 | #define HTTP_USER "username" |
gsfan | 0:8045b4b60fef | 13 | #define HTTP_PASS "password" |
gsfan | 0:8045b4b60fef | 14 | |
gsfan | 0:8045b4b60fef | 15 | GSwifi gs(p13, p14); // TX, RX (no flow control) |
gsfan | 0:8045b4b60fef | 16 | // GSwifi gs(p13, p14, p12, P0_22); // TX, RX, CTS, RTS |
gsfan | 0:8045b4b60fef | 17 | Serial pc(USBTX, USBRX); |
gsfan | 0:8045b4b60fef | 18 | DigitalOut led1(LED1), led2(LED2); |
gsfan | 0:8045b4b60fef | 19 | |
gsfan | 0:8045b4b60fef | 20 | void onGsReceive (int cid, int len) { |
gsfan | 0:8045b4b60fef | 21 | int i; |
gsfan | 0:8045b4b60fef | 22 | char buf[GS_DATA_SIZE + 1]; |
gsfan | 0:8045b4b60fef | 23 | |
gsfan | 0:8045b4b60fef | 24 | led2 = 1; |
gsfan | 0:8045b4b60fef | 25 | i = gs.recv(cid, buf, len); |
gsfan | 0:8045b4b60fef | 26 | buf[i] = 0; |
gsfan | 0:8045b4b60fef | 27 | pc.printf(buf); |
gsfan | 0:8045b4b60fef | 28 | } |
gsfan | 0:8045b4b60fef | 29 | |
gsfan | 0:8045b4b60fef | 30 | int main () { |
gsfan | 0:8045b4b60fef | 31 | int r; |
gsfan | 0:8045b4b60fef | 32 | IpAddr ipaddr, netmask, gateway, nameserver; |
gsfan | 0:8045b4b60fef | 33 | Host host; |
gsfan | 0:8045b4b60fef | 34 | char msg[] = "status=" TWITTER; |
gsfan | 0:8045b4b60fef | 35 | |
gsfan | 0:8045b4b60fef | 36 | led1 = 1; |
gsfan | 0:8045b4b60fef | 37 | pc.baud(115200); |
gsfan | 0:8045b4b60fef | 38 | |
gsfan | 0:8045b4b60fef | 39 | pc.printf("connect\r\n"); |
gsfan | 0:8045b4b60fef | 40 | if (gs.connect(SECURE, SSID, PASS, 0)) { |
gsfan | 0:8045b4b60fef | 41 | return -1; |
gsfan | 0:8045b4b60fef | 42 | } |
gsfan | 0:8045b4b60fef | 43 | gs.getAddress(ipaddr, netmask, gateway, nameserver); |
gsfan | 0:8045b4b60fef | 44 | pc.printf("ip %d.%d.%d.%d\r\n", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]); |
gsfan | 0:8045b4b60fef | 45 | |
gsfan | 0:8045b4b60fef | 46 | pc.printf("httpPost\r\n"); |
gsfan | 0:8045b4b60fef | 47 | host.setName(HTTP_HOST); |
gsfan | 1:933f14b313b6 | 48 | r = gs.httpPost(host, HTTP_URI, msg, HTTP_USER, HTTP_PASS, 0, &onGsReceive); |
gsfan | 0:8045b4b60fef | 49 | if (r >= 0) { |
gsfan | 0:8045b4b60fef | 50 | for (;;) { |
gsfan | 0:8045b4b60fef | 51 | gs.poll(); |
gsfan | 0:8045b4b60fef | 52 | if (! gs.isConnected(r)) break; |
gsfan | 0:8045b4b60fef | 53 | |
gsfan | 0:8045b4b60fef | 54 | wait_ms(50); |
gsfan | 0:8045b4b60fef | 55 | led1 = !led1; |
gsfan | 0:8045b4b60fef | 56 | led2 = 0; |
gsfan | 0:8045b4b60fef | 57 | } |
gsfan | 0:8045b4b60fef | 58 | } |
gsfan | 0:8045b4b60fef | 59 | |
gsfan | 0:8045b4b60fef | 60 | pc.printf("exit\r\n"); |
gsfan | 0:8045b4b60fef | 61 | } |