K64F, use static IP, UDP broadcast

Committer:
stanly88
Date:
Tue Apr 02 07:12:05 2019 +0000
Revision:
1:8bbcb6a6ca18
Parent:
0:cf516d904427
K64F use static IP, broadcast UDP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
deepikabhavnani 0:cf516d904427 1 #include "mbed.h"
deepikabhavnani 0:cf516d904427 2 #include "EthernetInterface.h"
deepikabhavnani 0:cf516d904427 3
deepikabhavnani 0:cf516d904427 4 // Network interface
deepikabhavnani 0:cf516d904427 5 EthernetInterface net;
deepikabhavnani 0:cf516d904427 6
deepikabhavnani 0:cf516d904427 7 // Time protocol implementation : Address: time.nist.gov UDPPort: 37
deepikabhavnani 0:cf516d904427 8
deepikabhavnani 0:cf516d904427 9 typedef struct {
deepikabhavnani 0:cf516d904427 10 uint32_t secs; // Transmit Time-stamp seconds.
deepikabhavnani 0:cf516d904427 11 }ntp_packet;
deepikabhavnani 0:cf516d904427 12
deepikabhavnani 0:cf516d904427 13 int main() {
deepikabhavnani 0:cf516d904427 14 // Bring up the ethernet interface
deepikabhavnani 0:cf516d904427 15 printf("UDP Socket example\n");
stanly88 1:8bbcb6a6ca18 16 if( NSAPI_ERROR_OK != net.set_network("192.168.0.119",//Static IP
stanly88 1:8bbcb6a6ca18 17 "255.255.255.0", //NetMask
stanly88 1:8bbcb6a6ca18 18 "192.168.0.1") )// gateway )
stanly88 1:8bbcb6a6ca18 19 {
stanly88 1:8bbcb6a6ca18 20 printf("Static IP setting Error\n");
stanly88 1:8bbcb6a6ca18 21 }
stanly88 1:8bbcb6a6ca18 22
deepikabhavnani 0:cf516d904427 23 if(0 != net.connect()) {
deepikabhavnani 0:cf516d904427 24 printf("Error connecting\n");
deepikabhavnani 0:cf516d904427 25 return -1;
deepikabhavnani 0:cf516d904427 26 }
deepikabhavnani 0:cf516d904427 27
deepikabhavnani 0:cf516d904427 28 // Show the network address
deepikabhavnani 0:cf516d904427 29 const char *ip = net.get_ip_address();
deepikabhavnani 0:cf516d904427 30 printf("IP address is: %s\n", ip ? ip : "No IP");
deepikabhavnani 0:cf516d904427 31
deepikabhavnani 0:cf516d904427 32 UDPSocket sock(&net);
deepikabhavnani 0:cf516d904427 33 SocketAddress sockAddr;
deepikabhavnani 0:cf516d904427 34
stanly88 1:8bbcb6a6ca18 35 /*
deepikabhavnani 0:cf516d904427 36 char out_buffer[] = "time";
stanly88 1:8bbcb6a6ca18 37
deepikabhavnani 0:cf516d904427 38 if(0 > sock.sendto("time.nist.gov", 37, out_buffer, sizeof(out_buffer))) {
deepikabhavnani 0:cf516d904427 39 printf("Error sending data\n");
deepikabhavnani 0:cf516d904427 40 return -1;
deepikabhavnani 0:cf516d904427 41 }
deepikabhavnani 0:cf516d904427 42
deepikabhavnani 0:cf516d904427 43 ntp_packet in_data;
deepikabhavnani 0:cf516d904427 44 int n = sock.recvfrom(&sockAddr, &in_data, sizeof(ntp_packet));
deepikabhavnani 0:cf516d904427 45 in_data.secs = ntohl( in_data.secs ) - 2208988800; // 1900-1970
deepikabhavnani 0:cf516d904427 46 printf("Time Received %lu seconds since 1/01/1900 00:00 GMT\n",
deepikabhavnani 0:cf516d904427 47 (uint32_t)in_data.secs);
deepikabhavnani 0:cf516d904427 48 printf("Time = %s", ctime(( const time_t* )&in_data.secs));
deepikabhavnani 0:cf516d904427 49
deepikabhavnani 0:cf516d904427 50 printf("Time Server Address: %s Port: %d\n\r",
deepikabhavnani 0:cf516d904427 51 sockAddr.get_ip_address(), sockAddr.get_port());
deepikabhavnani 0:cf516d904427 52
deepikabhavnani 0:cf516d904427 53 // Close the socket and bring down the network interface
deepikabhavnani 0:cf516d904427 54 sock.close();
deepikabhavnani 0:cf516d904427 55 net.disconnect();
stanly88 1:8bbcb6a6ca18 56 */
stanly88 1:8bbcb6a6ca18 57
stanly88 1:8bbcb6a6ca18 58 char out_buffer[40];
stanly88 1:8bbcb6a6ca18 59 int sendCnt = 0;
stanly88 1:8bbcb6a6ca18 60 while(1)
stanly88 1:8bbcb6a6ca18 61 {
stanly88 1:8bbcb6a6ca18 62 sprintf(out_buffer,"Tx:%d\r\n", ++sendCnt);
stanly88 1:8bbcb6a6ca18 63 if(0 > sock.sendto("192.168.0.255", 2000, out_buffer, strlen(out_buffer)))
stanly88 1:8bbcb6a6ca18 64 {
stanly88 1:8bbcb6a6ca18 65 printf("Error sending data\n");
stanly88 1:8bbcb6a6ca18 66 break;
stanly88 1:8bbcb6a6ca18 67 }
stanly88 1:8bbcb6a6ca18 68 printf(out_buffer);
stanly88 1:8bbcb6a6ca18 69 wait(0.5);
stanly88 1:8bbcb6a6ca18 70 }
stanly88 1:8bbcb6a6ca18 71 sock.close();
stanly88 1:8bbcb6a6ca18 72 net.disconnect();
deepikabhavnani 0:cf516d904427 73 return 0;
deepikabhavnani 0:cf516d904427 74 }