Fork of original library, increased Tx buffer to 16kB

Dependents:   W5500-SNTPClient-example

Committer:
star297
Date:
Thu May 02 20:47:25 2019 +0000
Revision:
0:e9275bdfa393
First commit

Who changed what in which revision?

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