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

Bootstrap模块头文件, 可用于获取阿里云物联网平台的连接信息 更多...

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

浏览源代码.

struct  aiot_bootstrap_recv_t
 bootstrap接收到的数据 更多...
 
struct  aiot_bootstrap_event_t
 bootstrap内部事件 更多...
 

宏定义

#define STATE_BOOTSTRAP_BASE   (-0x0700)
 -0x0700~-0x07FF表达SDK在 bootstrap 模块内的状态码 更多...
 
#define STATE_BOOTSTRAP_DEINIT_TIMEOUT   (-0x0701)
 执行aiot_bootstrap_deinit 时, 等待其他API执行结束的超过设定的超时时间, MQTT实例销毁失败 更多...
 
#define STATE_BOOTSTRAP_NEED_SEND_REQUEST   (-0x0702)
 需要首先执行aiot_bootstrap_send_request 发送bootstrap请求 更多...
 
#define STATE_BOOTSTRAP_INVALID_STATUS_CODE   (-0x0703)
 bootstrap 服务端返回了错误的http status code 更多...
 
#define STATE_BOOTSTRAP_INVALID_CONNECTION_INFO   (-0x0704)
 收到非法的bootstrap连接信息 更多...
 
#define STATE_BOOTSTRAP_PUB_REQUEST_FAILED   (-0x0705)
 发送bootstrap请求失败 更多...
 

类型定义

typedef void(* aiot_bootstrap_recv_handler_t) (void *handle, const aiot_bootstrap_recv_t *packet, void *userdata)
 bootstrap数据接收回调函数原型 更多...
 
typedef void(* aiot_bootstrap_event_handler_t) (void *handle, const aiot_bootstrap_event_t *event, void *userdata)
 bootstrap事件回调函数 更多...
 

枚举

enum  aiot_bootstrap_recv_type_t { AIOT_BOOTSTRAPRECV_STATUS_CODE, AIOT_BOOTSTRAPRECV_CONNECTION_INFO, AIOT_BOOTSTRAPRECV_NOTIFY }
 bootstrap报文类型 更多...
 
enum  aiot_bootstrap_event_type_t { AIOT_BOOTSTRAPEVT_INVALID_RESPONSE, AIOT_BOOTSTRAPEVT_INVALID_CMD }
 bootstrap内部事件类型 更多...
 
enum  aiot_bootstrap_option_t {
  AIOT_BOOTSTRAPOPT_MQTT_HANDLE, AIOT_BOOTSTRAPOPT_NETWORK_CRED, AIOT_BOOTSTRAPOPT_HOST, AIOT_BOOTSTRAPOPT_PORT,
  AIOT_BOOTSTRAPOPT_PRODUCT_KEY, AIOT_BOOTSTRAPOPT_DEVICE_NAME, AIOT_BOOTSTRAPOPT_REGIONID, AIOT_BOOTSTRAPOPT_SEND_TIMEOUT_MS,
  AIOT_BOOTSTRAPOPT_RECV_TIMEOUT_MS, AIOT_BOOTSTRAPOPT_RECV_HANDLER, AIOT_BOOTSTRAPOPT_EVENT_HANDLER, AIOT_BOOTSTRAPOPT_USERDATA,
  AIOT_BOOTSTRAPOPT_TIMEOUT_MS, AIOT_BOOTSTRAPOPT_DEINIT_TIMEOUT_MS, AIOT_BOOTSTRAPOPT_MAX
}
 

函数

void * aiot_bootstrap_init (void)
 初始化bootstrap实例并设置默认参数 更多...
 
int32_t aiot_bootstrap_setopt (void *handle, aiot_bootstrap_option_t option, void *data)
 设置bootstrap参数 更多...
 
int32_t aiot_bootstrap_deinit (void **handle)
 释放bootstrap实例句柄的资源 更多...
 
int32_t aiot_bootstrap_send_request (void *handle)
 向bootstrap服务器发送请求 更多...
 
int32_t aiot_bootstrap_recv (void *handle)
 从bootstrap服务器接收应答 更多...
 

详细描述

Bootstrap模块头文件, 可用于获取阿里云物联网平台的连接信息

宏定义说明

#define STATE_BOOTSTRAP_BASE   (-0x0700)

-0x0700~-0x07FF表达SDK在 bootstrap 模块内的状态码

#define STATE_BOOTSTRAP_DEINIT_TIMEOUT   (-0x0701)

执行aiot_bootstrap_deinit 时, 等待其他API执行结束的超过设定的超时时间, MQTT实例销毁失败

#define STATE_BOOTSTRAP_NEED_SEND_REQUEST   (-0x0702)

需要首先执行aiot_bootstrap_send_request 发送bootstrap请求

#define STATE_BOOTSTRAP_INVALID_STATUS_CODE   (-0x0703)

bootstrap 服务端返回了错误的http status code

#define STATE_BOOTSTRAP_INVALID_CONNECTION_INFO   (-0x0704)

收到非法的bootstrap连接信息

#define STATE_BOOTSTRAP_PUB_REQUEST_FAILED   (-0x0705)

发送bootstrap请求失败

类型定义说明

typedef void(* aiot_bootstrap_recv_handler_t) (void *handle, const aiot_bootstrap_recv_t *packet, void *userdata)

bootstrap数据接收回调函数原型

参数
[in]handlebootstrap实例句柄
[in]packetbootstrap数据结构体, 存放收到的bootstrap信息
[in]userdata用户上下文
返回
void
typedef void(* aiot_bootstrap_event_handler_t) (void *handle, const aiot_bootstrap_event_t *event, void *userdata)

bootstrap事件回调函数

当NTP内部事件被触发时, 调用此函数

枚举类型说明

bootstrap报文类型

传入 aiot_bootstrap_recv_handler_t 的MQTT报文类型

枚举值
AIOT_BOOTSTRAPRECV_STATUS_CODE 

bootstrap 服务器返回的http status code

AIOT_BOOTSTRAPRECV_CONNECTION_INFO 

物联网平台连接信息, 包含域名和端口号

AIOT_BOOTSTRAPRECV_NOTIFY 

bootstrap通知信息

bootstrap内部事件类型

枚举值
AIOT_BOOTSTRAPEVT_INVALID_RESPONSE 

收到的bootstrap应答中字段不合法

AIOT_BOOTSTRAPEVT_INVALID_CMD 

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

枚举值
AIOT_BOOTSTRAPOPT_MQTT_HANDLE 

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

数据类型: (void *)

AIOT_BOOTSTRAPOPT_NETWORK_CRED 

bootstrap 服务器建联时, 网络使用的安全凭据

该配置项用于为底层网络配置aiot_sysdep_network_cred_t 安全凭据数据

应当把 aiot_sysdep_network_cred_t 中option配置为AIOT_SYSDEP_NETWORK_CRED_SVRCERT_CA , 以tls方式建联

数据类型: (aiot_sysdep_network_cred_t *)

AIOT_BOOTSTRAPOPT_HOST 

bootstrap 服务器的域名地址或者ip地址

阿里云物联网平台 bootstrap 服务器域名地址列表:

域名地址 区域 端口号
iot-auth-global.aliyuncs.com 全球 443

数据类型: (char *) 默认值: iot-auth-global.aliyuncs.com

AIOT_BOOTSTRAPOPT_PORT 

bootstrap 服务器的端口号

连接阿里云物联网平台 bootstrap 服务器时:

必须使用tls方式建联, 端口号设置为443

数据类型: (uint16_t *) 默认值: 443

AIOT_BOOTSTRAPOPT_PRODUCT_KEY 

设备的product key, 可从阿里云物联网平台控制台获取

数据类型: (char *)

AIOT_BOOTSTRAPOPT_DEVICE_NAME 

设备的device name, 可从阿里云物联网平台控制台获取

数据类型: (char *)

AIOT_BOOTSTRAPOPT_REGIONID 

配置设备所在的regionId

地域名称 RegionId 地域名称 RegionId
华东2-上海 0 亚太东南 1-新加坡 1
亚太东北 1-日本东京 2 美国东部 1-弗吉尼亚 3
欧洲中部 1-德国法兰克福 4 美国西部 1-硅谷 5
华东 1-杭州 6 华南 1-深圳 7
华北 2-北京 8 华北 1-青岛 9
华北 3-张家口 10 华北 5-呼和浩特 11
华南 2-河源 12 西南 1-成都 13
香港 14 亚太东南 2-澳大利亚悉尼 15
亚太东南 3-马来西亚吉隆坡 16 亚太东南 5-印尼雅加达 17
亚太南部 1-印度孟买 18 英国-伦敦 19
中东东部 1-阿联酋迪拜 20

数据类型: (char *)

AIOT_BOOTSTRAPOPT_SEND_TIMEOUT_MS 

bootstrap会话发送消息时可消费的最长时间间隔

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

AIOT_BOOTSTRAPOPT_RECV_TIMEOUT_MS 

bootstrap会话接收消息时可消费的最长时间间隔

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

AIOT_BOOTSTRAPOPT_RECV_HANDLER 

从 bootstrap 服务器收取的数据从此回调函数进行通知

数据类型: (aiot_bootstrap_recv_handler_t)

AIOT_BOOTSTRAPOPT_EVENT_HANDLER 

bootstrap内部发生的事件会从此回调函数进行通知

数据类型: ( aiot_bootstrap_event_handler_t )

AIOT_BOOTSTRAPOPT_USERDATA 

用户需要SDK暂存的上下文

该上下文会在 AIOT_BOOTSTRAPOPT_RECV_HANDLER 注册的回调函数中传回给用户

数据类型: (void *)

AIOT_BOOTSTRAPOPT_TIMEOUT_MS 

等待bootstrap应答的超时时间

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

AIOT_BOOTSTRAPOPT_DEINIT_TIMEOUT_MS 

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

当调用aiot_bootstrap_deinit 销毁MQTT实例时, 若继续调用其他aiot_bootstrap_xxx API, API会返回STATE_USER_INPUT_EXEC_DISABLED 错误

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

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

AIOT_BOOTSTRAPOPT_MAX 

函数说明

void* aiot_bootstrap_init ( void  )

初始化bootstrap实例并设置默认参数

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

函数调用图:

int32_t aiot_bootstrap_setopt ( void *  handle,
aiot_bootstrap_option_t  option,
void *  data 
)

设置bootstrap参数

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

函数调用图:

int32_t aiot_bootstrap_deinit ( void **  handle)

释放bootstrap实例句柄的资源

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

函数调用图:

int32_t aiot_bootstrap_send_request ( void *  handle)

向bootstrap服务器发送请求

参数
handlebootstrap句柄
返回
int32_t
返回值
<STATE_SUCCESS请求发送失败
>=STATE_SUCCESS请求发送成功

函数调用图:

int32_t aiot_bootstrap_recv ( void *  handle)

从bootstrap服务器接收应答

参数
handlebootstrap句柄
返回
int32_t
返回值
<STATE_SUCCESS数据接收失败
>=STATE_SUCCESS数据接收成功

函数调用图: