Simple Thing for DJ

Dependencies:   WIZnet_Library mbed

Fork of SimpleThing_DJ by Ganesh Gore

Committer:
bangbh
Date:
Mon Apr 27 00:23:46 2015 +0000
Revision:
0:412f9c1172b7
Child:
1:421fd0a7b5d7
TCP Echo example of W5500 Ethernet Kit for IoT.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bangbh 0:412f9c1172b7 1 #include "mbed.h"
bangbh 0:412f9c1172b7 2 #include "WIZnetInterface.h"
bangbh 0:412f9c1172b7 3
bangbh 0:412f9c1172b7 4 #define USE_DHCP 1
bangbh 0:412f9c1172b7 5
bangbh 0:412f9c1172b7 6 #define LOOPBACKPORT 5000
bangbh 0:412f9c1172b7 7
bangbh 0:412f9c1172b7 8 const char * IP_Addr = "192.168.11.194";
bangbh 0:412f9c1172b7 9 const char * IP_Subnet = "255.255.255.0";
bangbh 0:412f9c1172b7 10 const char * IP_Gateway = "192.168.11.1";
bangbh 0:412f9c1172b7 11 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
bangbh 0:412f9c1172b7 12
bangbh 0:412f9c1172b7 13 DigitalOut myled1(LED1);
bangbh 0:412f9c1172b7 14 Serial pc(USBTX, USBRX);
bangbh 0:412f9c1172b7 15
bangbh 0:412f9c1172b7 16 #ifdef TARGET_LPC11U68
bangbh 0:412f9c1172b7 17 SPI spi(P0_9,P0_8,P1_29);
bangbh 0:412f9c1172b7 18 WIZnetInterface ethernet(&spi,P0_2,P1_13);
bangbh 0:412f9c1172b7 19 #endif
bangbh 0:412f9c1172b7 20
bangbh 0:412f9c1172b7 21 int main() {
bangbh 0:412f9c1172b7 22
bangbh 0:412f9c1172b7 23 mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
bangbh 0:412f9c1172b7 24
bangbh 0:412f9c1172b7 25 //Set serial port baudrate speed: 115200
bangbh 0:412f9c1172b7 26 pc.baud(115200);
bangbh 0:412f9c1172b7 27
bangbh 0:412f9c1172b7 28 pc.printf("Start\r\n");
bangbh 0:412f9c1172b7 29
bangbh 0:412f9c1172b7 30 char buffer[256];
bangbh 0:412f9c1172b7 31
bangbh 0:412f9c1172b7 32 while(1)
bangbh 0:412f9c1172b7 33 {
bangbh 0:412f9c1172b7 34 #if USE_DHCP
bangbh 0:412f9c1172b7 35 int ret = ethernet.init(MAC_Addr);
bangbh 0:412f9c1172b7 36 #else
bangbh 0:412f9c1172b7 37 int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
bangbh 0:412f9c1172b7 38 #endif
bangbh 0:412f9c1172b7 39
bangbh 0:412f9c1172b7 40 if (!ret) {
bangbh 0:412f9c1172b7 41 pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
bangbh 0:412f9c1172b7 42 ret = ethernet.connect();
bangbh 0:412f9c1172b7 43 if (!ret) {
bangbh 0:412f9c1172b7 44 pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
bangbh 0:412f9c1172b7 45 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
bangbh 0:412f9c1172b7 46 } else {
bangbh 0:412f9c1172b7 47 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
bangbh 0:412f9c1172b7 48 exit(0);
bangbh 0:412f9c1172b7 49 }
bangbh 0:412f9c1172b7 50 } else {
bangbh 0:412f9c1172b7 51 pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
bangbh 0:412f9c1172b7 52 exit(0);
bangbh 0:412f9c1172b7 53 }
bangbh 0:412f9c1172b7 54
bangbh 0:412f9c1172b7 55 TCPSocketServer server;
bangbh 0:412f9c1172b7 56 server.bind(LOOPBACKPORT);
bangbh 0:412f9c1172b7 57 server.listen();
bangbh 0:412f9c1172b7 58
bangbh 0:412f9c1172b7 59 while (1) {
bangbh 0:412f9c1172b7 60 pc.printf("\nWait for new connection...\r\n");
bangbh 0:412f9c1172b7 61 TCPSocketConnection client;
bangbh 0:412f9c1172b7 62 server.accept(client);
bangbh 0:412f9c1172b7 63 client.set_blocking(false, 0); // Timeout=0.
bangbh 0:412f9c1172b7 64 pc.printf("Connection from: %s\r\n", client.get_address());
bangbh 0:412f9c1172b7 65 while (client.is_connected() == true) {
bangbh 0:412f9c1172b7 66 int n = client.receive(buffer, sizeof(buffer));
bangbh 0:412f9c1172b7 67 if(n > 0)
bangbh 0:412f9c1172b7 68 client.send_all(buffer, n);
bangbh 0:412f9c1172b7 69 if(client.is_fin_received())
bangbh 0:412f9c1172b7 70 client.close();
bangbh 0:412f9c1172b7 71 }
bangbh 0:412f9c1172b7 72 pc.printf("Disconnected.\r\n");
bangbh 0:412f9c1172b7 73 }
bangbh 0:412f9c1172b7 74 }
bangbh 0:412f9c1172b7 75 }