Had to fork with a different name, because of some incompatibility issues.
DeviceClient.h
- Committer:
- sathipal
- Date:
- 2015-11-06
- Revision:
- 1:31c93319bbd8
- Parent:
- 0:f86732d81998
File content as of revision 1:31c93319bbd8:
#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(); char* getMac(char* buf, int buflen); 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* getDeviceId(char* buf, int buflen); void yield(int ms); bool connect(); bool disconnect(); }; } #endif