Had to fork with a different name, because of some incompatibility issues.
DeviceClient.h
- Committer:
- sathipal
- Date:
- 2016-01-05
- Revision:
- 3:3d91bf839b49
- Parent:
- 2:199ddea804cd
- Child:
- 5:ea9f483e0294
File content as of revision 3:3d91bf839b49:
/******************************************************************************* * Copyright (c) 2015 IBM Corp. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Eclipse Distribution License v1.0 which accompany this distribution. * * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Sathisumar Palaniappan - initial implementation * Sathisumar Palaniappan - added reconnect logic and isConnected() method *******************************************************************************/ #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: bool connected; 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 isConnected(); bool connect(); bool disconnect(); bool reConnect(); }; } #endif