Junichi Katsu
/
MilkcocoaSample
データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリを使ったサンプルです。 https://mlkcca.com/
MQTTESP8266.h@1:e2ca99ac317b, 2015-12-18 (annotated)
- Committer:
- jksoft
- Date:
- Fri Dec 18 04:34:22 2015 +0000
- Revision:
- 1:e2ca99ac317b
ESP8266?????????????;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft | 1:e2ca99ac317b | 1 | |
jksoft | 1:e2ca99ac317b | 2 | #if !defined(MQTTESP8266_H) |
jksoft | 1:e2ca99ac317b | 3 | #define MQTTESP8266_H |
jksoft | 1:e2ca99ac317b | 4 | |
jksoft | 1:e2ca99ac317b | 5 | #include "MQTTmbed.h" |
jksoft | 1:e2ca99ac317b | 6 | #include "ESP8266Interface.h" |
jksoft | 1:e2ca99ac317b | 7 | #include "MQTTSocket.h" |
jksoft | 1:e2ca99ac317b | 8 | |
jksoft | 1:e2ca99ac317b | 9 | // This struct is only used to workaround the order that the interfaces are initialized |
jksoft | 1:e2ca99ac317b | 10 | // MQTTSocket contains a TCPSocketConnection which needs the ESP8266Interface to be |
jksoft | 1:e2ca99ac317b | 11 | // instantiated first. Unfortunately the only way to instantiate a member before a superclass |
jksoft | 1:e2ca99ac317b | 12 | // is through another superclass. |
jksoft | 1:e2ca99ac317b | 13 | struct MQTTESP8266Holder { |
jksoft | 1:e2ca99ac317b | 14 | MQTTESP8266Holder(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) : |
jksoft | 1:e2ca99ac317b | 15 | _wifi(tx, rx, reset, ssid, pass) {} |
jksoft | 1:e2ca99ac317b | 16 | |
jksoft | 1:e2ca99ac317b | 17 | ESP8266Interface _wifi; |
jksoft | 1:e2ca99ac317b | 18 | }; |
jksoft | 1:e2ca99ac317b | 19 | |
jksoft | 1:e2ca99ac317b | 20 | // Straightforward implementation of a MQTT interface |
jksoft | 1:e2ca99ac317b | 21 | class MQTTESP8266 : public MQTTESP8266Holder, public MQTTSocket { |
jksoft | 1:e2ca99ac317b | 22 | private: |
jksoft | 1:e2ca99ac317b | 23 | MQTTESP8266Holder::_wifi; |
jksoft | 1:e2ca99ac317b | 24 | //ESP8266Interface _wifi; |
jksoft | 1:e2ca99ac317b | 25 | |
jksoft | 1:e2ca99ac317b | 26 | public: |
jksoft | 1:e2ca99ac317b | 27 | MQTTESP8266(PinName tx, PinName rx, PinName reset, const char *ssid, const char *pass) : |
jksoft | 1:e2ca99ac317b | 28 | MQTTESP8266Holder(tx, rx, reset, ssid, pass) { |
jksoft | 1:e2ca99ac317b | 29 | _wifi.init(); |
jksoft | 1:e2ca99ac317b | 30 | _wifi.connect(); |
jksoft | 1:e2ca99ac317b | 31 | } |
jksoft | 1:e2ca99ac317b | 32 | |
jksoft | 1:e2ca99ac317b | 33 | ESP8266Interface& getInterface() { |
jksoft | 1:e2ca99ac317b | 34 | return _wifi; |
jksoft | 1:e2ca99ac317b | 35 | } |
jksoft | 1:e2ca99ac317b | 36 | |
jksoft | 1:e2ca99ac317b | 37 | void reconnect() { |
jksoft | 1:e2ca99ac317b | 38 | _wifi.disconnect(); |
jksoft | 1:e2ca99ac317b | 39 | _wifi.connect(); |
jksoft | 1:e2ca99ac317b | 40 | } |
jksoft | 1:e2ca99ac317b | 41 | }; |
jksoft | 1:e2ca99ac317b | 42 | |
jksoft | 1:e2ca99ac317b | 43 | |
jksoft | 1:e2ca99ac317b | 44 | #endif |