Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Milkcocoa by
MClient.h
00001 #ifndef _MCLIENT_H_ 00002 #define _MCLIENT_H_ 00003 00004 //#define TARGET_GRPEACH_B3595 00005 00006 #if defined(TARGET_UBLOX_C027) 00007 #define USE_MDM 00008 #elif defined(TARGET_LPC1768) || defined(TARGET_K64F) || defined(TARGET_W7500x) 00009 #define USE_ETHERNET 00010 #elif defined(TARGET_GRPEACH_B3595) 00011 #define USE_BP3595 00012 #else 00013 #define USE_ESP8266 00014 #endif 00015 00016 #include "mbed.h" 00017 #if defined(USE_ESP8266) 00018 #include "MQTTESP8266.h" 00019 #elif defined(USE_BP3595) 00020 #include "MQTTBP3595.h" 00021 #elif defined(USE_MDM) 00022 #include "MQTTMDM.h" 00023 #else 00024 #include "MQTTEthernet.h" 00025 #endif 00026 #include "MQTTClient.h" 00027 00028 class MClient 00029 { 00030 public: 00031 typedef void (*messageHandler)(MQTT::MessageData&); 00032 #ifdef USE_ESP8266 00033 MClient(MQTTESP8266 *ipstack) : client(MQTT::Client<MQTTESP8266, Countdown>(*ipstack)) 00034 #elif defined(USE_BP3595) 00035 MClient(MQTTBP3595 *ipstack) : client(MQTT::Client<MQTTBP3595, Countdown>(*ipstack)) 00036 #elif defined(USE_MDM) 00037 MClient(MQTTMDM *ipstack) : client(MQTT::Client<MQTTMDM, Countdown>(*ipstack)) 00038 #else 00039 MClient(MQTTEthernet *ipstack) : client(MQTT::Client<MQTTEthernet, Countdown>(*ipstack)) 00040 #endif 00041 { 00042 _ipstack = ipstack; 00043 } 00044 void setDefaultMessageHandler(messageHandler mh) 00045 { 00046 client.setDefaultMessageHandler(mh); 00047 } 00048 int connect(char* host,int port) 00049 { 00050 return _ipstack->connect(host, port); 00051 } 00052 int connect() 00053 { 00054 return client.connect(); 00055 } 00056 int connect(MQTTPacket_connectData& options) 00057 { 00058 return client.connect(options); 00059 } 00060 int publish(const char* topicName, MQTT::Message& message) 00061 { 00062 return client.publish(topicName,message); 00063 } 00064 int publish(const char* topicName, void* payload, size_t payloadlen, enum MQTT::QoS qos = MQTT::QOS0, bool retained = false) 00065 { 00066 return client.publish(topicName,payload,payloadlen,qos,retained); 00067 } 00068 int publish(const char* topicName, void* payload, size_t payloadlen, unsigned short& id, enum MQTT::QoS qos = MQTT::QOS1, bool retained = false) 00069 { 00070 return client.publish(topicName,payload,payloadlen,id,qos,retained); 00071 } 00072 int subscribe(const char* topicFilter, enum MQTT::QoS qos, messageHandler mh) 00073 { 00074 return client.subscribe(topicFilter,qos,mh); 00075 } 00076 int unsubscribe(const char* topicFilter) 00077 { 00078 return client.unsubscribe(topicFilter); 00079 } 00080 int disconnect() 00081 { 00082 return client.disconnect(); 00083 } 00084 int yield(unsigned long timeout_ms = 1000L) 00085 { 00086 return client.yield(timeout_ms); 00087 } 00088 bool isConnected() 00089 { 00090 return client.isConnected(); 00091 } 00092 private: 00093 #ifdef USE_ESP8266 00094 MQTT::Client<MQTTESP8266, Countdown> client; 00095 MQTTESP8266 *_ipstack; 00096 #elif defined(USE_BP3595) 00097 MQTT::Client<MQTTBP3595, Countdown> client; 00098 MQTTBP3595 *_ipstack; 00099 #elif defined(USE_MDM) 00100 MQTT::Client<MQTTMDM, Countdown> client; 00101 MQTTMDM *_ipstack; 00102 #else 00103 MQTT::Client<MQTTEthernet, Countdown> client; 00104 MQTTEthernet *_ipstack; 00105 #endif 00106 }; 00107 00108 #endif
Generated on Sat Jul 16 2022 23:46:48 by
1.7.2
