Ethernet wrapper

Dependencies:   EthernetNetIf

Dependents:   DodgeRadioEmulatorv30

Committer:
rtgree01
Date:
Tue Jan 01 03:52:30 2013 +0000
Revision:
1:e6c911335a8f
Parent:
0:df5bd4645f1e
dunno?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rtgree01 0:df5bd4645f1e 1 #include "Eth.h"
rtgree01 0:df5bd4645f1e 2
rtgree01 0:df5bd4645f1e 3 Eth::Eth()
rtgree01 0:df5bd4645f1e 4 {
rtgree01 0:df5bd4645f1e 5 eth = new EthernetNetIf(IpAddr(10,10,10,2), IpAddr(255,255,255,0), IpAddr(10,10,10,1), IpAddr(10,10,10,1));
rtgree01 0:df5bd4645f1e 6 EthernetErr ethErr = eth->setup();
rtgree01 0:df5bd4645f1e 7 if(ethErr)
rtgree01 0:df5bd4645f1e 8 {
rtgree01 0:df5bd4645f1e 9 printf("Error %d in setup.\n", ethErr);
rtgree01 0:df5bd4645f1e 10 return;
rtgree01 0:df5bd4645f1e 11 }
rtgree01 0:df5bd4645f1e 12 printf("Eth Setup OK\r\n");
rtgree01 0:df5bd4645f1e 13
rtgree01 0:df5bd4645f1e 14 // checkNetTicker.attach(this, &Eth::Operate, 0.02f);
rtgree01 0:df5bd4645f1e 15 }
rtgree01 0:df5bd4645f1e 16
rtgree01 0:df5bd4645f1e 17 void Eth::Operate(void)
rtgree01 0:df5bd4645f1e 18 {
rtgree01 0:df5bd4645f1e 19 Net::poll();
rtgree01 0:df5bd4645f1e 20 }
rtgree01 0:df5bd4645f1e 21
rtgree01 0:df5bd4645f1e 22 UDPSock::UDPSock(Host *l, int buff, SocketReceiver *sr)
rtgree01 0:df5bd4645f1e 23 {
rtgree01 0:df5bd4645f1e 24 local = l;
rtgree01 0:df5bd4645f1e 25 bufferSize = buff;
rtgree01 0:df5bd4645f1e 26 receiver = sr;
rtgree01 0:df5bd4645f1e 27 buffer = new char[bufferSize];
rtgree01 0:df5bd4645f1e 28
rtgree01 0:df5bd4645f1e 29 udp.setOnEvent(this, &UDPSock::onUDPSocketEvent);
rtgree01 0:df5bd4645f1e 30 udp.bind(*local);
rtgree01 0:df5bd4645f1e 31 }
rtgree01 0:df5bd4645f1e 32
rtgree01 0:df5bd4645f1e 33 void UDPSock::SendTo(Host *remote, int size, char *data)
rtgree01 0:df5bd4645f1e 34 {
rtgree01 0:df5bd4645f1e 35 udp.sendto(data, size, remote);
rtgree01 0:df5bd4645f1e 36 }
rtgree01 0:df5bd4645f1e 37
rtgree01 0:df5bd4645f1e 38 void UDPSock::onUDPSocketEvent(UDPSocketEvent e)
rtgree01 0:df5bd4645f1e 39 {
rtgree01 0:df5bd4645f1e 40 switch(e)
rtgree01 0:df5bd4645f1e 41 {
rtgree01 0:df5bd4645f1e 42 case UDPSOCKET_READABLE: //The only event for now
rtgree01 0:df5bd4645f1e 43 Host host;
rtgree01 0:df5bd4645f1e 44 while( int len = udp.recvfrom( buffer, bufferSize, &host ) )
rtgree01 0:df5bd4645f1e 45 {
rtgree01 0:df5bd4645f1e 46 if( len <= 0 )
rtgree01 0:df5bd4645f1e 47 break;
rtgree01 0:df5bd4645f1e 48
rtgree01 0:df5bd4645f1e 49 receiver->ReceivedData(true, len, buffer);
rtgree01 0:df5bd4645f1e 50 }
rtgree01 0:df5bd4645f1e 51 break;
rtgree01 0:df5bd4645f1e 52 }
rtgree01 0:df5bd4645f1e 53 }