TCP client see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Dependencies:   GSwifi mbed

Fork of GSwifi_tcpserver by gs fan

main.cpp

Committer:
gsfan
Date:
2013-02-26
Revision:
4:e6192ed22442
Parent:
3:7ec5f2741abf

File content as of revision 4:e6192ed22442:

#include "mbed.h"
#include "GSwifi.h"

#define HOST "test.example.com"
#define PORT 10080

#define SECURE GSwifi::GSSEC_WPA_PSK
#define SSID "SSID"
#define PASS "PASSPHRASE"

GSwifi gs(p13, p14, p20); // TX, RX, Reset (no flow control)
//GSwifi gs(p13, p14, p12, P0_22, p20, NC, 115200); // TX, RX, CTS, RTS, Reset, Alarm

Serial pc(USBTX, USBRX);
DigitalOut led1(LED1), led2(LED2);

void onGsReceive (int cid, int len) {
    int i;
    char buf[100];
    Host host;

    led2 = 1;

    i = gs.recv(cid, buf, sizeof(buf));
    pc.printf("recv %d\r\n", i);
}

int main () {
    IpAddr ipaddr, netmask, gateway, nameserver;
    Host host;
    int cid;

    led1 = 1;
    pc.baud(115200);

    pc.printf("connecting...\r\n");
    if (gs.connect(SECURE, SSID, PASS)) {
        return -1;
    }
    gs.getAddress(ipaddr, netmask, gateway, nameserver);
    pc.printf("ip %d.%d.%d.%d\r\n", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);

    pc.printf("connection\r\n");
    host.setName(HOST);
    host.setPort(PORT);
    cid = gs.open(host, GSwifi::GSPROT_TCP, &onGsReceive); // TCP client
//    cid = gs.open(host, GSwifi::GSPROT_UDP, &onGsReceive); // UDP client
    if (cid < 0) {
        return -1;
    }

    for (;;) {
        gs.poll();

        gs.send(cid, "Hello", 5);
        wait_ms(500);
        led1 = !led1;
        led2 = 0;
    }
}