跳转至

factory

SLE factory管理模块提供SLE射频长发、长收、收发结束、复位等工厂测试功能的接口,支持注册回调函数接收异步事件通知。

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

接口清单

接口名称 功能简述
sle_rf_tx_start 开启SLE射频长发
sle_rf_rx_start 开启SLE射频长收
sle_rf_trx_end 关闭SLE射频收发
sle_rf_reset 重置SLE射频收发
sle_factory_register_callbacks 注册SLE factory管理回调函数

Functions

sle_rf_tx_start

errcode_t sle_rf_tx_start(sle_rf_tx_start_t* rf_tx_start)

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

功能说明

  • 开启SLE射频长发测试,发送指定频率、功率、物理层等参数的射频信号
  • 调用后射频长发结果通过 sle_factory_callbacks_t 中注册的 rf_tx_start_cb 回调异步返回
  • 入参 rf_tx_start 指针不可为 NULL,且指向的参数结构体需正确填充各字段取值

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 请求成功发起
Other 其他错误码,参考errcode_sle_t 执行失败

sle_rf_rx_start

errcode_t sle_rf_rx_start(sle_rf_rx_start_t* rf_rx_start)

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

功能说明

  • 开启SLE射频长收测试,接收指定频率、物理层等参数的射频信号
  • 调用后射频长收结果通过 sle_factory_callbacks_t 中注册的 rf_rx_start_cb 回调异步返回
  • 入参 rf_rx_start 指针不可为 NULL,且指向的参数结构体需正确填充各字段取值

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 请求成功发起
Other 其他错误码,参考errcode_sle_t 执行失败

sle_rf_trx_end

errcode_t sle_rf_trx_end(void)

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

功能说明

  • 关闭SLE射频收发,停止正在进行的射频长发或长收测试
  • 调用后收发结束结果通过 sle_factory_callbacks_t 中注册的 rf_trx_end_cb 回调异步返回,回调参数包含完成状态、数据包数和RSSI信息
  • 无需传入参数

返回值

返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 请求成功发起
Other 其他错误码,参考errcode_sle_t 执行失败

sle_rf_reset

errcode_t sle_rf_reset(void)

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

功能说明

  • 重置SLE射频收发状态,将射频模块恢复到初始状态
  • 调用后重置结果通过 sle_factory_callbacks_t 中注册的 rf_reset_cb 回调异步返回
  • 无需传入参数

返回值

返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 执行成功 请求成功发起
Other 其他错误码,参考errcode_sle_t 执行失败

sle_factory_register_callbacks

errcode_t sle_factory_register_callbacks(sle_factory_callbacks_t *func)

头文件清单

#include "include/middleware/services/bts/sle/sle_factory_manager.h"

功能说明

  • 注册SLE factory管理回调函数,用于接收射频长发、长收、收发结束、复位等事件的异步通知
  • 入参 func 指针不可为 NULL,回调函数运行于SLE service线程,不能阻塞或长时间等待
  • 回调中指针由SLE service申请内存并由SLE service释放,回调中不应释放

入参

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

返回值

返回值 文字含义 触发场景
ERRCODE_SUCC(0x00) 成功 注册成功
Other 失败,参考errcode_sle_t 注册失败

Type definitions

errcode_t

typedef uint32_t errcode_t;

使用说明

作为本模块全部对外接口的返回值类型

sle_rf_tx_start_callback

typedef void (*sle_rf_tx_start_callback)(errcode_t status);

使用说明

作为 sle_factory_callbacks_t 结构体成员类型,用于射频长发回调。调用时机:调用 sle_rf_tx_start 后,射频长发操作完成时由SLE service异步回调。

sle_rf_rx_start_callback

typedef void (*sle_rf_rx_start_callback)(errcode_t status);

使用说明

作为 sle_factory_callbacks_t 结构体成员类型,用于射频长收回调。调用时机:调用 sle_rf_rx_start 后,射频长收操作完成时由SLE service异步回调。

sle_rf_trx_end_callback

typedef void (*sle_rf_trx_end_callback)(sle_rf_trx_end_cmp_evt_t* cmp_evt);

使用说明

作为 sle_factory_callbacks_t 结构体成员类型,用于射频收发结束回调。调用时机:调用 sle_rf_trx_end 后,射频收发结束操作完成时由SLE service异步回调。

sle_rf_reset_callback

typedef void (*sle_rf_reset_callback)(errcode_t status);

使用说明

作为 sle_factory_callbacks_t 结构体成员类型,用于射频复位回调。调用时机:调用 sle_rf_reset 后,射频复位操作完成时由SLE service异步回调。

Enumerations

sle_rf_power_t

typedef enum {
    SLE_RF_POWER_LEVEL_0 = 0x00,
    SLE_RF_POWER_LEVEL_1 = 0x01,
    SLE_RF_POWER_LEVEL_2 = 0x02,
    SLE_RF_POWER_LEVEL_3 = 0x03,
    SLE_RF_POWER_LEVEL_4 = 0x04,
    SLE_RF_POWER_LEVEL_5 = 0x05,
} sle_rf_power_t;
枚举成员 取值 描述
SLE_RF_POWER_LEVEL_0 0x00 射频功率0等级:-14dbm
SLE_RF_POWER_LEVEL_1 0x01 射频功率1等级:-10dbm
SLE_RF_POWER_LEVEL_2 0x02 射频功率2等级:-6dbm
SLE_RF_POWER_LEVEL_3 0x03 射频功率3等级:-2dbm
SLE_RF_POWER_LEVEL_4 0x04 射频功率4等级:2dbm
SLE_RF_POWER_LEVEL_5 0x05 射频功率5等级:6dbm

sle_rf_payload_type_t

typedef enum {
    SLE_RF_PATLOAD_TYPE_0 = 0x00,
    SLE_RF_PATLOAD_TYPE_1 = 0x01,
    SLE_RF_PATLOAD_TYPE_2 = 0x02,
    SLE_RF_PATLOAD_TYPE_3 = 0x03,
    SLE_RF_PATLOAD_TYPE_4 = 0x04,
    SLE_RF_PATLOAD_TYPE_5 = 0x05,
    SLE_RF_PATLOAD_TYPE_6 = 0x06,
    SLE_RF_PATLOAD_TYPE_7 = 0x07,
} sle_rf_payload_type_t;
枚举成员 取值 描述
SLE_RF_PATLOAD_TYPE_0 0x00 射频信息体类型:PRBS9
SLE_RF_PATLOAD_TYPE_1 0x01 射频信息体类型:11110000
SLE_RF_PATLOAD_TYPE_2 0x02 射频信息体类型:10101010
SLE_RF_PATLOAD_TYPE_3 0x03 射频信息体类型:PRBS15
SLE_RF_PATLOAD_TYPE_4 0x04 射频信息体类型:11111111
SLE_RF_PATLOAD_TYPE_5 0x05 射频信息体类型:00000000
SLE_RF_PATLOAD_TYPE_6 0x06 射频信息体类型:00001111
SLE_RF_PATLOAD_TYPE_7 0x07 射频信息体类型:01010101

sle_rf_phy_t

typedef enum {
    SLE_RF_PHY_1M = 0x00,
    SLE_RF_PHY_2M = 0x01,
    SLE_RF_PHY_4M = 0x04,
} sle_rf_phy_t;
枚举成员 取值 描述
SLE_RF_PHY_1M 0x00 射频物理层1M
SLE_RF_PHY_2M 0x01 射频物理层2M
SLE_RF_PHY_4M 0x04 射频物理层4M

sle_rf_format_t

typedef enum {
    SLE_RF_FORMAT_FRAME_TYPE_1 = 0x00,
    SLE_RF_FORMAT_FRAME_TYPE_2 = 0x01,
} sle_rf_format_t;
枚举成员 取值 描述
SLE_RF_FORMAT_FRAME_TYPE_1 0x00 射频格式:无线帧类型1
SLE_RF_FORMAT_FRAME_TYPE_2 0x01 射频格式:无线帧类型2

sle_rf_tx_rate_t

typedef enum {
    SLE_RF_TX_RATE_GFSK = 0x00,
    SLE_RF_TX_RATE_QPSK = 0x02,
    SLE_RF_TX_RATE_8PSK = 0x03,
} sle_rf_tx_rate_t;
枚举成员 取值 描述
SLE_RF_TX_RATE_GFSK 0x00 射频长发速率:GFSK
SLE_RF_TX_RATE_QPSK 0x02 射频长发速率:QPSK
SLE_RF_TX_RATE_8PSK 0x03 射频长发速率:8PSK

sle_rf_pilot_ratio_t

typedef enum {
    SLE_RF_PILOT_RATIO_NO = 0x00,
    SLE_RF_PILOT_RATIO_1_1 = 0x01,
    SLE_RF_PILOT_RATIO_4_1 = 0x02,
    SLE_RF_PILOT_RATIO_16_1 = 0x03,
} sle_rf_pilot_ratio_t;
枚举成员 取值 描述
SLE_RF_PILOT_RATIO_NO 0x00 射频导频比:No
SLE_RF_PILOT_RATIO_1_1 0x01 射频导频比:1:1
SLE_RF_PILOT_RATIO_4_1 0x02 射频导频比:4:1
SLE_RF_PILOT_RATIO_16_1 0x03 射频导频比:16:1

sle_rf_tx_polar_t

typedef enum {
    SLE_RF_TX_POLAR_NO = 0x00,
    SLE_RF_TX_POLAR_2_3 = 0x01,
    SLE_RF_TX_POLAR_3_4 = 0x02,
    SLE_RF_TX_POLAR_5_6 = 0x03,
} sle_rf_tx_polar_t;
枚举成员 取值 描述
SLE_RF_TX_POLAR_NO 0x00 射频发射极化编码:No
SLE_RF_TX_POLAR_2_3 0x01 射频发射极化编码:2/3
SLE_RF_TX_POLAR_3_4 0x02 射频发射极化编码:3/4
SLE_RF_TX_POLAR_5_6 0x03 射频发射极化编码:5/6

Structures

sle_rf_tx_start_t

typedef struct {
    uint16_t tx_freq;
    uint8_t tx_power;
    uint16_t test_data_len;
    uint8_t pk_payload_type;
    uint8_t tx_phy;
    uint8_t tx_format;
    uint8_t tx_rate;
    uint8_t tx_pilot_ratio;
    uint8_t tx_polar_r;
    uint16_t tx_interval;
} sle_rf_tx_start_t;

成员说明

成员名称 数据类型 描述
tx_freq uint16_t 发送频率,范围:0x00~0x4E,2402+x
tx_power uint8_t 发射功率,参考 sle_rf_power_t
test_data_len uint16_t 发射测试数据长度,取值范围:0x00~0xFF
pk_payload_type uint8_t 信息体类型,参考 sle_rf_payload_type_t
tx_phy uint8_t 射频物理层,参考 sle_rf_phy_t
tx_format uint8_t 发射格式,参考 sle_rf_format_t
tx_rate uint8_t 射频长发速率,参考 sle_rf_tx_rate_t
tx_pilot_ratio uint8_t 射频导频比,参考 sle_rf_pilot_ratio_t
tx_polar_r uint8_t 射频发射极化编码,参考 sle_rf_tx_polar_t
tx_interval uint16_t 射频发射间隔,范围:0x0006~0xFFFF,1个单位长度为125us

sle_rf_rx_start_t

typedef struct {
    uint16_t rx_freq;
    uint8_t rx_phy;
    uint8_t rx_format;
    uint8_t rx_pilot_ratio;
    uint16_t rx_interval;
} sle_rf_rx_start_t;

成员说明

成员名称 数据类型 描述
rx_freq uint16_t 发送频率,范围:0x00~0x4E
rx_phy uint8_t 射频物理层,参考 sle_rf_phy_t
rx_format uint8_t 发射格式,参考 sle_rf_format_t
rx_pilot_ratio uint8_t 射频导频比,参考 sle_rf_pilot_ratio_t
rx_interval uint16_t 射频接收间隔,范围:0x0000~0xFFFF,1个单位长度为125us

sle_rf_trx_end_cmp_evt_t

typedef struct {
    uint8_t status;
    uint16_t num_packets;
    uint8_t rssi;
} sle_rf_trx_end_cmp_evt_t;

成员说明

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

sle_factory_callbacks_t

typedef struct {
    sle_rf_tx_start_callback rf_tx_start_cb;
    sle_rf_rx_start_callback rf_rx_start_cb;
    sle_rf_trx_end_callback rf_trx_end_cb;
    sle_rf_reset_callback rf_reset_cb;
} sle_factory_callbacks_t;

成员说明

成员名称 数据类型 描述
rf_tx_start_cb sle_rf_tx_start_callback 射频长发回调函数
rf_rx_start_cb sle_rf_rx_start_callback 射频长收回调函数
rf_trx_end_cb sle_rf_trx_end_callback 射频收发结束回调函数
rf_reset_cb sle_rf_reset_callback 射频收发复位回调