factory
BR factory模块提供蓝牙BR射频工厂测试接口,支持射频长发、长收、收发结束及复位等操作,通过回调机制返回测试结果,适用于产线射频校准与测试场景。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| 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
头文件清单
功能说明
- 注册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
头文件清单
功能说明
- 开启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
头文件清单
功能说明
- 开启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
头文件清单
功能说明
- 关闭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
头文件清单
功能说明
- 重置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
使用说明
作为所有接口的返回值类型
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 | 射频收发复位回调 |