Websocket Test Program for W5500 (WIZ550io) FRDM-KL25Z WIZ550io Ethernet Board.

Dependencies:   W5500Interface WebSocketClient mbed

Fork of Websocket_Ethernet_W5500 by W5500-Ethernet-Interface Makers

Websocket example using Ethernet component of WIZ550io (W5500). FRDM-KL25Z is used.

Committer:
kaizen
Date:
Tue Oct 21 23:28:40 2014 +0000
Revision:
6:5bd7bd3e1b83
Parent:
5:5f427a506928
Changed the latest ethernet interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bongjun 0:2efa5e59223d 1 #include "mbed.h"
kaizen 6:5bd7bd3e1b83 2 #include "EthernetInterface.h"
Bongjun 0:2efa5e59223d 3 #include "Websocket.h"
embeddist 4:8b4aacaab1f1 4
embeddist 4:8b4aacaab1f1 5 #define _DHCP
embeddist 5:5f427a506928 6 //#define _USE_WIZ550io
Bongjun 0:2efa5e59223d 7 DigitalOut myled(LED1);
Bongjun 0:2efa5e59223d 8
Bongjun 0:2efa5e59223d 9 int main()
Bongjun 0:2efa5e59223d 10 {
Bongjun 0:2efa5e59223d 11 #if defined(TARGET_LPC1114)
Bongjun 0:2efa5e59223d 12 SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
Bongjun 0:2efa5e59223d 13 EthernetInterfaceW5500 eth(&spi, dp25, dp26); // spi, cs, reset
Bongjun 0:2efa5e59223d 14
Bongjun 0:2efa5e59223d 15 #elif defined(TARGET_LPC1768)
Bongjun 0:2efa5e59223d 16 SPI spi(p11, p12, p13); // mosi, miso, sclk
Bongjun 0:2efa5e59223d 17 EthernetInterfaceW5500 eth(&spi, p14, p15); // spi, cs, reset
Bongjun 0:2efa5e59223d 18
Bongjun 0:2efa5e59223d 19 #elif defined(TARGET_LPC11U68)
Bongjun 0:2efa5e59223d 20 SPI spi(P0_9, P0_8, P1_29); // mosi, miso, sclk
embeddist 5:5f427a506928 21 EthernetInterfaceW5500 eth(&spi, P0_2, P1_28);//scs(P0_2), nRESET(P1_28)
Bongjun 0:2efa5e59223d 22 spi.format(8,0); // 8bit, mode 0
Bongjun 0:2efa5e59223d 23 spi.frequency(7000000); // 7MHz
Bongjun 0:2efa5e59223d 24 wait(1); // 1 second for stable state
embeddist 4:8b4aacaab1f1 25 #elif defined(TARGET_KL25Z)
kaizen 6:5bd7bd3e1b83 26 Serial pc(USBTX, USBRX);
kaizen 6:5bd7bd3e1b83 27 pc.baud(115200);
kaizen 6:5bd7bd3e1b83 28 printf("spi init\r\n");
embeddist 4:8b4aacaab1f1 29 SPI spi(D11, D12, D13); // mosi, miso, sclk
kaizen 6:5bd7bd3e1b83 30 wait(1); // 1 second for stable state
kaizen 6:5bd7bd3e1b83 31 EthernetInterface eth(&spi, D10, D9);//scs(D10), nRESET(PTA20)
kaizen 6:5bd7bd3e1b83 32 printf("App Start\r\n");
kaizen 6:5bd7bd3e1b83 33 wait(1); // 1 second for stable state
Bongjun 0:2efa5e59223d 34 #endif
embeddist 5:5f427a506928 35
embeddist 5:5f427a506928 36 #ifndef _USE_WIZ550io
embeddist 5:5f427a506928 37 // as your env. change to real MAC address;
embeddist 5:5f427a506928 38 uint8_t mac_addr[6] = {0x00, 0x08, 0xdc, 0x1c, 0xb8, 0x4a}; // for example
embeddist 5:5f427a506928 39 #endif
embeddist 4:8b4aacaab1f1 40
Bongjun 0:2efa5e59223d 41 #ifdef _DHCP
embeddist 5:5f427a506928 42
embeddist 5:5f427a506928 43 #ifdef _USE_WIZ550io
embeddist 5:5f427a506928 44 eth.init();
embeddist 5:5f427a506928 45 #else
embeddist 4:8b4aacaab1f1 46 eth.init((uint8_t *)mac_addr); //Use DHCP
embeddist 5:5f427a506928 47 #endif
Bongjun 0:2efa5e59223d 48 eth.connect();
Bongjun 0:2efa5e59223d 49 //printf("IP Address is %s\n\r", eth.getIPAddress());
Bongjun 0:2efa5e59223d 50 printf("Initialized, MAC: %s\n", eth.getMACAddress());
Bongjun 0:2efa5e59223d 51 printf("Connected, IP: %s, MASK: %s, GW: %s\n",
Bongjun 0:2efa5e59223d 52 eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
Bongjun 0:2efa5e59223d 53
Bongjun 0:2efa5e59223d 54 #else
Bongjun 1:22e5197655a9 55 // as your env. change to real IP address and so on.
embeddist 5:5f427a506928 56 #ifdef _USE_WIZ550io
embeddist 4:8b4aacaab1f1 57 //int ret = eth.init("222.98.173.212", "255.255.255.192", "222.98.173.254");
embeddist 5:5f427a506928 58 int ret = eth.init("192.168.77.10", "255.255.255.0", "192.168.77.1");
embeddist 5:5f427a506928 59 #else
embeddist 4:8b4aacaab1f1 60 int ret = eth.init((uint8_t *)mac_addr, "192.168.77.10", "255.255.255.0", "192.168.77.1");
embeddist 5:5f427a506928 61 #endif
Bongjun 0:2efa5e59223d 62 if (!ret) {
Bongjun 0:2efa5e59223d 63 printf("Initialized, MAC: %s\n", eth.getMACAddress());
Bongjun 0:2efa5e59223d 64 printf("Connected, IP: %s, MASK: %s, GW: %s\n",
Bongjun 0:2efa5e59223d 65 eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
Bongjun 0:2efa5e59223d 66 } else {
Bongjun 0:2efa5e59223d 67 printf("Error eth.init() - ret = %d\n", ret);
Bongjun 0:2efa5e59223d 68 return -1;
Bongjun 0:2efa5e59223d 69 }
Bongjun 0:2efa5e59223d 70
Bongjun 0:2efa5e59223d 71 #endif
Bongjun 0:2efa5e59223d 72
Bongjun 0:2efa5e59223d 73 // Websocket ws("ws://sockets.mbed.org:443/ws/demo/wo");
Bongjun 0:2efa5e59223d 74 // ws.connect();
Bongjun 0:2efa5e59223d 75
Bongjun 0:2efa5e59223d 76 // this code from http://mbed.org/teams/mbed/code/Websocket_Ethernet_HelloWorld/file/bd0a76c1d9d0/main.cpp
Bongjun 0:2efa5e59223d 77 // view @ http://sockets.mbed.org/demo/viewer
Bongjun 0:2efa5e59223d 78 Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
Bongjun 0:2efa5e59223d 79 ws.connect();
Bongjun 0:2efa5e59223d 80
Bongjun 0:2efa5e59223d 81 char str[100];
Bongjun 0:2efa5e59223d 82 for(int i=0; i<0x10; ++i) {
embeddist 4:8b4aacaab1f1 83 sprintf(str, "%d WebSocket for WIZnet W5500 Hello World over Ethernet : No Sensor", i);
Bongjun 0:2efa5e59223d 84 ws.send(str);
Bongjun 0:2efa5e59223d 85
Bongjun 0:2efa5e59223d 86 // clear the buffer and wait a sec...
Bongjun 0:2efa5e59223d 87 memset(str, 0, 100);
Bongjun 0:2efa5e59223d 88 wait(0.5f);
Bongjun 0:2efa5e59223d 89
Bongjun 0:2efa5e59223d 90 // websocket server should echo whatever we sent it
Bongjun 0:2efa5e59223d 91 if (ws.read(str)) {
Bongjun 0:2efa5e59223d 92 printf("rcv'd: %s\n", str);
Bongjun 0:2efa5e59223d 93 }
Bongjun 0:2efa5e59223d 94 }
Bongjun 0:2efa5e59223d 95 ws.close();
Bongjun 0:2efa5e59223d 96 eth.disconnect();
Bongjun 0:2efa5e59223d 97
Bongjun 0:2efa5e59223d 98 while(1) {
Bongjun 0:2efa5e59223d 99 myled = 1;
Bongjun 0:2efa5e59223d 100 wait(0.2);
Bongjun 0:2efa5e59223d 101 myled = 0;
Bongjun 0:2efa5e59223d 102 wait(0.2);
Bongjun 0:2efa5e59223d 103 }
Bongjun 0:2efa5e59223d 104 }