Added support to NetworkSocket API with Wifi.

Dependencies:   FP MQTTPacket

Dependents:   IDW01M1_Cloud_IBM IDW01M1-MQTT IDW01M1-MQTT-1 IDW01M1-MQTT3 ... more

Fork of MQTT by ST Expansion SW Team

Files at this revision

API Documentation at this revision

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