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

Dependencies:   MQTT

Dependents:   MilkcocoaSample MilkcocoaSampleESP8266_LED MilkcocoaSampleESP8266 MilkcocoaSample_3G ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MClient.h Source File

MClient.h

00001 #ifndef _MCLIENT_H_
00002 #define _MCLIENT_H_
00003 
00004 #if defined(TARGET_UBLOX_C027)
00005 #define USE_MDM
00006 #elif defined(TARGET_LPC1768) || defined(TARGET_K64F) || defined(TARGET_W7500x)
00007 #define USE_ETHERNET
00008 #else 
00009 #define USE_ESP8266
00010 #endif
00011 
00012 #include "mbed.h"
00013 #if defined(USE_ESP8266)
00014 #include "MQTTESP8266.h"
00015 #elif defined(USE_MDM)
00016 #include "MQTTMDM.h"
00017 #else 
00018 #include "MQTTEthernet.h"
00019 #endif
00020 #include "MQTTClient.h"
00021 
00022 class MClient
00023 {
00024  public:
00025     typedef void (*messageHandler)(MQTT::MessageData&);
00026 #ifdef USE_ESP8266
00027     MClient(MQTTESP8266 *ipstack) : client(MQTT::Client<MQTTESP8266, Countdown>(*ipstack))
00028 #elif defined(USE_MDM)
00029     MClient(MQTTMDM *ipstack) : client(MQTT::Client<MQTTMDM, Countdown>(*ipstack))
00030 #else
00031     MClient(MQTTEthernet *ipstack) : client(MQTT::Client<MQTTEthernet, Countdown>(*ipstack))
00032 #endif
00033     {
00034         _ipstack = ipstack;
00035     }
00036     void setDefaultMessageHandler(messageHandler mh)
00037     {
00038         client.setDefaultMessageHandler(mh);
00039     }
00040     int connect(char* host,int port)
00041     {
00042         return _ipstack->connect(host, port);
00043     }
00044     int connect()
00045     {
00046         return client.connect();
00047     }
00048     int connect(MQTTPacket_connectData& options)
00049     {
00050         return client.connect(options);
00051     }
00052     int publish(const char* topicName, MQTT::Message& message)
00053     {
00054         return client.publish(topicName,message);
00055     }
00056     int publish(const char* topicName, void* payload, size_t payloadlen, enum MQTT::QoS qos = MQTT::QOS0, bool retained = false)
00057     {
00058         return client.publish(topicName,payload,payloadlen,qos,retained);
00059     }
00060     int publish(const char* topicName, void* payload, size_t payloadlen, unsigned short& id, enum MQTT::QoS qos = MQTT::QOS1, bool retained = false)
00061     {
00062         return client.publish(topicName,payload,payloadlen,id,qos,retained);
00063     }
00064     int subscribe(const char* topicFilter, enum MQTT::QoS qos, messageHandler mh)
00065     {
00066         return client.subscribe(topicFilter,qos,mh);
00067     }
00068     int unsubscribe(const char* topicFilter)
00069     {
00070         return client.unsubscribe(topicFilter);
00071     }
00072     int disconnect()
00073     {
00074         return client.disconnect();
00075     }
00076     int yield(unsigned long timeout_ms = 1000L)
00077     {
00078         return client.yield(timeout_ms);
00079     }
00080     bool isConnected()
00081     {
00082         return client.isConnected();
00083     }
00084 private:
00085 #ifdef USE_ESP8266
00086     MQTT::Client<MQTTESP8266, Countdown> client;
00087     MQTTESP8266 *_ipstack;
00088 #elif defined(USE_MDM)
00089     MQTT::Client<MQTTMDM, Countdown> client;
00090     MQTTMDM *_ipstack;
00091 #else
00092     MQTT::Client<MQTTEthernet, Countdown> client;
00093     MQTTEthernet *_ipstack;
00094 #endif
00095 };
00096 
00097 #endif