subdev模块头文件, 提供子设备管理的能力  
更多...
#include <stdint.h>
浏览源代码.
 | 
| 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模块头文件, 提供子设备管理的能力 
- 版权所有
 - Copyright (C) 2015-2020 Alibaba Group Holding Limited 
 
 
      
        
          | #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] | handle | subdev会话句柄  | 
    | [in] | packet | subdev消息结构体, 存放收到的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参数的数据类型
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 * 
 
- 返回值
 - 
  
    | 非NULL | subdev实例的句柄  | 
    | NULL | 初始化失败, 一般是内存分配失败导致  | 
  
   
 
 
配置subdev会话 
- 参数
 - 
  
  
 
- 返回
 - 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关系的请求 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | 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关系的请求 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | 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关系的请求 
- 参数
 - 
  
  
 
- 返回
 - 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  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
向物联网平台发送子设备上线请求 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | 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  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
向物联网平台发送子设备下线请求 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | 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  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
向物联网平台发送子设备动态注册请求 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | 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  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
向物联网平台发送子设备动态注册请求(可从其他网关抢绑子设备) 
- 参数
 - 
  
    | handle | subdev会话句柄  | 
    | dev | 需要动态注册的子设备数组  | 
    | dev_num | 子设备数组中的子设备数量 | 
  
   
- 返回
 - int32_t 
 
- 返回值
 - 
  
    | <STATE_SUCCESS | 请求发送失败  | 
    | >=STATE_SUCCESS | 请求发送成功 | 
  
   
- 注解
 
aiot_subdev_dev_t 中需要填写product key, device name, product secret