跳转至

factory

BLE Factory模块提供BLE射频产线测试相关接口,包括射频长发/长收测试、射频复位、NV校准、单音模式控制以及产线校准命令等功能,支持回调机制通知上层应用操作结果。

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

接口清单

接口名称 功能简述
ble_factory_register_callbacks 注册BLE factory管理回调函数
ble_factory_rf_tx_start 开启BLE射频长发
ble_factory_rf_tx_v2_start 开启BLE射频长发v2(支持CTE及功率等级配置)
ble_factory_rf_rx_start 开启BLE射频长收
ble_factory_rf_trx_end 关闭BLE射频收发
ble_factory_rf_reset 重置BLE射频收发
ble_factory_rf_cali_nv 校准BLE射频NV
ble_factory_rf_single_tone 设置BLE射频单音模式
ble_factory_rf_single_tone_v2 设置BLE射频单音模式v2(支持信道带宽配置)
ble_factory_vendor_productline_cmd 发送产线校准命令

Functions

ble_factory_register_callbacks

errcode_t ble_factory_register_callbacks(ble_factory_callbacks_t *func)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 注册BLE factory管理回调函数,包括射频长发、长收、收发结束、复位、NV校准、单音模式、产线校准等事件的回调通知
  • 调用此接口后,BLE service在对应操作完成时通过注册的回调函数通知上层
  • 回调函数运行于BLE service线程上下文,不可阻塞或长时间等待

入参

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

返回值

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

ble_factory_rf_reset

errcode_t ble_factory_rf_reset(void)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 重置BLE射频收发状态,将射频模块恢复到初始状态
  • 复位结果通过ble_factory_rf_reset_callback回调通知
  • 用于产线测试中射频模块状态复位

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 复位成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_cali_nv

errcode_t ble_factory_rf_cali_nv(void)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 校准BLE射频NV(Non-Volatile)数据,触发射频校准流程并将校准结果写入NV存储
  • 校准结果通过ble_factory_rf_cali_nv_callback回调通知
  • 用于产线射频校准场景

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 校准启动成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_single_tone

errcode_t ble_factory_rf_single_tone(ble_rf_single_tone_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 设置BLE射频单音模式,在指定频率上开启或关闭单音载波信号发射
  • 操作结果通过ble_factory_rf_single_tone_callback回调通知
  • 用于产线射频单音测试场景

入参

名称 参数类型 详细说明 约束取值范围
param ble_rf_single_tone_t * 单音模式参数指针 非NULL

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 单音设置成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_single_tone_v2

errcode_t ble_factory_rf_single_tone_v2(ble_rf_single_tone_v2_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 设置BLE射频单音模式v2,在v1基础上增加信道序号和信道带宽配置
  • 操作结果通过ble_factory_rf_single_tone_callback回调通知
  • 用于产线射频单音测试场景

入参

名称 参数类型 详细说明 约束取值范围
param ble_rf_single_tone_v2_t * 单音模式v2参数指针 非NULL

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 单音v2设置成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_vendor_productline_cmd

errcode_t ble_factory_vendor_productline_cmd(ble_vendor_productline_cmd_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 发送产线校准命令,支持频偏校准值设置/读取、EFUSE读写、芯片温度获取、功率校准等操作
  • 命令执行结果通过ble_factory_vendor_pdl_cmd_callback回调通知
  • 用于产线频偏校准、功率校准及EFUSE读写场景

入参

名称 参数类型 详细说明 约束取值范围
param ble_vendor_productline_cmd_t * 产线校准命令参数指针 非NULL

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 命令发送成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_tx_start

errcode_t ble_factory_rf_tx_start(ble_rf_tx_start_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 开启BLE射频长发测试,按照指定频率、数据长度、载荷类型和物理层参数持续发射射频信号
  • 发射结果通过ble_factory_rf_tx_start_callback回调通知
  • 用于产线射频发射测试场景

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 长发启动成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_tx_v2_start

errcode_t ble_factory_rf_tx_v2_start(ble_rf_tx_v2_start_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 开启BLE射频长发v2测试,在v1基础上增加CTE恒音扩展长度/类型、天线切换序列和功率等级配置
  • 发射结果通过ble_factory_rf_tx_start_callback回调通知
  • 用于支持AOA/AOD测向及功率调节的产线射频发射测试场景

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 长发v2启动成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_rx_start

errcode_t ble_factory_rf_rx_start(ble_rf_rx_start_t* param)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 开启BLE射频长收测试,按照指定频率、物理层和调制指数参数持续接收射频信号
  • 接收结果通过ble_factory_rf_rx_start_callback回调通知
  • 用于产线射频接收测试场景

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 长收启动成功
Other 其他错误码,参考errcode_bt_t 执行失败

ble_factory_rf_trx_end

errcode_t ble_factory_rf_trx_end(void)

头文件清单

#include "include/middleware/services/bts/ble/bts_factory.h"

功能说明

  • 关闭BLE射频收发,停止当前正在进行的射频长发或长收测试
  • 收发结束结果通过ble_factory_rf_trx_end_callback回调通知,回调中包含已收发的数据包数
  • 用于产线射频测试结束后停止收发

返回值

返回值 文字含义 触发场景
ERRCODE_BT_SUCCESS(0x00) 执行成功 收发停止成功
Other 其他错误码,参考errcode_bt_t 执行失败

Type definitions

errcode_t

typedef uint32_t errcode_t;

使用说明

作为本模块所有对外接口的返回值类型

ble_factory_rf_tx_start_callback

typedef void (*ble_factory_rf_tx_start_callback)(errcode_t status);

使用说明

作为ble_factory_callbacks_t成员ble_rf_tx_start_cb的类型,用于射频长发完成回调通知

调用时机:当BLE射频长发测试完成时,由BLE service线程调用此回调通知上层应用长发操作的结果。

ble_factory_rf_rx_start_callback

typedef void (*ble_factory_rf_rx_start_callback)(errcode_t status);

使用说明

作为ble_factory_callbacks_t成员ble_rf_rx_start_cb的类型,用于射频长收完成回调通知

调用时机:当BLE射频长收测试完成时,由BLE service线程调用此回调通知上层应用长收操作的结果。

ble_factory_rf_trx_end_callback

typedef void (*ble_factory_rf_trx_end_callback)(errcode_t status, uint16_t num_packets);

使用说明

作为ble_factory_callbacks_t成员ble_rf_trx_end_cb的类型,用于射频收发结束回调通知

调用时机:当BLE射频收发结束(调用ble_factory_rf_trx_end后完成停止)时,由BLE service线程调用此回调通知上层应用收发结束状态及已收发的数据包数。

ble_factory_rf_reset_callback

typedef void (*ble_factory_rf_reset_callback)(errcode_t status);

使用说明

作为ble_factory_callbacks_t成员ble_rf_reset_cb的类型,用于射频复位回调通知

调用时机:当BLE射频复位操作完成时,由BLE service线程调用此回调通知上层应用复位操作的结果。

ble_factory_rf_cali_nv_callback

typedef void (*ble_factory_rf_cali_nv_callback)(errcode_t status);

使用说明

作为ble_factory_callbacks_t成员ble_rf_cali_nv_cb的类型,用于射频NV校准回调通知

调用时机:当BLE射频NV校准操作完成时,由BLE service线程调用此回调通知上层应用校准操作的结果。

ble_factory_rf_single_tone_callback

typedef void (*ble_factory_rf_single_tone_callback)(errcode_t status);

使用说明

作为ble_factory_callbacks_t成员ble_rf_single_tone_cb的类型,用于射频单音模式回调通知

调用时机:当BLE射频单音模式设置操作完成时,由BLE service线程调用此回调通知上层应用单音模式设置的结果。

ble_factory_vendor_pdl_cmd_callback

typedef void (*ble_factory_vendor_pdl_cmd_callback)(ble_hci_vendor_productline_complete_t *evt);

使用说明

作为ble_factory_callbacks_t成员ble_vendor_pdl_cmd_cb的类型,用于产线校准命令回调通知

调用时机:当BLE产线校准命令执行完成时,由BLE service线程调用此回调通知上层应用命令执行结果,回调参数中包含完整的产线校准完成事件数据。

Associations

(anonymous union at bts_factory.h:209:5)

union {
    pdl_xo_trim_t xo_trim;
    pdl_efuse_temp_wr_t efuse_wr_temp;
    pdl_pwr_cali_set_pwr_t pwr_info;
};
成员名称 类型 描述 接口使用逻辑
xo_trim pdl_xo_trim_t 频偏校准值 ble_factory_vendor_productline_cmd入参载体,sub_opcode为BTH_PRODUCTLINE_XO_TRIM时使用
efuse_wr_temp pdl_efuse_temp_wr_t EFUSE写入温度值 ble_factory_vendor_productline_cmd入参载体,sub_opcode为BTH_PRODUCTLINE_EFUSE_WRITE_TEMPERATURE时使用
pwr_info pdl_pwr_cali_set_pwr_t 功率校准实测功率 ble_factory_vendor_productline_cmd入参载体,sub_opcode为BTH_PRODUCTLINE_PWR_CALI_SET_MEASSURED_PWR时使用

(anonymous union at bts_factory.h:256:5)

union {
    ble_pdl_rd_xo_trim_t xo_trim_reg_val;
    ble_pdl_get_temp_t temp;
    ble_pdl_efuse_rd_xo_trim_t xo_trim;
    ble_pdl_efuse_rd_tmp_t temp_lvl;
    ble_pdl_pwr_cali_get_result_t pwr_result;
    ble_pdl_efuse_rd_pwr_result_t efuse_pwr_result;
};
成员名称 类型 描述 接口使用逻辑
xo_trim_reg_val ble_pdl_rd_xo_trim_t XO频偏校准寄存器读取值 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_XO_TRIM_RD_VAL时使用
temp ble_pdl_get_temp_t 芯片温度 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_GET_TSENSOR_TEMPERATURE时使用
xo_trim ble_pdl_efuse_rd_xo_trim_t EFUSE读取的XO频偏校准值 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_EFUSE_READ_XO_TRIM时使用
temp_lvl ble_pdl_efuse_rd_tmp_t EFUSE读取的温度等级 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_EFUSE_READ_TEMPERATURE时使用
pwr_result ble_pdl_pwr_cali_get_result_t 功率校准结果 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_PWR_CALI_GET_COMP_RESULT时使用
efuse_pwr_result ble_pdl_efuse_rd_pwr_result_t EFUSE读取的功率校准结果 ble_factory_vendor_pdl_cmd_callback出参载体,subcode为BTH_PRODUCTLINE_EFUSE_READ_PWR_COMP时使用

Enumerations

ble_rf_phy_t

typedef enum {
    BLE_RF_PHY_1M = 0x01,      /*!< radio frequency physical: 1M */
    BLE_RF_PHY_2M = 0x02,      /*!< radio frequency physical: 2M */
    BLE_RF_PHY_S8 = 0x03,      /*!< radio frequency physical: coded PHY with S=8 data coding */
    BLE_RF_PHY_S2 = 0x04,      /*!< radio frequency physical: coded PHY with S=2 data coding */
} ble_rf_phy_t;
枚举成员 取值 描述
BLE_RF_PHY_1M 0x01 射频物理层1M
BLE_RF_PHY_2M 0x02 射频物理层2M
BLE_RF_PHY_S8 0x03 射频物理层S=8数据编码的编码PHY
BLE_RF_PHY_S2 0x04 射频物理层S=2数据编码的编码PHY

ble_rf_payload_type_t

typedef enum {
    BLE_RF_PATLOAD_TYPE_0 = 0x00,    /*!< radio frequency payload type:PRBS9 */
    BLE_RF_PATLOAD_TYPE_1 = 0x01,    /*!< radio frequency payload type:11110000 */
    BLE_RF_PATLOAD_TYPE_2 = 0x02,    /*!< radio frequency payload type:10101010 */
    BLE_RF_PATLOAD_TYPE_3 = 0x03,    /*!< radio frequency payload type:PRBS15 */
    BLE_RF_PATLOAD_TYPE_4 = 0x04,    /*!< radio frequency payload type:11111111 */
    BLE_RF_PATLOAD_TYPE_5 = 0x05,    /*!< radio frequency payload type:00000000 */
    BLE_RF_PATLOAD_TYPE_6 = 0x06,    /*!< radio frequency payload type:00001111 */
    BLE_RF_PATLOAD_TYPE_7 = 0x07,    /*!< radio frequency payload type:01010101 */
} ble_rf_payload_type_t;
枚举成员 取值 描述
BLE_RF_PATLOAD_TYPE_0 0x00 射频信息体类型: PRBS9
BLE_RF_PATLOAD_TYPE_1 0x01 射频信息体类型: 11110000
BLE_RF_PATLOAD_TYPE_2 0x02 射频信息体类型: 10101010
BLE_RF_PATLOAD_TYPE_3 0x03 射频信息体类型: PRBS15
BLE_RF_PATLOAD_TYPE_4 0x04 射频信息体类型: 11111111
BLE_RF_PATLOAD_TYPE_5 0x05 射频信息体类型: 00000000
BLE_RF_PATLOAD_TYPE_6 0x06 射频信息体类型: 00001111
BLE_RF_PATLOAD_TYPE_7 0x07 射频信息体类型: 01010101

ble_pdl_sub_opcode_t

typedef enum {
    BTH_PRODUCTLINE_XO_TRIM = 0x01,                    // 设置频偏校准值,寄存器控
    BTH_PRODUCTLINE_XO_TRIM_RD_VAL = 0x02,             // 读取频偏校准寄存器值
    BTH_PRODUCTLINE_GET_TSENSOR_TEMPERATURE = 0x03,    // 获取芯片温度
    BTH_PRODUCTLINE_EFUSE_WRITE_XO_TRIM = 0x04,        // 将频偏校准值写入EFUSE
    BTH_PRODUCTLINE_EFUSE_READ_XO_TRIM = 0x05,         // 从EFUSE读取频偏校准值
    BTH_PRODUCTLINE_EFUSE_WRITE_TEMPERATURE = 0x06,    // 将产测时的芯片温度写入EFUSE
    BTH_PRODUCTLINE_EFUSE_READ_TEMPERATURE = 0x07,     // 从EFUSE读取产测温度
    BTH_PRODUCTLINE_PWR_CALI_SET_MEASSURED_PWR = 0x08, // 将实测发送功率发送给驱动
    BTH_PRODUCTLINE_PWR_CALI_GET_COMP_RESULT = 0x09,   // 获取功率校准结果
    BTH_BTH_PRODUCTLINE_PWR_CALI_APPLY_COMP = 0x0A,    // 应用功率校准结果
    BTH_PRODUCTLINE_EFUSE_WRITE_PWR_COMP = 0x0B,       // 将功率校准结果写入EFUSE
    BTH_PRODUCTLINE_EFUSE_READ_PWR_COMP = 0x0C,        // 从EFUSE读取功率校准结果
} ble_pdl_sub_opcode_t;
枚举成员 取值 描述
BTH_PRODUCTLINE_XO_TRIM 0x01 设置频偏校准值,寄存器控制
BTH_PRODUCTLINE_XO_TRIM_RD_VAL 0x02 读取频偏校准寄存器值
BTH_PRODUCTLINE_GET_TSENSOR_TEMPERATURE 0x03 获取芯片温度
BTH_PRODUCTLINE_EFUSE_WRITE_XO_TRIM 0x04 将频偏校准值写入EFUSE
BTH_PRODUCTLINE_EFUSE_READ_XO_TRIM 0x05 从EFUSE读取频偏校准值
BTH_PRODUCTLINE_EFUSE_WRITE_TEMPERATURE 0x06 将产测时的芯片温度写入EFUSE
BTH_PRODUCTLINE_EFUSE_READ_TEMPERATURE 0x07 从EFUSE读取产测温度
BTH_PRODUCTLINE_PWR_CALI_SET_MEASSURED_PWR 0x08 将实测发送功率发送给驱动
BTH_PRODUCTLINE_PWR_CALI_GET_COMP_RESULT 0x09 获取功率校准结果
BTH_BTH_PRODUCTLINE_PWR_CALI_APPLY_COMP 0x0A 应用功率校准结果
BTH_PRODUCTLINE_EFUSE_WRITE_PWR_COMP 0x0B 将功率校准结果写入EFUSE
BTH_PRODUCTLINE_EFUSE_READ_PWR_COMP 0x0C 从EFUSE读取功率校准结果

errcode_bt_t

typedef enum {
    ERRCODE_BT_SUCCESS = 0x00,                /*!< error code of success */
    ERRCODE_BT_FAIL = ERRCODE_BT_COMMON_BASE, /*!< error code of failure */
    ERRCODE_BT_NOT_READY,                     /*!< error code of not ready */
    ERRCODE_BT_MALLOC_FAIL,                   /*!< error code of memmery not enough */
    ERRCODE_BT_MEMCPY_FAIL,                   /*!< error code of memcpy fail */
    ERRCODE_BT_BUSY,                          /*!< error code of system is busy */
    ERRCODE_BT_DONE,                          /*!< error code of complete */
    ERRCODE_BT_UNSUPPORTED,                   /*!< error code of not support */
    ERRCODE_BT_PARAM_ERR,                     /*!< error code of invalid param */
    ERRCODE_BT_STATE_ERR,                     /*!< error code of state error */
    ERRCODE_BT_UNHANDLED,                     /*!< error code of unhandle */
    ERRCODE_BT_AUTH_FAIL,                     /*!< error code of auth failure */
    ERRCODE_BT_RMT_DEV_DOWN,                  /*!< error code of remote device down */
    ERRCODE_BT_AUTH_REJECTED,                 /*!< error code of auth rejected */
    ERRCODE_BT_KEY_MISSING,                   /*!< error code of key missing */
    ERRCODE_BT_OUT_OF_RANGE,                  /*!< error code of param out of range */
    ERRCODE_BT_MAX = ERRCODE_BT_COMMON_END    /*!< the max of bt error code */
} 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

ble_rf_tx_start_t

typedef struct {
    uint8_t tx_freq;            /*!< tx frequency,Scope:0x00~0x27,2402+x*2 */
    uint16_t test_data_len;     /*!< tx test data len,Scope:0x00~0xFB */
    uint8_t payload_type;       /*!< palyload type { @ref ble_rf_payload_type_t } */
    uint8_t tx_phy;             /*!< radio frequency physical { @ref ble_rf_phy_t } */
} ble_rf_tx_start_t;

成员说明

成员名称 数据类型 描述
tx_freq uint8_t 发送频率,范围0x00~0x27,实际频率为2402+x*2 MHz
test_data_len uint16_t 发射测试数据长度,取值范围0x25~0xFB
payload_type uint8_t 发射测试数据包类型,参考ble_rf_payload_type_t
tx_phy uint8_t 射频物理层,参考ble_rf_phy_t

ble_rf_tx_v2_start_t

typedef struct {
    uint8_t freq_idx;           /*!< tx frequency,Scope:0x00~0x27,2402+x*2 */
    uint8_t test_data_len;      /*!< tx test data len,Scope:0x00~0xFF */
    uint8_t payload_type;       /*!< palyload type { @ref ble_rf_payload_type_t } */
    uint8_t phy;                /*!< radio frequency physical { @ref ble_rf_phy_t } */
    uint8_t cte_len;            /*!< AOA/AOD CTE LEN */
    uint8_t cte_type;           /*!< CTE TYPE, 0: AOA, 1: 1us AOD, 2: 2us AOD */
    uint8_t switch_pattern_len; /*!< switch pattern len */
    uint8_t ant_ids[MAX_SWITCH_PATTERN_LENGTH];
                                /*!< Antenna switching sequence */
    int8_t power_level;         /*!< power level,Scope:-127~20, 0x7E, 0x7F */
} ble_rf_tx_v2_start_t;

成员说明

成员名称 数据类型 描述
freq_idx uint8_t 发送频率索引,范围0x00~0x27,实际频率为2402+x*2 MHz
test_data_len uint8_t 发射测试数据长度,取值范围0x00~0xFF
payload_type uint8_t 发射测试数据包类型,参考ble_rf_payload_type_t
phy uint8_t 射频物理层,参考ble_rf_phy_t
cte_len uint8_t AOA/AOD恒音扩展长度
cte_type uint8_t CTE类型,0:AOA恒音扩展,1:天线切换时隙1us的AOD恒音扩展,2:天线切换时隙2us的AOD恒音扩展
switch_pattern_len uint8_t 天线切换序列长度
ant_ids uint8_t[10] 天线切换序列
power_level int8_t 功率水平,取值范围-127~20,0x7E,0x7F

ble_rf_rx_start_t

typedef struct {
    uint8_t rx_freq;            /*!< rx frequency,Scope:0x00~0x27,2402+x*2 */
    uint8_t rx_phy;             /*!< radio frequency physical { @ref ble_rf_phy_t } */
    uint8_t modulation_index;   /*!< modulation index,0:standard,1:stable */
} ble_rf_rx_start_t;

成员说明

成员名称 数据类型 描述
rx_freq uint8_t 接收频率,范围0x00~0x27,实际频率为2402+x*2 MHz
rx_phy uint8_t 射频物理层,参考ble_rf_phy_t
modulation_index uint8_t 调制指数,0:标准,1:稳定

ble_rf_single_tone_t

typedef struct {
    uint8_t rf_freq;            /*!< frequency,Scope:0x00~0x4E,2402+x*2 */
    uint8_t rf_mode;            /*!< single tone mode,00:start,FF:stop */
} ble_rf_single_tone_t;

成员说明

成员名称 数据类型 描述
rf_freq uint8_t 频率,范围0x00~0x4E,实际频率为2402+x*2 MHz
rf_mode uint8_t 单音模式,0x00:开启,0xFF:关闭

ble_rf_single_tone_v2_t

typedef struct {
    uint32_t rf_freq;           /*!< frequency,Scope:0x00~0x4E,2402+x*2 */
    uint8_t rf_channel;         /*!< channel id */
    uint8_t rf_mode;            /*!< single tone mode,0:disable,1:enable */
    uint8_t rf_band;            /*!< channel band width */
    uint32_t reserve;           /*!< reserve */
} ble_rf_single_tone_v2_t;

成员说明

成员名称 数据类型 描述
rf_freq uint32_t 频率,范围0x00~0x4E,实际频率为2402+x*2 MHz
rf_channel uint8_t 信道序号
rf_mode uint8_t 单音模式,0:关闭,1:开启
rf_band uint8_t 信道带宽
reserve uint32_t 预留字段

pdl_xo_trim_t

typedef struct {
    uint8_t coarse_val;
    uint8_t fine_val;
} pdl_xo_trim_t;

成员说明

成员名称 数据类型 描述
coarse_val uint8_t 频偏校准粗调值
fine_val uint8_t 频偏校准细调值

pdl_efuse_temp_wr_t

typedef struct {
    int16_t temp;
} pdl_efuse_temp_wr_t;

成员说明

成员名称 数据类型 描述
temp int16_t 写入EFUSE的温度值

pdl_pwr_cali_set_pwr_t

typedef struct {
    int16_t target_pwr;
    int16_t pwr;
} pdl_pwr_cali_set_pwr_t;

成员说明

成员名称 数据类型 描述
target_pwr int16_t 目标功率
pwr int16_t 实测功率

ble_vendor_productline_cmd_t

typedef struct {
    uint8_t sub_opcode; // subcode
    union {
        pdl_xo_trim_t xo_trim;
        pdl_efuse_temp_wr_t efuse_wr_temp;
        pdl_pwr_cali_set_pwr_t pwr_info;
    };
} ble_vendor_productline_cmd_t;

成员说明

成员名称 数据类型 描述
sub_opcode uint8_t 产线校准子命令码,参考ble_pdl_sub_opcode_t
xo_trim pdl_xo_trim_t 频偏校准值,sub_opcode为BTH_PRODUCTLINE_XO_TRIM时使用
efuse_wr_temp pdl_efuse_temp_wr_t EFUSE写入温度,sub_opcode为BTH_PRODUCTLINE_EFUSE_WRITE_TEMPERATURE时使用
pwr_info pdl_pwr_cali_set_pwr_t 功率校准信息,sub_opcode为BTH_PRODUCTLINE_PWR_CALI_SET_MEASSURED_PWR时使用

ble_pdl_rd_xo_trim_t

typedef struct {
    uint8_t sel;
    uint8_t coarse_val;
    uint8_t fine_val;
} ble_pdl_rd_xo_trim_t;

成员说明

成员名称 数据类型 描述
sel uint8_t 选择寄存器
coarse_val uint8_t 频偏校准粗调值
fine_val uint8_t 频偏校准细调值

ble_pdl_get_temp_t

typedef struct {
    int16_t temp;
} ble_pdl_get_temp_t;

成员说明

成员名称 数据类型 描述
temp int16_t 芯片温度值

ble_pdl_efuse_rd_xo_trim_t

typedef struct {
    uint8_t coarse_val;
    uint8_t fine_val;
} ble_pdl_efuse_rd_xo_trim_t;

成员说明

成员名称 数据类型 描述
coarse_val uint8_t EFUSE读取的频偏校准粗调值
fine_val uint8_t EFUSE读取的频偏校准细调值

ble_pdl_efuse_rd_tmp_t

typedef struct {
    uint8_t temp_lvl;
} ble_pdl_efuse_rd_tmp_t;

成员说明

成员名称 数据类型 描述
temp_lvl uint8_t EFUSE读取的温度等级

ble_pdl_pwr_cali_get_result_t

typedef struct {
    int16_t curve_c_offset;
} ble_pdl_pwr_cali_get_result_t;

成员说明

成员名称 数据类型 描述
curve_c_offset int16_t 功率校准曲线C偏移量

ble_pdl_efuse_rd_pwr_result_t

typedef struct {
    int16_t curve_c_offset;
} ble_pdl_efuse_rd_pwr_result_t;

成员说明

成员名称 数据类型 描述
curve_c_offset int16_t EFUSE读取的功率校准曲线C偏移量

ble_hci_vendor_productline_complete_t

#pragma pack(1)
typedef struct {
    uint8_t nb;
    uint16_t opcode;
    uint8_t status;
    uint8_t subcode;
    union {
        ble_pdl_rd_xo_trim_t xo_trim_reg_val;
        ble_pdl_get_temp_t temp;
        ble_pdl_efuse_rd_xo_trim_t xo_trim;
        ble_pdl_efuse_rd_tmp_t temp_lvl;
        ble_pdl_pwr_cali_get_result_t pwr_result;
        ble_pdl_efuse_rd_pwr_result_t efuse_pwr_result;
    };
} ble_hci_vendor_productline_complete_t;
#pragma pack()

成员说明

成员名称 数据类型 描述
nb uint8_t 参数数量
opcode uint16_t 命令操作码
status uint8_t 执行状态
subcode uint8_t 子命令码,参考ble_pdl_sub_opcode_t
xo_trim_reg_val ble_pdl_rd_xo_trim_t XO频偏校准寄存器读取值,subcode为BTH_PRODUCTLINE_XO_TRIM_RD_VAL时使用
temp ble_pdl_get_temp_t 芯片温度,subcode为BTH_PRODUCTLINE_GET_TSENSOR_TEMPERATURE时使用
xo_trim ble_pdl_efuse_rd_xo_trim_t EFUSE读取的XO频偏校准值,subcode为BTH_PRODUCTLINE_EFUSE_READ_XO_TRIM时使用
temp_lvl ble_pdl_efuse_rd_tmp_t EFUSE读取的温度等级,subcode为BTH_PRODUCTLINE_EFUSE_READ_TEMPERATURE时使用
pwr_result ble_pdl_pwr_cali_get_result_t 功率校准结果,subcode为BTH_PRODUCTLINE_PWR_CALI_GET_COMP_RESULT时使用
efuse_pwr_result ble_pdl_efuse_rd_pwr_result_t EFUSE读取的功率校准结果,subcode为BTH_PRODUCTLINE_EFUSE_READ_PWR_COMP时使用

ble_factory_callbacks_t

typedef struct {
    ble_factory_rf_tx_start_callback ble_rf_tx_start_cb;         /*!< radio frequency tx start callback. */
    ble_factory_rf_rx_start_callback ble_rf_rx_start_cb;         /*!< radio frequency rx start callback. */
    ble_factory_rf_trx_end_callback ble_rf_trx_end_cb;           /*!< radio frequency tx and rx end callback. */
    ble_factory_rf_reset_callback ble_rf_reset_cb;               /*!< radio frequency tx and rx reset callback. */
    ble_factory_rf_cali_nv_callback ble_rf_cali_nv_cb;           /*!< radio frequency cali nv callback. */
    ble_factory_rf_single_tone_callback ble_rf_single_tone_cb;   /*!< radio frequency single tone mode callback. */
    ble_factory_vendor_pdl_cmd_callback ble_vendor_pdl_cmd_cb;   /*!< productline calibration vendor cmd callback. */
} ble_factory_callbacks_t;

成员说明

成员名称 数据类型 描述
ble_rf_tx_start_cb ble_factory_rf_tx_start_callback 射频长发回调函数
ble_rf_rx_start_cb ble_factory_rf_rx_start_callback 射频长收回调函数
ble_rf_trx_end_cb ble_factory_rf_trx_end_callback 射频收发结束回调函数
ble_rf_reset_cb ble_factory_rf_reset_callback 射频收发复位回调
ble_rf_cali_nv_cb ble_factory_rf_cali_nv_callback 校准射频NV回调
ble_rf_single_tone_cb ble_factory_rf_single_tone_callback 设置射频单音模式回调
ble_vendor_pdl_cmd_cb ble_factory_vendor_pdl_cmd_callback 产线校准命令回调

Macros

MAX_SWITCH_PATTERN_LENGTH

#define MAX_SWITCH_PATTERN_LENGTH 10 // for LE TEST MODE ANTS_ID

ERRCODE_BT_COMMON_BASE

#define ERRCODE_BT_COMMON_BASE    0x80006000

ERRCODE_BT_COMMON_END

#define ERRCODE_BT_COMMON_END     0x800067FF