W5500 driver for mbed OS 5
Dependents: http-webserver-example mbed-os-example-sockets
Fork of W5500Interface by
DHCPClient.h
00001 /* 00002 * DHCPClient.h 00003 * Mbed OS5 support added by Sergei G <https://os.mbed.com/users/sgnezdov/> 00004 * Ported here on Aug/09/2018 00005 * 00006 */ 00007 // DHCPClient.h 2013/4/10 00008 #ifndef DHCPCLIENT_H 00009 #define DHCPCLIENT_H 00010 #include "wiznet.h" 00011 #include "UDPSocket.h" 00012 00013 #define DHCP_OFFSET_OP 0 00014 #define DHCP_OFFSET_XID 4 00015 #define DHCP_OFFSET_YIADDR 16 00016 #define DHCP_OFFSET_SIADDR 20 00017 #define DHCP_OFFSET_OPTIONS 240 00018 #define DHCP_MAX_PACKET_SIZE 600 00019 00020 // DHCP Message Type 00021 #define DHCPDISCOVER 1 00022 #define DHCPOFFER 2 00023 #define DHCPREQUEST 3 00024 #define DHCPDECLINE 4 00025 #define DHCPACK 5 00026 #define DHCPNAK 6 00027 #define DHCPRELEASE 7 00028 #define DHCPINFORM 8 00029 00030 class DHCPClient { 00031 public: 00032 DHCPClient(); 00033 int setup(NetworkStack *ns, uint8_t mac_addr[6], int timeout_ms = 15*1000); 00034 uint8_t chaddr[6]; // MAC 00035 uint8_t yiaddr[4]; // IP 00036 uint8_t dnsaddr[4]; // DNS 00037 uint8_t gateway[4]; 00038 uint8_t netmask[4]; 00039 uint8_t siaddr[4]; 00040 private: 00041 int discover(); 00042 int request(); 00043 int offer(uint8_t buf[], int size); 00044 void add_buf(uint8_t* buf, int len); 00045 void fill_buf(int len, uint8_t data = 0x00); 00046 void add_buf(uint8_t c); 00047 void add_option(uint8_t code, uint8_t* buf = NULL, int len = 0); 00048 bool verify(uint8_t buf[], int len); 00049 void callback(); 00050 UDPSocket* m_udp; 00051 SocketAddress m_server; 00052 uint8_t xid[4]; 00053 bool exit_flag; 00054 Timer m_interval; 00055 int m_retry; 00056 uint8_t m_buf[DHCP_MAX_PACKET_SIZE]; 00057 int m_pos; 00058 //WIZnet_Chip* eth; 00059 }; 00060 #endif //DHCPCLIENT_H
Generated on Tue Jul 12 2022 18:48:25 by 1.7.2