ワークショップ用のサンプルプログラムです。

Dependencies:   DHT Milkcocoa mbed

Committer:
jksoft
Date:
Fri Apr 29 21:31:00 2016 +0000
Revision:
0:8ac5bb04e34d
??

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:8ac5bb04e34d 1
jksoft 0:8ac5bb04e34d 2 #if !defined(MQTTESP8266_H)
jksoft 0:8ac5bb04e34d 3 #define MQTTESP8266_H
jksoft 0:8ac5bb04e34d 4
jksoft 0:8ac5bb04e34d 5 #include "MQTTmbed.h"
jksoft 0:8ac5bb04e34d 6 #include "ESP8266Interface.h"
jksoft 0:8ac5bb04e34d 7 #include "MQTTSocket.h"
jksoft 0:8ac5bb04e34d 8
jksoft 0:8ac5bb04e34d 9 // This struct is only used to workaround the order that the interfaces are initialized
jksoft 0:8ac5bb04e34d 10 // MQTTSocket contains a TCPSocketConnection which needs the ESP8266Interface to be
jksoft 0:8ac5bb04e34d 11 // instantiated first. Unfortunately the only way to instantiate a member before a superclass
jksoft 0:8ac5bb04e34d 12 // is through another superclass.
jksoft 0:8ac5bb04e34d 13 struct MQTTESP8266Holder {
jksoft 0:8ac5bb04e34d 14 MQTTESP8266Holder(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) :
jksoft 0:8ac5bb04e34d 15 _wifi(tx, rx, reset, ssid, pass) {}
jksoft 0:8ac5bb04e34d 16
jksoft 0:8ac5bb04e34d 17 ESP8266Interface _wifi;
jksoft 0:8ac5bb04e34d 18 };
jksoft 0:8ac5bb04e34d 19
jksoft 0:8ac5bb04e34d 20 // Straightforward implementation of a MQTT interface
jksoft 0:8ac5bb04e34d 21 class MQTTESP8266 : public MQTTESP8266Holder, public MQTTSocket {
jksoft 0:8ac5bb04e34d 22 private:
jksoft 0:8ac5bb04e34d 23 MQTTESP8266Holder::_wifi;
jksoft 0:8ac5bb04e34d 24 //ESP8266Interface _wifi;
jksoft 0:8ac5bb04e34d 25
jksoft 0:8ac5bb04e34d 26 public:
jksoft 0:8ac5bb04e34d 27 MQTTESP8266(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) :
jksoft 0:8ac5bb04e34d 28 MQTTESP8266Holder(tx, rx, reset, ssid, pass) {
jksoft 0:8ac5bb04e34d 29 _wifi.init();
jksoft 0:8ac5bb04e34d 30 _wifi.connect();
jksoft 0:8ac5bb04e34d 31 }
jksoft 0:8ac5bb04e34d 32
jksoft 0:8ac5bb04e34d 33 ESP8266Interface& getInterface() {
jksoft 0:8ac5bb04e34d 34 return _wifi;
jksoft 0:8ac5bb04e34d 35 }
jksoft 0:8ac5bb04e34d 36
jksoft 0:8ac5bb04e34d 37 void reconnect() {
jksoft 0:8ac5bb04e34d 38 _wifi.disconnect();
jksoft 0:8ac5bb04e34d 39 _wifi.connect();
jksoft 0:8ac5bb04e34d 40 }
jksoft 0:8ac5bb04e34d 41 };
jksoft 0:8ac5bb04e34d 42
jksoft 0:8ac5bb04e34d 43
jksoft 0:8ac5bb04e34d 44 #endif