BR GAP
经典蓝牙(BR/EDR)GAP (Generic Access Profile) 层 API。管理蓝牙协议栈使能/去使能、设备地址获取、连接管理和回调注册。
负责设备发现和链路建立的基础功能,与 BLE (Bluetooth Low Energy) GAP 区分——BR/EDR 用于高带宽场景(音频、串口透传),BLE 用于低功耗场景。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| enable_bt_stack | 使能BT (Bluetooth) 协议栈 |
| disable_bt_stack | 去使能BT协议栈 |
| bluetooth_set_local_addr | 设置本地设备蓝牙地址 |
| bluetooth_get_local_addr | 获取本地设备蓝牙地址 |
| bluetooth_get_local_name | 获取本地设备蓝牙名称 |
| bluetooth_set_local_name | 设置本地设备蓝牙名称 |
| bluetooth_factory_reset | 恢复蓝牙出厂设置 |
| gap_br_get_scan_mode | 获取蓝牙广播模式 |
| gap_br_set_bt_scan_mode | 设置蓝牙广播模式 |
| gap_get_paired_devices_num | 获取配对设备数量 |
| gap_get_paired_devices_list | 获取配对设备列表 |
| gap_get_pair_state | 获取设备配对状态 |
| gap_remove_pair | 删除指定配对设备 |
| gap_remove_all_pairs | 删除所有配对设备 |
| bt_is_acl_connected | 检查ACL (Asynchronous Connection-Less) 链路是否连接 |
| gap_disconnect_remote_device | 断开远端设备连接 |
| gap_connect_remote_device | 与远端设备建立ACL连接 |
| gap_br_start_discovery | 启动蓝牙扫描 |
| gap_br_cancel_discovery | 停止蓝牙扫描 |
| is_bt_discovering | 检查是否正在扫描 |
| gap_read_remote_rssi_value | 获取远端设备RSSI (Received Signal Strength Indicator) 信号强度 |
| gap_get_device_name | 获取远端设备名称 |
| gap_get_device_class | 获取远端设备CoD |
| gap_register_callbacks | 注册GAP回调函数 |
Functions
enable_bt_stack
头文件清单
功能说明
- 使能BT协议栈,初始化蓝牙底层资源与协议栈运行环境
- 调用该接口后协议栈进入初始化状态,状态变化通过 gap_state_changed_callback 回调上报
- 需在调用其他BR (Basic Rate) GAP接口之前完成使能
前置条件
- 蓝牙硬件资源已就绪
- 未重复调用使能接口
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 协议栈使能成功 |
| 非0 | 执行失败 | 协议栈使能失败 |
disable_bt_stack
头文件清单
功能说明
- 去使能BT协议栈,释放蓝牙底层资源与协议栈运行环境
- 调用该接口后协议栈进入去初始化状态,状态变化通过 gap_state_changed_callback 回调上报
- 所有BR/EDR连接将在去使能过程中断开
前置条件
- BT协议栈已通过 enable_bt_stack() 使能
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 协议栈去使能成功 |
| 非0 | 执行失败 | 协议栈去使能失败 |
bluetooth_set_local_addr
头文件清单
功能说明
- 设置本地设备的蓝牙地址
- 地址设置后,本地设备以新地址进行广播与连接
- 地址变更通过 gap_local_device_addr_changed_callback 回调上报
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mac | unsigned char * | 蓝牙设备地址 | 非NULL,长度为6字节 |
| len | unsigned int | 地址长度 | 6 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 设置本地设备地址成功 |
| 非0 | 执行失败 | 设置本地设备地址失败 |
bluetooth_get_local_addr
头文件清单
功能说明
- 获取本地设备的蓝牙地址
- 获取到的地址写入mac指向的缓冲区
- 返回当前本地设备使用的蓝牙地址
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mac | unsigned char * | 蓝牙设备地址输出缓冲区 | 非NULL,长度不小于6字节 |
| len | unsigned int | 地址长度 | 6 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| mac | unsigned char * | 本地设备蓝牙地址 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 获取本地设备地址成功 |
| 非0 | 执行失败 | 获取本地设备地址失败 |
bluetooth_get_local_name
头文件清单
功能说明
- 获取本地设备的蓝牙名称
- 获取到的名称写入local_name指向的缓冲区,实际长度写入length
- 名称采用UTF-8编码
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| local_name | unsigned char * | 蓝牙设备名称输出缓冲区 | 非NULL |
| length | unsigned char * | 获取到的名称长度输出 | 非NULL |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| local_name | unsigned char * | 本地设备蓝牙名称 |
| length | unsigned char * | 名称实际长度 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 获取本地设备名称成功 |
| 非0 | 执行失败 | 获取本地设备名称失败 |
bluetooth_set_local_name
头文件清单
功能说明
- 设置本地设备的蓝牙名称
- 名称设置后生效,名称变更通过 gap_local_device_name_changed_callback 回调上报
- 名称采用UTF-8编码,长度包括结束符\0
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| local_name | const unsigned char * | 蓝牙设备名称 | 非NULL,UTF-8编码 |
| length | unsigned char | 名称长度,包括结束符\0 | 1~32 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 设置本地设备名称成功 |
| 非0 | 执行失败 | 设置本地设备名称失败 |
bluetooth_factory_reset
头文件清单
功能说明
- 恢复蓝牙出厂设置,清除所有配对信息与用户配置
- 调用后蓝牙恢复至初始状态,所有已配对设备信息将被清除
- 需重新使能协议栈后方可继续使用
前置条件
- BT协议栈已使能
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 恢复出厂设置成功 | 恢复操作成功 |
| false | 恢复出厂设置失败 | 恢复操作失败 |
gap_br_get_scan_mode
头文件清单
功能说明
- 获取当前蓝牙广播模式
- 返回值为 gap_scan_mode_t 枚举类型对应的扫描模式
- 用于查询当前设备的可发现性和可连接性状态
前置条件
- BT协议栈已使能
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| GAP_SCAN_MODE_NONE(0x00) | 未知扫描类型 | 未设置扫描模式 |
| GAP_SCAN_MODE_CONNECTABLE(0x01) | 可连接扫描类型 | 设备可连接 |
| GAP_SCAN_MODE_GENERAL_DISCOVERABLE(0x02) | 通用广播扫描类型 | 设备通用可发现 |
| GAP_SCAN_MODE_LIMITED_DISCOVERABLE(0x03) | 受限广播扫描类型 | 设备受限可发现 |
| GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE(0x04) | 可连接的通用广播扫描类型 | 设备可连接且通用可发现 |
| GAP_SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE(0x05) | 可连接的受限广播扫描类型 | 设备可连接且受限可发现 |
gap_br_set_bt_scan_mode
头文件清单
功能说明
- 设置蓝牙广播模式,控制设备的可发现性与可连接性
- 模式变更通过 gap_scan_mode_changed_callback 回调上报
- duration参数控制广播时长
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mode | int | 广播模式,参考 gap_scan_mode_t | GAP_SCAN_MODE_NONE(0x00) ~ GAP_SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE(0x05) |
| duration | int | 广播时长 | 大于0 |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 设置蓝牙广播模式成功 | 设置成功 |
| false | 设置蓝牙广播模式失败 | 设置失败 |
gap_get_paired_devices_num
头文件清单
功能说明
- 获取已配对设备的数量
- 获取到的数量写入number指向的变量
- 用于在调用 gap_get_paired_devices_list 前确定配对设备数量以分配缓冲区
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| number | unsigned int * | 配对设备数量输出 | 非NULL |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| number | unsigned int * | 已配对设备数量 |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 获取配对设备数量成功 | 获取成功 |
| false | 获取配对设备数量失败 | 获取失败 |
gap_get_paired_devices_list
头文件清单
功能说明
- 获取已配对设备的列表信息
- 获取到的设备信息写入dev_info指向的缓冲区,实际数量写入number
- 调用前建议先通过 gap_get_paired_devices_num 获取设备数量以分配足够缓冲区
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| dev_info | gap_paired_device_info_t * | 配对设备信息输出缓冲区 | 非NULL |
| number | int * | 配对设备数量输出 | 非NULL |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| dev_info | gap_paired_device_info_t * | 已配对设备信息列表 |
| number | int * | 实际配对设备数量 |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 获取配对设备列表成功 | 获取成功 |
| false | 获取配对设备列表失败 | 获取失败 |
gap_get_pair_state
头文件清单
功能说明
- 获取指定设备的配对状态
- 返回值为 gap_pair_state_t 枚举类型对应的配对状态
- 配对状态变化通过 gap_pair_status_changed_callback 回调上报
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待查询的设备地址 | 非NULL |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| GAP_PAIR_NONE(0x01) | 未配对 | 设备未配对 |
| GAP_PAIR_PAIRING(0x02) | 配对中 | 正在配对 |
| GAP_PAIR_PAIRED(0x03) | 已配对 | 配对已完成 |
gap_remove_pair
头文件清单
功能说明
- 删除指定地址的配对设备,从配对列表中移除
- 删除后该设备的配对信息与绑定密钥将被清除
- 配对状态变化通过 gap_pair_status_changed_callback 回调上报
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待删除的设备地址 | 非NULL |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 删除配对设备成功 | 删除成功 |
| false | 删除配对设备失败 | 删除失败 |
gap_remove_all_pairs
头文件清单
功能说明
- 删除所有配对设备,清空配对列表
- 所有配对信息与绑定密钥将被清除
- 配对状态变化通过 gap_pair_status_changed_callback 回调上报
前置条件
- BT协议栈已使能
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 删除所有配对设备成功 | 删除成功 |
| false | 删除所有配对设备失败 | 删除失败 |
bt_is_acl_connected
头文件清单
功能说明
- 检查与指定设备的ACL链路是否已建立连接
- ACL连接状态变化通过 gap_acl_state_changed_callback 回调上报
- 用于在发起Profile连接前确认底层ACL链路是否就绪
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待检查的设备地址 | 非NULL |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | ACL已连接 | ACL链路已建立 |
| false | ACL未连接 | ACL链路未建立 |
gap_disconnect_remote_device
头文件清单
功能说明
- 断开与指定远端设备的所有连接,包括所有Profile连接
- 断开连接后ACL链路将被释放,连接状态变化通过 gap_acl_state_changed_callback 回调上报
- 所有关联Profile的连接状态也将变更
前置条件
- BT协议栈已使能
- 与目标设备已建立ACL连接
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待断开连接的设备地址 | 非NULL |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 断开连接成功 |
| 非0 | 执行失败 | 断开连接失败 |
gap_connect_remote_device
头文件清单
功能说明
- 与指定远端设备建立ACL连接
- ACL连接状态变化通过 gap_acl_state_changed_callback 回调上报
- ACL连接建立后方可进行Profile连接
前置条件
- BT协议栈已使能
- 与目标设备未建立ACL连接
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待连接的设备地址 | 非NULL |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0 | 执行成功 | 连接请求成功发起 |
| 非0 | 执行失败 | 连接请求失败 |
gap_br_start_discovery
头文件清单
功能说明
- 启动BR/EDR蓝牙扫描,发现周围蓝牙设备
- 扫描状态变化通过 gap_discovery_state_changed_callback 回调上报
- 发现的设备通过 gap_discovery_result_callback 回调上报
前置条件
- BT协议栈已使能
- 当前未处于扫描状态
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 启动扫描成功 | 扫描启动成功 |
| false | 启动扫描失败 | 扫描启动失败 |
gap_br_cancel_discovery
头文件清单
功能说明
- 停止BR/EDR蓝牙扫描
- 扫描状态变化通过 gap_discovery_state_changed_callback 回调上报
- 停止后不再上报新的发现结果
前置条件
- BT协议栈已使能
- 当前处于扫描状态
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 停止扫描成功 | 停止成功 |
| false | 停止扫描失败 | 停止失败 |
is_bt_discovering
头文件清单
功能说明
- 检查蓝牙是否正在扫描
- 通过transport参数指定查询BR/EDR或BLE的扫描状态
- 用于判断当前是否需要停止扫描
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| transport | int | 数据传输类型,参考 bt_transport_type_t | BT_TRANSPORT_BR_EDR(0x01) / BT_TRANSPORT_LE(0x02) |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 扫描中 | 正在扫描 |
| false | 扫描停止 | 未在扫描 |
gap_read_remote_rssi_value
头文件清单
功能说明
- 读取远端设备的RSSI信号强度
- RSSI值通过 gap_read_remote_rssi_event_callback 回调上报
- 需与目标设备已建立ACL连接方可读取
前置条件
- BT协议栈已使能
- 与目标设备已建立ACL连接
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 待查询的设备地址 | 非NULL |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 获取RSSI信号强度成功 | 读取请求成功发起 |
| false | 获取RSSI信号强度失败 | 读取请求失败 |
gap_get_device_name
头文件清单
功能说明
- 获取远端设备的蓝牙名称
- 名称通过remote_name输出,实际长度通过length输出
- 名称采用UTF-8编码
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 远端设备地址 | 非NULL |
| remote_name | unsigned char * | 远端设备名称输出缓冲区 | 非NULL |
| length | unsigned char * | 名称实际长度输出 | 非NULL |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| remote_name | unsigned char * | 远端设备名称 |
| length | unsigned char * | 名称实际长度 |
返回值
- 返回类型:bool
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| true | 获取远端设备名称成功 | 获取成功 |
| false | 获取远端设备名称失败 | 获取失败 |
gap_get_device_class
头文件清单
功能说明
- 获取远端设备的Class of Device(CoD)
- CoD用于标识远端设备的类型与支持的服务
- CoD由Major Service Class、Major Device Class、Minor Device Class组合构成
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| addr | const bd_addr_t * | 远端设备地址 | 非NULL |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| CoD值(>=0) | 设备类型 | 查询成功返回设备类型 |
| -1 | 获取失败 | 查询失败 |
gap_register_callbacks
头文件清单
功能说明
- 注册GAP回调函数,上层应用通过注册回调接收蓝牙状态变化通知
- 回调函数结构体 gap_call_backs_t 包含所有GAP事件的回调指针
- 注册的回调函数将在对应事件发生时被协议栈调用
前置条件
- BT协议栈已使能
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| func | gap_call_backs_t * | 指向回调函数结构体的指针 | 非NULL |
返回值
- 返回类型:int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | 注册成功 |
| Other | 其他错误码,参考 errcode_bt_t | 执行失败 |
Type definitions
gap_state_changed_callback
使用说明
蓝牙开关状态变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;transport参数参考 bt_transport_type_t,status参数参考 bt_stack_state_t
gap_acl_state_changed_callback
typedef void (*gap_acl_state_changed_callback)(const bd_addr_t *bd_addr, gap_acl_state_t state, unsigned int reason);
使用说明
ACL连接状态变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;state参数参考 gap_acl_state_t,reason参数参考标准HCI (Host Controller Interface) 错误码
gap_discovery_state_changed_callback
使用说明
蓝牙发现状态变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;status参数参考 gap_discovery_state_t
gap_discovery_result_callback
使用说明
蓝牙发现结果回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;bd_addr为所发现的远端设备地址
gap_pair_requested_callback
使用说明
蓝牙配对请求回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;bd_addr为远端设备地址
gap_pair_confirmed_callback
使用说明
蓝牙配对确认回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;req_type参考 gap_pair_confirm_type_t,number为配对密码
gap_scan_mode_changed_callback
使用说明
蓝牙广播模式变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;mode为广播模式
gap_local_device_name_changed_callback
typedef void (*gap_local_device_name_changed_callback)(const unsigned char *device_name, unsigned char length);
使用说明
本地设备名称变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;device_name为本地设备名称,length为名称长度
gap_local_device_addr_changed_callback
使用说明
本地设备地址变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;bd_addr为本地设备地址
gap_pair_status_changed_callback
使用说明
蓝牙配对状态变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;status参考 gap_pair_state_t
gap_remote_uuid_changed_callback
使用说明
远端设备UUID (Universally Unique Identifier) 变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;uuid为远端设备UUID
gap_remote_name_changed_callback
typedef void (*gap_remote_name_changed_callback)(
const bd_addr_t *bd_addr, const unsigned char *device_name, unsigned char length);
使用说明
远端设备名称变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;device_name为远端设备名称,length为名称长度
gap_remote_alias_changed_callback
typedef void (*gap_remote_alias_changed_callback)(const bd_addr_t *bd_addr, const unsigned char *alias,
unsigned char length);
使用说明
远端设备昵称变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;alias为远端设备昵称,length为昵称长度
gap_remote_cod_changed_callback
使用说明
远端设备类型变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;cod为设备类型
gap_remote_battery_level_changed_callback
typedef void (*gap_remote_battery_level_changed_callback)(const bd_addr_t *bd_addr, int battery_level);
使用说明
远端设备电量变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;battery_level为远端设备电量
gap_read_remote_rssi_event_callback
typedef void (*gap_read_remote_rssi_event_callback)(const bd_addr_t *bd_addr, int rssi, int status);
使用说明
远端设备信号强度变化回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;rssi为信号强度,status为BT状态
gap_is_accept_conn_on_safe_mode_callback
使用说明
询问上层应用是否接受连接回调,在 gap_register_callbacks 注册的 gap_call_backs_t 中使用;bd_addr为远端设备地址,res为是否接受连接的决策结果
Enumerations
bt_stack_state_t
typedef enum {
BT_STACK_STATE_TURNING_ON = 0x0,
BT_STACK_STATE_TURN_ON,
BT_STACK_STATE_TURNING_OFF,
BT_STACK_STATE_TURN_OFF
} bt_stack_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_STACK_STATE_TURNING_ON | 0x0 | 蓝牙协议栈正在初始化中 |
| BT_STACK_STATE_TURN_ON | 0x1 | 蓝牙协议栈正在运行中 |
| BT_STACK_STATE_TURNING_OFF | 0x2 | 蓝牙协议栈正在去初始化中 |
| BT_STACK_STATE_TURN_OFF | 0x3 | 蓝牙协议栈已关闭 |
bt_connect_strategy_type_t
typedef enum {
BT_CONNECTION_UNKNOWN = 0x00,
BT_CONNECTION_ALLOWED,
BT_CONNECTION_FORBIDDEN
} bt_connect_strategy_type_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_CONNECTION_UNKNOWN | 0x00 | 未知连接 |
| BT_CONNECTION_ALLOWED | 0x01 | 允许连接 |
| BT_CONNECTION_FORBIDDEN | 0x02 | 禁止连接 |
a2dp_playing_state_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| A2DP_NOT_PLAYING | 0x00 | a2dp未播放 |
| A2DP_IS_PLAYING | 0x01 | a2dp正在播放 |
hfp_sco_connect_state_t
typedef enum {
HFP_SCO_STATE_CONNECTING = 0x01,
HFP_SCO_STATE_CONNECTED = 0x02,
HFP_SCO_STATE_DISCONNECTING = 0x03,
HFP_SCO_STATE_DISCONNECTED = 0x04
} hfp_sco_connect_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| HFP_SCO_STATE_CONNECTING | 0x01 | sco正在连接 |
| HFP_SCO_STATE_CONNECTED | 0x02 | sco已连接 |
| HFP_SCO_STATE_DISCONNECTING | 0x03 | sco正在断连 |
| HFP_SCO_STATE_DISCONNECTED | 0x04 | sco已断连 |
hfp_volume_type_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| HFP_VOLUME_MIC | 0x00 | 调整microphone增益 |
| HFP_VOLUME_SPEAKER | 0x01 | 调整speaker增益 |
profile_connect_state_t
typedef enum {
PROFILE_STATE_CONNECTING = 0x01,
PROFILE_STATE_CONNECTED = 0x02,
PROFILE_STATE_DISCONNECTING = 0x03,
PROFILE_STATE_DISCONNECTED = 0x04
} profile_connect_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PROFILE_STATE_CONNECTING | 0x01 | 正在连接 |
| PROFILE_STATE_CONNECTED | 0x02 | 已连接 |
| PROFILE_STATE_DISCONNECTING | 0x03 | 正在断连 |
| PROFILE_STATE_DISCONNECTED | 0x04 | 已断连 |
bt_transport_type_t
typedef enum {
BT_TRANSPORT_INVALID = 0x00,
BT_TRANSPORT_BR_EDR = 0x01,
BT_TRANSPORT_LE = 0x02
} bt_transport_type_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_TRANSPORT_INVALID | 0x00 | 未知传输类型 |
| BT_TRANSPORT_BR_EDR | 0x01 | 传输类型为BR/EDR |
| BT_TRANSPORT_LE | 0x02 | 传输类型为BLE |
gap_acl_state_t
typedef enum {
GAP_ACL_STATE_CONNECTED,
GAP_ACL_STATE_DISCONNECTED,
GAP_ACL_STATE_LE_CONNECTED,
GAP_ACL_STATE_LE_DISCONNECTED
} gap_acl_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_ACL_STATE_CONNECTED | 0 | GAP ACL已连接 |
| GAP_ACL_STATE_DISCONNECTED | 1 | GAP ACL已断接 |
| GAP_ACL_STATE_LE_CONNECTED | 2 | BLE GAP ACL已连接 |
| GAP_ACL_STATE_LE_DISCONNECTED | 3 | BLE GAP ACL已断接 |
gap_discovery_state_t
typedef enum {
GAP_DISCOVERY_STARTED = 0x01,
GAP_DISCOVERYING = 0x02,
GAP_DISCOVERY_STOPED = 0x03,
} gap_discovery_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_DISCOVERY_STARTED | 0x01 | 已开始扫描 |
| GAP_DISCOVERYING | 0x02 | 正在扫描 |
| GAP_DISCOVERY_STOPED | 0x03 | 扫描已停止 |
gap_bondable_mode_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_BONDABLE_MODE_OFF | 0x00 | 关闭蓝牙绑定模式 |
| GAP_BONDABLE_MODE_ON | 0x01 | 打开蓝牙绑定模式 |
gap_access_permission_type_t
typedef enum {
GAP_ACCESS_PERMISSION_UNKNOWN,
GAP_ACCESS_PERMISSION_ALLOWED,
GAP_ACCESS_PERMISSION_FORBIDDEN,
} gap_access_permission_type_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_ACCESS_PERMISSION_UNKNOWN | 0 | 未知 |
| GAP_ACCESS_PERMISSION_ALLOWED | 1 | 允许访问 |
| GAP_ACCESS_PERMISSION_FORBIDDEN | 2 | 禁止访问 |
gap_scan_mode_t
typedef enum {
GAP_SCAN_MODE_NONE = 0x00,
GAP_SCAN_MODE_CONNECTABLE,
GAP_SCAN_MODE_GENERAL_DISCOVERABLE,
GAP_SCAN_MODE_LIMITED_DISCOVERABLE,
GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE,
GAP_SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE
} gap_scan_mode_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_SCAN_MODE_NONE | 0x00 | 未知扫描类型 |
| GAP_SCAN_MODE_CONNECTABLE | 0x01 | 可连接扫描类型 |
| GAP_SCAN_MODE_GENERAL_DISCOVERABLE | 0x02 | 通用广播扫描类型 |
| GAP_SCAN_MODE_LIMITED_DISCOVERABLE | 0x03 | 受限广播扫描类型 |
| GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE | 0x04 | 可连接的通用广播扫描类型 |
| GAP_SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE | 0x05 | 可连接的受限广播扫描类型 |
bt_profile_type_t
typedef enum {
BT_PROFILE_HEADSET = 0x0,
BT_PROFILE_A2DP,
BT_PROFILE_OPP,
BT_PROFILE_HID,
BT_PROFILE_PANU,
BT_PROFILE_NAP,
BT_PROFILE_HFP
} bt_profile_type_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_PROFILE_HEADSET | 0x0 | Headset服务类型 |
| BT_PROFILE_A2DP | 0x1 | A2DP (Advanced Audio Distribution Profile) 服务类型 |
| BT_PROFILE_OPP | 0x2 | OPP服务类型 |
| BT_PROFILE_HID | 0x3 | HID (Human Interface Device) 服务类型 |
| BT_PROFILE_PANU | 0x4 | PANU服务类型 |
| BT_PROFILE_NAP | 0x5 | NAP服务类型 |
| BT_PROFILE_HFP | 0x6 | HFP (Hands-Free Profile) 服务类型 |
gap_pair_state_t
typedef enum {
GAP_PAIR_NONE = 0x01,
GAP_PAIR_PAIRING = 0x02,
GAP_PAIR_PAIRED = 0x03
} gap_pair_state_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_PAIR_NONE | 0x01 | 未配对状态 |
| GAP_PAIR_PAIRING | 0x02 | 正在配对 |
| GAP_PAIR_PAIRED | 0x03 | 已完成配对 |
gap_pair_confirm_type_t
typedef enum {
GAP_PAIR_CONFIRM_TYPE_PIN_CODE = 0x01,
GAP_PAIR_CONFIRM_TYPE_PASSKEY_DISPLAY = 0x02,
GAP_PAIR_CONFIRM_TYPE_PASSKEY_INPUT = 0x03,
GAP_PAIR_CONFIRM_TYPE_NUMERIC = 0x04,
GAP_PAIR_CONFIRM_TYPE_CONSENT = 0x05,
} gap_pair_confirm_type_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| GAP_PAIR_CONFIRM_TYPE_PIN_CODE | 0x01 | 通过pin code配对 |
| GAP_PAIR_CONFIRM_TYPE_PASSKEY_DISPLAY | 0x02 | 展示PASSKEY |
| GAP_PAIR_CONFIRM_TYPE_PASSKEY_INPUT | 0x03 | 输入PASSKEY |
| GAP_PAIR_CONFIRM_TYPE_NUMERIC | 0x04 | 配对数值 |
| GAP_PAIR_CONFIRM_TYPE_CONSENT | 0x05 | 请求用户同意 |
errcode_bt_t
typedef enum {
ERRCODE_BT_SUCCESS = 0x00,
ERRCODE_BT_FAIL = ERRCODE_BT_COMMON_BASE,
ERRCODE_BT_NOT_READY,
ERRCODE_BT_MALLOC_FAIL,
ERRCODE_BT_MEMCPY_FAIL,
ERRCODE_BT_BUSY,
ERRCODE_BT_DONE,
ERRCODE_BT_UNSUPPORTED,
ERRCODE_BT_PARAM_ERR,
ERRCODE_BT_STATE_ERR,
ERRCODE_BT_UNHANDLED,
ERRCODE_BT_AUTH_FAIL,
ERRCODE_BT_RMT_DEV_DOWN,
ERRCODE_BT_AUTH_REJECTED,
ERRCODE_BT_MAX = ERRCODE_BT_COMMON_END
} errcode_bt_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| ERRCODE_BT_SUCCESS | 0x00 | 执行成功 |
| ERRCODE_BT_FAIL | 0x80006000 | 执行失败 |
| ERRCODE_BT_NOT_READY | 0x80006001 | 状态未就绪 |
| ERRCODE_BT_MALLOC_FAIL | 0x80006002 | 内存不足 |
| ERRCODE_BT_MEMCPY_FAIL | 0x80006003 | 内存拷贝错误 |
| ERRCODE_BT_BUSY | 0x80006004 | 繁忙无法响应 |
| ERRCODE_BT_DONE | 0x80006005 | 执行完成 |
| ERRCODE_BT_UNSUPPORTED | 0x80006006 | 不支持 |
| ERRCODE_BT_PARAM_ERR | 0x80006007 | 无效参数 |
| ERRCODE_BT_STATE_ERR | 0x80006008 | 状态错误 |
| ERRCODE_BT_UNHANDLED | 0x80006009 | 未处理 |
| ERRCODE_BT_AUTH_FAIL | 0x8000600A | 鉴权失败 |
| ERRCODE_BT_RMT_DEV_DOWN | 0x8000600B | 远端设备关闭 |
| ERRCODE_BT_AUTH_REJECTED | 0x8000600C | 鉴权被拒 |
| ERRCODE_BT_MAX | 0x800067FF | 蓝牙错误码最大值 |
Structures
gap_paired_device_info_t
typedef struct {
bd_addr_t addr;
unsigned char device_name[BD_NAME_LEN];
} gap_paired_device_info_t;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| addr | bd_addr_t | 蓝牙地址 |
| device_name | unsigned char[BD_NAME_LEN] | 蓝牙设备名称,UTF-8编码,BD_NAME_LEN=32 |
gap_call_backs_t
typedef struct {
gap_state_changed_callback state_change_callback;
gap_acl_state_changed_callback acl_state_changed_callbak;
gap_scan_mode_changed_callback scan_mode_changed_callback;
gap_pair_status_changed_callback pair_status_changed_callback;
gap_local_device_name_changed_callback device_name_changed_callback;
gap_local_device_addr_changed_callback device_addr_changed_callback;
gap_pair_requested_callback pair_requested_callback;
gap_pair_confirmed_callback pair_confiremed_callback;
gap_discovery_state_changed_callback discovery_state_changed_callback;
gap_discovery_result_callback discovery_result_callback;
gap_remote_uuid_changed_callback remote_uuid_changed_callback;
gap_remote_name_changed_callback remote_name_changed_callback;
gap_remote_alias_changed_callback remote_alias_changed_callback;
gap_remote_cod_changed_callback remote_cod_changed_callback;
gap_remote_battery_level_changed_callback remote_battery_level_changed_callback;
gap_read_remote_rssi_event_callback read_remote_rssi_event_callback;
gap_is_accept_conn_on_safe_mode_callback is_accept_conn_on_safe_mode_callback;
} gap_call_backs_t;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| state_change_callback | gap_state_changed_callback | 蓝牙开关状态变化回调 |
| acl_state_changed_callbak | gap_acl_state_changed_callback | ACL连接状态变化回调 |
| scan_mode_changed_callback | gap_scan_mode_changed_callback | 广播模式变化回调 |
| pair_status_changed_callback | gap_pair_status_changed_callback | 配对状态变化回调 |
| device_name_changed_callback | gap_local_device_name_changed_callback | 本地设备名称变化回调 |
| device_addr_changed_callback | gap_local_device_addr_changed_callback | 本地设备地址变化回调 |
| pair_requested_callback | gap_pair_requested_callback | 配对请求回调 |
| pair_confiremed_callback | gap_pair_confirmed_callback | 配对确认回调 |
| discovery_state_changed_callback | gap_discovery_state_changed_callback | 发现状态变化回调 |
| discovery_result_callback | gap_discovery_result_callback | 发现结果回调 |
| remote_uuid_changed_callback | gap_remote_uuid_changed_callback | 远端设备UUID变化回调 |
| remote_name_changed_callback | gap_remote_name_changed_callback | 远端设备名称变化回调 |
| remote_alias_changed_callback | gap_remote_alias_changed_callback | 远端设备昵称变化回调 |
| remote_cod_changed_callback | gap_remote_cod_changed_callback | 远端设备类型变化回调 |
| remote_battery_level_changed_callback | gap_remote_battery_level_changed_callback | 远端设备电量变化回调 |
| read_remote_rssi_event_callback | gap_read_remote_rssi_event_callback | 远端设备信号强度变化回调 |
| is_accept_conn_on_safe_mode_callback | gap_is_accept_conn_on_safe_mode_callback | 询问是否接受连接回调 |
bd_addr_t
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| addr | uint8_t[BD_ADDR_LEN] | 蓝牙地址,BD_ADDR_LEN=6 |
| type | uint8_t | 蓝牙地址类型,参考 bt_addr_type |