WIZ820io(W5200) network interface、EthernetNetIf compatible.
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(); } }
MyNetIf.cpp@1:22b9052d864d, 2013-03-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |