GainSpan Wi-Fi library http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Dependencies:   mbed

Committer:
gsfan
Date:
Tue Jun 26 15:52:46 2012 +0000
Revision:
0:09dc448bee21

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 0:09dc448bee21 1 #include "mbed.h"
gsfan 0:09dc448bee21 2 #include "GSwifi.h"
gsfan 0:09dc448bee21 3
gsfan 0:09dc448bee21 4 #define SECURITY GSSEC_WPA_PSK
gsfan 0:09dc448bee21 5 #define SSID "WIFISSID"
gsfan 0:09dc448bee21 6 #define PASSPHRASE "abcdef1234"
gsfan 0:09dc448bee21 7
gsfan 0:09dc448bee21 8 Serial pc(USBTX, USBRX);
gsfan 0:09dc448bee21 9 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
gsfan 0:09dc448bee21 10
gsfan 0:09dc448bee21 11 GSwifi gs(p13, p14, p12, P0_22); // TX, RX, CTS, RTS
gsfan 0:09dc448bee21 12
gsfan 0:09dc448bee21 13
gsfan 0:09dc448bee21 14 // callback
gsfan 0:09dc448bee21 15 void onGsReceive (int cid, int acid, int len) {
gsfan 0:09dc448bee21 16 int i, j;
gsfan 0:09dc448bee21 17 char buf[GS_DATA_SIZE];
gsfan 0:09dc448bee21 18
gsfan 0:09dc448bee21 19 pc.printf("recv %d %d %d\r\n", cid, acid, len);
gsfan 0:09dc448bee21 20 j = gs.recv(cid, buf, len);
gsfan 0:09dc448bee21 21 if (j > 0) {
gsfan 0:09dc448bee21 22 pc.printf("data: ");
gsfan 0:09dc448bee21 23 for (i = 0; i < j; i ++) {
gsfan 0:09dc448bee21 24 pc.printf("%02x ", buf[i]);
gsfan 0:09dc448bee21 25 }
gsfan 0:09dc448bee21 26 pc.printf("\r\n");
gsfan 0:09dc448bee21 27 }
gsfan 0:09dc448bee21 28 }
gsfan 0:09dc448bee21 29
gsfan 0:09dc448bee21 30 int main () {
gsfan 0:09dc448bee21 31 Host host;
gsfan 0:09dc448bee21 32
gsfan 0:09dc448bee21 33 pc.baud(115200);
gsfan 0:09dc448bee21 34 pc.printf("Gainspan\r\n");
gsfan 0:09dc448bee21 35 wait(1);
gsfan 0:09dc448bee21 36
gsfan 0:09dc448bee21 37 // connection test
gsfan 0:09dc448bee21 38 if (gs.connect(SECURITY, SSID, PASSPHRASE, 0)) {
gsfan 0:09dc448bee21 39 pc.printf("Can't connected.\r\n");
gsfan 0:09dc448bee21 40 return -1;
gsfan 0:09dc448bee21 41 }
gsfan 0:09dc448bee21 42 /*
gsfan 0:09dc448bee21 43 // adhock test
gsfan 0:09dc448bee21 44 gs.adhock(GSSEC_OPEN, SSID, PASSPHRASE, IpAddr(192,168,15,5), IpAddr(255,255,255,0));
gsfan 0:09dc448bee21 45 */
gsfan 0:09dc448bee21 46 /*
gsfan 0:09dc448bee21 47 // limited ap test
gsfan 0:09dc448bee21 48 gs.limitedap(GSSEC_WEP, SSID, PASSPHRASE, IpAddr(192,168,15,5), IpAddr(255,255,255,0));
gsfan 0:09dc448bee21 49 */
gsfan 0:09dc448bee21 50
gsfan 0:09dc448bee21 51 // udp server test
gsfan 0:09dc448bee21 52 gs.listen(10464, GSPROT_UDP, onGsReceive);
gsfan 0:09dc448bee21 53
gsfan 0:09dc448bee21 54 led1 = 1;
gsfan 0:09dc448bee21 55
gsfan 0:09dc448bee21 56 /*
gsfan 0:09dc448bee21 57 // http get test
gsfan 0:09dc448bee21 58 host.setName("mbed.org");
gsfan 0:09dc448bee21 59 gs.httpGet(host, "/");
gsfan 0:09dc448bee21 60 */
gsfan 0:09dc448bee21 61 /*
gsfan 0:09dc448bee21 62 // http get test2
gsfan 0:09dc448bee21 63 host.setName("mbed.org");
gsfan 0:09dc448bee21 64 host.setPort(80);
gsfan 0:09dc448bee21 65 if (! gs.getHostByName(host)) {
gsfan 0:09dc448bee21 66 pc.printf("resolv %d.%d.%d.%d\r\n", host.getIp()[0], host.getIp()[1], host.getIp()[2], host.getIp()[3]);
gsfan 0:09dc448bee21 67
gsfan 0:09dc448bee21 68 sk = gs.open(host, GSPROT_TCP);
gsfan 0:09dc448bee21 69 if (sk >= 0) {
gsfan 0:09dc448bee21 70 int i;
gsfan 0:09dc448bee21 71 char buf[1500];
gsfan 0:09dc448bee21 72
gsfan 0:09dc448bee21 73 gs.send(sk, "GET /none HTTP/1.0", 18);
gsfan 0:09dc448bee21 74 gs.send(sk, "\r\n", 2);
gsfan 0:09dc448bee21 75 gs.send(sk, "\r\n", 2);
gsfan 0:09dc448bee21 76 wait_ms(5000);
gsfan 0:09dc448bee21 77
gsfan 0:09dc448bee21 78 i = gs.recv(sk, buf, sizeof(buf));
gsfan 0:09dc448bee21 79 if (i) {
gsfan 0:09dc448bee21 80 buf[i] = 0;
gsfan 0:09dc448bee21 81 pc.printf("\r\n");
gsfan 0:09dc448bee21 82 pc.printf(buf);
gsfan 0:09dc448bee21 83 }
gsfan 0:09dc448bee21 84
gsfan 0:09dc448bee21 85 gs.close(sk);
gsfan 0:09dc448bee21 86 }
gsfan 0:09dc448bee21 87 }
gsfan 0:09dc448bee21 88 */
gsfan 0:09dc448bee21 89
gsfan 0:09dc448bee21 90 skip:
gsfan 0:09dc448bee21 91 // PC Serial <--> GS uart
gsfan 0:09dc448bee21 92 led2 = 1;
gsfan 0:09dc448bee21 93 for (;;) {
gsfan 0:09dc448bee21 94 gs.poll();
gsfan 0:09dc448bee21 95 if (pc.readable()) {
gsfan 0:09dc448bee21 96 led3 = 1;
gsfan 0:09dc448bee21 97 gs.putc(pc.getc());
gsfan 0:09dc448bee21 98 led3 = 0;
gsfan 0:09dc448bee21 99 }
gsfan 0:09dc448bee21 100 if (gs.readable()) {
gsfan 0:09dc448bee21 101 led4 = 1;
gsfan 0:09dc448bee21 102 pc.putc(gs.getc());
gsfan 0:09dc448bee21 103 led4 = 0;
gsfan 0:09dc448bee21 104 }
gsfan 0:09dc448bee21 105 }
gsfan 0:09dc448bee21 106 }