认证与连接

本文主要介绍如何进行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一些具体的信息,比如获取和设置设备属性、等等。

具体的回调接口如下:

  1. 获取属性回调
/** @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);
  1. 设置属性回调
/** @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();

results matching ""

    No results matching ""