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

Dependencies:   MQTT

Dependents:   MilkcocoaSample MilkcocoaSampleESP8266_LED MilkcocoaSampleESP8266 MilkcocoaSample_3G ... more

Committer:
jksoft
Date:
Mon Feb 29 09:18:16 2016 +0000
Revision:
2:9afb66979712
Parent:
1:4a634c06c5dc
???????????I/F??????????

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
jksoft 2:9afb66979712 4 #if defined(TARGET_UBLOX_C027)
jksoft 2:9afb66979712 5 #define USE_MDM
jksoft 2:9afb66979712 6 #elif defined(TARGET_LPC1768) || defined(TARGET_K64F) || defined(TARGET_W7500x)
jksoft 2:9afb66979712 7 #define USE_ETHERNET
jksoft 2:9afb66979712 8 #else
jksoft 1:4a634c06c5dc 9 #define USE_ESP8266
jksoft 2:9afb66979712 10 #endif
jksoft 1:4a634c06c5dc 11
jksoft 1:4a634c06c5dc 12 #include "mbed.h"
jksoft 2:9afb66979712 13 #if defined(USE_ESP8266)
jksoft 1:4a634c06c5dc 14 #include "MQTTESP8266.h"
jksoft 2:9afb66979712 15 #elif defined(USE_MDM)
jksoft 2:9afb66979712 16 #include "MQTTMDM.h"
jksoft 2:9afb66979712 17 #else
jksoft 1:4a634c06c5dc 18 #include "MQTTEthernet.h"
jksoft 1:4a634c06c5dc 19 #endif
jksoft 1:4a634c06c5dc 20 #include "MQTTClient.h"
jksoft 1:4a634c06c5dc 21
jksoft 1:4a634c06c5dc 22 class MClient
jksoft 1:4a634c06c5dc 23 {
jksoft 1:4a634c06c5dc 24 public:
jksoft 1:4a634c06c5dc 25 typedef void (*messageHandler)(MQTT::MessageData&);
jksoft 1:4a634c06c5dc 26 #ifdef USE_ESP8266
jksoft 1:4a634c06c5dc 27 MClient(MQTTESP8266 *ipstack) : client(MQTT::Client<MQTTESP8266, Countdown>(*ipstack))
jksoft 2:9afb66979712 28 #elif defined(USE_MDM)
jksoft 2:9afb66979712 29 MClient(MQTTMDM *ipstack) : client(MQTT::Client<MQTTMDM, Countdown>(*ipstack))
jksoft 1:4a634c06c5dc 30 #else
jksoft 1:4a634c06c5dc 31 MClient(MQTTEthernet *ipstack) : client(MQTT::Client<MQTTEthernet, Countdown>(*ipstack))
jksoft 1:4a634c06c5dc 32 #endif
jksoft 1:4a634c06c5dc 33 {
jksoft 1:4a634c06c5dc 34 _ipstack = ipstack;
jksoft 1:4a634c06c5dc 35 }
jksoft 1:4a634c06c5dc 36 void setDefaultMessageHandler(messageHandler mh)
jksoft 1:4a634c06c5dc 37 {
jksoft 1:4a634c06c5dc 38 client.setDefaultMessageHandler(mh);
jksoft 1:4a634c06c5dc 39 }
jksoft 1:4a634c06c5dc 40 int connect(char* host,int port)
jksoft 1:4a634c06c5dc 41 {
jksoft 1:4a634c06c5dc 42 return _ipstack->connect(host, port);
jksoft 1:4a634c06c5dc 43 }
jksoft 1:4a634c06c5dc 44 int connect()
jksoft 1:4a634c06c5dc 45 {
jksoft 1:4a634c06c5dc 46 return client.connect();
jksoft 1:4a634c06c5dc 47 }
jksoft 1:4a634c06c5dc 48 int connect(MQTTPacket_connectData& options)
jksoft 1:4a634c06c5dc 49 {
jksoft 1:4a634c06c5dc 50 return client.connect(options);
jksoft 1:4a634c06c5dc 51 }
jksoft 1:4a634c06c5dc 52 int publish(const char* topicName, MQTT::Message& message)
jksoft 1:4a634c06c5dc 53 {
jksoft 1:4a634c06c5dc 54 return client.publish(topicName,message);
jksoft 1:4a634c06c5dc 55 }
jksoft 1:4a634c06c5dc 56 int publish(const char* topicName, void* payload, size_t payloadlen, enum MQTT::QoS qos = MQTT::QOS0, bool retained = false)
jksoft 1:4a634c06c5dc 57 {
jksoft 1:4a634c06c5dc 58 return client.publish(topicName,payload,payloadlen,qos,retained);
jksoft 1:4a634c06c5dc 59 }
jksoft 1:4a634c06c5dc 60 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 61 {
jksoft 1:4a634c06c5dc 62 return client.publish(topicName,payload,payloadlen,id,qos,retained);
jksoft 1:4a634c06c5dc 63 }
jksoft 1:4a634c06c5dc 64 int subscribe(const char* topicFilter, enum MQTT::QoS qos, messageHandler mh)
jksoft 1:4a634c06c5dc 65 {
jksoft 1:4a634c06c5dc 66 return client.subscribe(topicFilter,qos,mh);
jksoft 1:4a634c06c5dc 67 }
jksoft 1:4a634c06c5dc 68 int unsubscribe(const char* topicFilter)
jksoft 1:4a634c06c5dc 69 {
jksoft 1:4a634c06c5dc 70 return client.unsubscribe(topicFilter);
jksoft 1:4a634c06c5dc 71 }
jksoft 1:4a634c06c5dc 72 int disconnect()
jksoft 1:4a634c06c5dc 73 {
jksoft 1:4a634c06c5dc 74 return client.disconnect();
jksoft 1:4a634c06c5dc 75 }
jksoft 1:4a634c06c5dc 76 int yield(unsigned long timeout_ms = 1000L)
jksoft 1:4a634c06c5dc 77 {
jksoft 1:4a634c06c5dc 78 return client.yield(timeout_ms);
jksoft 1:4a634c06c5dc 79 }
jksoft 1:4a634c06c5dc 80 bool isConnected()
jksoft 1:4a634c06c5dc 81 {
jksoft 1:4a634c06c5dc 82 return client.isConnected();
jksoft 1:4a634c06c5dc 83 }
jksoft 1:4a634c06c5dc 84 private:
jksoft 1:4a634c06c5dc 85 #ifdef USE_ESP8266
jksoft 1:4a634c06c5dc 86 MQTT::Client<MQTTESP8266, Countdown> client;
jksoft 1:4a634c06c5dc 87 MQTTESP8266 *_ipstack;
jksoft 2:9afb66979712 88 #elif defined(USE_MDM)
jksoft 2:9afb66979712 89 MQTT::Client<MQTTMDM, Countdown> client;
jksoft 2:9afb66979712 90 MQTTMDM *_ipstack;
jksoft 1:4a634c06c5dc 91 #else
jksoft 1:4a634c06c5dc 92 MQTT::Client<MQTTEthernet, Countdown> client;
jksoft 1:4a634c06c5dc 93 MQTTEthernet *_ipstack;
jksoft 1:4a634c06c5dc 94 #endif
jksoft 1:4a634c06c5dc 95 };
jksoft 1:4a634c06c5dc 96
jksoft 1:4a634c06c5dc 97 #endif