openvela set 子命令
一、简介
set 命令用于设置本地蓝牙适配器(Bluetooth Adapter)的属性。通过该命令,可以配置蓝牙设备的扫描模式、名称、设备类别等属性。
二、语法
以下是 set 命令的语法结构:
set
{
scanmode <scan mode> |
iocap <io capability> |
name <local name> |
class <local class of device> |
appearance <appearance> |
leaddr <leaddr> |
id <identity addr> <addr type> |
scanparams <mode> <type> <interval> <window>
}
三、命令
1、scanmode
功能说明
scanmode 用于设置本地蓝牙适配器(Bluetooth Adapter)的扫描状态属性,从而控制 BR/EDR 控制器是否定期尝试 Page Scan 并响应来自其他设备的 Inquiry。通过该命令,可以设置本地蓝牙适配器的可连接和可发现属性。
参数表
参数名 | 说明 | 参数类型 |
---|---|---|
scan mode | 本地蓝牙适配器的可发现与可连接属性: 0:不可被发现也不可被连接。 1:不可被发现但可被连接。 2:(默认值)既可被发现也可被连接。 |
十进制整数 |
示例
以下示例介绍设置本地蓝牙适配器为可被连接的状态。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
输入以下命令设置扫描模式为 1(不可被发现但可被连接):
bttool> set scanmode 1
输出信息
预期结果如下:
[bttool] Scan Mode:1 set success
2、iocap
功能说明
iocap 用于设置本地蓝牙适配器(Bluetooth Adapter)的输入输出能力(IO Capability)。IO 能力决定了本地蓝牙适配器在配对时采用的验证方法。
参数表
参数名 | 说明 | 参数类型 |
---|---|---|
io capability | 本地蓝牙适配器的 IO 能力: 0:displayonly 没有输入能力,仅能显示或传输 6 位十进制数。 1:yes/no 具有表示 “是” 或“ 否” 的输入机制,能够显示或传输 6 位十进制数。 2:keybordonly 具有输入 “0” 到 “9”、“确认” 和 “是” “否” 的能力,不能够输出。 3:(默认值)no-in/no-out 无输入和输出能力。 4:keyboard&display 具有输入 “0” 到 “9”、确认和 “是” “否” 的能力,能够显示或传输 6 位十进制数。 |
十进制整数 |
示例
以下示例介绍如何将本地蓝牙适配器的 IO 能力设置为 displayonly。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
输入以下命令设置 IO 能力为 0(displayonly):
bttool> set iocap 0
输出信息
预期结果如下:
[bttool] IO Capability:0 set success
其中,数字 0 对应 displayonly 这一 IO 能力。
3、name
功能说明
name 用于设置本地蓝牙适配器(Bluetooth Adapter)的名称。该名称是向对端蓝牙设备公开的用户友好名称。
参数表
参数名 | 说明 | 参数类型 | 参数值范围 | 默认值 |
---|---|---|---|---|
local name | 本地蓝牙适配器名称。 | 字符串 | 最多输入 64 个字符。 | N/A |
示例
以下示例介绍如何将本地蓝牙适配器的名称设置为 Xiaomiii。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
输入以下命令设置本地蓝牙适配器名称为 Xiaomiii:
bttool> set name Xiaomiii
输出信息
预期结果如下:
[bttool] Local Name:Xiaomiii set success
bttool> [bttool] Adapter update device name: Xiaomiii
4、class
功能说明
class 用于设置本地蓝牙适配器(Bluetooth Adapter)的设备类别。设备类别由主服务类型、主设备类型、次要设备类型和固定值组成,用于标识蓝牙设备的功能和用途。
参数表
参数名 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
class | 本地蓝牙适配器类型,由 4 个部分组成。 bit 23~13 :主服务类型。 bit 12~8:主设备类型。 bit 7~2:次要设备类型。 bit 1~0:固定值 0。 |
十六进制整数 | 0x00280704 |
注意事项
- 输入限制:由于输入参数的 bit 1 和 bit 0 应当保持为 0,因此输入的十六进制整数的最后 1 位数字应为 { 0 | 4 | 8 | c }。
- 参考标准:设备类别的具体值请参考 Bluetooth SIG 的 Assigned Numbers 文档第 2.8 节。
示例
以下示例介绍如何将本地蓝牙适配器的类别设置为“可穿戴腕表”。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
根据 Assigned Numbers 文档:
- 主设备类型“可穿戴”表示为 0b00111。
- 次要设备类型“腕表”表示为 0b000001。
- 支持的服务包括 Telephony、Audio、Object Transfer 和 Rendering,表示为 0b01110100000。
- 最终设备类型为 0b011101000000011100000100,转换为十六进制数为 0x740704。
输入以下命令设置设备类别:
bttool> set class 740704
输出信息
预期结果如下:
[bttool] Local class of device:0x00740704 set success
5、appearance
功能说明
appearance 用于设置本地蓝牙适配器(Bluetooth Adapter)的外观属性。外观属性用于描述设备的类型和子类型,通常在低功耗蓝牙(LE)模式下使用。
参数表
参数名 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
LE 模式下本地蓝牙适配器的外观,由两部分组成: bit 16~6:分类。 bit 5~0:子类。 16 bits 参数详见 Assigned Numbers 2.6.3 节。 |
十六进制整数 | 0 |
示例
以下示例介绍如何将本地蓝牙适配器的外观设置为 Smart Watch。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
根据 Assigned Numbers 文档,Smart Watch 的外观参数值为 0x00C2。 输入以下命令设置外观属性:
bttool> set appearance c2
输出信息
预期结果如下:
[bttool] Set Le appearance:0x00c2
6、leaddr
功能说明
leaddr 用于设置本地蓝牙适配器(Bluetooth Adapter)在低功耗蓝牙(LE)模式下使用的私有地址(LE 随机地址的一种)。
在 LE 模式下,蓝牙设备可以使用公共地址(Public Address)或随机地址(Random Address)标识设备。随机地址进一步分为静态地址(Static Address)和私有地址(Private Address)。
-
随机地址类型由地址的 bit 47~46 指示,其余位为随机部分。
-
地址类型说明:
bit 47~46 类型 0b00 不可解析私有地址。 0b01 可解析私有地址。 0b10 保留。 0b11 静态地址。
地址类型说明
-
公共地址:
- 唯一地址,需要向 IEEE 申请分配。
- 在 BR/EDR 与 LE 双模情况下,通常与 BR/EDR 使用的地址相同。
-
静态地址:
- 随机生成,不具有唯一性,仅在开机初始化时生成。
- 随机部分不能全为 0 或全为 1。
-
私有地址:
- 随机生成,不具有唯一性,每次连接或特定时间后更新。
- 不可解析私有地址:随机部分不能全为 0 或全为 1,且不能等于公共地址。
- 可解析私有地址:低 24 bits 需要采用特定的生成算法。
参数表
参数名 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
leaddr | 本地蓝牙适配器在 LE 模式下使用的私有地址。 格式为 XX:XX:XX:XX:XX:XX,需满足私有地址规定。 |
字符串 | N/A |
示例
以下示例介绍如何将本地蓝牙适配器的 LE 地址设置为 01:02:03:04:05:06。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
输入以下命令设置 LE 地址:
bttool> set leaddr 01:02:03:04:05:06
输出信息
预期结果如下:
bttool> [ 80.646100] [49] [ DEBUG] [ap] [1362][adapter-svc]: adapter_on_le_addr_update
7、id
功能说明
id 用于设置本地蓝牙适配器(Bluetooth Adapter)在低功耗蓝牙(LE)模式下使用的静态地址(Static Address)或公共地址(Public Address)。
注意:当前功能暂不支持。
参数表
参数名 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
本地蓝牙适配器在 LE 模式下使用的公共地址或静态地址。 格式为 XX:XX:XX:XX:XX:XX |
字符串 | N/A | |
地址类型: 0:Static address 1:Public address |
十进制整数 | 1 |
8、scanparam
功能说明
scanparam 用于设置本地蓝牙适配器在指定扫描模式下使用的扫描参数。
参数表
参数名 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
mode | 指定的扫描模式: 0:inquiry,扫描 inquiry 信息,使本地蓝牙适配器可被其他蓝牙设备发现。 1:page,扫描 page 信息,使本地蓝牙适配器可被其他蓝牙设备连接。 |
十进制整数 | N/A |
type | 扫描类型: 0:standard,常规扫描,按照固定间隔逐个信道扫描。 1:interlaced,交错扫描,会在一次扫描间隔中,第一次按照常规扫描进行扫描,再根据特定的算法选择第二个信道进行扫描。 |
十进制整数 | N/A |
interval | 扫描间隔,进入扫描状态的周期。 18 ~ 4096(单位:时隙,1 时隙 = 0.625ms) |
十进制整数 | inquiry:4096 page:2048 |
window | 扫描窗口,在一个周期内持续扫描的时间。17 ~ <interval>(单位:时隙) | 十进制整数 | 18 |
注意事项
- 时隙单位:1 个时隙为 0.625ms。
- Interlaced Scan 限制:如果 <interval> 不是 <window> 的两倍以上,则不能使用 Interlaced Scan。
示例
以下示例介绍如何设置一组扫描参数。以设置扫描间隔为 1.28 秒,扫描窗口为 31.25 毫秒的标准 Inquiry Scan 为例。
前提条件
在执行以下命令之前,请确保已通过 bttool 控制台启用蓝牙适配器(Adapter)。 启用命令如下:
ap> bttool
bttool> enable
命令输入
- Inquiry Scan 对应 <mode> 为 0。
- Standard Scan 对应 <type> 为 0。
- 扫描间隔 1.28 秒对应 1280 / 0.625 = 2048 时隙。
- 扫描窗口 31.25 毫秒对应 31.25 / 0.625 = 50 时隙。
bttool> set scanparams 0 0 2048 50
输出信息
此命令无输出信息。

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐
所有评论(0)