API 说明

优质
小牛编辑
135浏览
2023-12-01

ali-iotkit 是 RT-Thread 移植的用于连接阿里云 IoT 平台的软件包。基础 SDK 是阿里提供的 iotkit-embedded C-SDK

这里引用阿里 iotkit-embedded API 使用说明,内容如下。

注:以下的 API 描述信息来自阿里云,更多详细内容请参阅 iotkit-embedded wiki

必选 API

序号函数名说明
1IOT_OpenLog开始打印日志信息(log), 接受一个 const char * 为入参, 表示模块名字
2IOT_CloseLog停止打印日志信息(log), 入参为空
3IOT_SetLogLevel设置打印的日志等级, 接受入参从1到5, 数字越大, 打印越详细
4IOT_DumpMemoryStats调试函数, 打印内存的使用统计情况, 入参为1-5, 数字越大, 打印越详细

MQTT 功能相关 API

序号函数名说明
1IOT_SetupConnInfoMQTT连接前的准备, 基于DeviceName + DeviceSecret + ProductKey产生MQTT连接的用户名和密码等
2IOT_SetupConnInfoSecureMQTT连接前的准备, 基于ID2 + DeviceSecret + ProductKey产生MQTT连接的用户名和密码等,ID2模式启用
3IOT_MQTT_CheckStateNormalMQTT连接后, 调用此函数检查长连接是否正常
4IOT_MQTT_ConstructMQTT实例的构造函数, 入参为iotx_mqtt_param_t结构体, 连接MQTT服务器, 并返回被创建句柄
5IOT_MQTT_ConstructSecureMQTT实例的构造函数, 入参为iotx_mqtt_param_t结构体, 连接MQTT服务器, 并返回被创建句柄 ,ID2模式启用
6IOT_MQTT_DestroyMQTT实例的摧毁函数, 入参为IOT_MQTT_Construct()创建的句柄
7IOT_MQTT_PublishMQTT会话阶段, 组织一个完整的MQTT Publish报文, 向服务端发送消息发布报文
8IOT_MQTT_SubscribeMQTT会话阶段, 组织一个完整的MQTT Subscribe报文, 向服务端发送订阅请求
9IOT_MQTT_UnsubscribeMQTT会话阶段, 组织一个完整的MQTT UnSubscribe报文, 向服务端发送取消订阅请求
10IOT_MQTT_YieldMQTT会话阶段, MQTT主循环函数, 内含了心跳的维持, 服务器下行报文的收取等

CoAP 功能相关 API

序号函数名说明
1IOT_CoAP_InitCoAP实例的构造函数, 入参为iotx_coap_config_t结构体, 返回创建的CoAP会话句柄
2IOT_CoAP_DeinitCoAP实例的摧毁函数, 入参为IOT_CoAP_Init()所创建的句柄
3IOT_CoAP_DeviceNameAuth基于控制台申请的DeviceName, DeviceSecret, ProductKey做设备认证
4IOT_CoAP_GetMessageCodeCoAP会话阶段, 从服务器的CoAP Response报文中获取Respond Code
5IOT_CoAP_GetMessagePayloadCoAP会话阶段, 从服务器的CoAP Response报文中获取报文负载
6IOT_CoAP_SendMessageCoAP会话阶段, 连接已成功建立后调用, 组织一个完整的CoAP报文向服务器发送
7IOT_CoAP_YieldCoAP会话阶段, 连接已成功建立后调用, 检查和收取服务器对CoAP Request的回复报文

HTTP 功能相关 API

序号函数名说明
1IOT_HTTP_InitHttps实例的构造函数, 创建一个HTTP会话的句柄并返回
2IOT_HTTP_DeInitHttps实例的摧毁函数, 销毁所有相关的数据结构
3IOT_HTTP_DeviceNameAuth基于控制台申请的DeviceName, DeviceSecret, ProductKey做设备认证
4IOT_HTTP_SendMessageHttps会话阶段, 组织一个完整的HTTP报文向服务器发送,并同步获取HTTP回复报文
5IOT_HTTP_DisconnectHttps会话阶段, 关闭HTTP层面的连接, 但是仍然保持TLS层面的连接

OTA 功能相关 API

序号函数名说明
1IOT_OTA_InitOTA实例的构造函数, 创建一个OTA会话的句柄并返回
2IOT_OTA_DeinitOTA实例的摧毁函数, 销毁所有相关的数据结构
3IOT_OTA_IoctlOTA实例的输入输出函数, 根据不同的命令字可以设置OTA会话的属性, 或者获取OTA会话的状态
4IOT_OTA_GetLastErrorOTA会话阶段, 若某个IOT_OTA_*()函数返回错误, 调用此接口可获得最近一次的详细错误码
5IOT_OTA_ReportVersionOTA会话阶段, 向服务端汇报当前的固件版本号
6IOT_OTA_FetchYieldOTA下载阶段, 在指定的timeout时间内, 从固件服务器下载一段固件内容, 保存在入参buffer中
7IOT_OTA_IsFetchFinishOTA下载阶段, 判断迭代调用IOT_OTA_FetchYield()是否已经下载完所有的固件内容
8IOT_OTA_IsFetchingOTA下载阶段, 判断固件下载是否仍在进行中, 尚未完成全部固件内容的下载
9IOT_OTA_ReportProgress可选API, OTA下载阶段, 调用此函数向服务端汇报已经下载了全部固件内容的百分之多少
10IOT_OTA_RequestImage可选API,向服务端请求固件下载
11IOT_OTA_GetConfig可选API,向服务端请求远程配置

云端连接 Cloud Connection 功能相关 API

序号函数名说明
1IOT_Cloud_Connection_Init云端连接实例的构造函数, 入参为iotx_cloud_connection_param_pt结构体, 返回创建的云端连接会话句柄
2IOT_Cloud_Connection_Deinit云端连接实例的摧毁函数, 入参为IOT_Cloud_Connection_Init()所创建的句柄
3IOT_Cloud_Connection_Send_Message发送数据给云端
4IOT_Cloud_Connection_Yield云端连接成功建立后,收取服务器发送的报文

CMP 功能相关 API

序号函数名说明
1IOT_CMP_InitCMP实例的构造函数, 入参为iotx_cmp_init_param_pt结构体,只存在一个CMP实例
2IOT_CMP_Register通过CMP订阅服务
3IOT_CMP_Unregister通过CMP取消服务订阅
4IOT_CMP_Send通过CMP发送数据,可以送给云端,也可以送给本地设备
5IOT_CMP_Send_Sync通过CMP同步发送数据 ,暂不支持
6IOT_CMP_Yield通过CMP接收数据,单线程情况下才支持
7IOT_CMP_DeinitCMP示例的摧毁函数
8IOT_CMP_OTA_Start初始化ota功能,上报版本
9IOT_CMP_OTA_Set_Callback设置OTA回调函数
10IOT_CMP_OTA_Get_Config获取远程配置
11IOT_CMP_OTA_Request_Image获取固件
12IOT_CMP_OTA_Yield通过CMP完成OTA功能

设备影子相关(可选功能) API

序号函数名说明
1IOT_Shadow_Construct建立一个设备影子的MQTT连接, 并返回被创建的会话句柄
2IOT_Shadow_Destroy摧毁一个设备影子的MQTT连接, 销毁所有相关的数据结构, 释放内存, 断开连接
3IOT_Shadow_Pull把服务器端被缓存的JSON数据下拉到本地, 更新本地的数据属性
4IOT_Shadow_Push把本地的数据属性上推到服务器缓存的JSON数据, 更新服务端的数据属性
5IOT_Shadow_Push_AsyncIOT_Shadow_Push()接口类似, 但是异步的, 上推后便返回, 不等待服务端回应
6IOT_Shadow_PushFormat_Add向已创建的数据类型格式中增添成员属性
7IOT_Shadow_PushFormat_Finalize完成一个数据类型格式的构造过程
8IOT_Shadow_PushFormat_Init开始一个数据类型格式的构造过程
9IOT_Shadow_RegisterAttribute创建一个数据类型注册到服务端, 注册时需要*PushFormat*()接口创建的数据类型格式
10IOT_Shadow_DeleteAttribute删除一个已被成功注册的数据属性
11IOT_Shadow_YieldMQTT的主循环函数, 调用后接受服务端的下推消息, 更新本地的数据属性

主子设备相关(可选功能) API

序号函数名说明
1IOT_Gateway_Construct建立一个主设备,建立MQTT连接, 并返回被创建的会话句柄
2IOT_Gateway_Destroy摧毁一个主设备的MQTT连接, 销毁所有相关的数据结构, 释放内存, 断开连接
3IOT_Subdevice_Login子设备上线,通知云端建立子设备session
4IOT_Subdevice_Logout子设备下线,销毁云端建立子设备session及所有相关的数据结构, 释放内存
5IOT_Gateway_YieldMQTT的主循环函数, 调用后接受服务端的下推消息
6IOT_Gateway_Subscribe通过MQTT连接向服务端发送订阅请求
7IOT_Gateway_Unsubscribe通过MQTT连接向服务端发送取消订阅请求
8IOT_Gateway_Publish通过MQTT连接服务端发送消息发布报文
9IOT_Gateway_RRPC_Register注册设备的RRPC回调函数,接收云端发起的RRPC请求
10IOT_Gateway_RRPC_Response对云端的RRPC请求进行应答
11IOT_Gateway_Generate_Message_ID生成消息id
12IOT_Gateway_Get_TOPO向topo/get topic发送包并等待回复(TOPIC_GET_REPLY 回复)
13IOT_Gateway_Get_Config向conifg/get topic发送包并等待回复(TOPIC_CONFIG_REPLY 回复)
14IOT_Gateway_Publish_Found_List发现设备列表上报

linkkit 功能相关 API

序号函数名说明
1linkkit_start启动 linkkit 服务,与云端建立连接并安装回调函数
2linkkit_end停止 linkkit 服务,与云端断开连接并回收资源
3linkkit_dispatch事件分发函数,触发 linkkit_start 安装的回调
4linkkit_yieldlinkkit 主循环函数,内含了心跳的维持, 服务器下行报文的收取等;如果允许多线程,请不要调用此函数
5linkkit_set_value根据identifier设置物对象的 TSL 属性,如果标识符为struct类型、event output类型或者service output类型,使用点'.'分隔字段;例如"identifier1.identifier2"指向特定的项
6linkkit_get_value根据identifier获取物对象的 TSL 属性
7linkkit_set_tsl从本地读取 TSL 文件,生成物的对象并添加到 linkkit 中
8linkkit_answer_service对云端服务请求进行回应
9linkkit_invoke_raw_service向云端发送裸数据
10linkkit_trigger_event上报设备事件到云端
11linkkit_fota_init初始化 OTA-fota 服务,并安装回调函数(需编译设置宏 SERVICE_OTA_ENABLED )
12linkkit_invoke_fota_service执行fota服务
13linkkit_fota_init初始化 OTA-cota 服务,并安装回调函数(需编译设置宏 SERVICE_OTA_ENABLED SERVICE_COTA_ENABLED )
14linkkit_invoke_cota_get_config设备请求远程配置
15linkkit_invoke_cota_service执行cota服务