Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MQTT
Dependents: IBMIoTClientLibrarySamplefinal IBMWIoTPSecureClientSample IBMIoTClientLibrarySample
Diff: DeviceClient.h
- Revision:
- 5:ea9f483e0294
- Parent:
- 3:3d91bf839b49
diff -r 7be77f2f6a71 -r ea9f483e0294 DeviceClient.h
--- a/DeviceClient.h Mon Mar 20 10:07:49 2017 +0000
+++ b/DeviceClient.h Tue May 30 06:24:06 2017 +0000
@@ -13,24 +13,26 @@
* Contributors:
* Sathisumar Palaniappan - initial implementation
* Sathisumar Palaniappan - added reconnect logic and isConnected() method
+ * Lokesh K Haralakatta - Port to mbed OS 5 support
+ * Lokesh K Haralakatta - Added SSL/TLS Support
*******************************************************************************/
-
- #ifndef DeviceClient_H
+
+#ifndef DeviceClient_H
#define DeviceClient_H
-#include "MQTTEthernet.h"
+#include "MQTTmbed.h"
#include "MQTTClient.h"
+#include "MQTTNetwork.h"
#include "Command.h"
// Update this to the next number *before* a commit
-#define __APP_SW_REVISION__ "0.0.1"
+#define __APP_SW_REVISION__ "1.0"
// 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
@@ -39,7 +41,6 @@
typedef void (*CommandHandler)(IoTF::Command &cmd);
namespace IoTF {
-
class DeviceClient
{
private:
@@ -49,19 +50,20 @@
char *deviceId;
char *authMethod;
char *authToken;
- MQTTEthernet ipstack;
- MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE> mqttClient;
-
+ int port;
+ MQTTNetwork* mqttNetwork;
+ MQTT::Client<MQTTNetwork, Countdown> *mqttClient;
+
bool tryConnect(char *hostname, MQTTPacket_connectData &data);
int getConnTimeout(int attemptNumber);
- void logData(EthernetInterface& eth, char *hostname, char *clientId);
+ void logData(NetworkInterface* net, char *hostname, char *clientId);
int subscribeToCommands();
char* getMac(char* buf, int buflen);
+ DeviceClient();
public:
- DeviceClient();
- DeviceClient(char *org, char *deviceType, char *deviceId);
- DeviceClient(char *org, char *deviceType, char *deviceId, char *authMethod, char *authToken);
+ DeviceClient(char *org, char *deviceType, char *deviceId, int port = MQTT_PORT);
+ DeviceClient(char *org, char *deviceType, char *deviceId, char *authMethod, char *authToken, int port = MQTT_PORT);
bool publishEvent(char *eventName, char *data, MQTT::QoS qos = MQTT::QOS0);
void setCommandCallback(CommandHandler callbackFunc);
char* getDeviceId(char* buf, int buflen);
@@ -72,4 +74,4 @@
bool reConnect();
};
}
-#endif
\ No newline at end of file
+#endif