MQTT client test with W5200 ethernet shield

Dependents:   IBMIoTClientEthernetExample_W5200

Fork of W5500Interface by W5500-Ethernet-Interface Makers

Committer:
hillkim7
Date:
Thu Dec 25 11:18:46 2014 +0000
Revision:
11:313e091ab3f9
Parent:
0:e11e8793c3ce
The IBM MQTT client demo program that is tested with Nucleo F401 and Seeedstudio Ethernet Shield. It is based on Wiznet sample program.

Who changed what in which revision?

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