阿里云IOT C-SDK 源码分析系列(3):IOT_Linkkit_Connect 接口源码分析
从字面意思也能看出 该函数是 设备 向 云服务器 发起连接的功能函数,但是“连接”功能知识它的主要功能,它还实现了一些其他的参数初始化,比如特别重要的 底层 HAL 接口函数的绑定。该函数 原型如下: IOT_Linkkit_Connect 原型 int IOT_Linkkit_Connect(int devid); 接口说明 对于主设备来说, 将会建立设备与云端的通信. 对于子设备来说, 将向云端注册该子设备(如果需要的话), 并添加主子设备拓扑关系 参数说明 参数 数据类型 方向 说明 devid int 输入 设备ID 返回值说明 值 说明 0 成功 < 0 失败 我们还是通过树形结构来分析一下 网关主设备调用 该函数的实现原理: 简单概括的说,IOT_Linkkit_Connect 函数的关键功能是: 1、找到 _mqtt_connection 的地址。 2、执行_mqtt_connection 的 _mqtt_connect 函数,而_mqtt_connect 函数的功能主要有: ① 通过 IOT_MQTT_Construct 实现底层HAL 接口函数的 绑定,并且将 HAL函数集指针 赋值给 全局变量 g_mqtt_client ② 将绑定的底层HAL接口函数集指针 再赋值给 _mqtt_connection->context ③ 然后调用底层 HAL 接口的 TCP