Dependencies:   mbed

Committer:
gbeardall
Date:
Mon Oct 17 10:39:17 2011 +0000
Revision:
0:715023d993d6

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gbeardall 0:715023d993d6 1 /*
gbeardall 0:715023d993d6 2 * eth1
gbeardall 0:715023d993d6 3 *
gbeardall 0:715023d993d6 4 * http://mbed.org/cookbook/Ethernet
gbeardall 0:715023d993d6 5 *
gbeardall 0:715023d993d6 6 */
gbeardall 0:715023d993d6 7
gbeardall 0:715023d993d6 8 #include "mbed.h"
gbeardall 0:715023d993d6 9
gbeardall 0:715023d993d6 10 #include "EthernetNetIf.h"
gbeardall 0:715023d993d6 11 #include "TCPSocket.h"
gbeardall 0:715023d993d6 12 #include "ipaddr.h"
gbeardall 0:715023d993d6 13 #include "host.h"
gbeardall 0:715023d993d6 14
gbeardall 0:715023d993d6 15
gbeardall 0:715023d993d6 16 EthernetNetIf eth;
gbeardall 0:715023d993d6 17
gbeardall 0:715023d993d6 18
gbeardall 0:715023d993d6 19 DigitalOut myled(LED1);
gbeardall 0:715023d993d6 20
gbeardall 0:715023d993d6 21 char* sockErr(int err, int flag=0) {
gbeardall 0:715023d993d6 22 static char buff[32];
gbeardall 0:715023d993d6 23
gbeardall 0:715023d993d6 24 if(flag == 0 && err == TCPSOCKET_OK) ///<Success
gbeardall 0:715023d993d6 25 return "TCPSOCKET_OK";
gbeardall 0:715023d993d6 26
gbeardall 0:715023d993d6 27 switch(err) {
gbeardall 0:715023d993d6 28 case TCPSOCKET_SETUP: ///<TCPSocket not properly configured
gbeardall 0:715023d993d6 29 return "TCPSOCKET_SETUP";
gbeardall 0:715023d993d6 30 case TCPSOCKET_TIMEOUT: ///<Connection timed out
gbeardall 0:715023d993d6 31 return "TCPSOCKET_TIMEOUT";
gbeardall 0:715023d993d6 32 case TCPSOCKET_IF: ///<Interface has problems, does not exist or is not initialized
gbeardall 0:715023d993d6 33 return "TCPSOCKET_IF";
gbeardall 0:715023d993d6 34 case TCPSOCKET_MEM: ///<Not enough mem
gbeardall 0:715023d993d6 35 return "TCPSOCKET_MEM";
gbeardall 0:715023d993d6 36 case TCPSOCKET_INUSE: ///<Interface / Port is in use
gbeardall 0:715023d993d6 37 return "TCPSOCKET_INUSE";
gbeardall 0:715023d993d6 38 case TCPSOCKET_EMPTY: ///<Connections queue is empty
gbeardall 0:715023d993d6 39 return "TCPSOCKET_EMPTY";
gbeardall 0:715023d993d6 40 case TCPSOCKET_RST:
gbeardall 0:715023d993d6 41 return "TCPSOCKET_RST";
gbeardall 0:715023d993d6 42 }
gbeardall 0:715023d993d6 43
gbeardall 0:715023d993d6 44 sprintf(buff, "%d", err);
gbeardall 0:715023d993d6 45
gbeardall 0:715023d993d6 46 return buff;
gbeardall 0:715023d993d6 47 } // sockErr
gbeardall 0:715023d993d6 48
gbeardall 0:715023d993d6 49 int main() {
gbeardall 0:715023d993d6 50
gbeardall 0:715023d993d6 51 printf("eth1\n\r");
gbeardall 0:715023d993d6 52
gbeardall 0:715023d993d6 53 EthernetErr etherr = eth.setup();
gbeardall 0:715023d993d6 54 printf("etherr=%d\n\r", etherr);
gbeardall 0:715023d993d6 55
gbeardall 0:715023d993d6 56
gbeardall 0:715023d993d6 57 TCPSocket sock;
gbeardall 0:715023d993d6 58 TCPSocketErr sockerr;
gbeardall 0:715023d993d6 59
gbeardall 0:715023d993d6 60 #if 0
gbeardall 0:715023d993d6 61 // Send/recv
gbeardall 0:715023d993d6 62
gbeardall 0:715023d993d6 63 IpAddr ip(209,85,147,106); // google.com
gbeardall 0:715023d993d6 64
gbeardall 0:715023d993d6 65 Host host(ip,80,"google.com");
gbeardall 0:715023d993d6 66
gbeardall 0:715023d993d6 67 sockerr = sock.connect(host);
gbeardall 0:715023d993d6 68 printf("connect=%s\n\r", sockErr(sockerr));
gbeardall 0:715023d993d6 69
gbeardall 0:715023d993d6 70 int len = sock.send("GET /\n\r", 7);
gbeardall 0:715023d993d6 71 printf("send=%s\n\r", sockErr(len,1));
gbeardall 0:715023d993d6 72
gbeardall 0:715023d993d6 73 char buff[1024];
gbeardall 0:715023d993d6 74 len = sock.recv(buff, sizeof(buff));
gbeardall 0:715023d993d6 75 printf("recv=%s\n\r", sockErr(len,1));
gbeardall 0:715023d993d6 76 #endif
gbeardall 0:715023d993d6 77
gbeardall 0:715023d993d6 78 #if 1
gbeardall 0:715023d993d6 79 // Listener
gbeardall 0:715023d993d6 80
gbeardall 0:715023d993d6 81 Host me(eth.getIp(), 80, "mbed");
gbeardall 0:715023d993d6 82 sockerr = sock.bind(me);
gbeardall 0:715023d993d6 83 printf("bind=%s\n\r", sockErr(sockerr));
gbeardall 0:715023d993d6 84
gbeardall 0:715023d993d6 85 sockerr = sock.listen();
gbeardall 0:715023d993d6 86 printf("listen=%s\n\r", sockErr(sockerr));
gbeardall 0:715023d993d6 87
gbeardall 0:715023d993d6 88 Host client;
gbeardall 0:715023d993d6 89 TCPSocket* pNewTcpSocket;
gbeardall 0:715023d993d6 90 sockerr = sock.accept(&client, &pNewTcpSocket);
gbeardall 0:715023d993d6 91 printf("accept=%s\n\r", sockErr(sockerr));
gbeardall 0:715023d993d6 92 #endif
gbeardall 0:715023d993d6 93
gbeardall 0:715023d993d6 94 } // main
gbeardall 0:715023d993d6 95
gbeardall 0:715023d993d6 96 // == end ==