跳转至

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

void h_logger_register(logger_func log)

头文件清单

#include "include/middleware/services/bts/common/logger_manager.h"

功能说明

  • 注册用户自定义的日志打印函数,使BTS模块日志可在客户系统中输出
  • 适用于Linux系统环境
  • 注册后BTS内部日志将通过注册的回调函数输出,替代默认日志输出方式

前置条件

  • 系统运行于Linux环境
  • 入参log指向的日志打印函数已实现且可正常调用

入参

名称 参数类型 详细说明 约束取值范围
log logger_func 日志打印回调函数指针 非NULL

enable_ble

errcode_t enable_ble(void)

头文件清单

#include "include/middleware/services/bts/common/bts_device_manager.h"

功能说明

  • 使能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

errcode_t disable_ble(void)

头文件清单

#include "include/middleware/services/bts/common/bts_device_manager.h"

功能说明

  • 去使能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)

头文件清单

#include "include/middleware/services/bts/common/bts_device_manager.h"

功能说明

  • 注册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

errcode_t bts_dev_manager_register_callbacks(bts_dev_manager_callbacks_t *func)

头文件清单

#include "include/middleware/services/bts/common/bts_device_manager.h"

功能说明

  • 注册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

errcode_t bts_register_bt_heartbeat_monitor(bts_heartbeat_monitor_callback cbk)

头文件清单

#include "include/middleware/services/bts/common/bts_device_manager.h"

功能说明

  • 注册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

typedef enum {
    BT_POWER_ON_SUCCESS,
    BT_POWER_ON_FAIL,
} bts_power_on_status_t;
枚举成员 取值 描述
BT_POWER_ON_SUCCESS 0 BT上电成功
BT_POWER_ON_FAIL 1 BT上电失败

bts_enable_disable_status_t

typedef enum {
    BT_ENABLE_DISABLE_SUCCESS,
    BT_ENABLE_DISABLE_FAIL,
} 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回调函数

Macros

ERRCODE_BT_COMMON_BASE

#define ERRCODE_BT_COMMON_BASE 0x80006000

ERRCODE_BT_COMMON_END

#define ERRCODE_BT_COMMON_END  0x800067FF