跳转至

common

common 提供 BS (Bluetooth Service) 设备管理通用功能,包括参数配置与获取、设备地址与设备 ID 的映射管理。

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

接口清单

接口名称 功能简述
bs_config 配置参数
bs_acquire 获取参数
bs_alloc_device_id_by_addr 通过地址分配device ID
bs_find_device_id_by_addr 通过地址查找device ID
bs_get_addr_by_device_id 通过device ID获取地址

Functions

bs_config

errcode_t bs_config(uint16_t type, void *param, uint16_t len)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

功能说明

  • 配置参数,通过指定参数类型写入配置数据
  • 入参type指定配置参数类型,param指向配置参数数据,len为参数长度
  • 返回执行结果错误码

入参

名称 参数类型 详细说明 约束取值范围
type uint16_t 配置参数类型 -
param void * 配置参数数据指针 不为NULL
len uint16_t 参数长度 -

返回值

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

bs_acquire

errcode_t bs_acquire(uint16_t type, void *param, uint16_t *len)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

功能说明

  • 获取参数,通过指定参数类型读取配置数据
  • 入参type指定获取参数类型,param为输出参数缓冲区,len为输出参数长度
  • 返回执行结果错误码

入参

名称 参数类型 详细说明 约束取值范围
type uint16_t 获取参数类型 -

出参

名称 数据类型 输出说明
param void * 获取到的参数数据
len uint16_t * 获取到的参数长度

返回值

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

bs_alloc_device_id_by_addr

uint16_t bs_alloc_device_id_by_addr(bs_protocol_type_t protocol, uint8_t type, const uint8_t *addr)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

功能说明

  • 通过地址分配device ID,若无法分配则返回BS_CONNECTION_UPPER_LIMIT
  • 入参protocol指定协议类型,type指定地址类型,addr为设备地址
  • 返回分配的device ID

入参

名称 参数类型 详细说明 约束取值范围
protocol bs_protocol_type_t 协议类型 BS_PROTOCOL_BREDR(0) / BS_PROTOCOL_BLE(1) / BS_PROTOCOL_SLE(2) / BS_MODULE_SDM(3)
type uint8_t 地址类型 -
addr const uint8_t * 设备地址指针 不为NULL

返回值

  • 返回类型:uint16_t
返回值 文字含义 触发场景
0 ~ BS_CONNECTION_UPPER_LIMIT-1 分配的device ID 地址有效且连接数未达上限
BS_CONNECTION_UPPER_LIMIT(4) 无法分配device ID 连接数已达上限

bs_find_device_id_by_addr

uint16_t bs_find_device_id_by_addr(bs_protocol_type_t protocol, uint8_t type, const uint8_t *addr)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

功能说明

  • 通过地址查找device ID,若无法找到则返回BS_CONNECTION_UPPER_LIMIT
  • 入参protocol指定协议类型,type指定地址类型,addr为设备地址
  • 返回查找到的device ID

入参

名称 参数类型 详细说明 约束取值范围
protocol bs_protocol_type_t 协议类型 BS_PROTOCOL_BREDR(0) / BS_PROTOCOL_BLE(1) / BS_PROTOCOL_SLE(2) / BS_MODULE_SDM(3)
type uint8_t 地址类型 -
addr const uint8_t * 设备地址指针 不为NULL

返回值

  • 返回类型:uint16_t
返回值 文字含义 触发场景
0 ~ BS_CONNECTION_UPPER_LIMIT-1 查找到的device ID 地址有效且设备已存在
BS_CONNECTION_UPPER_LIMIT(4) 无法找到device ID 设备不存在

bs_get_addr_by_device_id

bs_addr_t *bs_get_addr_by_device_id(uint16_t dev_id)

头文件清单

#include "protocol/bt/host/include/bs_service/bs_device_mgr.h"

功能说明

  • 通过device ID获取设备地址,若device ID无效则返回NULL
  • 入参dev_id为设备ID
  • 返回设备地址结构体指针

入参

名称 参数类型 详细说明 约束取值范围
dev_id uint16_t 设备ID 0 ~ BS_CONNECTION_UPPER_LIMIT-1

返回值

  • 返回类型:bs_addr_t *
返回值 文字含义 触发场景
非NULL指针 设备地址结构体指针 device ID有效
NULL device ID无效 device ID无效

Type definitions

errcode_t

typedef uint32_t errcode_t;

使用说明

bs_config、bs_acquire接口的返回值类型。[SDK公共基础类型]

Enumerations

bs_protocol_type_t

typedef enum {
    BS_PROTOCOL_BREDR,
    BS_PROTOCOL_BLE,
    BS_PROTOCOL_SLE,
    BS_MODULE_SDM,
} bs_protocol_type_t;
枚举成员 取值 描述
BS_PROTOCOL_BREDR 0 BR/EDR协议
BS_PROTOCOL_BLE 1 BLE协议
BS_PROTOCOL_SLE 2 SLE协议
BS_MODULE_SDM 3 SDM模块

Structures

bs_addr_t

typedef struct {
    uint8_t addr[BS_ADDR_LEN];
    uint8_t type;
} bs_addr_t;

成员说明

成员名称 数据类型 描述
addr uint8_t[BS_ADDR_LEN] 设备地址,长度为6字节
type uint8_t 地址类型

Macros

BS_ADDR_LEN

#define BS_ADDR_LEN 6

BS_CONNECTION_UPPER_LIMIT

#define BS_CONNECTION_UPPER_LIMIT 4

ERRCODE_SUCC [SDK公共共享宏]

#define ERRCODE_SUCC 0UL