MQTT cellular example

Dependencies:   C027 C027_Support C12832 mbed-rtos mbed FP MQTTPacket

Fork of HelloMQTT by MQTT

Revision:
8:b32c94be6522
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MQTT/IPStack/EthernetInterfaceIPStack.h	Mon May 12 09:59:50 2014 +0000
@@ -0,0 +1,86 @@
+#include "TCPSocketConnection.h"
+
+#ifndef ETHERNETINTERFACEIPSTACK_H
+#define ETHERNETINTERFACEIPSTACK_H
+
+class IPStack 
+{
+public:    
+    IPStack()
+    {
+        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:
+
+    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