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.
Dependencies: FP MQTTPacket
Dependents: IDW01M1_Cloud_IBM IDW01M1-MQTT IDW01M1-MQTT-1 IDW01M1-MQTT3 ... more
Fork of MQTT by
Revision 25:d13a6c558164, committed 2014-05-09
- Comitter:
- sam_grove
- Date:
- Fri May 09 23:01:35 2014 +0000
- Parent:
- 24:c56a5c7d2a52
- Child:
- 28:8b2abe9bd814
- Child:
- 29:833386b16f3e
- Commit message:
- Simplify example by moving IPStack into this library for each transport. Working on FP usage to not need the FP.cpp inclusion in main
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/IPStack/EthernetInterfaceIPStack.h Fri May 09 23:01:35 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 Fri May 09 21:33:14 2014 +0000
+++ b/MQTTClient.h Fri May 09 23:01:35 2014 +0000
@@ -26,6 +26,8 @@
match wildcard topics
+ updating usage of FP. Try to remove inclusion of FP.cpp in main. sg-
+
*/
#if !defined(MQTTCLIENT_H)
@@ -190,17 +192,18 @@
PacketId packetid;
- typedef FP<void, Message*> messageHandlerFP;
+// typedef FP<void, Message*> messageHandlerFP;
+// FP<void, Message*> messageHandlerFP;
struct MessageHandlers
{
const char* topic;
- messageHandlerFP fp;
+ FP<void, Message*> fp;
} messageHandlers[MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic
- messageHandlerFP defaultMessageHandler;
+ FP<void, Message*> defaultMessageHandler;
- typedef FP<int, connectionLostInfo*> connectionLostFP;
- connectionLostFP connectionLostHandler;
+ FP<int, connectionLostInfo*> connectionLostHandler;
+// connectionLostFP connectionLostHandler;
};
@@ -350,7 +353,7 @@
// read the socket, see what work is due
int packet_type = readPacket(timer);
- int len, rc;
+ int len = 0, rc;
switch (packet_type)
{
case CONNACK:
@@ -362,6 +365,7 @@
Message msg;
rc = MQTTDeserialize_publish((int*)&msg.dup, (int*)&msg.qos, (int*)&msg.retained, (int*)&msg.id, &topicName,
(char**)&msg.payload, (int*)&msg.payloadlen, readbuf, MAX_MQTT_PACKET_SIZE);;
+ rc = rc; // make sure optimizer doesnt omit this
deliverMessage(&topicName, &msg);
if (msg.qos != QOS0)
{
--- a/MQTTPacket.lib Fri May 09 21:33:14 2014 +0000 +++ b/MQTTPacket.lib Fri May 09 23:01:35 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/teams/mqtt/code/MQTTPacket/#1b8fb13fc6ef +http://mbed.org/teams/mqtt/code/MQTTPacket/#3893bc7343f4
