データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/

Dependencies:   MQTT

Fork of Milkcocoa by Junichi Katsu

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?

UserRevisionLine numberNew 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