Test example of UDP for http://mbed.org/forum/helloworld/topic/1279/, fixing some settings for LPC2368

Dependencies:   NetServices mbed

Committer:
simon
Date:
Tue Nov 23 14:16:32 2010 +0000
Revision:
1:0013c61ce210
Parent:
0:b8ef549d35bc
Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:b8ef549d35bc 1 #include "mbed.h"
simon 0:b8ef549d35bc 2 #include "EthernetNetIf.h"
simon 0:b8ef549d35bc 3 #include "UDPSocket.h"
simon 0:b8ef549d35bc 4 EthernetNetIf eth;
simon 0:b8ef549d35bc 5 UDPSocket cfgSocket;
simon 0:b8ef549d35bc 6
simon 0:b8ef549d35bc 7 void onUDPSocketEvent(UDPSocketEvent e) {
simon 0:b8ef549d35bc 8 if ( e == UDPSOCKET_READABLE ) {
simon 0:b8ef549d35bc 9 char buf[64] = {0};
simon 0:b8ef549d35bc 10 Host host;
simon 0:b8ef549d35bc 11 while ( int len = cfgSocket.recvfrom( buf, 63, &host ) ) {
simon 0:b8ef549d35bc 12 if ( len <= 0 )
simon 0:b8ef549d35bc 13 break;
simon 0:b8ef549d35bc 14 printf("From %d.%d.%d.%d: %s\n", host.getIp()[0], host.getIp()[1], host.getIp()[2], host.getIp()[3], buf);
simon 0:b8ef549d35bc 15 }
simon 0:b8ef549d35bc 16 }
simon 0:b8ef549d35bc 17 }
simon 0:b8ef549d35bc 18
simon 0:b8ef549d35bc 19 int main() {
simon 0:b8ef549d35bc 20 // pc.baud(115200);
simon 0:b8ef549d35bc 21 printf ("HEllo World - 7 *\n");
simon 0:b8ef549d35bc 22
simon 0:b8ef549d35bc 23 EthernetErr ethErr = eth.setup();
simon 0:b8ef549d35bc 24 if ( ethErr == ETH_OK ) {
simon 0:b8ef549d35bc 25 IpAddr ip = eth.getIp();
simon 0:b8ef549d35bc 26 printf("mbed IP Address is %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]);
simon 0:b8ef549d35bc 27 } else printf ("ETHERNETSETUP FAILED\n");
simon 0:b8ef549d35bc 28
simon 0:b8ef549d35bc 29 printf("seting event\n");
simon 0:b8ef549d35bc 30 cfgSocket.setOnEvent(&onUDPSocketEvent);
simon 0:b8ef549d35bc 31 printf("seting host\n");
simon 1:0013c61ce210 32 Host x(IpAddr(),5555);
simon 0:b8ef549d35bc 33 printf("seting bind\n");
simon 0:b8ef549d35bc 34
simon 0:b8ef549d35bc 35 UDPSocketErr udpErr = cfgSocket.bind( x );
simon 0:b8ef549d35bc 36 if ( udpErr != UDPSOCKET_OK )
simon 0:b8ef549d35bc 37 printf("error %d\n", udpErr);
simon 0:b8ef549d35bc 38
simon 0:b8ef549d35bc 39 int i = 0;
simon 0:b8ef549d35bc 40 Host brdHost(IpAddr(255,255,255,255), 5555); //broadcast test msg
simon 0:b8ef549d35bc 41 char cfgRqstMsg[]="SERVER CONFIG REQUEST";
simon 0:b8ef549d35bc 42
simon 0:b8ef549d35bc 43 Timer tmr;
simon 0:b8ef549d35bc 44 tmr.start();
simon 0:b8ef549d35bc 45 while (1) {
simon 0:b8ef549d35bc 46 Net::poll();
simon 0:b8ef549d35bc 47 if ( tmr.read() > 5) {
simon 0:b8ef549d35bc 48 tmr.reset();
simon 0:b8ef549d35bc 49 int nSent = cfgSocket.sendto(cfgRqstMsg,strlen(cfgRqstMsg),&brdHost);
simon 0:b8ef549d35bc 50 printf("PLONKER %d :: %d\n",++i,nSent);
simon 0:b8ef549d35bc 51 if ( nSent < 0 )
simon 0:b8ef549d35bc 52 printf("error %d\n", (UDPSocketErr)nSent);
simon 0:b8ef549d35bc 53 }
simon 0:b8ef549d35bc 54 }
simon 0:b8ef549d35bc 55 }