For mbed OS-5 version for WIZnet Ethernet Interface, this is Library using Hardware TCP/IP chip, W5500 and TCP/IP Offload Engine, W7500.

Dependents:   ledMapperTest

Warning

  • If you want to use existing codes, you need to change the class used as EthernetInterface to WIZnetInterface.

This is WIZnet Ethernet Interface using Hardware TCP/IP chip, W5500 and TCP/IP Offload Engine, W7500.

https://developer.mbed.org/media/cache/platforms/WIZwiki_W7500_enabled.JPG.250x250_q85.jpg

https://developer.mbed.org/media/cache/platforms/WIZwiki_W7500P_enabled2.JPG.250x250_q85.jpg

https://developer.mbed.org/media/cache/platforms/WIZwiki_W7500ECO_enabled2.JPG.250x250_q85.jpg

https://developer.mbed.org/media/cache/components/components/fetch.phpmediaoshw5500_ethernet_shieldw5500_main_picture2.png.200x200_q85.jpg

This library is an Ethernet Interface library port-based on [EthernetInterface](https://developer.mbed.org/users/mbed_official/code/EthernetInterface/docs/tip/).

For more detail, visit http://embeddist.blogspot.kr/2015/06/wiznetinterface-for-armmbed.html

Committer:
justinkim
Date:
Mon Sep 04 00:23:04 2017 +0000
Revision:
0:d4c8fe4d9b29
mbed OS 5 version migration...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
justinkim 0:d4c8fe4d9b29 1 // DHCPClient.h 2013/4/10
justinkim 0:d4c8fe4d9b29 2 #ifndef DHCPCLIENT_H
justinkim 0:d4c8fe4d9b29 3 #define DHCPCLIENT_H
justinkim 0:d4c8fe4d9b29 4 #include "eth_arch.h"
justinkim 0:d4c8fe4d9b29 5 #include "WIZnet_UDPSocket.h"
justinkim 0:d4c8fe4d9b29 6
justinkim 0:d4c8fe4d9b29 7 #define DHCP_OFFSET_OP 0
justinkim 0:d4c8fe4d9b29 8 #define DHCP_OFFSET_XID 4
justinkim 0:d4c8fe4d9b29 9 #define DHCP_OFFSET_YIADDR 16
justinkim 0:d4c8fe4d9b29 10 #define DHCP_OFFSET_SIADDR 20
justinkim 0:d4c8fe4d9b29 11 #define DHCP_OFFSET_OPTIONS 240
justinkim 0:d4c8fe4d9b29 12 #define DHCP_MAX_PACKET_SIZE 600
justinkim 0:d4c8fe4d9b29 13
justinkim 0:d4c8fe4d9b29 14 // DHCP Message Type
justinkim 0:d4c8fe4d9b29 15 #define DHCPDISCOVER 1
justinkim 0:d4c8fe4d9b29 16 #define DHCPOFFER 2
justinkim 0:d4c8fe4d9b29 17 #define DHCPREQUEST 3
justinkim 0:d4c8fe4d9b29 18 #define DHCPDECLINE 4
justinkim 0:d4c8fe4d9b29 19 #define DHCPACK 5
justinkim 0:d4c8fe4d9b29 20 #define DHCPNAK 6
justinkim 0:d4c8fe4d9b29 21 #define DHCPRELEASE 7
justinkim 0:d4c8fe4d9b29 22 #define DHCPINFORM 8
justinkim 0:d4c8fe4d9b29 23
justinkim 0:d4c8fe4d9b29 24 class DHCPClient {
justinkim 0:d4c8fe4d9b29 25 public:
justinkim 0:d4c8fe4d9b29 26 DHCPClient();
justinkim 0:d4c8fe4d9b29 27 int setup(int timeout_ms = 15*1000);
justinkim 0:d4c8fe4d9b29 28 uint8_t chaddr[6]; // MAC
justinkim 0:d4c8fe4d9b29 29 uint8_t yiaddr[4]; // IP
justinkim 0:d4c8fe4d9b29 30 uint8_t dnsaddr[4]; // DNS
justinkim 0:d4c8fe4d9b29 31 uint8_t gateway[4];
justinkim 0:d4c8fe4d9b29 32 uint8_t netmask[4];
justinkim 0:d4c8fe4d9b29 33 uint8_t siaddr[4];
justinkim 0:d4c8fe4d9b29 34 private:
justinkim 0:d4c8fe4d9b29 35 int discover();
justinkim 0:d4c8fe4d9b29 36 int request();
justinkim 0:d4c8fe4d9b29 37 int offer(uint8_t buf[], int size);
justinkim 0:d4c8fe4d9b29 38 void add_buf(uint8_t* buf, int len);
justinkim 0:d4c8fe4d9b29 39 void fill_buf(int len, uint8_t data = 0x00);
justinkim 0:d4c8fe4d9b29 40 void add_buf(uint8_t c);
justinkim 0:d4c8fe4d9b29 41 void add_option(uint8_t code, uint8_t* buf = NULL, int len = 0);
justinkim 0:d4c8fe4d9b29 42 bool verify(uint8_t buf[], int len);
justinkim 0:d4c8fe4d9b29 43 void callback();
justinkim 0:d4c8fe4d9b29 44 WIZnet_UDPSocket* m_udp;
justinkim 0:d4c8fe4d9b29 45 Endpoint m_server;
justinkim 0:d4c8fe4d9b29 46 uint8_t xid[4];
justinkim 0:d4c8fe4d9b29 47 bool exit_flag;
justinkim 0:d4c8fe4d9b29 48 Timer m_interval;
justinkim 0:d4c8fe4d9b29 49 int m_retry;
justinkim 0:d4c8fe4d9b29 50 uint8_t m_buf[DHCP_MAX_PACKET_SIZE];
justinkim 0:d4c8fe4d9b29 51 int m_pos;
justinkim 0:d4c8fe4d9b29 52 WIZnet_Chip* eth;
justinkim 0:d4c8fe4d9b29 53 };
justinkim 0:d4c8fe4d9b29 54 #endif //DHCPCLIENT_H