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_EthernetIF by
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) || defined(TARGET_RZ_A1H) 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
Generated on Thu Aug 11 2022 21:38:51 by
1.7.2
