WIZ820io(W5200) network interface、EthernetNetIf compatible.

/media/uploads/va009039/wiz820ionetif.jpg

example

#include "WIZ820ioNetIf.h"
#include "HTTPClient.h"
#include "HTTPServer.h"

#if defined(TARGET_KL25Z)
WIZ820ioNetIf eth(PTD2,PTD3,PTD1,PTD0,PTD5);
#endif
HTTPClient http;
HTTPStream stream;

void callback(HTTPResult r){
    printf("callback %d %s\n", r, HTTPClient::ResultStr(r));
}

int main() {
    int err = eth.setup();
    if (err < 0) {
        printf("setup error %d\n", err);
        exit(-1);
    }    

    HTTPServer svr;
    svr.addHandler<SimpleHandler>("/");
    svr.bind(80);

    const char* uri = "http://va009039-mbed.appspot.com/kl25z/";
    http.get(uri, &stream, callback);
    uint8_t buf[256];
    int total = 0;
    stream.readNext(buf, sizeof(buf));
    while(1) {
        if(stream.readable()) {
            int len = stream.readLen();
            total += len;
            printf("%d %d\n", total, len);
            stream.readNext(buf, sizeof(buf));
        }
        Net::poll();
    }
}
Committer:
va009039
Date:
Sun Mar 24 11:25:31 2013 +0000
Revision:
1:22b9052d864d
Parent:
0:bdeec5f86894
WIZ820io(W8200) ethernet interface, EthernetNetIf compatible.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:bdeec5f86894 1 // MyNetIf.cpp 2012/4/17
va009039 0:bdeec5f86894 2 #include "mbed.h"
va009039 0:bdeec5f86894 3 #include "MyNetIf.h"
va009039 0:bdeec5f86894 4 #include "MyNetTcpSocket.h"
va009039 0:bdeec5f86894 5 #include "MyNetUdpSocket.h"
va009039 0:bdeec5f86894 6 #include "MyNetDnsRequest.h"
va009039 0:bdeec5f86894 7
va009039 0:bdeec5f86894 8 //#define DEBUG
va009039 0:bdeec5f86894 9
va009039 0:bdeec5f86894 10 #ifdef DEBUG
va009039 0:bdeec5f86894 11 #include "w5100.h"
va009039 0:bdeec5f86894 12 #include "Utils.h"
va009039 0:bdeec5f86894 13 #define PRINT_FUNC() printf("%p %d:%s\n", this,__LINE__,__PRETTY_FUNCTION__)
va009039 0:bdeec5f86894 14 #else //DEBUG
va009039 0:bdeec5f86894 15 #define PRINT_FUNC()
va009039 0:bdeec5f86894 16 #endif //DEBUG
va009039 0:bdeec5f86894 17
va009039 0:bdeec5f86894 18 MyNetIf::MyNetIf() : NetIf(), m_init(false)
va009039 0:bdeec5f86894 19 {
va009039 0:bdeec5f86894 20 PRINT_FUNC();
va009039 0:bdeec5f86894 21 }
va009039 0:bdeec5f86894 22
va009039 0:bdeec5f86894 23 MyNetIf::~MyNetIf() {
va009039 0:bdeec5f86894 24 PRINT_FUNC();
va009039 0:bdeec5f86894 25 }
va009039 0:bdeec5f86894 26
va009039 0:bdeec5f86894 27 void MyNetIf::init() {
va009039 0:bdeec5f86894 28 PRINT_FUNC();
va009039 0:bdeec5f86894 29 }
va009039 0:bdeec5f86894 30
va009039 0:bdeec5f86894 31 NetTcpSocket* MyNetIf::tcpSocket() {
va009039 0:bdeec5f86894 32 PRINT_FUNC();
va009039 0:bdeec5f86894 33 return new MyNetTcpSocket();
va009039 0:bdeec5f86894 34 }
va009039 0:bdeec5f86894 35
va009039 0:bdeec5f86894 36 NetUdpSocket* MyNetIf::udpSocket() {
va009039 0:bdeec5f86894 37 PRINT_FUNC();
va009039 0:bdeec5f86894 38 return new MyNetUdpSocket();
va009039 0:bdeec5f86894 39 }
va009039 0:bdeec5f86894 40
va009039 0:bdeec5f86894 41 NetDnsRequest* MyNetIf::dnsRequest(const char* hostname) {
va009039 0:bdeec5f86894 42 PRINT_FUNC();
va009039 0:bdeec5f86894 43 return new MyNetDnsRequest(hostname);
va009039 0:bdeec5f86894 44 }
va009039 0:bdeec5f86894 45
va009039 0:bdeec5f86894 46 NetDnsRequest* MyNetIf::dnsRequest(Host* pHost) {
va009039 0:bdeec5f86894 47 PRINT_FUNC();
va009039 0:bdeec5f86894 48 return new MyNetDnsRequest(pHost);
va009039 0:bdeec5f86894 49 }
va009039 0:bdeec5f86894 50
va009039 0:bdeec5f86894 51 void MyNetIf::poll() {
va009039 0:bdeec5f86894 52 PRINT_FUNC();
va009039 0:bdeec5f86894 53 #ifdef DEBUG
va009039 0:bdeec5f86894 54 printf("SnMR:");
va009039 0:bdeec5f86894 55 for(int s = 0; s < MAX_SOCK_NUM; s++) {
va009039 0:bdeec5f86894 56 printf(" %02x", W5100.readSnMR(s));
va009039 0:bdeec5f86894 57 }
va009039 0:bdeec5f86894 58 printf("\n");
va009039 0:bdeec5f86894 59
va009039 0:bdeec5f86894 60 printf("SnIR:");
va009039 0:bdeec5f86894 61 for(int s = 0; s < MAX_SOCK_NUM; s++) {
va009039 0:bdeec5f86894 62 printf(" %02x", W5100.readSnIR(s));
va009039 0:bdeec5f86894 63 }
va009039 0:bdeec5f86894 64 printf("\n");
va009039 0:bdeec5f86894 65
va009039 0:bdeec5f86894 66 printf("SnSR:");
va009039 0:bdeec5f86894 67 for(int s = 0; s < MAX_SOCK_NUM; s++) {
va009039 0:bdeec5f86894 68 printf(" %02x", W5100.readSnSR(s));
va009039 0:bdeec5f86894 69 }
va009039 0:bdeec5f86894 70 printf("\n");
va009039 0:bdeec5f86894 71
va009039 0:bdeec5f86894 72 printf("SnPORT:");
va009039 0:bdeec5f86894 73 for(int s = 0; s < MAX_SOCK_NUM; s++) {
va009039 0:bdeec5f86894 74 printf(" %d", W5100.readSnPORT(s));
va009039 0:bdeec5f86894 75 }
va009039 0:bdeec5f86894 76 printf("\n");
va009039 0:bdeec5f86894 77
va009039 0:bdeec5f86894 78 wait_ms(500);
va009039 0:bdeec5f86894 79 #endif //DEBUG
va009039 0:bdeec5f86894 80 }