gavin beardall / Mbed 2 deprecated EthernetNetIf

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002  * eth1
00003  *
00004  * http://mbed.org/cookbook/Ethernet
00005  *
00006  */
00007 
00008 #include "mbed.h"
00009 
00010 #include "EthernetNetIf.h"
00011 #include "TCPSocket.h"
00012 #include "ipaddr.h"
00013 #include "host.h"
00014 
00015 
00016 EthernetNetIf eth;
00017 
00018 
00019 DigitalOut myled(LED1);
00020 
00021 char* sockErr(int err, int flag=0) {
00022     static char buff[32];
00023 
00024     if(flag == 0 && err == TCPSOCKET_OK) ///<Success
00025         return "TCPSOCKET_OK";
00026         
00027     switch(err) {
00028     case TCPSOCKET_SETUP: ///<TCPSocket not properly configured
00029         return "TCPSOCKET_SETUP";
00030     case TCPSOCKET_TIMEOUT: ///<Connection timed out
00031         return "TCPSOCKET_TIMEOUT";
00032     case TCPSOCKET_IF: ///<Interface has problems, does not exist or is not initialized
00033         return "TCPSOCKET_IF";
00034     case TCPSOCKET_MEM: ///<Not enough mem
00035         return "TCPSOCKET_MEM";
00036     case TCPSOCKET_INUSE: ///<Interface / Port is in use
00037         return "TCPSOCKET_INUSE";
00038     case TCPSOCKET_EMPTY: ///<Connections queue is empty
00039         return "TCPSOCKET_EMPTY";
00040     case TCPSOCKET_RST:
00041         return "TCPSOCKET_RST";
00042     }
00043     
00044     sprintf(buff, "%d", err);
00045     
00046     return buff;
00047 } // sockErr
00048 
00049 int main() {
00050 
00051     printf("eth1\n\r");
00052 
00053     EthernetErr etherr = eth.setup();
00054     printf("etherr=%d\n\r", etherr);
00055     
00056     
00057     TCPSocket sock;
00058     TCPSocketErr sockerr;
00059     
00060 #if 0
00061     // Send/recv
00062     
00063     IpAddr ip(209,85,147,106); // google.com
00064         
00065     Host host(ip,80,"google.com");
00066     
00067     sockerr = sock.connect(host);
00068     printf("connect=%s\n\r", sockErr(sockerr));
00069     
00070     int len = sock.send("GET /\n\r", 7);
00071     printf("send=%s\n\r", sockErr(len,1));
00072     
00073     char buff[1024];
00074     len = sock.recv(buff, sizeof(buff));
00075     printf("recv=%s\n\r", sockErr(len,1));
00076 #endif
00077 
00078 #if 1    
00079     // Listener
00080     
00081     Host me(eth.getIp(), 80, "mbed");
00082     sockerr = sock.bind(me);
00083     printf("bind=%s\n\r", sockErr(sockerr));
00084     
00085     sockerr = sock.listen();
00086     printf("listen=%s\n\r", sockErr(sockerr));
00087     
00088     Host client;
00089     TCPSocket* pNewTcpSocket;
00090     sockerr = sock.accept(&client, &pNewTcpSocket);
00091     printf("accept=%s\n\r", sockErr(sockerr));
00092 #endif
00093 
00094 } // main
00095 
00096 // == end ==