WIZ820io(W5200) network interface, EthernetInterface compatible.

Dependents:   Seeed_Ethernet_Shield_V2_HelloWorld Seeed_Ethernet_Shield Cayenne-WIZ820ioInterface Seeed_Ethernet_Shield

Fork of WiflyInterface by mbed official

WIZ820io

Committer:
va009039
Date:
Tue Aug 27 12:50:11 2013 +0000
Revision:
5:fb15c35d1e28
WIZ820ioInterface?first commit

Who changed what in which revision?

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