认证与连接
本文主要介绍如何进行SDK初始化,建立设备与云端的连接。
设置参数
IotArguments_t arguments;
arguments.isAutoReconnect = true;
arguments.pIdentifier = IOT_IDENTIFIER;
arguments.securedConnection = IOT_SECURED_CONNECTION;
arguments.pHostName = IOT_SERVER_HOST;
arguments.port = IOT_SERVER_PORT;
arguments.pProductKey = pProductKey;
arguments.pDeviceName = pDeviceName;
arguments.pDeviceSecret = pDeviceSecret;
arguments.pRootCaPath = IOT_ROOT_CA;
arguments.pClientCertPath = IOT_CLIENT_CERT;
arguments.pPrivateKeyPath = IOT_PRIVATE_KEY;
arguments.pUserName = "";
arguments.pPassword = "";
注册回调
回调接口需要由设备侧自行实现,用于上报给SDK一些具体的信息,比如获取和设置设备属性、等等。
具体的回调接口如下:
- 获取属性回调
/** @brief 获取属性回调
* @param inParams 要获取的属性具体类型,格式如下:
* {
* "params": [ // 属性包含的内容, 是Json Array
* "WorkMode" // 具体的属性类型, 是字符串
* ],
* "subDevices": true // 是否为子设备, 是布尔型; 此值为true表示此回调需要获取子设备的属性
* }
* @param outParams 属性结果回传, 是Json Object; 获取属性具体值后,将结果添加到此Json对象中来返回给服务端; 添加格式如下:
* {
* "WorkMode": 1 // 具体的属性类型
* }
* @param device 要设置的设备; 如果是设置子设备属性的话,可以从此参数中得到子设备的产品ID和名称
*/
int (*cbGetProperties)(cJSON *inParams, cJSON *outParams, const IotSubDevice_t *device);
- 设置属性回调
/** @brief 设置属性回调
* @param inParams 要设置的属性具体类型,格式如下:
* {
* "params": { // 属性包含的内容, 是Json Object
* "WorkMode": 1 // 具体的属性类型, 是字符串
* },
* "subDevices": true // 是否为子设备, 是布尔型; 此值为true表示此回调需要设置子设备的属性
* }
* @param device 要设置的设备; 如果是设置子设备属性的话,可以从此参数中得到子设备的产品ID和名称
* @param msg 设置结果回传指针; 此为二重指针,在设置完后,可对该指针传入用于显示结果的固定字符串,用于平台侧记录日志和调试使用
*/
int (*cbSetProperties)(cJSON *inParams, const IotSubDevice_t *device, char **msg);
集成示例
IotClientCallback_t callback;
callback.cbConnect = cbConnect;
callback.cbConnectFailure = cbConnectFailure;
callback.cbDisconnect = cbDisconnect;
callback.cbGetProperties = cbGetProperties;
callback.cbSetProperties = cbSetProperties;
callback.cbCallServices = cbCallServices;
callback.cbUploadStatus = cbUploadStatus;
callback.cbUploadResponses = cbUploadResponses;
初始化连接
集成示例
IotClient_Init(callback, arguments);
IotClient_LocalPath(".");
IotClient_InitCloudLog(false, 2, 20);
IotClient_Connect();