common
common模块提供BTS(Bluetooth Subsystem)通用接口,包括日志注册、BLE协议栈使能/去使能、设备管理回调注册及持久化存储路径配置等功能,用于初始化和配置BTS子系统运行环境。
头文件清单
#include "include/middleware/services/bts/common/bts_def.h"
#include "include/middleware/services/bts/common/bts_device_manager.h"
#include "include/middleware/services/bts/common/logger_manager.h"
接口清单
| 接口名称 | 功能简述 |
|---|---|
| h_logger_register | 注册日志打印函数 |
| enable_ble | 使能BLE协议栈 |
| disable_ble | 去使能BLE协议栈 |
| bts_dev_manager_register_file_path | 注册BLE设备持久化信息存储路径 |
| bts_dev_manager_register_callbacks | 注册BT设备管理回调函数 |
| bts_register_bt_heartbeat_monitor | 注册BT核挂死监控回调函数 |
Functions
h_logger_register
头文件清单
功能说明
- 注册用户自定义的日志打印函数,使BTS模块日志可在客户系统中输出
- 适用于Linux系统环境
- 注册后BTS内部日志将通过注册的回调函数输出,替代默认日志输出方式
前置条件
- 系统运行于Linux环境
- 入参log指向的日志打印函数已实现且可正常调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| log | logger_func | 日志打印回调函数指针 | 非NULL |
enable_ble
头文件清单
功能说明
- 使能BLE协议栈,发起BLE启动请求
- 异步接口,使能结果通过已注册的bts_ble_enable_callback回调函数返回
前置条件
- 调用时序约束:BT设备已完成上电流程,上电状态为BT_POWER_ON_SUCCESS
- 调用时序约束:已通过bts_dev_manager_register_callbacks注册回调函数,其中ble_enable_cb已设置
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | BLE使能请求成功发起 |
| Other | 其他错误码,参考errcode_bt_t | 执行失败 |
disable_ble
头文件清单
功能说明
- 去使能BLE协议栈,发起BLE关闭请求
- 异步接口,去使能结果通过已注册的bts_ble_disable_callback回调函数返回
前置条件
- 调用时序约束:BLE协议栈已通过enable_ble成功使能
- 调用时序约束:已通过bts_dev_manager_register_callbacks注册回调函数,其中ble_disable_cb已设置
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | BLE去使能请求成功发起 |
| Other | 其他错误码,参考errcode_bt_t | 执行失败 |
bts_dev_manager_register_file_path
errcode_t bts_dev_manager_register_file_path(const uint8_t *path, const uint8_t *key, uint8_t key_len)
头文件清单
功能说明
- 注册BLE设备持久化信息存储路径,用于BLE设备配对等持久化数据的文件存储
- 适用于Linux系统,必须设置加密秘钥以保障持久化数据安全
- 持久化文件存储路径需包含结束符'\0'
前置条件
- 系统运行于Linux环境
- 入参path指向的路径有效且具有读写权限
- 加密秘钥长度固定为16字节
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| path | const uint8_t * | 文件持久化路径,包含结束符'\0' | 非NULL,路径长度包含'\0' |
| key | const uint8_t * | 文件持久化加密秘钥 | 非NULL,长度16字节 |
| key_len | uint8_t | 秘钥长度 | 固定值16 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | 参数合法,注册成功 |
| Other | 其他错误码,参考errcode_bt_t | 执行失败 |
bts_dev_manager_register_callbacks
头文件清单
功能说明
- 注册BT设备管理回调函数集合,包含设备上电、BLE使能/去使能、DFR事件等通知回调
- 注册后BTS模块将通过回调函数向应用层上报设备状态变化事件
- 回调函数运行于BTS线程上下文,不可阻塞或长时间等待
前置条件
- 入参func指向的回调函数结构体各成员已正确初始化
- 回调函数内部不可执行阻塞操作或长时间等待
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| func | bts_dev_manager_callbacks_t * | 指向回调函数接口定义的指针 | 非NULL |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | 参数合法,注册成功 |
| Other | 其他错误码,参考errcode_bt_t | 执行失败 |
bts_register_bt_heartbeat_monitor
头文件清单
功能说明
- 注册BT核挂死监控回调函数,当BT核发生挂死事件时通知应用层
- 回调函数运行于BTS线程上下文,不可阻塞或长时间等待
- 注册后BTS在检测到BT核挂死事件时将调用该回调函数上报事件
前置条件
- 入参cbk指向的回调函数已正确实现
- 回调函数内部不可执行阻塞操作或长时间等待
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| cbk | bts_heartbeat_monitor_callback | BT核挂死事件回调函数指针 | 非NULL |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_BT_SUCCESS(0x00) | 执行成功 | 参数合法,注册成功 |
| Other | 其他错误码,参考errcode_bt_t | 执行失败 |
Enumerations
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_KEY_MISSING,
ERRCODE_BT_OUT_OF_RANGE,
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_KEY_MISSING | 0x8000600D | 密钥丢失 |
| ERRCODE_BT_OUT_OF_RANGE | 0x8000600E | 参数超出范围 |
| ERRCODE_BT_MAX | 0x800067FF | 蓝牙错误码最大值 |
bts_power_on_status_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_POWER_ON_SUCCESS | 0 | BT上电成功 |
| BT_POWER_ON_FAIL | 1 | BT上电失败 |
bts_enable_disable_status_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| BT_ENABLE_DISABLE_SUCCESS | 0 | BT使能/去使能成功 |
| BT_ENABLE_DISABLE_FAIL | 1 | BT使能/去使能失败 |
h_log_level_e
typedef enum {
H_LOG_LEVEL_NONE,
H_LOG_LEVEL_ERROR,
H_LOG_LEVEL_WARNING,
H_LOG_LEVEL_INFO,
H_LOG_LEVEL_DBG,
H_LOG_LEVEL_MAX,
} h_log_level_e;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| H_LOG_LEVEL_NONE | 0 | 无日志输出 |
| H_LOG_LEVEL_ERROR | 1 | 错误级别日志 |
| H_LOG_LEVEL_WARNING | 2 | 警告级别日志 |
| H_LOG_LEVEL_INFO | 3 | 信息级别日志 |
| H_LOG_LEVEL_DBG | 4 | 调试级别日志 |
| H_LOG_LEVEL_MAX | 5 | 日志级别最大值 |
Structures
bts_dev_manager_callbacks_t
typedef struct {
bts_power_on_callback power_on_cb;
bts_ble_enable_callback ble_enable_cb;
bts_ble_disable_callback ble_disable_cb;
bts_ble_dfr_callback ble_dfr_cb;
} bts_dev_manager_callbacks_t;
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| power_on_cb | bts_power_on_callback | 设备上电回调函数 |
| ble_enable_cb | bts_ble_enable_callback | BLE启动回调函数 |
| ble_disable_cb | bts_ble_disable_callback | BLE关闭回调函数 |
| ble_dfr_cb | bts_ble_dfr_callback | DFR回调函数 |