データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/
Fork of Milkcocoa by
MClient.h@4:cf5b2cd460fe, 2017-01-19 (annotated)
- Committer:
- shosoai
- Date:
- Thu Jan 19 01:04:33 2017 +0000
- Revision:
- 4:cf5b2cd460fe
- Parent:
- 3:de1a3d2c9b14
add bp3595
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft | 1:4a634c06c5dc | 1 | #ifndef _MCLIENT_H_ |
jksoft | 1:4a634c06c5dc | 2 | #define _MCLIENT_H_ |
jksoft | 1:4a634c06c5dc | 3 | |
shosoai | 3:de1a3d2c9b14 | 4 | //#define TARGET_GRPEACH_B3595 |
shosoai | 3:de1a3d2c9b14 | 5 | |
jksoft | 2:9afb66979712 | 6 | #if defined(TARGET_UBLOX_C027) |
shosoai | 3:de1a3d2c9b14 | 7 | #define USE_MDM |
jksoft | 2:9afb66979712 | 8 | #elif defined(TARGET_LPC1768) || defined(TARGET_K64F) || defined(TARGET_W7500x) |
shosoai | 3:de1a3d2c9b14 | 9 | #define USE_ETHERNET |
shosoai | 3:de1a3d2c9b14 | 10 | #elif defined(TARGET_GRPEACH_B3595) |
shosoai | 3:de1a3d2c9b14 | 11 | #define USE_BP3595 |
jksoft | 2:9afb66979712 | 12 | #else |
shosoai | 3:de1a3d2c9b14 | 13 | #define USE_ESP8266 |
jksoft | 2:9afb66979712 | 14 | #endif |
jksoft | 1:4a634c06c5dc | 15 | |
jksoft | 1:4a634c06c5dc | 16 | #include "mbed.h" |
jksoft | 2:9afb66979712 | 17 | #if defined(USE_ESP8266) |
shosoai | 3:de1a3d2c9b14 | 18 | #include "MQTTESP8266.h" |
shosoai | 3:de1a3d2c9b14 | 19 | #elif defined(USE_BP3595) |
shosoai | 3:de1a3d2c9b14 | 20 | #include "MQTTBP3595.h" |
jksoft | 2:9afb66979712 | 21 | #elif defined(USE_MDM) |
shosoai | 3:de1a3d2c9b14 | 22 | #include "MQTTMDM.h" |
jksoft | 2:9afb66979712 | 23 | #else |
shosoai | 3:de1a3d2c9b14 | 24 | #include "MQTTEthernet.h" |
jksoft | 1:4a634c06c5dc | 25 | #endif |
jksoft | 1:4a634c06c5dc | 26 | #include "MQTTClient.h" |
jksoft | 1:4a634c06c5dc | 27 | |
jksoft | 1:4a634c06c5dc | 28 | class MClient |
jksoft | 1:4a634c06c5dc | 29 | { |
jksoft | 1:4a634c06c5dc | 30 | public: |
jksoft | 1:4a634c06c5dc | 31 | typedef void (*messageHandler)(MQTT::MessageData&); |
jksoft | 1:4a634c06c5dc | 32 | #ifdef USE_ESP8266 |
jksoft | 1:4a634c06c5dc | 33 | MClient(MQTTESP8266 *ipstack) : client(MQTT::Client<MQTTESP8266, Countdown>(*ipstack)) |
shosoai | 3:de1a3d2c9b14 | 34 | #elif defined(USE_BP3595) |
shosoai | 3:de1a3d2c9b14 | 35 | MClient(MQTTBP3595 *ipstack) : client(MQTT::Client<MQTTBP3595, Countdown>(*ipstack)) |
jksoft | 2:9afb66979712 | 36 | #elif defined(USE_MDM) |
jksoft | 2:9afb66979712 | 37 | MClient(MQTTMDM *ipstack) : client(MQTT::Client<MQTTMDM, Countdown>(*ipstack)) |
jksoft | 1:4a634c06c5dc | 38 | #else |
jksoft | 1:4a634c06c5dc | 39 | MClient(MQTTEthernet *ipstack) : client(MQTT::Client<MQTTEthernet, Countdown>(*ipstack)) |
jksoft | 1:4a634c06c5dc | 40 | #endif |
jksoft | 1:4a634c06c5dc | 41 | { |
jksoft | 1:4a634c06c5dc | 42 | _ipstack = ipstack; |
jksoft | 1:4a634c06c5dc | 43 | } |
jksoft | 1:4a634c06c5dc | 44 | void setDefaultMessageHandler(messageHandler mh) |
jksoft | 1:4a634c06c5dc | 45 | { |
jksoft | 1:4a634c06c5dc | 46 | client.setDefaultMessageHandler(mh); |
jksoft | 1:4a634c06c5dc | 47 | } |
jksoft | 1:4a634c06c5dc | 48 | int connect(char* host,int port) |
jksoft | 1:4a634c06c5dc | 49 | { |
jksoft | 1:4a634c06c5dc | 50 | return _ipstack->connect(host, port); |
jksoft | 1:4a634c06c5dc | 51 | } |
jksoft | 1:4a634c06c5dc | 52 | int connect() |
jksoft | 1:4a634c06c5dc | 53 | { |
jksoft | 1:4a634c06c5dc | 54 | return client.connect(); |
jksoft | 1:4a634c06c5dc | 55 | } |
jksoft | 1:4a634c06c5dc | 56 | int connect(MQTTPacket_connectData& options) |
jksoft | 1:4a634c06c5dc | 57 | { |
jksoft | 1:4a634c06c5dc | 58 | return client.connect(options); |
jksoft | 1:4a634c06c5dc | 59 | } |
jksoft | 1:4a634c06c5dc | 60 | int publish(const char* topicName, MQTT::Message& message) |
jksoft | 1:4a634c06c5dc | 61 | { |
jksoft | 1:4a634c06c5dc | 62 | return client.publish(topicName,message); |
jksoft | 1:4a634c06c5dc | 63 | } |
jksoft | 1:4a634c06c5dc | 64 | int publish(const char* topicName, void* payload, size_t payloadlen, enum MQTT::QoS qos = MQTT::QOS0, bool retained = false) |
jksoft | 1:4a634c06c5dc | 65 | { |
jksoft | 1:4a634c06c5dc | 66 | return client.publish(topicName,payload,payloadlen,qos,retained); |
jksoft | 1:4a634c06c5dc | 67 | } |
jksoft | 1:4a634c06c5dc | 68 | int publish(const char* topicName, void* payload, size_t payloadlen, unsigned short& id, enum MQTT::QoS qos = MQTT::QOS1, bool retained = false) |
jksoft | 1:4a634c06c5dc | 69 | { |
jksoft | 1:4a634c06c5dc | 70 | return client.publish(topicName,payload,payloadlen,id,qos,retained); |
jksoft | 1:4a634c06c5dc | 71 | } |
jksoft | 1:4a634c06c5dc | 72 | int subscribe(const char* topicFilter, enum MQTT::QoS qos, messageHandler mh) |
jksoft | 1:4a634c06c5dc | 73 | { |
jksoft | 1:4a634c06c5dc | 74 | return client.subscribe(topicFilter,qos,mh); |
jksoft | 1:4a634c06c5dc | 75 | } |
jksoft | 1:4a634c06c5dc | 76 | int unsubscribe(const char* topicFilter) |
jksoft | 1:4a634c06c5dc | 77 | { |
jksoft | 1:4a634c06c5dc | 78 | return client.unsubscribe(topicFilter); |
jksoft | 1:4a634c06c5dc | 79 | } |
jksoft | 1:4a634c06c5dc | 80 | int disconnect() |
jksoft | 1:4a634c06c5dc | 81 | { |
jksoft | 1:4a634c06c5dc | 82 | return client.disconnect(); |
jksoft | 1:4a634c06c5dc | 83 | } |
jksoft | 1:4a634c06c5dc | 84 | int yield(unsigned long timeout_ms = 1000L) |
jksoft | 1:4a634c06c5dc | 85 | { |
jksoft | 1:4a634c06c5dc | 86 | return client.yield(timeout_ms); |
jksoft | 1:4a634c06c5dc | 87 | } |
jksoft | 1:4a634c06c5dc | 88 | bool isConnected() |
jksoft | 1:4a634c06c5dc | 89 | { |
jksoft | 1:4a634c06c5dc | 90 | return client.isConnected(); |
jksoft | 1:4a634c06c5dc | 91 | } |
jksoft | 1:4a634c06c5dc | 92 | private: |
jksoft | 1:4a634c06c5dc | 93 | #ifdef USE_ESP8266 |
jksoft | 1:4a634c06c5dc | 94 | MQTT::Client<MQTTESP8266, Countdown> client; |
jksoft | 1:4a634c06c5dc | 95 | MQTTESP8266 *_ipstack; |
shosoai | 3:de1a3d2c9b14 | 96 | #elif defined(USE_BP3595) |
shosoai | 3:de1a3d2c9b14 | 97 | MQTT::Client<MQTTBP3595, Countdown> client; |
shosoai | 3:de1a3d2c9b14 | 98 | MQTTBP3595 *_ipstack; |
jksoft | 2:9afb66979712 | 99 | #elif defined(USE_MDM) |
jksoft | 2:9afb66979712 | 100 | MQTT::Client<MQTTMDM, Countdown> client; |
jksoft | 2:9afb66979712 | 101 | MQTTMDM *_ipstack; |
jksoft | 1:4a634c06c5dc | 102 | #else |
jksoft | 1:4a634c06c5dc | 103 | MQTT::Client<MQTTEthernet, Countdown> client; |
jksoft | 1:4a634c06c5dc | 104 | MQTTEthernet *_ipstack; |
jksoft | 1:4a634c06c5dc | 105 | #endif |
jksoft | 1:4a634c06c5dc | 106 | }; |
jksoft | 1:4a634c06c5dc | 107 | |
jksoft | 1:4a634c06c5dc | 108 | #endif |