This is the Interface library for WIZnet W5500 chip which forked of EthernetInterfaceW5500, WIZnetInterface and WIZ550ioInterface. This library has simple name as "W5500Interface". and can be used for Wiz550io users also.
Dependents: EvrythngApi Websocket_Ethernet_HelloWorld_W5500 Websocket_Ethernet_W5500 CurrentWeatherData_W5500 ... more
DHCPClient.h
00001 // DHCPClient.h 2013/4/10 00002 #ifndef DHCPCLIENT_H 00003 #define DHCPCLIENT_H 00004 #include "wiznet.h" 00005 #include "UDPSocket.h" 00006 00007 #define DHCP_OFFSET_OP 0 00008 #define DHCP_OFFSET_XID 4 00009 #define DHCP_OFFSET_YIADDR 16 00010 #define DHCP_OFFSET_SIADDR 20 00011 #define DHCP_OFFSET_OPTIONS 240 00012 #define DHCP_MAX_PACKET_SIZE 600 00013 00014 // DHCP Message Type 00015 #define DHCPDISCOVER 1 00016 #define DHCPOFFER 2 00017 #define DHCPREQUEST 3 00018 #define DHCPDECLINE 4 00019 #define DHCPACK 5 00020 #define DHCPNAK 6 00021 #define DHCPRELEASE 7 00022 #define DHCPINFORM 8 00023 00024 class DHCPClient { 00025 public: 00026 DHCPClient(); 00027 int setup(int timeout_ms = 15*1000); 00028 uint8_t chaddr[6]; // MAC 00029 uint8_t yiaddr[4]; // IP 00030 uint8_t dnsaddr[4]; // DNS 00031 uint8_t gateway[4]; 00032 uint8_t netmask[4]; 00033 uint8_t siaddr[4]; 00034 private: 00035 int discover(); 00036 int request(); 00037 int offer(uint8_t buf[], int size); 00038 void add_buf(uint8_t* buf, int len); 00039 void fill_buf(int len, uint8_t data = 0x00); 00040 void add_buf(uint8_t c); 00041 void add_option(uint8_t code, uint8_t* buf = NULL, int len = 0); 00042 bool verify(uint8_t buf[], int len); 00043 void callback(); 00044 UDPSocket* m_udp; 00045 Endpoint m_server; 00046 uint8_t xid[4]; 00047 bool exit_flag; 00048 Timer m_interval; 00049 int m_retry; 00050 uint8_t m_buf[DHCP_MAX_PACKET_SIZE]; 00051 int m_pos; 00052 WIZnet_Chip* eth; 00053 }; 00054 #endif //DHCPCLIENT_H
Generated on Thu Jul 14 2022 02:02:03 by 1.7.2