Had to fork with a different name, because of some incompatibility issues.

Dependencies:   MQTT

Revision:
0:f86732d81998
Child:
1:31c93319bbd8
Child:
2:199ddea804cd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DeviceClient.h	Fri Nov 06 07:09:14 2015 +0000
@@ -0,0 +1,54 @@
+#ifndef DeviceClient_H
+#define DeviceClient_H
+
+#include "MQTTEthernet.h"
+#include "MQTTClient.h"
+#include "Command.h"
+
+// Update this to the next number *before* a commit
+#define __APP_SW_REVISION__ "0.0.1"
+
+// Configuration values needed to connect to IBM IoT Cloud
+#define QUICKSTART "quickstart"
+
+#define MQTT_PORT 1883
+#define MQTT_TLS_PORT 8883
+#define IBM_IOT_PORT MQTT_PORT
+
+#define IBM_IOT_MESSAGING ".messaging.internetofthings.ibmcloud.com"
+#define CONNECT_TIMEOUT 1000 * 60
+#define MQTT_MAX_PACKET_SIZE 250
+
+typedef void (*CommandHandler)(IoTF::Command &cmd);
+
+namespace IoTF {
+    
+    class DeviceClient
+    {
+        private:
+            char *org;
+            char *deviceType;
+            char *deviceId;
+            char *authMethod;
+            char *authToken;
+            MQTTEthernet ipstack;
+            MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE> mqttClient;
+            
+            bool tryConnect(char *hostname, MQTTPacket_connectData &data);
+            int getConnTimeout(int attemptNumber);
+            void logData(EthernetInterface& eth, char *hostname, char *clientId);
+            int subscribeToCommands();
+
+        public:
+            DeviceClient();
+            DeviceClient(char *org, char *deviceType, char *deviceId);
+            DeviceClient(char *org, char *deviceType, char *deviceId, char *authMethod, char *authToken);
+            bool publishEvent(char *eventName, char *data, MQTT::QoS qos = MQTT::QOS0);
+            void setCommandCallback(CommandHandler callbackFunc);
+            char* getMac(char* buf, int buflen);
+            void yield(int ms);
+            bool connect();
+            bool disconnect();
+     };
+}
+#endif
\ No newline at end of file