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

subdev模块头文件, 提供子设备管理的能力 更多...

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

浏览源代码.

struct  aiot_subdev_generic_reply_t
 
struct  aiot_subdev_generic_notify_t
 
struct  aiot_subdev_recv_t
 subdev模块收到从网络上来的报文时, 通知用户的报文内容 更多...
 
struct  aiot_subdev_event_t
 subdev模块内部发生值得用户关注的状态变化时, 通知用户的事件内容 更多...
 
struct  aiot_subdev_dev_t
 

宏定义

#define STATE_SUBDEV_BASE   (-0x0C00)
 -0x0C00~-0x0CFF表达SDK在subdev模块内的状态码 更多...
 

类型定义

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

枚举

enum  aiot_subdev_recv_type_t {
  AIOT_SUBDEVRECV_TOPO_ADD_REPLY, AIOT_SUBDEVRECV_TOPO_DELETE_REPLY, AIOT_SUBDEVRECV_TOPO_GET_REPLY, AIOT_SUBDEVRECV_BATCH_LOGIN_REPLY,
  AIOT_SUBDEVRECV_BATCH_LOGOUT_REPLY, AIOT_SUBDEVRECV_SUB_REGISTER_REPLY, AIOT_SUBDEVRECV_PRODUCT_REGISTER_REPLY, AIOT_SUBDEVRECV_TOPO_CHANGE_NOTIFY
}
 subdev模块收到从网络上来的报文时, 通知用户的报文类型 更多...
 
enum  aiot_subdev_event_type_t { AIOT_SUBDEVEVT_INVALID_RESPONSE, AIOT_SUBDEVEVT_INVALID_ID, AIOT_SUBDEVEVT_INVALID_CODE }
 subdev模块内部发生值得用户关注的状态变化时, 通知用户的事件类型 更多...
 
enum  aiot_subdev_option_t {
  AIOT_SUBDEVOPT_MQTT_HANDLE, AIOT_SUBDEVOPT_RECV_HANDLER, AIOT_SUBDEVOPT_EVENT_HANDLER, AIOT_SUBDEVOPT_USERDATA,
  AIOT_SUBDEVOPT_MAX
}
 aiot_subdev_setopt 接口的option参数可选值. 更多...
 

函数

void * aiot_subdev_init (void)
 创建subdev会话实例, 并以默认值配置会话参数 更多...
 
int32_t aiot_subdev_setopt (void *handle, aiot_subdev_option_t option, void *data)
 配置subdev会话 更多...
 
int32_t aiot_subdev_deinit (void **handle)
 结束subdev会话, 销毁实例并回收资源 更多...
 
int32_t aiot_subdev_send_topo_add (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送添加子设备与网关topo关系的请求 更多...
 
int32_t aiot_subdev_send_topo_delete (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送删除子设备与网关topo关系的请求 更多...
 
int32_t aiot_subdev_send_topo_get (void *handle)
 向物联网平台发送查询子设备与网关topo关系的请求 更多...
 
int32_t aiot_subdev_send_batch_login (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送子设备上线请求 更多...
 
int32_t aiot_subdev_send_batch_logout (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送子设备下线请求 更多...
 
int32_t aiot_subdev_send_sub_register (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送子设备动态注册请求 更多...
 
int32_t aiot_subdev_send_product_register (void *handle, aiot_subdev_dev_t dev[], uint32_t dev_num)
 向物联网平台发送子设备动态注册请求(可从其他网关抢绑子设备) 更多...
 

详细描述

subdev模块头文件, 提供子设备管理的能力

宏定义说明

#define STATE_SUBDEV_BASE   (-0x0C00)

-0x0C00~-0x0CFF表达SDK在subdev模块内的状态码

类型定义说明

typedef void(* aiot_subdev_recv_handler_t) (void *handle, const aiot_subdev_recv_t *packet, void *user_data)

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

参数
[in]handlesubdev会话句柄
[in]packetsubdev消息结构体, 存放收到的subdev报文内容
[in]userdata用户上下文
返回
void
typedef void(* aiot_subdev_event_handler_t) (void *handle, const aiot_subdev_event_t *event, void *userdata)

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

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

枚举类型说明

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

枚举值
AIOT_SUBDEVRECV_TOPO_ADD_REPLY 
AIOT_SUBDEVRECV_TOPO_DELETE_REPLY 
AIOT_SUBDEVRECV_TOPO_GET_REPLY 
AIOT_SUBDEVRECV_BATCH_LOGIN_REPLY 
AIOT_SUBDEVRECV_BATCH_LOGOUT_REPLY 
AIOT_SUBDEVRECV_SUB_REGISTER_REPLY 
AIOT_SUBDEVRECV_PRODUCT_REGISTER_REPLY 
AIOT_SUBDEVRECV_TOPO_CHANGE_NOTIFY 

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

枚举值
AIOT_SUBDEVEVT_INVALID_RESPONSE 

非法的应答报文

AIOT_SUBDEVEVT_INVALID_ID 

应答报文的id字段非法

AIOT_SUBDEVEVT_INVALID_CODE 

应答报文的code字段非法

aiot_subdev_setopt 接口的option参数可选值.

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

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

    void *mqtt_handle = aiot_mqtt_init(); aiot_subdev_setopt(subdev_handle, AIOT_SUBDEVOPT_MQTT_HANDLE, mqtt_handle);

枚举值
AIOT_SUBDEVOPT_MQTT_HANDLE 

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

数据类型: (void *)

AIOT_SUBDEVOPT_RECV_HANDLER 

设置回调, 它在SDK收到网络报文的时候被调用, 告知用户, 数据类型为(aiot_subdev_recv_handler_t)

数据类型: (aiot_subdev_recv_handler_t)

AIOT_SUBDEVOPT_EVENT_HANDLER 

设置回调, 它在SDK发生内部状态变更时被调用, 告知用户, 数据类型为(aiot_subdev_event_handler_t)

数据类型: (aiot_subdev_event_handler_t)

AIOT_SUBDEVOPT_USERDATA 

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

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

数据类型: (void *)

AIOT_SUBDEVOPT_MAX 

函数说明

void* aiot_subdev_init ( void  )

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

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

函数调用图:

int32_t aiot_subdev_setopt ( void *  handle,
aiot_subdev_option_t  option,
void *  data 
)

配置subdev会话

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

函数调用图:

int32_t aiot_subdev_deinit ( void **  handle)

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

参数
[in]handle指向subdev会话句柄的指针
返回
int32_t
返回值
<STATE_SUCCESS执行失败
>=STATE_SUCCESS执行成功
int32_t aiot_subdev_send_topo_add ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送添加子设备与网关topo关系的请求

参数
handlesubdev会话句柄
dev需要添加topo关系的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name 和 device secret

函数调用图:

int32_t aiot_subdev_send_topo_delete ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送删除子设备与网关topo关系的请求

参数
handlesubdev会话句柄
dev需要删除topo关系的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name

函数调用图:

int32_t aiot_subdev_send_topo_get ( void *  handle)

向物联网平台发送查询子设备与网关topo关系的请求

参数
handlesubdev会话句柄
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name

函数调用图:

int32_t aiot_subdev_send_batch_login ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送子设备上线请求

参数
handlesubdev会话句柄
dev需要上线的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name, device secret

函数调用图:

int32_t aiot_subdev_send_batch_logout ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送子设备下线请求

参数
handlesubdev会话句柄
dev需要下线的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name

函数调用图:

int32_t aiot_subdev_send_sub_register ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送子设备动态注册请求

参数
handlesubdev会话句柄
dev需要动态注册的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name

函数调用图:

int32_t aiot_subdev_send_product_register ( void *  handle,
aiot_subdev_dev_t  dev[],
uint32_t  dev_num 
)

向物联网平台发送子设备动态注册请求(可从其他网关抢绑子设备)

参数
handlesubdev会话句柄
dev需要动态注册的子设备数组
dev_num子设备数组中的子设备数量
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功
注解

aiot_subdev_dev_t 中需要填写product key, device name, product secret

函数调用图: