W5500 driver for mbed OS 5
Dependents: http-webserver-example mbed-os-example-sockets
Fork of W5500Interface by
DHCPClient/DHCPClient.h
- Committer:
- Bongjun
- Date:
- 2018-08-16
- Revision:
- 18:afec30f0922a
- Parent:
- 9:351e20cf7d05
File content as of revision 18:afec30f0922a:
/* * DHCPClient.h * Mbed OS5 support added by Sergei G <https://os.mbed.com/users/sgnezdov/> * Ported here on Aug/09/2018 * */ // DHCPClient.h 2013/4/10 #ifndef DHCPCLIENT_H #define DHCPCLIENT_H #include "wiznet.h" #include "UDPSocket.h" #define DHCP_OFFSET_OP 0 #define DHCP_OFFSET_XID 4 #define DHCP_OFFSET_YIADDR 16 #define DHCP_OFFSET_SIADDR 20 #define DHCP_OFFSET_OPTIONS 240 #define DHCP_MAX_PACKET_SIZE 600 // DHCP Message Type #define DHCPDISCOVER 1 #define DHCPOFFER 2 #define DHCPREQUEST 3 #define DHCPDECLINE 4 #define DHCPACK 5 #define DHCPNAK 6 #define DHCPRELEASE 7 #define DHCPINFORM 8 class DHCPClient { public: DHCPClient(); int setup(NetworkStack *ns, uint8_t mac_addr[6], int timeout_ms = 15*1000); uint8_t chaddr[6]; // MAC uint8_t yiaddr[4]; // IP uint8_t dnsaddr[4]; // DNS uint8_t gateway[4]; uint8_t netmask[4]; uint8_t siaddr[4]; private: int discover(); int request(); int offer(uint8_t buf[], int size); void add_buf(uint8_t* buf, int len); void fill_buf(int len, uint8_t data = 0x00); void add_buf(uint8_t c); void add_option(uint8_t code, uint8_t* buf = NULL, int len = 0); bool verify(uint8_t buf[], int len); void callback(); UDPSocket* m_udp; SocketAddress m_server; uint8_t xid[4]; bool exit_flag; Timer m_interval; int m_retry; uint8_t m_buf[DHCP_MAX_PACKET_SIZE]; int m_pos; //WIZnet_Chip* eth; }; #endif //DHCPCLIENT_H