Link Kit C-SDK  4.1.0
| 宏定义 | 类型定义 | 枚举 | 函数
aiot_devinfo_api.h 文件参考

devinfo模块头文件, 提供更新和删除设备标签的能力 更多...

#include <stdint.h>
aiot_devinfo_api.h 的引用(Include)关系图:

浏览源代码.

struct  aiot_devinfo_recv_generic_reply_t
 
struct  aiot_devinfo_recv_get_reply_t
 
struct  aiot_devinfo_recv_t
 devinfo模块收到从网络上来的报文时, 通知用户的报文内容 更多...
 
struct  aiot_devinfo_event_t
 devinfo模块内部发生值得用户关注的状态变化时, 通知用户的事件内容 更多...
 
struct  aiot_devinfo_msg_data_t
 更新或删除设备标签的params内容 更多...
 
struct  aiot_devinfo_msg_t
 

宏定义

#define STATE_DEVINFO_BASE   (-0x1200)
 -0x1200~-0x12FF表达SDK在devinfo模块内的状态码 更多...
 
#define STATE_DEVINFO_MISSING_MQTT_HANDLE   (-0x1201)
 MQTT会话句柄未设置, 请通过 aiot_devinfo_setopt 设置MQTT会话句柄 更多...
 

类型定义

typedef void(* aiot_devinfo_recv_handler_t) (void *handle, const aiot_devinfo_recv_t *packet, void *userdata)
 devinfo模块收到从网络上来的报文时, 通知用户所调用的数据回调函数 更多...
 
typedef void(* aiot_devinfo_event_handler_t) (void *handle, const aiot_devinfo_event_t *event, void *userdata)
 devinfo模块内部发生值得用户关注的状态变化时, 通知用户所调用的事件回调函数 更多...
 

枚举

enum  aiot_devinfo_recv_type_t { AIOT_DEVINFORECV_GENERIC_REPLY, AIOT_DEVINFORECV_GET_REPLY }
 devinfo模块收到从网络上来的报文时, 通知用户的报文类型 更多...
 
enum  aiot_devinfo_event_type_t { AIOT_DEVINFOEVT_INVALID_DEVINFO, AIOT_DEVINFOEVT_INVALID_RESPONSE, AIOT_DEVINFOEVT_INVALID_RESPONSE_FORMAT }
 devinfo模块内部发生值得用户关注的状态变化时, 通知用户的事件类型 更多...
 
enum  aiot_devinfo_msg_type_t { AIOT_DEVINFO_MSG_UPDATE, AIOT_DEVINFO_MSG_DELETE, AIOT_DEVINFO_MSG_GET }
 aiot_devinfo_msg_t 中的发送消息类型 更多...
 
enum  aiot_devinfo_option_t {
  AIOT_DEVINFOOPT_MQTT_HANDLE, AIOT_DEVINFOOPT_RECV_HANDLER, AIOT_DEVINFOOPT_EVENT_HANDLER, AIOT_DEVINFOOPT_USERDATA,
  AIOT_DEVINFOOPT_DEINIT_TIMEOUT_MS, AIOT_DEVINFOOPT_MAX
}
 aiot_devinfo_setopt 接口的option参数可选值. 更多...
 

函数

void * aiot_devinfo_init (void)
 创建devinfo会话实例, 并以默认值配置会话参数 更多...
 
int32_t aiot_devinfo_setopt (void *handle, aiot_devinfo_option_t option, void *data)
 配置devinfo会话 更多...
 
int32_t aiot_devinfo_deinit (void **handle)
 结束devinfo会话, 销毁实例并回收资源 更多...
 
int32_t aiot_devinfo_send (void *handle, aiot_devinfo_msg_t *msg)
 向devinfo服务器发送devinfo消息请求 更多...
 

详细描述

devinfo模块头文件, 提供更新和删除设备标签的能力

Devinfo模块用于向阿里云物联网平台更新或删除设备的标签, API的使用流程如下:

  1. 首先参考 aiot_mqtt_api.h 的说明, 保证成功建立与物联网平台的MQTT连接
  2. 调用 aiot_devinfo_init 初始化devinfo会话, 获取会话句柄
  3. 调用 aiot_devinfo_setopt 配置devinfo会话的参数, 常用配置项见 aiot_devinfo_setopt 的说明
  4. 调用 aiot_devinfo_send 发送标签变更的请求, 比如更新或删除
  5. 收到的应答经SDK处理后会调用由 aiot_devinfo_setopt 配置的 AIOT_DEVINFOOPT_RECV_HANDLER 回调函数, 通知用户云端的应答

宏定义说明

#define STATE_DEVINFO_BASE   (-0x1200)

-0x1200~-0x12FF表达SDK在devinfo模块内的状态码

#define STATE_DEVINFO_MISSING_MQTT_HANDLE   (-0x1201)

MQTT会话句柄未设置, 请通过 aiot_devinfo_setopt 设置MQTT会话句柄

类型定义说明

typedef void(* aiot_devinfo_recv_handler_t) (void *handle, const aiot_devinfo_recv_t *packet, void *userdata)

devinfo模块收到从网络上来的报文时, 通知用户所调用的数据回调函数

参数
[in]handledevinfo会话句柄
[in]packetdevinfo消息结构体, 存放收到的devinfo报文内容
[in]userdata用户上下文
返回
void
typedef void(* aiot_devinfo_event_handler_t) (void *handle, const aiot_devinfo_event_t *event, void *userdata)

devinfo模块内部发生值得用户关注的状态变化时, 通知用户所调用的事件回调函数

参数
[in]handle,devinfo会话句柄
[in]event,devinfo模块中发生的事件的内容
[in]userdata,用户上下文
返回
void

枚举类型说明

devinfo模块收到从网络上来的报文时, 通知用户的报文类型

枚举值
AIOT_DEVINFORECV_GENERIC_REPLY 
AIOT_DEVINFORECV_GET_REPLY 

devinfo模块内部发生值得用户关注的状态变化时, 通知用户的事件类型

枚举值
AIOT_DEVINFOEVT_INVALID_DEVINFO 

收到的应答中设备信息不合法, 无法获取product key和device name

AIOT_DEVINFOEVT_INVALID_RESPONSE 

收到的应答中字段不合法

AIOT_DEVINFOEVT_INVALID_RESPONSE_FORMAT 

收到的应答中字段格式错误

aiot_devinfo_msg_t 中的发送消息类型

消息类型有两个, 分别是更新设备标签和删除设备标签

枚举值
AIOT_DEVINFO_MSG_UPDATE 

更新设备标签

AIOT_DEVINFO_MSG_DELETE 

删除设备标签

AIOT_DEVINFO_MSG_GET 

查询设备标签

aiot_devinfo_setopt 接口的option参数可选值.

下文每个选项中的数据类型, 指的是aiot_devinfo_setopt 中, data参数的数据类型

  1. data的数据类型是void *时, 以配置AIOT_DEVINFOOPT_MQTT_HANDLE 为例:

    void *mqtt_handle = aiot_mqtt_init(); aiot_devinfo_setopt(devinfo_handle, AIOT_DEVINFOOPT_MQTT_HANDLE, mqtt_handle);

  2. data的数据类型是其他数据类型时, 以配置AIOT_DEVINFOOPT_DEINIT_TIMEOUT_MS 为例:

    uint32_t deinit_timeout_ms = 443; aiot_devinfo_setopt(devinfo_handle, AIOT_DEVINFOOPT_DEINIT_TIMEOUT_MS, (void *)&deinit_timeout_ms);

枚举值
AIOT_DEVINFOOPT_MQTT_HANDLE 

devinfo会话 需要的MQTT句柄, 需要先建立MQTT连接, 再设置MQTT句柄

AIOT_DEVINFOOPT_RECV_HANDLER 

设置回调, 它在SDK收到网络报文的时候被调用, 告知用户

数据类型: ( aiot_devinfo_recv_handler_t)

AIOT_DEVINFOOPT_EVENT_HANDLER 

设置回调, 它在SDK发生内部状态变更时被调用, 告知用户

数据类型: ( aiot_devinfo_event_handler_t)

AIOT_DEVINFOOPT_USERDATA 

用户需要SDK暂存的上下文, 数据类型为(void *)

这个上下文指针会在 AIOT_DEVINFOOPT_RECV_HANDLER 和 AIOT_DEVINFOOPT_EVENT_HANDLER 设置的回调被调用时, 由SDK传给用户

AIOT_DEVINFOOPT_DEINIT_TIMEOUT_MS 

销毁devinfo实例时, 等待其他api执行完毕的时间

当调用aiot_devinfo_deinit 销毁devinfo实例时, 若继续调用其他aiot_devinfo_xxx API, API会返回STATE_USER_INPUT_EXEC_DISABLED 错误

此时, 用户应该停止调用其他aiot_devinfo_xxx API

数据类型: (uint32_t *) 默认值: (2 * 1000) ms

AIOT_DEVINFOOPT_MAX 

函数说明

void* aiot_devinfo_init ( void  )

创建devinfo会话实例, 并以默认值配置会话参数

返回
void *
返回值
非NULLdevinfo实例的句柄
NULL初始化失败, 一般是内存分配失败导致

函数调用图:

int32_t aiot_devinfo_setopt ( void *  handle,
aiot_devinfo_option_t  option,
void *  data 
)

配置devinfo会话

参数
[in]handledevinfo会话句柄
[in]option配置选项, 更多信息请参考aiot_devinfo_option_t
[in]data配置选项数据, 更多信息请参考aiot_devinfo_option_t
返回
int32_t
返回值
<STATE_SUCCESS参数配置失败
>=STATE_SUCCESS参数配置成功

函数调用图:

int32_t aiot_devinfo_deinit ( void **  handle)

结束devinfo会话, 销毁实例并回收资源

参数
[in]handle指向devinfo会话句柄的指针
返回
int32_t
返回值
<STATE_SUCCESS执行失败
>=STATE_SUCCESS执行成功

函数调用图:

int32_t aiot_devinfo_send ( void *  handle,
aiot_devinfo_msg_t msg 
)

向devinfo服务器发送devinfo消息请求

参数
handledevinfo会话句柄
msgdevinfo发送给云端的删除/更新设备标签信息的报文
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功

函数调用图: