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.
Dependents: MilkcocoaSample_Eth_K64F
Fork of Milkcocoa_EthernetIF by
Diff: MClient.h
- Revision:
- 1:4a634c06c5dc
- Child:
- 2:a174c8a8d53e
diff -r 23e533c4b1ec -r 4a634c06c5dc MClient.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MClient.h Fri Dec 18 04:30:59 2015 +0000
@@ -0,0 +1,85 @@
+#ifndef _MCLIENT_H_
+#define _MCLIENT_H_
+
+#define USE_ESP8266
+//#define USE_ETHERNET
+
+#include "mbed.h"
+#ifdef USE_ESP8266
+#include "MQTTESP8266.h"
+#else
+#include "MQTTEthernet.h"
+#endif
+#include "MQTTClient.h"
+
+class MClient
+{
+ public:
+ typedef void (*messageHandler)(MQTT::MessageData&);
+#ifdef USE_ESP8266
+ MClient(MQTTESP8266 *ipstack) : client(MQTT::Client<MQTTESP8266, Countdown>(*ipstack))
+#else
+ MClient(MQTTEthernet *ipstack) : client(MQTT::Client<MQTTEthernet, Countdown>(*ipstack))
+#endif
+ {
+ _ipstack = ipstack;
+ }
+ void setDefaultMessageHandler(messageHandler mh)
+ {
+ client.setDefaultMessageHandler(mh);
+ }
+ int connect(char* host,int port)
+ {
+ return _ipstack->connect(host, port);
+ }
+ int connect()
+ {
+ return client.connect();
+ }
+ int connect(MQTTPacket_connectData& options)
+ {
+ return client.connect(options);
+ }
+ int publish(const char* topicName, MQTT::Message& message)
+ {
+ return client.publish(topicName,message);
+ }
+ int publish(const char* topicName, void* payload, size_t payloadlen, enum MQTT::QoS qos = MQTT::QOS0, bool retained = false)
+ {
+ return client.publish(topicName,payload,payloadlen,qos,retained);
+ }
+ int publish(const char* topicName, void* payload, size_t payloadlen, unsigned short& id, enum MQTT::QoS qos = MQTT::QOS1, bool retained = false)
+ {
+ return client.publish(topicName,payload,payloadlen,id,qos,retained);
+ }
+ int subscribe(const char* topicFilter, enum MQTT::QoS qos, messageHandler mh)
+ {
+ return client.subscribe(topicFilter,qos,mh);
+ }
+ int unsubscribe(const char* topicFilter)
+ {
+ return client.unsubscribe(topicFilter);
+ }
+ int disconnect()
+ {
+ return client.disconnect();
+ }
+ int yield(unsigned long timeout_ms = 1000L)
+ {
+ return client.yield(timeout_ms);
+ }
+ bool isConnected()
+ {
+ return client.isConnected();
+ }
+private:
+#ifdef USE_ESP8266
+ MQTT::Client<MQTTESP8266, Countdown> client;
+ MQTTESP8266 *_ipstack;
+#else
+ MQTT::Client<MQTTEthernet, Countdown> client;
+ MQTTEthernet *_ipstack;
+#endif
+};
+
+#endif
\ No newline at end of file
