An API for using MQTT over multiple transports
Dependents: Water_Monitor_clone_v1 Cloud_IBM_MbedOS ble-star-mbed
Fork of MQTT by
Revision 28:8b2abe9bd814, committed 2014-05-11
- Comitter:
- icraggs
- Date:
- Sun May 11 18:51:08 2014 +0000
- Parent:
- 27:8e27b74cfdc9
- Parent:
- 25:d13a6c558164
- Child:
- 30:a4e3a97dabe3
- Commit message:
- Merge branches
Changed in this revision
| MQTTClient.h | Show annotated file Show diff for this revision Revisions of this file |
| MQTTPacket.lib | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IPStack/EthernetInterfaceIPStack.h Sun May 11 18:51:08 2014 +0000
@@ -0,0 +1,90 @@
+
+#ifndef ETHERNETINTERFACEIPSTACK_H
+#define ETHERNETINTERFACEIPSTACK_H
+
+#include "EthernetInterface.h"
+
+class IPStack
+{
+public:
+ IPStack()
+ {
+ eth.init(); // Use DHCP
+ eth.connect();
+ mysock.set_blocking(false, 1000); // 1 second Timeout
+ }
+
+ int connect(char* hostname, int port)
+ {
+ return mysock.connect(hostname, port);
+ }
+
+ int read(char* buffer, int len, int timeout)
+ {
+ mysock.set_blocking(false, timeout);
+ return mysock.receive(buffer, len);
+ }
+
+ int write(char* buffer, int len, int timeout)
+ {
+ mysock.set_blocking(false, timeout);
+ return mysock.send(buffer, len);
+ }
+
+ int disconnect()
+ {
+ return mysock.close();
+ }
+
+private:
+
+ EthernetInterface eth;
+ TCPSocketConnection mysock;
+
+};
+
+
+class Countdown
+{
+public:
+ Countdown()
+ {
+ t = Timer();
+ }
+
+ Countdown(int ms)
+ {
+ t = Timer();
+ countdown_ms(ms);
+ }
+
+
+ bool expired()
+ {
+ return t.read_ms() >= interval_end_ms;
+ }
+
+ void countdown_ms(int ms)
+ {
+ t.stop();
+ interval_end_ms = ms;
+ t.reset();
+ t.start();
+ }
+
+ void countdown(int seconds)
+ {
+ countdown_ms(seconds * 1000);
+ }
+
+ int left_ms()
+ {
+ return interval_end_ms - t.read_ms();
+ }
+
+private:
+ Timer t;
+ int interval_end_ms;
+};
+
+#endif
--- a/MQTTClient.h Sun May 11 18:28:46 2014 +0000
+++ b/MQTTClient.h Sun May 11 18:51:08 2014 +0000
@@ -20,6 +20,8 @@
ensure publish packets are retried on reconnect
+ updating usage of FP. Try to remove inclusion of FP.cpp in main. sg-
+
*/
#if !defined(MQTTCLIENT_H)
@@ -171,16 +173,18 @@
PacketId packetid;
- typedef FP<void, Message*> messageHandlerFP;
+ // typedef FP<void, Message*> messageHandlerFP;
struct MessageHandlers
{
const char* topicFilter;
- messageHandlerFP fp;
+ //messageHandlerFP fp; typedefs not liked?
+ FP<void, Message*> fp;
} messageHandlers[MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic
- messageHandlerFP defaultMessageHandler;
-
+ FP<void, Message*> defaultMessageHandler;
+
bool isconnected;
+
};
}
@@ -378,6 +382,7 @@
int len = 0,
rc = SUCCESS;
+
switch (packet_type)
{
case CONNACK:
--- a/MQTTPacket.lib Sun May 11 18:28:46 2014 +0000 +++ b/MQTTPacket.lib Sun May 11 18:51:08 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/teams/mqtt/code/MQTTPacket/#b97b9873af52 +http://mbed.org/teams/mqtt/code/MQTTPacket/#3893bc7343f4 \ No newline at end of file
