On Node-Red and MQTT
Dependencies: mbed ESP8266Interface MbedJSONValue MQTT JSON
MQTTESP8266.h
- Committer:
- geky
- Date:
- 2015-06-05
- Revision:
- 17:92a64d43ee61
File content as of revision 17:92a64d43ee61:
#if !defined(MQTTESP8266_H) #define MQTTESP8266_H #include "MQTTmbed.h" #include "ESP8266Interface.h" #include "MQTTSocket.h" // This struct is only used to workaround the order that the interfaces are initialized // MQTTSocket contains a TCPSocketConnection which needs the ESP8266Interface to be // instantiated first. Unfortunately the only way to instantiate a member before a superclass // is through another superclass. struct MQTTESP8266Holder { MQTTESP8266Holder(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) : _wifi(tx, rx, reset, ssid, pass) {} ESP8266Interface _wifi; }; // Straightforward implementation of a MQTT interface class MQTTESP8266 : public MQTTESP8266Holder, public MQTTSocket { private: MQTTESP8266Holder::_wifi; //ESP8266Interface _wifi; public: MQTTESP8266(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) : MQTTESP8266Holder(tx, rx, reset, ssid, pass) { _wifi.init(); _wifi.connect(); } ESP8266Interface& getInterface() { return _wifi; } void reconnect() { _wifi.disconnect(); _wifi.connect(); } }; #endif