![](/media/cache/group/7eebcc78c9728c99279acaac1d5c9078.jpg.50x50_q85.jpg)
Websocket Test Program for W5500 (WIZ550io) FRDM-KL25Z WIZ550io Ethernet Board.
Dependencies: W5500Interface WebSocketClient mbed
Fork of Websocket_Ethernet_W5500 by
Websocket example using Ethernet component of WIZ550io (W5500). FRDM-KL25Z is used.
main.cpp@4:8b4aacaab1f1, 2014-07-09 (annotated)
- Committer:
- embeddist
- Date:
- Wed Jul 09 08:12:50 2014 +0000
- Revision:
- 4:8b4aacaab1f1
- Parent:
- 3:4c02f6287752
- Child:
- 5:5f427a506928
-Websocket for KL25Z, W5500 or WIZ550io
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Bongjun | 0:2efa5e59223d | 1 | #include "mbed.h" |
Bongjun | 0:2efa5e59223d | 2 | #include "EthernetInterfaceW5500.h" |
Bongjun | 0:2efa5e59223d | 3 | #include "Websocket.h" |
embeddist | 4:8b4aacaab1f1 | 4 | |
Bongjun | 0:2efa5e59223d | 5 | |
embeddist | 4:8b4aacaab1f1 | 6 | #define _DHCP |
Bongjun | 0:2efa5e59223d | 7 | DigitalOut myled(LED1); |
embeddist | 4:8b4aacaab1f1 | 8 | //DS18B20Sensor sensor(P1_25); |
Bongjun | 0:2efa5e59223d | 9 | |
Bongjun | 0:2efa5e59223d | 10 | int main() |
Bongjun | 0:2efa5e59223d | 11 | { |
Bongjun | 0:2efa5e59223d | 12 | #if defined(TARGET_LPC1114) |
Bongjun | 0:2efa5e59223d | 13 | SPI spi(dp2, dp1, dp6); // mosi, miso, sclk |
Bongjun | 0:2efa5e59223d | 14 | EthernetInterfaceW5500 eth(&spi, dp25, dp26); // spi, cs, reset |
Bongjun | 0:2efa5e59223d | 15 | |
Bongjun | 0:2efa5e59223d | 16 | #elif defined(TARGET_LPC1768) |
Bongjun | 0:2efa5e59223d | 17 | SPI spi(p11, p12, p13); // mosi, miso, sclk |
Bongjun | 0:2efa5e59223d | 18 | EthernetInterfaceW5500 eth(&spi, p14, p15); // spi, cs, reset |
Bongjun | 0:2efa5e59223d | 19 | |
Bongjun | 0:2efa5e59223d | 20 | #elif defined(TARGET_LPC11U68) |
Bongjun | 0:2efa5e59223d | 21 | SPI spi(P0_9, P0_8, P1_29); // mosi, miso, sclk |
Bongjun | 0:2efa5e59223d | 22 | //WIZnetInterface eth(&spi, P0_2, P1_25); // spi, cs, reset |
Bongjun | 0:2efa5e59223d | 23 | //SPI spi(p5, p6, p7); // mosi, miso, sclk |
Bongjun | 0:2efa5e59223d | 24 | EthernetInterfaceW5500 eth(&spi, P0_2, P1_28);//, nRESET(p9); // reset pin is dummy, don't affect any pin of WIZ550io |
Bongjun | 0:2efa5e59223d | 25 | spi.format(8,0); // 8bit, mode 0 |
Bongjun | 0:2efa5e59223d | 26 | spi.frequency(7000000); // 7MHz |
Bongjun | 0:2efa5e59223d | 27 | wait(1); // 1 second for stable state |
embeddist | 4:8b4aacaab1f1 | 28 | #elif defined(TARGET_KL25Z) |
embeddist | 4:8b4aacaab1f1 | 29 | SPI spi(D11, D12, D13); // mosi, miso, sclk |
embeddist | 4:8b4aacaab1f1 | 30 | EthernetInterfaceW5500 eth(&spi, D10, PTA20);//, nRESET(p9); // reset pin is dummy, don't affect any pin of WIZ550io |
embeddist | 4:8b4aacaab1f1 | 31 | |
Bongjun | 0:2efa5e59223d | 32 | |
Bongjun | 0:2efa5e59223d | 33 | #endif |
embeddist | 4:8b4aacaab1f1 | 34 | uint8_t mac_addr[6] = {0x00, 0x08, 0xdc, 0x1c, 0xb8, 0x4a}; |
embeddist | 4:8b4aacaab1f1 | 35 | |
Bongjun | 0:2efa5e59223d | 36 | #ifdef _DHCP |
embeddist | 4:8b4aacaab1f1 | 37 | eth.init((uint8_t *)mac_addr); //Use DHCP |
Bongjun | 0:2efa5e59223d | 38 | eth.connect(); |
Bongjun | 0:2efa5e59223d | 39 | //printf("IP Address is %s\n\r", eth.getIPAddress()); |
Bongjun | 0:2efa5e59223d | 40 | printf("Initialized, MAC: %s\n", eth.getMACAddress()); |
Bongjun | 0:2efa5e59223d | 41 | printf("Connected, IP: %s, MASK: %s, GW: %s\n", |
Bongjun | 0:2efa5e59223d | 42 | eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway()); |
Bongjun | 0:2efa5e59223d | 43 | |
Bongjun | 0:2efa5e59223d | 44 | #else |
Bongjun | 1:22e5197655a9 | 45 | // as your env. change to real IP address and so on. |
embeddist | 4:8b4aacaab1f1 | 46 | //int ret = eth.init("222.98.173.212", "255.255.255.192", "222.98.173.254"); |
embeddist | 4:8b4aacaab1f1 | 47 | int ret = eth.init((uint8_t *)mac_addr, "192.168.77.10", "255.255.255.0", "192.168.77.1"); |
Bongjun | 0:2efa5e59223d | 48 | if (!ret) { |
Bongjun | 0:2efa5e59223d | 49 | printf("Initialized, MAC: %s\n", eth.getMACAddress()); |
Bongjun | 0:2efa5e59223d | 50 | printf("Connected, IP: %s, MASK: %s, GW: %s\n", |
Bongjun | 0:2efa5e59223d | 51 | eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway()); |
Bongjun | 0:2efa5e59223d | 52 | } else { |
Bongjun | 0:2efa5e59223d | 53 | printf("Error eth.init() - ret = %d\n", ret); |
Bongjun | 0:2efa5e59223d | 54 | return -1; |
Bongjun | 0:2efa5e59223d | 55 | } |
Bongjun | 0:2efa5e59223d | 56 | |
Bongjun | 0:2efa5e59223d | 57 | #endif |
Bongjun | 0:2efa5e59223d | 58 | |
Bongjun | 0:2efa5e59223d | 59 | // Websocket ws("ws://sockets.mbed.org:443/ws/demo/wo"); |
Bongjun | 0:2efa5e59223d | 60 | // ws.connect(); |
Bongjun | 0:2efa5e59223d | 61 | |
Bongjun | 0:2efa5e59223d | 62 | // this code from http://mbed.org/teams/mbed/code/Websocket_Ethernet_HelloWorld/file/bd0a76c1d9d0/main.cpp |
Bongjun | 0:2efa5e59223d | 63 | // view @ http://sockets.mbed.org/demo/viewer |
Bongjun | 0:2efa5e59223d | 64 | Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw"); |
Bongjun | 0:2efa5e59223d | 65 | ws.connect(); |
Bongjun | 0:2efa5e59223d | 66 | |
Bongjun | 0:2efa5e59223d | 67 | char str[100]; |
embeddist | 4:8b4aacaab1f1 | 68 | /* |
Bongjun | 2:d6eb2ce07362 | 69 | char sensorBuf[25]; |
Bongjun | 3:4c02f6287752 | 70 | |
Bongjun | 2:d6eb2ce07362 | 71 | uint8_t result; |
Bongjun | 2:d6eb2ce07362 | 72 | uint8_t sensor_cnt; |
Bongjun | 3:4c02f6287752 | 73 | |
Bongjun | 3:4c02f6287752 | 74 | //Before using this sensor, should called sensor.count() once. |
Bongjun | 2:d6eb2ce07362 | 75 | sensor_cnt = sensor.count(); |
embeddist | 4:8b4aacaab1f1 | 76 | */ |
Bongjun | 0:2efa5e59223d | 77 | |
Bongjun | 0:2efa5e59223d | 78 | for(int i=0; i<0x10; ++i) { |
embeddist | 4:8b4aacaab1f1 | 79 | sprintf(str, "%d WebSocket for WIZnet W5500 Hello World over Ethernet : No Sensor", i); |
Bongjun | 0:2efa5e59223d | 80 | ws.send(str); |
Bongjun | 0:2efa5e59223d | 81 | |
Bongjun | 0:2efa5e59223d | 82 | // clear the buffer and wait a sec... |
Bongjun | 0:2efa5e59223d | 83 | memset(str, 0, 100); |
Bongjun | 0:2efa5e59223d | 84 | wait(0.5f); |
Bongjun | 0:2efa5e59223d | 85 | |
Bongjun | 0:2efa5e59223d | 86 | // websocket server should echo whatever we sent it |
Bongjun | 0:2efa5e59223d | 87 | if (ws.read(str)) { |
Bongjun | 0:2efa5e59223d | 88 | printf("rcv'd: %s\n", str); |
Bongjun | 0:2efa5e59223d | 89 | } |
Bongjun | 0:2efa5e59223d | 90 | } |
Bongjun | 0:2efa5e59223d | 91 | ws.close(); |
Bongjun | 0:2efa5e59223d | 92 | eth.disconnect(); |
Bongjun | 0:2efa5e59223d | 93 | |
Bongjun | 0:2efa5e59223d | 94 | while(1) { |
Bongjun | 0:2efa5e59223d | 95 | myled = 1; |
Bongjun | 0:2efa5e59223d | 96 | wait(0.2); |
Bongjun | 0:2efa5e59223d | 97 | myled = 0; |
Bongjun | 0:2efa5e59223d | 98 | wait(0.2); |
Bongjun | 0:2efa5e59223d | 99 | } |
Bongjun | 0:2efa5e59223d | 100 | } |