ワークショップ用のプログラム

Dependencies:   Milkcocoa mbed

Committer:
jksoft
Date:
Thu Sep 22 00:49:42 2016 +0000
Revision:
0:d0b3a5d1ba28
????????

Who changed what in which revision?

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