This "Hello World" program is used in conjunction with the Ethernet_UDP_server program. It communicates between two FRDM-K64F boards via the Ethernet protocol.

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of Ethernet_UDP_client by Freescale

Files at this revision

API Documentation at this revision

Comitter:
mareikeFSL
Date:
Wed Dec 23 21:00:27 2015 +0000
Commit message:
initial commit

Changed in this revision

EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 29858159c001 EthernetInterface.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetInterface.lib	Wed Dec 23 21:00:27 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/EthernetInterface/#2fc406e2553f
diff -r 000000000000 -r 29858159c001 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Dec 23 21:00:27 2015 +0000
@@ -0,0 +1,119 @@
+/*------------------------------------------------------------------------------------*/
+/*  Ethernet UDP Client (to be used with Ethernet_UDP_server)                         */
+/*------------------------------------------------------------------------------------*/
+
+/*--COMPANY-----AUTHOR------DATE------------REVISION----NOTES-------------------------*/
+/*  NXP         mareikeFSL  2015.12.23      rev 1.0     initial                       */
+/*                                                                                    */
+/*------------------------------------------------------------------------------------*/
+/*  This "Hello World" program is used in conjunction with the Ethernet_UDP_server    */
+/*  program. It communicates between two FRDM-K64F boards via the Ethernet protocol.  */
+/*  To use this program, you need to do the following:                                */
+/*      - Connect an Ethernet cable between two FRDM-K64F boards (a crossover cable   */
+/*        is not required).                                                           */
+/*      - Flash one board with Ethernet_UDP_client and the other with                 */
+/*        Ethernet_UDP_server                                                         */
+/*      - [optional] If you would like to see the "Hello World" output on your        */
+/*        monitor, install and open a terminal. Tera Term is used in the Wiki for     */
+/*        this program.                                                               */
+/*------------------------------------------------------------------------------------*/
+
+
+/*--INCLUDES----------------------------------------------------------------------------*/
+#include "mbed.h"
+#include "EthernetInterface.h"
+ 
+
+/*--DEFINES-----------------------------------------------------------------------------*/
+
+
+
+/*--CONSTANTS---------------------------------------------------------------------------*/
+const int PORT = 7;
+
+static const char* SERVER_IP = "192.168.1.101"; //IP of server board
+static const char* CLIENT_IP = "192.168.1.102"; //IP of client board
+static const char* MASK = "255.255.255.0";      //mask
+static const char* GATEWAY = "192.168.1.1";     //gateway
+
+
+/*--INITS-------------------------------------------------------------------------------*/
+Serial pc(USBTX, USBRX);        //create PC interface
+EthernetInterface eth;          //create ethernet
+UDPSocket sock;                 //creat Ethernet socket
+Endpoint server;                //create endpoint
+
+DigitalOut red(LED_RED);        //debug led
+DigitalOut green(LED_GREEN);    //debug led
+
+
+/*--VARIABLES---------------------------------------------------------------------------*/
+int n;                  //size of received message
+char in_buffer[1];      //create receive buffer
+char counter[1] = {0};  //sample send buffer
+
+
+/*--FUNCTION DECLARATIONS---------------------------------------------------------------*/
+void init_usb(void);    //initializes pc.printf if required
+void init_eth(void);    //initializes Ethernet
+void end_eth(void);     //closes Ethernet socket
+int main(void);         //main
+
+
+/*--FUNCTION DEFINITIONS----------------------------------------------------------------*/
+
+/*****************************************************************************INIT_USB***/
+void init_usb(void)
+{
+    pc.baud(9600);    //baud
+    
+}   //end init_usb()
+
+/*****************************************************************************INIT_ETH***/
+void init_eth(void)
+{
+    eth.init(CLIENT_IP, MASK, GATEWAY);                                         //set up IP
+    eth.connect();                                                              //connect ethernet
+    pc.printf("\nCLIENT - Client IP Address is %s\r\n", eth.getIPAddress());    //get client IP address
+    
+    sock.init();                                                                //initialize socket
+    
+    server.set_address(SERVER_IP, PORT);                                        //set address of server
+    
+}   //end init_eth()
+
+/******************************************************************************END_ETH***/
+void end_eth(void)
+{
+    sock.close();       //close socket
+    eth.disconnect();   //close Ethernet
+    
+}   //end end_eth()
+
+/*********************************************************************************MAIN***/
+int main(void)
+{
+    red = 0;                                                                                //client
+    green = 1;
+        
+    init_usb();                                                                             //initialize the PC interface
+    init_eth();                                                                             //initialize the Ethernet connection
+
+    while(true)                                                                             //repeat forever
+    {
+        pc.printf("\nCLIENT - Sending '%i' to server %s\r\n", counter[0], SERVER_IP);       //print message to send
+        sock.sendTo(server, counter, sizeof(counter));                                      //send message
+        
+        pc.printf("CLIENT - Waiting for UDP packet...\r\n");                                //wait for message
+        
+        n = sock.receiveFrom(server, in_buffer, sizeof(in_buffer));                         //receive message from server
+        
+        in_buffer[n] = '\0';                                                                //add \0 to end of message
+        pc.printf("CLIENT - Received '%i' from server %s\r\n", in_buffer[0], SERVER_IP);    //print message received
+        
+        counter[0] = (counter[0] + 1)%11;                                                   //only count up to 10, then reset to 0
+        
+        wait(1);                                                                            //wait 1 second
+    }
+    
+}   //end main()
diff -r 000000000000 -r 29858159c001 mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Wed Dec 23 21:00:27 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#c825593ece39
diff -r 000000000000 -r 29858159c001 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Dec 23 21:00:27 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/031413cf7a89
\ No newline at end of file