跳转至

connection

SLE (Star Flash Low Energy) 连接管理模块提供星闪协议的设备发现、配对、连接、断连、自动回连、定向回连等连接管理能力,以及协议栈使能与参数配置功能。

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"
#include "protocol/bt/host/include/sle/sle_service/ssf_device.h"
#include "protocol/bt/host/include/sle/sle_service/ssf_config.h"
#include "protocol/bt/host/include/sle/sle_service/ssf_config_stru.h"
#include "protocol/bt/host/include/sle/sle_service/ssf_acquire.h"
#include "protocol/bt/host/include/sle/sle_service/ssf_init.h"

接口清单

接口名称 功能简述
bs_sle_register_device_callbacks 注册SLE设备回调函数
bs_sle_unregister_device_callbacks 取消注册SLE设备回调函数
bs_sle_remove_addr 移除指定地址的SLE设备
bs_sle_register_callbacks 注册SLE连接管理回调函数
bs_sle_unregister_callbacks 取消注册SLE连接管理回调函数
bs_sle_start_discovery 启动SLE设备发现
bs_sle_stop_discovery 停止SLE设备发现
bs_sle_start_pair 发起SLE配对
bs_sle_disconnect 断开指定SLE连接
bs_sle_disconnect_all 断开所有SLE连接
bs_sle_remove_pair 移除指定设备的配对信息
bs_sle_remove_all_pairs 移除所有设备的配对信息
bs_sle_start_auto_conn 启动SLE自动回连
bs_sle_stop_auto_conn 停止SLE自动回连
bs_sle_set_connect_param 设置SLE连接参数
bs_sle_read_remote_device_rssi 读取远端设备RSSI值
bs_sle_set_phy_param 设置SLE PHY参数
bs_sle_set_data_length 设置SLE数据长度
bs_sle_start_directed_reconnect 启动SLE定向回连
bs_sle_stop_directed_reconnect 停止SLE定向回连
bs_sle_set_ota_state 设置SLE OTA状态
bs_sle_acquire 获取SLE指定类型数据
bs_sle_config 配置SLE参数
bs_sle_get_config 查询SLE配置参数
bs_sle_config_template 配置SLE模板类型
bs_sle_register_stack_state_callbacks 注册SLE协议栈状态回调函数
bs_sle_enable 使能SLE协议栈
bs_sle_disable 去使能SLE协议栈

Functions

bs_sle_register_device_callbacks

errcode_t bs_sle_register_device_callbacks(uint32_t app_id, bs_sle_device_callbacks_t * cbks)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_device.h"

功能说明

  • 注册SLE设备回调函数,用于接收对象分配和对象恢复上报
  • 通过app_id标识不同应用的回调注册
  • 注册后当SLE对象分配或恢复时,对应回调函数将被调用

入参

名称 参数类型 详细说明 约束取值范围
app_id uint32_t 应用标识 0 ~ 4294967295
cbks bs_sle_device_callbacks_t * 设备回调函数结构体指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 回调注册成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_unregister_device_callbacks

void bs_sle_unregister_device_callbacks(uint32_t app_id)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_device.h"

功能说明

  • 取消注册SLE设备回调函数
  • 通过app_id标识需要取消注册的应用
  • 取消注册后该应用不再接收设备相关上报

入参

名称 参数类型 详细说明 约束取值范围
app_id uint32_t 应用标识 0 ~ 4294967295

bs_sle_remove_addr

errcode_t bs_sle_remove_addr(uint8_t *addr)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_device.h"

功能说明

  • 移除指定地址的SLE设备
  • 通过设备地址定位需要移除的设备
  • 移除结果通过返回的错误码指示

入参

名称 参数类型 详细说明 约束取值范围
addr uint8_t * 设备地址指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 设备移除成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_register_callbacks

errcode_t bs_sle_register_callbacks(uint32_t app_id, bs_sle_callbacks_t * cbks)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 注册SLE连接管理回调函数,包括配对请求、连接状态、发现结果等回调
  • 通过app_id标识不同应用的回调注册
  • 注册后当SLE连接相关事件发生时,对应回调函数将被调用

入参

名称 参数类型 详细说明 约束取值范围
app_id uint32_t 应用标识 0 ~ 4294967295
cbks bs_sle_callbacks_t * 连接管理回调函数结构体指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 回调注册成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_unregister_callbacks

void bs_sle_unregister_callbacks(uint32_t app_id)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 取消注册SLE连接管理回调函数
  • 通过app_id标识需要取消注册的应用
  • 取消注册后该应用不再接收连接管理相关上报

入参

名称 参数类型 详细说明 约束取值范围
app_id uint32_t 应用标识 0 ~ 4294967295

bs_sle_start_discovery

errcode_t bs_sle_start_discovery(bs_sle_discovery_type_t type)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 启动SLE设备发现流程
  • 根据指定类型以中心设备或外围设备角色进入发现态
  • 发现结果通过注册的discovery_result_cb回调上报

前置条件

  • 调用时序约束:需先调用bs_sle_enable()使能SLE协议栈
  • 依赖关系:需先调用bs_sle_register_callbacks()注册发现结果回调

入参

名称 参数类型 详细说明 约束取值范围
type bs_sle_discovery_type_t 发现模式类型 SLE_DISCOVERY_CENTRAL(0) / SLE_DISCOVERY_PERIPHERAL(1) / SLE_DISCOVERY_PERIPHERAL_FORCE_SCAN(2)

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 发现流程启动成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_stop_discovery

errcode_t bs_sle_stop_discovery(bs_sle_discovery_type_t type)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 停止SLE设备发现流程
  • 根据指定类型停止对应角色的发现态
  • 停止后不再上报发现结果

前置条件

  • 调用时序约束:需先调用bs_sle_start_discovery()启动设备发现

入参

名称 参数类型 详细说明 约束取值范围
type bs_sle_discovery_type_t 发现模式类型 SLE_DISCOVERY_CENTRAL(0) / SLE_DISCOVERY_PERIPHERAL(1) / SLE_DISCOVERY_PERIPHERAL_FORCE_SCAN(2)

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 发现流程停止成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_start_pair

errcode_t bs_sle_start_pair(const sle_addr_t * addr)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 向指定地址的远端设备发起SLE配对请求
  • 配对结果通过注册的pair_complete_cb回调上报
  • 配对请求通过pair_request_cb回调接收,默认接收配对,不上报
  • 连接与加密结果都通过connect_state_cbk回调函数上报,共两次上报(连接完成后、加密完成后)

前置条件

  • 调用时序约束:需先调用bs_sle_enable()使能SLE协议栈
  • 依赖关系:需先调用bs_sle_register_callbacks()注册配对相关回调

入参

名称 参数类型 详细说明 约束取值范围
addr const sle_addr_t * 对端设备地址指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 配对请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_disconnect

errcode_t bs_sle_disconnect(sle_obj_t obj)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 断开指定SLE对象的连接
  • 断连结果通过注册的connect_state_cb回调上报
  • 断连原因通过回调结果中的reason字段指示

前置条件

  • 调用时序约束:需先建立SLE连接

入参

名称 参数类型 详细说明 约束取值范围
obj sle_obj_t SLE对象标识 0 ~ 0xFFFFFFFESLE_INVALID_OBJ_ID为非法值

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 断连请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_disconnect_all

errcode_t bs_sle_disconnect_all(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 断开所有已建立的SLE连接
  • 断连结果通过注册的connect_state_cb回调逐一上报
  • 适用于需要快速释放所有连接的场景

前置条件

  • 调用时序约束:需先建立SLE连接

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 全部断连请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_remove_pair

errcode_t bs_sle_remove_pair(sle_obj_t obj)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 移除指定SLE对象的配对信息
  • 移除结果通过注册的pair_remove_cb回调上报
  • 移除后设备间不再维持配对关系

前置条件

  • 调用时序约束:需先完成SLE配对流程

入参

名称 参数类型 详细说明 约束取值范围
obj sle_obj_t SLE对象标识 0 ~ 0xFFFFFFFESLE_INVALID_OBJ_ID为非法值

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 移除配对请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_remove_all_pairs

errcode_t bs_sle_remove_all_pairs(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 移除所有已配对设备的配对信息
  • 移除结果通过注册的pair_remove_cb回调逐一上报
  • 适用于需要清除全部配对记录的场景

前置条件

  • 调用时序约束:需先完成SLE配对流程

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 全部移除配对请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_start_auto_conn

errcode_t bs_sle_start_auto_conn(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 启动SLE自动回连流程
  • 自动回连状态通过注册的auto_conn_state_cb回调上报
  • 启动后协议栈将自动尝试与已配对设备建立连接

前置条件

  • 调用时序约束:需先调用bs_sle_enable()使能SLE协议栈
  • 依赖关系:需存在已配对的设备信息

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 自动回连启动成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_stop_auto_conn

errcode_t bs_sle_stop_auto_conn(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 停止SLE自动回连流程
  • 停止后协议栈不再自动尝试与已配对设备建立连接
  • 回连状态变化通过注册的auto_conn_state_cb回调上报

前置条件

  • 调用时序约束:需先调用bs_sle_start_auto_conn()启动自动回连

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 自动回连停止成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_set_connect_param

errcode_t bs_sle_set_connect_param(uint16_t dev_id, uint16_t mode_id)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 设置指定设备的SLE连接参数
  • 通过mode_id引用预配置的连接参数模板
  • 参数更新结果通过注册的conn_param_update_cbk回调上报

前置条件

  • 依赖关系:需先通过bs_sle_config()配置预置连接参数
  • 调用时序约束:需先建立SLE连接

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 设备ID 0 ~ 0xFFFESLE_INVALID_DEVICE_ID为非法值
mode_id uint16_t 预置参数模式ID 预置连接参数档位值

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 设置连接参数请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_read_remote_device_rssi

errcode_t bs_sle_read_remote_device_rssi(uint16_t dev_id)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 读取指定远端设备的RSSI值
  • 读取结果通过注册的read_rssi_cbk回调上报
  • RSSI值反映与远端设备的信号强度

前置条件

  • 调用时序约束:需先建立SLE连接
  • 依赖关系:需先注册包含read_rssi_cbk的回调函数

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 设备ID 0 ~ 0xFFFESLE_INVALID_DEVICE_ID为非法值

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 读取RSSI请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_set_phy_param

errcode_t bs_sle_set_phy_param(uint16_t dev_id, uint16_t mode_id)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 设置指定设备的SLE PHY参数
  • 通过mode_id引用预配置的PHY参数模板
  • 设置结果通过注册的set_phy_cb回调上报

前置条件

  • 依赖关系:需先通过bs_sle_config()配置预置PHY参数
  • 调用时序约束:需先建立SLE连接

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 设备ID 0 ~ 0xFFFESLE_INVALID_DEVICE_ID为非法值
mode_id uint16_t 预置参数模式ID 预置PHY参数档位值

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 设置PHY参数请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_set_data_length

errcode_t bs_sle_set_data_length(uint16_t dev_id, uint16_t tx_octets)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 设置指定设备的SLE数据传输长度
  • 指定发送载荷的最大字节数
  • 设置结果通过注册的set_data_length_cb回调上报

前置条件

  • 调用时序约束:需先建立SLE连接

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 设备ID 0 ~ 0xFFFESLE_INVALID_DEVICE_ID为非法值
tx_octets uint16_t 发送载荷最大字节数 协议规范约束范围

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 设置数据长度请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_start_directed_reconnect

errcode_t bs_sle_start_directed_reconnect(sle_addr_t * dest_addr)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 启动向指定地址的SLE定向回连
  • 定向回连针对特定目标地址发起连接请求
  • 连接结果通过注册的connect_state_cb回调上报

前置条件

  • 调用时序约束:需先调用bs_sle_enable()使能SLE协议栈
  • 依赖关系:需先注册包含connect_state_cb的回调函数

入参

名称 参数类型 详细说明 约束取值范围
dest_addr sle_addr_t * 目标设备地址指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 定向回连请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_stop_directed_reconnect

errcode_t bs_sle_stop_directed_reconnect(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 停止SLE定向回连流程
  • 停止后不再向目标地址发起定向连接请求
  • 适用于需要取消正在进行的定向回连的场景

前置条件

  • 调用时序约束:需先调用bs_sle_start_directed_reconnect()启动定向回连

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 定向回连停止成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_set_ota_state

errcode_t bs_sle_set_ota_state(sle_obj_t obj, uint8_t ota_state)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_connection.h"

功能说明

  • 设置指定SLE对象的OTA状态
  • 用于通知协议栈当前OTA升级的状态变更
  • OTA状态包括进入、离开和结束三种

前置条件

  • 调用时序约束:需先建立SLE连接

入参

名称 参数类型 详细说明 约束取值范围
obj sle_obj_t SLE对象标识 0 ~ 0xFFFFFFFESLE_INVALID_OBJ_ID为非法值
ota_state uint8_t OTA状态 BS_SLE_OTA_STATE_LEAVE(0) / BS_SLE_OTA_STATE_ENTER(1) / BS_SLE_OTA_STATE_END(2)

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 OTA状态设置成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_acquire

errcode_t bs_sle_acquire(bs_sle_acquire_type_t type, bs_sle_acquire_t * param, uint16_t * len)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_acquire.h"

功能说明

  • 获取SLE指定类型的数据
  • 通过type指定需要获取的数据类型
  • 获取的数据通过param输出,len指示数据长度

入参

名称 参数类型 详细说明 约束取值范围
type bs_sle_acquire_type_t 获取数据类型 SLE_ACQUIRE_COMMON_LOCAL_ADDR(1) / SLE_ACQUIRE_TYPE_MAX(2)

出参

名称 数据类型 输出说明
param bs_sle_acquire_t * 获取到的数据内容
len uint16_t * 实际获取的数据长度

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 数据获取成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_config

errcode_t bs_sle_config(uint16_t type, void * param, uint16_t len)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_config.h"

功能说明

  • 配置SLE指定类型的参数
  • 通过type指定配置项类型,param提供配置数据
  • 支持通用配置、广播配置、扫描配置、连接配置等多种配置类型

前置条件

  • 调用时序约束:部分配置项需在bs_sle_enable()前配置完毕

入参

名称 参数类型 详细说明 约束取值范围
type uint16_t 配置项类型 bs_sle_config_type_t枚举值
param void * 配置数据指针 根据type确定具体类型,非NULL
len uint16_t 配置数据长度 与param指向数据一致

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 配置设置成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_get_config

errcode_t bs_sle_get_config(uint16_t type, void * param, uint16_t * len)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_config.h"

功能说明

  • 查询SLE指定类型的配置参数
  • 通过type指定查询的配置项类型,查询结果通过param输出
  • len入参为缓冲区大小,出参为实际数据长度

入参

名称 参数类型 详细说明 约束取值范围
type uint16_t 配置项类型 bs_sle_config_type_t枚举值

出参

名称 数据类型 输出说明
param void * 查询到的配置数据
len uint16_t * 实际查询到的数据长度

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 配置查询成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_config_template

errcode_t bs_sle_config_template(uint16_t type)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_config.h"

功能说明

  • 配置SLE模板类型
  • 通过type指定使用的模板类型(如耳机模板、手机模板)
  • 模板配置将批量设置一组默认参数

入参

名称 参数类型 详细说明 约束取值范围
type uint16_t 模板类型 SLE_CONFIG_TEMPLATE_TYPE_HEADSET(0) / SLE_CONFIG_TEMPLATE_TYPE_PHONE(1)

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 模板配置成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_register_stack_state_callbacks

errcode_t bs_sle_register_stack_state_callbacks(uint32_t app_id, bs_sle_stack_state_callbacks_t * cbks)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_init.h"

功能说明

  • 注册SLE协议栈状态回调函数
  • 用于接收协议栈使能/去使能等状态变更通知
  • 通过app_id标识不同应用的回调注册

入参

名称 参数类型 详细说明 约束取值范围
app_id uint32_t 应用标识 0 ~ 4294967295
cbks bs_sle_stack_state_callbacks_t * 协议栈状态回调函数结构体指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 回调注册成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_enable

errcode_t bs_sle_enable(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_init.h"

功能说明

  • 使能SLE协议栈
  • 使能后方可进行设备发现、配对、连接等操作
  • 使能结果通过注册的stack_state_cbk回调上报

前置条件

  • 调用时序约束:需先完成SLE相关配置
  • 依赖关系:需先注册协议栈状态回调函数

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 协议栈使能请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

bs_sle_disable

errcode_t bs_sle_disable(void)

头文件清单

#include "protocol/bt/host/include/sle/sle_service/ssf_init.h"

功能说明

  • 去使能SLE协议栈
  • 去使能后将停止所有SLE操作(发现、连接等)
  • 去使能结果通过注册的stack_state_cbk回调上报

前置条件

  • 调用时序约束:需先调用bs_sle_enable()使能SLE协议栈

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_SLE_SUCCESS(0x00) 执行成功 协议栈去使能请求发起成功
Other 其他错误码,参考errcode_sle_t 执行失败

Type definitions

sle_obj_t

typedef uint32_t sle_obj_t;

使用说明

作为bs_sle_disconnect、bs_sle_remove_pair、bs_sle_set_ota_state等接口的对象标识参数类型

Associations

bs_sle_acquire_t

typedef union {
    sle_addr_t local_addr;
} bs_sle_acquire_t;
成员名称 类型 描述 接口使用逻辑
local_addr sle_addr_t 本地地址 bs_sle_acquire出参载体

Enumerations

bs_sle_discovery_type_t

typedef enum {
    SLE_DISCOVERY_CENTRAL,
    SLE_DISCOVERY_PERIPHERAL,
    SLE_DISCOVERY_PERIPHERAL_FORCE_SCAN,
} bs_sle_discovery_type_t;
枚举成员 取值 描述
SLE_DISCOVERY_CENTRAL 0 作为中央设备进入发现态
SLE_DISCOVERY_PERIPHERAL 1 作为外围设备进入发现态
SLE_DISCOVERY_PERIPHERAL_FORCE_SCAN 2 强制外围设备进入扫描状态

bs_sle_connect_state_t

typedef enum {
    SLE_CONNECT_NONE,
    SLE_CONNECT_CONNECTED,
    SLE_CONNECT_DISCONNECTED,
} bs_sle_connect_state_t;
枚举成员 取值 描述
SLE_CONNECT_NONE 0 默认连接状态
SLE_CONNECT_CONNECTED 1 已连接状态
SLE_CONNECT_DISCONNECTED 2 断连状态

bs_sle_acb_connect_state_t

typedef enum {
    SLE_ACB_DISCONNECTED = 0,
    SLE_ACB_CONNECTED = 1,
} bs_sle_acb_connect_state_t;
枚举成员 取值 描述
SLE_ACB_DISCONNECTED 0 ACB断连状态
SLE_ACB_CONNECTED 1 ACB已连接状态

bs_sle_encrypt_state_t

typedef enum {
    SLE_ENCRYPT_NONE,
    SLE_ENCRYPT_SUCCESS,
    SLE_ENCRYPT_FAILED,
} bs_sle_encrypt_state_t;
枚举成员 取值 描述
SLE_ENCRYPT_NONE 0 默认加密状态
SLE_ENCRYPT_SUCCESS 1 加密成功
SLE_ENCRYPT_FAILED 2 加密失败

bs_sle_pair_state_t

typedef enum {
    SLE_PAIR_REMOVE = 0,
    SLE_PAIR_COMPLETE = 1,
} bs_sle_pair_state_t;
枚举成员 取值 描述
SLE_PAIR_REMOVE 0 取消配对状态
SLE_PAIR_COMPLETE 1 已配对状态

bs_sle_common_state_t

typedef enum {
    BS_SLE_COMMON_STATE_DISABLE = 0x0,
    BS_SLE_COMMON_STATE_ENABLE = 0x1,
    BS_SLE_COMMON_STATE_ENABLING = 0x2,
    BS_SLE_COMMON_STATE_DISABLING = 0x3,
} bs_sle_common_state_t;
枚举成员 取值 描述
BS_SLE_COMMON_STATE_DISABLE 0 未使能
BS_SLE_COMMON_STATE_ENABLE 1 已使能
BS_SLE_COMMON_STATE_ENABLING 2 使能中
BS_SLE_COMMON_STATE_DISABLING 3 去使能中

bs_sle_ota_state_t

typedef enum {
    BS_SLE_OTA_STATE_LEAVE,
    BS_SLE_OTA_STATE_ENTER,
    BS_SLE_OTA_STATE_END,
} bs_sle_ota_state_t;
枚举成员 取值 描述
BS_SLE_OTA_STATE_LEAVE 0 OTA离开状态
BS_SLE_OTA_STATE_ENTER 1 OTA进入状态
BS_SLE_OTA_STATE_END 2 OTA结束状态
typedef enum {
    BS_SLE_LINK_QUALITY_PER = 0x40,
} bs_sle_link_quality_t;
枚举成员 取值 描述
BS_SLE_LINK_QUALITY_PER 64 报错频率

bs_sle_acquire_group_t

typedef enum {
    SLE_ACQUIRE_COMMON = 0,
} bs_sle_acquire_group_t;
枚举成员 取值 描述
SLE_ACQUIRE_COMMON 0 通用获取组

bs_sle_acquire_type_t

typedef enum {
    SLE_ACQUIRE_COMMON_LOCAL_ADDR = 1,
    SLE_ACQUIRE_TYPE_MAX = 2,
} bs_sle_acquire_type_t;
枚举成员 取值 描述
SLE_ACQUIRE_COMMON_LOCAL_ADDR 1 获取本地地址
SLE_ACQUIRE_TYPE_MAX 2 获取类型最大值

bs_sle_config_group_t

typedef enum {
    SLE_CONFIG_COMMON = 0x0000 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_ADV = 0x0100 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_SCAN = 0x0200 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_AS = 0x0300 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_VOLUME = 0x0400 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_CALL = 0x0500 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_AUTO_CONN = 0x0600 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_CONN = 0x0700 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
    SLE_CONFIG_PORT = 0x0800 | (BS_PROTOCOL_SLE << BS_PROTOCOL_CONFIG_SHIFT_BITS),
} bs_sle_config_group_t;
枚举成员 取值 描述
SLE_CONFIG_COMMON 0x0000 | (BS_PROTOCOL_SLE << 13) 通用配置组
SLE_CONFIG_ADV 0x0100 | (BS_PROTOCOL_SLE << 13) 广播配置组
SLE_CONFIG_SCAN 0x0200 | (BS_PROTOCOL_SLE << 13) 扫描配置组
SLE_CONFIG_AS 0x0300 | (BS_PROTOCOL_SLE << 13) 音频流配置组
SLE_CONFIG_VOLUME 0x0400 | (BS_PROTOCOL_SLE << 13) 音量配置组
SLE_CONFIG_CALL 0x0500 | (BS_PROTOCOL_SLE << 13) 通话配置组
SLE_CONFIG_AUTO_CONN 0x0600 | (BS_PROTOCOL_SLE << 13) 自动回连配置组
SLE_CONFIG_CONN 0x0700 | (BS_PROTOCOL_SLE << 13) 连接配置组
SLE_CONFIG_PORT 0x0800 | (BS_PROTOCOL_SLE << 13) 端口配置组

bs_sle_config_type_t

typedef enum {
    SLE_CONFIG_COMMON_ROLE = SLE_CONFIG_COMMON | 0x01,
    SLE_CONFIG_COMMON_PEER_ADDR = SLE_CONFIG_COMMON | 0x02,
    SLE_CONFIG_COMMON_SUB_ROLE = SLE_CONFIG_COMMON | 0x03,
    SLE_CONFIG_COMMON_LOCAL_ADDR = SLE_CONFIG_COMMON | 0x04,
    SLE_CONFIG_ADV_SHORT_NAME = SLE_CONFIG_ADV | 0x01,
    SLE_CONFIG_ADV_FULL_NAME = SLE_CONFIG_ADV | 0x02,
    SLE_CONFIG_ADV_VENDOR = SLE_CONFIG_ADV | 0x03,
    SLE_CONFIG_ADV_APPEARANCE = SLE_CONFIG_ADV | 0x04,
    SLE_CONFIG_ADV_PRESET_PARAM = SLE_CONFIG_ADV | 0x05,
    SLE_CONFIG_ADV_DISCOVERING_SPEED = SLE_CONFIG_ADV | 0x06,
    SLE_CONFIG_ADV_CDSM_KEY_ID = SLE_CONFIG_ADV | 0x07,
    SLE_CONFIG_ADV_CDSM_SECRET_KEY = SLE_CONFIG_ADV | 0x08,
    SLE_CONFIG_SCAN_FILTER_DUPLICATE = SLE_CONFIG_SCAN | 0x01,
    SLE_CONFIG_SCAN_SEEK_FILTER_POLICY = SLE_CONFIG_SCAN | 0x02,
    SLE_CONFIG_SCAN_SEEK_TYPE = SLE_CONFIG_SCAN | 0x03,
    SLE_CONFIG_SCAN_SEEK_PRESET_PARAM = SLE_CONFIG_SCAN | 0x04,
    SLE_CONFIG_SCAN_SEEK_SPEED = SLE_CONFIG_SCAN | 0x05,
    SLE_CONFIG_SCAN_MAX_CACHE_RESULT = SLE_CONFIG_SCAN | 0x06,
    SLE_CONFIG_AS_CODEC_CAPABILITY = SLE_CONFIG_AS | 0x01,
    SLE_CONFIG_AS_LOCATION_BITMAP = SLE_CONFIG_AS | 0x02,
    SLE_CONFIG_AS_CODEC_CAPABILITY_COUNT = SLE_CONFIG_AS | 0x03,
    SLE_CONFIG_VOLUME_INITAL_CALL_VOLUME = SLE_CONFIG_VOLUME | 0x01,
    SLE_CONFIG_VOLUME_INITAL_MEDIA_VOLUME = SLE_CONFIG_VOLUME | 0x02,
    SLE_CONFIG_CALL_FEATURE_STATE = SLE_CONFIG_CALL | 0x01,
    SLE_CONFIG_AUTO_CONN_BROADCAST_DURATION = SLE_CONFIG_AUTO_CONN | 0x01,
    SLE_CONFIG_CONNECT_PRESET_PARAM = SLE_CONFIG_CONN | 0x01,
    SLE_CONFIG_CONNECT_SET_DEFAULT_PARAM = SLE_CONFIG_CONN | 0x02,
    SLE_CONFIG_CONNECT_PRESET_PHY = SLE_CONFIG_CONN | 0x03,
    SLE_CONFIG_CONNECT_NOT_AUTO_PAIR = SLE_CONFIG_CONN | 0x04,
    SLE_CONFIG_CONNECT_IS_WILLING_TO_DISCONNECT_ALL = SLE_CONFIG_CONN | 0x05,
    SLE_CONFIG_CONNECT_ENABLE_PREEMPTION = SLE_CONFIG_CONN | 0x06,
    SLE_CONFIG_PORT_MAX_PORT = SLE_CONFIG_PORT | 0x01,
    SLE_CONFIG_PORT_MAX_CHANNEL = SLE_CONFIG_PORT | 0x02,
    SLE_CONFIG_PORT_MAX_CHANNEL_PER_PORT = SLE_CONFIG_PORT | 0x03,
    SLE_CONFIG_TYPE_MAX,
} bs_sle_config_type_t;
枚举成员 取值 描述
SLE_CONFIG_COMMON_ROLE SLE_CONFIG_COMMON | 0x01 角色配置
SLE_CONFIG_COMMON_PEER_ADDR SLE_CONFIG_COMMON | 0x02 对端地址配置
SLE_CONFIG_COMMON_SUB_ROLE SLE_CONFIG_COMMON | 0x03 子角色配置
SLE_CONFIG_COMMON_LOCAL_ADDR SLE_CONFIG_COMMON | 0x04 本地地址配置
SLE_CONFIG_ADV_SHORT_NAME SLE_CONFIG_ADV | 0x01 短名称配置
SLE_CONFIG_ADV_FULL_NAME SLE_CONFIG_ADV | 0x02 完整名称配置
SLE_CONFIG_ADV_VENDOR SLE_CONFIG_ADV | 0x03 厂商信息配置
SLE_CONFIG_ADV_APPEARANCE SLE_CONFIG_ADV | 0x04 外观配置
SLE_CONFIG_ADV_PRESET_PARAM SLE_CONFIG_ADV | 0x05 预置广播参数配置
SLE_CONFIG_ADV_DISCOVERING_SPEED SLE_CONFIG_ADV | 0x06 发现速度配置
SLE_CONFIG_ADV_CDSM_KEY_ID SLE_CONFIG_ADV | 0x07 CDSM密钥ID配置
SLE_CONFIG_ADV_CDSM_SECRET_KEY SLE_CONFIG_ADV | 0x08 CDSM密钥配置
SLE_CONFIG_SCAN_FILTER_DUPLICATE SLE_CONFIG_SCAN | 0x01 重复过滤配置
SLE_CONFIG_SCAN_SEEK_FILTER_POLICY SLE_CONFIG_SCAN | 0x02 扫描过滤策略配置
SLE_CONFIG_SCAN_SEEK_TYPE SLE_CONFIG_SCAN | 0x03 扫描类型配置
SLE_CONFIG_SCAN_SEEK_PRESET_PARAM SLE_CONFIG_SCAN | 0x04 预置扫描参数配置
SLE_CONFIG_SCAN_SEEK_SPEED SLE_CONFIG_SCAN | 0x05 扫描速度配置
SLE_CONFIG_SCAN_MAX_CACHE_RESULT SLE_CONFIG_SCAN | 0x06 最大缓存结果配置
SLE_CONFIG_AS_CODEC_CAPABILITY SLE_CONFIG_AS | 0x01 编解码能力配置
SLE_CONFIG_AS_LOCATION_BITMAP SLE_CONFIG_AS | 0x02 位置位图配置
SLE_CONFIG_AS_CODEC_CAPABILITY_COUNT SLE_CONFIG_AS | 0x03 编解码能力个数配置
SLE_CONFIG_VOLUME_INITAL_CALL_VOLUME SLE_CONFIG_VOLUME | 0x01 初始通话音量配置
SLE_CONFIG_VOLUME_INITAL_MEDIA_VOLUME SLE_CONFIG_VOLUME | 0x02 初始媒体音量配置
SLE_CONFIG_CALL_FEATURE_STATE SLE_CONFIG_CALL | 0x01 通话特性状态配置
SLE_CONFIG_AUTO_CONN_BROADCAST_DURATION SLE_CONFIG_AUTO_CONN | 0x01 自动回连广播时长配置
SLE_CONFIG_CONNECT_PRESET_PARAM SLE_CONFIG_CONN | 0x01 预置连接参数配置
SLE_CONFIG_CONNECT_SET_DEFAULT_PARAM SLE_CONFIG_CONN | 0x02 默认连接参数配置
SLE_CONFIG_CONNECT_PRESET_PHY SLE_CONFIG_CONN | 0x03 预置PHY配置
SLE_CONFIG_CONNECT_NOT_AUTO_PAIR SLE_CONFIG_CONN | 0x04 禁止自动配对配置
SLE_CONFIG_CONNECT_IS_WILLING_TO_DISCONNECT_ALL SLE_CONFIG_CONN | 0x05 是否愿意断开所有连接配置
SLE_CONFIG_CONNECT_ENABLE_PREEMPTION SLE_CONFIG_CONN | 0x06 使能抢占配置
SLE_CONFIG_PORT_MAX_PORT SLE_CONFIG_PORT | 0x01 最大端口数配置
SLE_CONFIG_PORT_MAX_CHANNEL SLE_CONFIG_PORT | 0x02 最大通道数配置
SLE_CONFIG_PORT_MAX_CHANNEL_PER_PORT SLE_CONFIG_PORT | 0x03 每端口最大通道数配置
SLE_CONFIG_TYPE_MAX SLE_CONFIG_PORT | 0x04 配置类型最大值

bs_sle_config_template_type_t

typedef enum {
    SLE_CONFIG_TEMPLATE_TYPE_HEADSET,
    SLE_CONFIG_TEMPLATE_TYPE_PHONE,
    SLE_CONFIG_TEMPLATE_TYPE_MAX,
} bs_sle_config_template_type_t;
枚举成员 取值 描述
SLE_CONFIG_TEMPLATE_TYPE_HEADSET 0 耳机模板类型
SLE_CONFIG_TEMPLATE_TYPE_PHONE 1 手机模板类型
SLE_CONFIG_TEMPLATE_TYPE_MAX 2 模板类型最大值

bs_sle_preset_opr_type_t

typedef enum {
    BS_SLE_PRESET_OPR_TYPE_ADD = 0,
    BS_SLE_PRESET_OPR_TYPE_RMV = 1,
    BS_SLE_PRESET_OPR_TYPE_QRY = 2,
    BS_SLE_PRESET_OPR_TYPE_LST = 3,
} bs_sle_preset_opr_type_t;
枚举成员 取值 描述
BS_SLE_PRESET_OPR_TYPE_ADD 0 增加预置参数
BS_SLE_PRESET_OPR_TYPE_RMV 1 删除预置参数
BS_SLE_PRESET_OPR_TYPE_QRY 2 查询预置参数
BS_SLE_PRESET_OPR_TYPE_LST 3 列出全部预置参数模式ID

bs_sle_preset_seek_speed_mode_id_t

typedef enum {
    BS_SLE_PRESET_SEEK_SPEED_FAST = 1,
    BS_SLE_PRESET_SEEK_SPEED_MIDDLE = 2,
    BS_SLE_PRESET_SEEK_SPEED_SLOW = 3,
} bs_sle_preset_seek_speed_mode_id_t;
枚举成员 取值 描述
BS_SLE_PRESET_SEEK_SPEED_FAST 1 预置参数高速档位
BS_SLE_PRESET_SEEK_SPEED_MIDDLE 2 预置参数中速档位
BS_SLE_PRESET_SEEK_SPEED_SLOW 3 预置参数低速档位

bs_sle_seek_filter_t

typedef enum {
    BS_SLE_SEEK_FILTER_ALLOW_ALL = 0x00,
    BS_SLE_SEEK_FILTER_ALLOW_WLST = 0x01,
} bs_sle_seek_filter_t;
枚举成员 取值 描述
BS_SLE_SEEK_FILTER_ALLOW_ALL 0 允许来自任何设备的发现数据包
BS_SLE_SEEK_FILTER_ALLOW_WLST 1 允许来自白名单设备的发现数据包

bs_sle_seek_phy_t

typedef enum {
    BS_SLE_SEEK_PHY_1M = 0x1,
    BS_SLE_SEEK_PHY_2M = 0x2,
    BS_SLE_SEEK_PHY_4M = 0x4,
} bs_sle_seek_phy_t;
枚举成员 取值 描述
BS_SLE_SEEK_PHY_1M 1 1M PHY
BS_SLE_SEEK_PHY_2M 2 2M PHY
BS_SLE_SEEK_PHY_4M 4 4M PHY

bs_sle_seek_type_t

typedef enum {
    BS_SLE_SEEK_PASSIVE = 0x00,
    BS_SLE_SEEK_ACTIVE = 0x01,
} bs_sle_seek_type_t;
枚举成员 取值 描述
BS_SLE_SEEK_PASSIVE 0 被动扫描
BS_SLE_SEEK_ACTIVE 1 主动扫描

bs_sle_preset_adv_speed_mode_id_t

typedef enum {
    BS_SLE_PRESET_ADV_SPEED_FAST = 1,
    BS_SLE_PRESET_ADV_SPEED_MIDDLE = 2,
    BS_SLE_PRESET_ADV_SPEED_SLOW = 3,
} bs_sle_preset_adv_speed_mode_id_t;
枚举成员 取值 描述
BS_SLE_PRESET_ADV_SPEED_FAST 1 预置参数高速档位
BS_SLE_PRESET_ADV_SPEED_MIDDLE 2 预置参数中速档位
BS_SLE_PRESET_ADV_SPEED_SLOW 3 预置参数低速档位

bs_sle_announce_mode_t

typedef enum {
    BS_SLE_ANNOUNCE_MODE_NONCONN_NONSCAN = 0x00,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN = 0x01,
    BS_SLE_ANNOUNCE_MODE_NONCONN_SCANABLE = 0x02,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_SCANABLE = 0x03,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN_DIRECTED = 0x05,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_DIRECTED = 0x07,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN_IGNORE_WHITELIST = 0x09,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_IGNORE_WHITELIST = 0x0B,
    BS_SLE_ANNOUNCE_MODE_CONNECTABLE_DIRECTED_IGNORE_WHITELIST = 0x0F,
} bs_sle_announce_mode_t;
枚举成员 取值 描述
BS_SLE_ANNOUNCE_MODE_NONCONN_NONSCAN 0 不可连接不可扫描
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN 1 可连接不可扫描
BS_SLE_ANNOUNCE_MODE_NONCONN_SCANABLE 2 不可连接可扫描
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_SCANABLE 3 可连接可扫描
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN_DIRECTED 5 可连接不可扫描定向
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_DIRECTED 7 可连接可扫描定向
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_NONSCAN_IGNORE_WHITELIST 9 可连接不可扫描忽略白名单
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_IGNORE_WHITELIST 11 可连接可扫描忽略白名单
BS_SLE_ANNOUNCE_MODE_CONNECTABLE_DIRECTED_IGNORE_WHITELIST 15 可连接可扫描定向忽略白名单

bs_sle_announce_level_t

typedef enum {
    BS_SLE_ANNOUNCE_LEVEL_NONE = 0,
    BS_SLE_ANNOUNCE_LEVEL_NORMAL = 1,
    BS_SLE_ANNOUNCE_LEVEL_PRIORITY = 2,
    BS_SLE_ANNOUNCE_LEVEL_PAIRED = 3,
    BS_SLE_ANNOUNCE_LEVEL_SPECIAL = 4,
} bs_sle_announce_level_t;
枚举成员 取值 描述
BS_SLE_ANNOUNCE_LEVEL_NONE 0 不可见发现,预留
BS_SLE_ANNOUNCE_LEVEL_NORMAL 1 一般可发现
BS_SLE_ANNOUNCE_LEVEL_PRIORITY 2 优先可发现,预留
BS_SLE_ANNOUNCE_LEVEL_PAIRED 3 被曾配对过的设备发现,预留
BS_SLE_ANNOUNCE_LEVEL_SPECIAL 4 被指定设备发现

bs_sle_radio_frame_t

typedef enum {
    BS_SLE_RADIO_FRAME_1 = 0,
    BS_SLE_RADIO_FRAME_2 = 1,
    BS_SLE_RADIO_FRAME_3_M0 = 2,
    BS_SLE_RADIO_FRAME_3_M1 = 3,
    BS_SLE_RADIO_FRAME_3_M2 = 4,
    BS_SLE_RADIO_FRAME_3_M3 = 5,
    BS_SLE_RADIO_FRAME_3_M4 = 6,
    BS_SLE_RADIO_FRAME_3_M5 = 7,
    BS_SLE_RADIO_FRAME_4_M0 = 8,
    BS_SLE_RADIO_FRAME_4_M1 = 9,
    BS_SLE_RADIO_FRAME_4_M2 = 10,
    BS_SLE_RADIO_FRAME_4_M3 = 11,
    BS_SLE_RADIO_FRAME_4_M4 = 12,
    BS_SLE_RADIO_FRAME_4_M5 = 13,
    BS_SLE_RADIO_FRAME_END = 14,
} bs_sle_radio_frame_t;
枚举成员 取值 描述
BS_SLE_RADIO_FRAME_1 0 无线帧类型1
BS_SLE_RADIO_FRAME_2 1 无线帧类型2
BS_SLE_RADIO_FRAME_3_M0 2 无线帧类型3,m序列0
BS_SLE_RADIO_FRAME_3_M1 3 无线帧类型3,m序列1
BS_SLE_RADIO_FRAME_3_M2 4 无线帧类型3,m序列2
BS_SLE_RADIO_FRAME_3_M3 5 无线帧类型3,m序列3
BS_SLE_RADIO_FRAME_3_M4 6 无线帧类型3,m序列4
BS_SLE_RADIO_FRAME_3_M5 7 无线帧类型3,m序列5
BS_SLE_RADIO_FRAME_4_M0 8 无线帧类型4,m序列0
BS_SLE_RADIO_FRAME_4_M1 9 无线帧类型4,m序列1
BS_SLE_RADIO_FRAME_4_M2 10 无线帧类型4,m序列2
BS_SLE_RADIO_FRAME_4_M3 11 无线帧类型4,m序列3
BS_SLE_RADIO_FRAME_4_M4 12 无线帧类型4,m序列4
BS_SLE_RADIO_FRAME_4_M5 13 无线帧类型4,m序列5
BS_SLE_RADIO_FRAME_END 14 无线帧类型结束

bs_sle_phy_tx_rx_t

typedef enum {
    BS_SLE_PHY_1M = 0,
    BS_SLE_PHY_2M = 1,
    BS_SLE_PHY_4M = 2,
    BS_SLE_PHY_SUPPORT_NUM = 3,
} bs_sle_phy_tx_rx_t;
枚举成员 取值 描述
BS_SLE_PHY_1M 0 1M PHY
BS_SLE_PHY_2M 1 2M PHY
BS_SLE_PHY_4M 2 4M PHY
BS_SLE_PHY_SUPPORT_NUM 3 PHY支持数量

bs_sle_phy_tx_rx_pilot_density_t

typedef enum {
    BS_SLE_PHY_PILOT_DENSITY_4_TO_1 = 0,
    BS_SLE_PHY_PILOT_DENSITY_8_TO_1 = 1,
    BS_SLE_PHY_PILOT_DENSITY_16_TO_1 = 2,
    BS_SLE_PHY_PILOT_DENSITY_NO = 3,
    BS_SLE_PHY_PILOT_DENSITY_NUM = 4,
} bs_sle_phy_tx_rx_pilot_density_t;
枚举成员 取值 描述
BS_SLE_PHY_PILOT_DENSITY_4_TO_1 0 导频密度4:1
BS_SLE_PHY_PILOT_DENSITY_8_TO_1 1 导频密度8:1
BS_SLE_PHY_PILOT_DENSITY_16_TO_1 2 导频密度16:1
BS_SLE_PHY_PILOT_DENSITY_NO 3 无导频
BS_SLE_PHY_PILOT_DENSITY_NUM 4 导频密度数量

bs_sle_state_t

typedef enum {
    SLE_STATE_ENABLED = 0,
    SLE_STATE_DISABLED = 1,
    SLE_STATE_PDL_CLEARED = 2,
} bs_sle_state_t;
枚举成员 取值 描述
SLE_STATE_ENABLED 0 协议栈已使能
SLE_STATE_DISABLED 1 协议栈已去使能
SLE_STATE_PDL_CLEARED 2 PDL已清除

bs_sle_config_role_t

typedef enum {
    SLE_CONFIG_ROLE_CENTRAL = 1,
    SLE_CONFIG_ROLE_PERIPHERAL = 2,
} bs_sle_config_role_t;
枚举成员 取值 描述
SLE_CONFIG_ROLE_CENTRAL 1 中央角色
SLE_CONFIG_ROLE_PERIPHERAL 2 外围角色

bs_sle_config_sub_role_t

typedef enum {
    SLE_CONFIG_SUB_ROLE_MASTER = 0,
    SLE_CONFIG_SUB_ROLE_SLAVE = 1,
} bs_sle_config_sub_role_t;
枚举成员 取值 描述
SLE_CONFIG_SUB_ROLE_MASTER 0 主节点角色
SLE_CONFIG_SUB_ROLE_SLAVE 1 从节点角色

bs_sle_config_enable_t

typedef enum {
    SLE_CONFIG_DISABLE = 0,
    SLE_CONFIG_ENABLE = 1,
} bs_sle_config_enable_t;
枚举成员 取值 描述
SLE_CONFIG_DISABLE 0 禁用
SLE_CONFIG_ENABLE 1 使能

bs_sle_config_appearence_t

typedef enum {
    SLE_CONFIG_WEARABLE_AUDIO_DEVICE = 2048,
    SLE_CONFIG_TWS_EARPHONE = 2049,
    SLE_CONFIG_HEADSET_EARPHONE_MIC = 2050,
    SLE_CONFIG_HEADSET_EARPHONE = 2051,
    SLE_CONFIG_HEADSET_NECKBAND_EARPHONE = 2052,
    SLE_CONFIG_ACTION_CAMERA = 16711681,
} bs_sle_config_appearence_t;
枚举成员 取值 描述
SLE_CONFIG_WEARABLE_AUDIO_DEVICE 2048 可穿戴音频设备
SLE_CONFIG_TWS_EARPHONE 2049 TWS耳机
SLE_CONFIG_HEADSET_EARPHONE_MIC 2050 头戴式耳机带麦克风
SLE_CONFIG_HEADSET_EARPHONE 2051 头戴式耳机
SLE_CONFIG_HEADSET_NECKBAND_EARPHONE 2052 颈挂式耳机
SLE_CONFIG_ACTION_CAMERA 16711681 运动相机

bs_sle_config_feature_state_t

typedef enum {
    SLE_CONFIG_FEATURE_INBAND_RING = 1,
    SLE_CONFIG_FEATURE_STATE_RFU = 2,
} bs_sle_config_feature_state_t;
枚举成员 取值 描述
SLE_CONFIG_FEATURE_INBAND_RING 1 带内铃声特性
SLE_CONFIG_FEATURE_STATE_RFU 2 特性状态预留

Structures

bs_sle_seek_param_t

typedef struct bs_sle_seek_param {
    uint8_t seek_filter_policy;
    uint8_t seek_phy;
    uint8_t seek_type;
    uint16_t seek_interval;
    uint16_t seek_window;
} bs_sle_seek_param_t;

成员说明

成员名称 数据类型 描述
seek_filter_policy uint8_t 扫描过滤策略,参考bs_sle_seek_filter_t
seek_phy uint8_t 扫描PHY类型,参考bs_sle_seek_phy_t
seek_type uint8_t 扫描类型,参考bs_sle_seek_type_t
seek_interval uint16_t 扫描间隔,取值范围[0x0014, 0xFFFF],time = N * 0.125ms
seek_window uint16_t 扫描窗口,取值范围[0x0014, 0xFFFF],time = N * 0.125ms

bs_sle_pair_info_t

typedef struct {
    uint8_t link_key[BS_SLE_LINK_KEY_LEN];
    uint8_t crypto_algo;
    uint8_t key_deriv_algo;
    uint8_t integr_chk_ind;
    uint8_t is_bond;
} bs_sle_pair_info_t;

成员说明

成员名称 数据类型 描述
link_key uint8_t[16] 链路密钥
crypto_algo uint8_t 加密算法类型
key_deriv_algo uint8_t 秘钥分发算法类型
integr_chk_ind uint8_t 完整性校验指示
is_bond uint8_t 配对绑定指示

bs_sle_device_name_t

typedef struct {
    uint8_t len;
    uint8_t *name;
} bs_sle_device_name_t;

成员说明

成员名称 数据类型 描述
len uint8_t 名称长度,包括结束符\0
name uint8_t * 设备名称

bs_sle_manufacturer_specific_data_t

typedef struct {
    uint16_t company_id;
    uint8_t data_len;
    uint8_t *data;
} bs_sle_manufacturer_specific_data_t;

成员说明

成员名称 数据类型 描述
company_id uint16_t 厂商标识
data_len uint8_t 厂商自定义数据长度
data uint8_t * 厂商自定义数据

bs_sle_discovery_result_t

typedef struct {
    uint8_t event;
    int8_t rssi;
    bs_sle_device_name_t full_name;
    bs_sle_device_name_t short_name;
    bs_sle_manufacturer_specific_data_t manu_specific_data;
} bs_sle_discovery_result_t;

成员说明

成员名称 数据类型 描述
event uint8_t 设备发现事件类型
rssi int8_t 信号强度
full_name bs_sle_device_name_t 设备完整名称
short_name bs_sle_device_name_t 设备缩写名称
manu_specific_data bs_sle_manufacturer_specific_data_t 厂商自定义信息

bs_sle_connection_result_t

typedef struct {
    uint16_t dev_id;
    sle_addr_t addr;
    uint8_t conn_state;
    uint8_t encrypt_state;
    uint32_t reason;
    uint8_t local_role;
} bs_sle_connection_result_t;

成员说明

成员名称 数据类型 描述
dev_id uint16_t 设备ID
addr sle_addr_t 设备地址
conn_state uint8_t SLE连接状态,参考bs_sle_connect_state_t
encrypt_state uint8_t SLE加密状态,参考bs_sle_encrypt_state_t
reason uint32_t SLE断连原因
local_role uint8_t 本地角色

bs_sle_conn_param_update_result_t

typedef struct {
    uint16_t interval;
    uint16_t latency;
    uint16_t supervision;
} bs_sle_conn_param_update_result_t;

成员说明

成员名称 数据类型 描述
interval uint16_t 链路调度间隔,单位slot
latency uint16_t 延迟周期,单位slot
supervision uint16_t 超时时间,单位10ms

bs_sle_set_phy_t

typedef struct {
    uint8_t tx_format;
    uint8_t rx_format;
    uint8_t tx_phy;
    uint8_t rx_phy;
    uint8_t tx_pilot_density;
    uint8_t rx_pilot_density;
    uint8_t g_feedback;
    uint8_t t_feedback;
} bs_sle_set_phy_t;

成员说明

成员名称 数据类型 描述
tx_format uint8_t 发送无线帧类型,参考bs_sle_radio_frame_t
rx_format uint8_t 接收无线帧类型,参考bs_sle_radio_frame_t
tx_phy uint8_t 发送PHY,参考bs_sle_phy_tx_rx_t
rx_phy uint8_t 接收PHY,参考bs_sle_phy_tx_rx_t
tx_pilot_density uint8_t 发送导频密度指示,参考bs_sle_phy_tx_rx_pilot_density_t
rx_pilot_density uint8_t 接收导频密度指示,参考bs_sle_phy_tx_rx_pilot_density_t
g_feedback uint8_t 先发链路反馈类型指示,取值范围0~63
t_feedback uint8_t 后发链路反馈类型指示,取值范围0~7

bs_sle_data_len_change_result_t

typedef struct {
    uint16_t max_rx_octets;
    uint16_t max_tx_octets;
} bs_sle_data_len_change_result_t;

成员说明

成员名称 数据类型 描述
max_rx_octets uint16_t 最大接收载荷字节数
max_tx_octets uint16_t 最大发送载荷字节数
typedef struct {
    uint16_t bitmap;
    int8_t per;
} bs_sle_link_quality_report_t;

成员说明

成员名称 数据类型 描述
bitmap uint16_t 位图,每一bit指示不同参数使能,参考bs_sle_link_quality_t
per int8_t 报错频率

bs_sle_device_callbacks_t

typedef struct {
    bs_sle_obj_alloc_cbk obj_alloc_cbk;
    bs_sle_obj_recover_cbk obj_recover_cbk;
} bs_sle_device_callbacks_t;

成员说明

成员名称 数据类型 描述
obj_alloc_cbk bs_sle_obj_alloc_cbk 对象分配上报回调
obj_recover_cbk bs_sle_obj_recover_cbk 对象恢复上报回调

bs_sle_callbacks_t

typedef struct {
    bs_sle_pair_request_cbk pair_request_cb;
    bs_sle_connect_state_cbk connect_state_cb;
    bs_sle_connect_state_cbk member_connect_state_cb;
    bs_sle_pair_complete_cbk pair_complete_cb;
    bs_sle_pair_remove_cbk pair_remove_cb;
    bs_sle_discovery_result_cbk discovery_result_cb;
    bs_sle_discovery_state_cbk discovery_state_cb;
    bs_sle_auto_conn_state_cbk auto_conn_state_cb;
    bs_sle_read_rssi_cbk read_rssi_cbk;
    bs_sle_conn_param_update_cbk conn_param_update_cbk;
    bs_sle_set_phy_cbk set_phy_cb;
    bs_sle_set_data_len_cbk set_data_length_cb;
    bs_sle_quality_report_cbk link_quality_report_event_cb;
} bs_sle_callbacks_t;

成员说明

成员名称 数据类型 描述
pair_request_cb bs_sle_pair_request_cbk 配对请求回调
connect_state_cb bs_sle_connect_state_cbk 连接状态回调
member_connect_state_cb bs_sle_connect_state_cbk 合作设备集内连接状态回调
pair_complete_cb bs_sle_pair_complete_cbk 配对完成回调
pair_remove_cb bs_sle_pair_remove_cbk 配对移除回调
discovery_result_cb bs_sle_discovery_result_cbk 发现结果回调
discovery_state_cb bs_sle_discovery_state_cbk 发现状态回调
auto_conn_state_cb bs_sle_auto_conn_state_cbk 自动回连状态回调
read_rssi_cbk bs_sle_read_rssi_cbk 读取RSSI回调
conn_param_update_cbk bs_sle_conn_param_update_cbk 连接参数更新回调
set_phy_cb bs_sle_set_phy_cbk 设置PHY回调
set_data_length_cb bs_sle_set_data_len_cbk 设置数据长度回调
link_quality_report_event_cb bs_sle_quality_report_cbk 链路质量上报回调

bs_sle_adv_param_t

typedef struct {
    uint8_t  announce_mode;
    uint8_t  announce_level;
    uint32_t announce_interval_min;
    uint32_t announce_interval_max;
    uint8_t  announce_channel_map;
    int8_t   announce_tx_power;
    uint16_t conn_interval_min;
    uint16_t conn_interval_max;
    uint16_t conn_max_latency;
    uint16_t conn_supervision_timeout;
} bs_sle_adv_param_t;

成员说明

成员名称 数据类型 描述
announce_mode uint8_t 设备公开类型,参考bs_sle_announce_mode_t
announce_level uint8_t 发现等级,参考bs_sle_announce_level_t
announce_interval_min uint32_t 最小设备公开周期,0x000020~0xffffff,单位125us
announce_interval_max uint32_t 最大设备公开周期,0x000020~0xffffff,单位125us
announce_channel_map uint8_t 设备公开信道,bit0:ch77, bit1:ch78, bit2:ch79
announce_tx_power int8_t 广播发射功率,单位dbm,取值范围[-127, 20],0x7F表示不设置
conn_interval_min uint16_t 连接间隔最小取值,取值范围[0x001E,0x3E80]
conn_interval_max uint16_t 连接间隔最大取值,取值范围[0x001E,0x3E80]
conn_max_latency uint16_t 最大休眠连接间隔,取值范围[0x0000,0x01F3]
conn_supervision_timeout uint16_t 最大超时时间,取值范围[0x000A,0x0C80]

bs_sle_conn_param_t

typedef struct {
    uint16_t interval_min;
    uint16_t interval_max;
    uint16_t max_latency;
    uint16_t supervision_timeout;
} bs_sle_conn_param_t;

成员说明

成员名称 数据类型 描述
interval_min uint16_t 连接间隔最小取值,取值范围[0x001E,0x3E80]
interval_max uint16_t 连接间隔最大取值,取值范围[0x001E,0x3E80]
max_latency uint16_t 最大休眠连接间隔,取值范围[0x0000,0x01F3]
supervision_timeout uint16_t 最大超时时间,取值范围[0x000A,0x0C80]

bs_sle_phy_param_t

typedef struct {
    uint8_t tx_format;
    uint8_t rx_format;
    uint8_t tx_phy;
    uint8_t rx_phy;
    uint8_t tx_pilot_density;
    uint8_t rx_pilot_density;
    uint8_t g_feedback;
    uint8_t t_feedback;
} bs_sle_phy_param_t;

成员说明

成员名称 数据类型 描述
tx_format uint8_t 发送无线帧类型,参考bs_sle_radio_frame_t
rx_format uint8_t 接收无线帧类型,参考bs_sle_radio_frame_t
tx_phy uint8_t 发送PHY,参考bs_sle_phy_tx_rx_t
rx_phy uint8_t 接收PHY,参考bs_sle_phy_tx_rx_t
tx_pilot_density uint8_t 发送导频密度指示,参考bs_sle_phy_tx_rx_pilot_density_t
rx_pilot_density uint8_t 接收导频密度指示,参考bs_sle_phy_tx_rx_pilot_density_t
g_feedback uint8_t 先发链路反馈类型指示,取值范围0~63
t_feedback uint8_t 后发链路反馈类型指示,取值范围0~7

bs_sle_stack_state_callbacks_t

typedef struct {
    bs_sle_stack_state_cbk stack_state_cbk;
} bs_sle_stack_state_callbacks_t;

成员说明

成员名称 数据类型 描述
stack_state_cbk bs_sle_stack_state_cbk 协议栈状态回调

bs_sle_config_localhost_name_t

typedef struct {
    uint8_t name_len;
    uint8_t name;
} bs_sle_config_localhost_name_t;

成员说明

成员名称 数据类型 描述
name_len uint8_t 名称长度
name uint8_t 名称

bs_sle_config_adv_vendor_info_t

typedef struct {
    uint16_t vendor_id;
    uint8_t data_len;
    uint8_t data;
} bs_sle_config_adv_vendor_info_t;

成员说明

成员名称 数据类型 描述
vendor_id uint16_t 厂商ID
data_len uint8_t 厂商数据长度
data uint8_t 厂商数据

Macros

SLE_INVALID_OBJ_ID

#define SLE_INVALID_OBJ_ID             0xFFFFFFFF

SLE_INVALID_DEVICE_ID

#define SLE_INVALID_DEVICE_ID           0xFFFF
#define BS_SLE_LINK_KEY_LEN             16

BS_PROTOCOL_CONFIG_SHIFT_BITS

#define BS_PROTOCOL_CONFIG_SHIFT_BITS   13

BS_SLE_MAX_PRE_SET_PHY_PARAM_NUM

#define BS_SLE_MAX_PRE_SET_PHY_PARAM_NUM 3

BS_SLE_MAX_PRE_SET_SEEK_PARAM_NUM

#define BS_SLE_MAX_PRE_SET_SEEK_PARAM_NUM 3

BS_SLE_MAX_PRE_SET_ADV_PARAM_NUM

#define BS_SLE_MAX_PRE_SET_ADV_PARAM_NUM 3

SSF_MAX_DEVICE_NAME_LEN

#define SSF_MAX_DEVICE_NAME_LEN         64

SSF_MAX_VENDOR_DATA_LEN

#define SSF_MAX_VENDOR_DATA_LEN         254

BS_SLE_MAX_PRE_SET_CONN_PARAM_NUM

#define BS_SLE_MAX_PRE_SET_CONN_PARAM_NUM 5