跳转至

factory

BR factory模块提供蓝牙BR射频工厂测试接口,支持射频长发、长收、收发结束及复位等操作,通过回调机制返回测试结果,适用于产线射频校准与测试场景。

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

接口清单

接口名称 功能简述
br_factory_register_callbacks 注册BR factory管理回调函数
br_factory_rf_tx_start 开启BR射频长发
br_factory_rf_rx_start 开启BR射频长收
br_factory_rf_trx_end 关闭BR射频收发
br_factory_rf_reset 重置BR射频收发

Functions

br_factory_register_callbacks

errcode_t br_factory_register_callbacks(br_factory_callbacks_t *func)

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

功能说明

  • 注册BR factory管理回调函数,用于接收射频长发、长收、收发结束、收发复位等事件通知
  • 回调函数运行于BTH service线程,不能阻塞或长时间等待

前置条件

  • func指针非空且指向已初始化的br_factory_callbacks_t结构体
  • BR蓝牙协议栈已初始化完成

入参

名称 参数类型 详细说明 约束取值范围
func br_factory_callbacks_t * 回调函数结构体指针 非NULL

返回值

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

参考案例

  • application/dut/command/bt/bt_ft_atcmd.c#bt_at_br_register_callback_cmd

br_factory_rf_tx_start

errcode_t br_factory_rf_tx_start(br_rf_tx_start_t *param)

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

功能说明

  • 开启BR射频长发测试,启动后通过br_factory_rf_tx_start_callback回调返回执行结果
  • 发射参数包括频率、调制类型、包类型、功率等级等,需按测试规范配置

前置条件

  • 调用时序约束:已通过br_factory_register_callbacks注册回调函数
  • param指针非空且参数值在合法范围内
  • BR蓝牙协议栈已初始化完成

入参

名称 参数类型 详细说明 约束取值范围
param br_rf_tx_start_t * 射频长发参数结构体指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 射频长发启动成功,结果通过回调返回
Other 其他错误码,参考errcode_bt_t 执行失败

参考案例

  • application/dut/command/bt/bt_ft_atcmd.c#bt_at_br_rf_tx_cmd

br_factory_rf_rx_start

errcode_t br_factory_rf_rx_start(br_rf_rx_start_t *param)

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

功能说明

  • 开启BR射频长收测试,启动后通过br_factory_rf_rx_start_callback回调返回执行结果
  • 接收参数包括频率、调制类型、包类型等,需按测试规范配置

前置条件

  • 调用时序约束:已通过br_factory_register_callbacks注册回调函数
  • param指针非空且参数值在合法范围内
  • BR蓝牙协议栈已初始化完成

入参

名称 参数类型 详细说明 约束取值范围
param br_rf_rx_start_t * 射频长收参数结构体指针 非NULL

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 射频长收启动成功,结果通过回调返回
Other 其他错误码,参考errcode_bt_t 执行失败

参考案例

  • application/dut/command/bt/bt_ft_atcmd.c#bt_at_br_rf_rx_cmd

br_factory_rf_trx_end

errcode_t br_factory_rf_trx_end(void)

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

功能说明

  • 关闭BR射频收发,结束当前长发或长收测试
  • 结束后通过br_factory_rf_trx_end_callback回调返回收发结果统计信息

前置条件

  • 调用时序约束:已通过br_factory_register_callbacks注册回调函数
  • 调用时序约束:已调用br_factory_rf_tx_start或br_factory_rf_rx_start启动了射频测试

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 射频收发关闭成功,结果通过回调返回
Other 其他错误码,参考errcode_bt_t 执行失败

参考案例

  • application/dut/command/bt/bt_ft_atcmd.c#bt_at_br_trx_end_cmd

br_factory_rf_reset

errcode_t br_factory_rf_reset(void)

头文件清单

#include "include/middleware/services/bts/br/bts_br_factory.h"

功能说明

  • 重置BR射频收发,复位射频状态
  • 重置后通过br_factory_rf_reset_callback回调返回执行结果

前置条件

  • 调用时序约束:已通过br_factory_register_callbacks注册回调函数
  • BR蓝牙协议栈已初始化完成

返回值

  • 返回类型:errcode_t
返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 射频收发重置成功,结果通过回调返回
Other 其他错误码,参考errcode_bt_t 执行失败

参考案例

  • application/dut/command/bt/bt_ft_atcmd.c#bt_at_br_reset_cmd

Type definitions

errcode_t

typedef uint32_t errcode_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 蓝牙错误码最大值

Structures

br_rf_tx_start_t

typedef struct {
    uint16_t test_data_len;    /*!< tx test data len,Scope:0x00~0x3FD */
    uint8_t addr[BD_ADDR_LEN]; /*!< tx device address */
    uint8_t tx_freq;           /*!< tx frequency,Scope:0x00~0x4E,2402+x*2 */
    uint8_t module_type;       /*!< modulation type */
    uint8_t code_type;         /*!< code type */
    uint8_t payload_type;      /*!< payload type */
    uint8_t power_level;       /*!< power level,Scope:0~5 */
    uint8_t tx_channel;        /*!< tx channel */
} br_rf_tx_start_t;

成员说明

成员名称 数据类型 描述
test_data_len uint16_t 发射测试数据长度,取值范围:0x00~0x3FD
addr uint8_t[BD_ADDR_LEN] 对端设备地址
tx_freq uint8_t 发送频率,取值范围:0x00~0x4E,对应频率为2402+x*2 MHz
module_type uint8_t 调制类型
code_type uint8_t 包类型
payload_type uint8_t 发包模式
power_level uint8_t 功率水平,取值范围:0~5
tx_channel uint8_t 发送通道

br_rf_rx_start_t

typedef struct {
    uint16_t test_data_len;    /*!< rx test data len,Scope:27~1021 */
    uint8_t addr[BD_ADDR_LEN]; /*!< tx device address */
    uint8_t rx_freq;           /*!< rx frequency,Scope:0x00~0x4E,2402+x*2 */
    uint8_t module_type;       /*!< modulation type */
    uint8_t code_type;         /*!< code type */
    uint8_t rx_channel;        /*!< rx channel */
} br_rf_rx_start_t;

成员说明

成员名称 数据类型 描述
test_data_len uint16_t 接收测试数据长度,取值范围:27~1021
addr uint8_t[BD_ADDR_LEN] 对端设备地址
rx_freq uint8_t 接收频率,取值范围:0x00~0x4E,对应频率为2402+x*2 MHz
module_type uint8_t 调制类型
code_type uint8_t 包类型
rx_channel uint8_t 接收通道

br_rf_trx_end_cmp_evt_t

typedef struct {
    errcode_t status;           /*!< event complete status */
    uint16_t num_packets;       /*!< num packets */
    uint8_t rssi;               /*!< rssi,Default:-127 */
} br_rf_trx_end_cmp_evt_t;

成员说明

成员名称 数据类型 描述
status errcode_t 事件完成状态
num_packets uint16_t 数据包数
rssi uint8_t 接收信号强度指示,默认值-127

br_factory_callbacks_t

typedef struct {
    br_factory_rf_tx_start_callback br_rf_tx_start_cb;         /*!< radio frequency tx start callback. */
    br_factory_rf_rx_start_callback br_rf_rx_start_cb;         /*!< radio frequency rx start callback. */
    br_factory_rf_trx_end_callback br_rf_trx_end_cb;           /*!< radio frequency tx and rx end callback. */
    br_factory_rf_reset_callback br_rf_reset_cb;               /*!< radio frequency tx and rx reset callback. */
} br_factory_callbacks_t;

成员说明

成员名称 数据类型 描述
br_rf_tx_start_cb br_factory_rf_tx_start_callback 射频长发回调函数
br_rf_rx_start_cb br_factory_rf_rx_start_callback 射频长收回调函数
br_rf_trx_end_cb br_factory_rf_trx_end_callback 射频收发结束回调函数
br_rf_reset_cb br_factory_rf_reset_callback 射频收发复位回调

Macros

BD_ADDR_LEN

#define BD_ADDR_LEN             6

ERRCODE_BT_COMMON_BASE

#define ERRCODE_BT_COMMON_BASE  0x80006000

ERRCODE_BT_COMMON_END

#define ERRCODE_BT_COMMON_END   0x800067FF