在 openvela 的开发环境中,bttool 是一款功能强大的蓝牙命令工具,通过它可以对蓝牙适配器进行全面的管理与配置。本文将详细介绍 bttool 及其相关子命令的使用方法,帮助开发者快速掌握蓝牙设备的调试与控制技巧。
一、bttool 命令:进入蓝牙工具控制台
bttool 命令是使用所有蓝牙子命令的基础,其核心功能是在 openvela 的 NSH 命令行中启动蓝牙命令工具的 Console,为后续操作提供交互环境。
基本使用
- 前提条件:已进入 NSH 操作界面(提示符为
ap>
)。 - 命令输入:
ap> bttool
- 输出效果:终端显示
bttool>
提示符,表明成功进入bttool Console
,可执行各类蓝牙子命令。
语法说明
在 bttool 及子命令中,语法元素遵循统一规则,常见元素含义如下:
语法元素 | 说明 | 示例 |
---|---|---|
不含方括号或大括号的文本 | 必须按所显示键入的项。 | cd |
命令中的 cd 部分就是必须原样键入的。 | ||
<尖括号内的文本> | 必须为其提供值的占位符。 | mkdir <directory_name> |
命令中的 <directory_name> 需要被替换成实际的目录名。 | ||
[方括号内的文本] | 可选项。 | ls [-l] |
命令中的 [-l] 是一个可选项,表示是否以长列表格式显示文件。 | ||
{花括号内的文本} | 一组必需的项, 必须选择一个。 | git reset { --soft | --mixed | --hard } |
必须选择这三个选项中的一个,例如 git reset --soft。 | ||
竖线 | | 互斥项的分隔符,必须选择一个。 | git reset { --soft | --mixed | --hard } |
–soft, --mixed, --hard只能选其中一个。 | ||
省略号 … | 可重复使用多次的项。 | cp <file1> <file2> … <destination> |
省略号表示可以复制多个文件到目的地。 |
二、蓝牙适配器基础控制:enable、disable、state
蓝牙适配器的启用、关闭和状态查询是蓝牙操作的基础,这三个命令构成了适配器生命周期管理的核心。
1. enable:启动蓝牙适配器
作为执行其他蓝牙命令的前置操作,enable 用于激活蓝牙适配器的 BR/EDR(基本速率 / 增强数据速率)和 LE(低功耗)功能。
- 前提条件:已进入 bttool Console(
bttool>
提示符)。 - 命令输入:
bttool> enable
- 输出说明:成功启用后显示
Adapter state changed: 4
,其中状态值 4 表示 BR/EDR 功能已启用。 - 状态含义:
状态值 | 释义 |
---|---|
1 | 正在启用 BLE 功能 |
2 | BLE 功能已启用 |
3 | 正在启用 BR/EDR 功能 |
4 | BR/EDR 功能已启用 |
2. disable:关闭蓝牙适配器
用于关闭蓝牙适配器,若存在活跃连接,会自动断开所有设备连接。
- 命令输入:
bttool> disable
- 输出说明:成功关闭后显示
Adapter state changed: 0
,状态值 0 表示蓝牙完全关闭。 - 特殊情况:若适配器未启动时执行此命令,仅返回状态机信息(如
Process, State=Off, Event=SYS_TURN_OFF
)。 - 状态含义:
状态值 | 释义 |
---|---|
5 | 关闭 BR/EDR 功能 |
6 | 关闭 BLE 功能 |
0 | 蓝牙关闭 |
- 限制:适配器关闭后,仅
enable
、quit
、state
、log
命令可使用。
3. state:查询适配器当前状态
用于实时获取蓝牙适配器的运行状态,验证启用或关闭操作的结果。
- 命令输入:
bttool> state
- 输出示例:
- 适配器关闭时:
[bttool] Adapter State: 0
- 启用成功后:
[bttool] Adapter State: 4
- 适配器关闭时:
- 状态值全集:涵盖从启用中到关闭的完整状态(0-6),整合了 enable 和 disable 的状态定义。
三、适配器属性配置:set 子命令
set 命令提供了对蓝牙适配器属性的精细化配置,支持扫描模式、名称、设备类别等多项参数的自定义,满足不同场景下的蓝牙交互需求。
核心配置项及使用
- scanmode:设置可发现与可连接性
- 功能:控制适配器是否可被其他设备发现或连接。
- 参数值:0(不可发现不可连接)、1(不可发现可连接)、2(默认,可发现可连接)。
- 示例:
bttool> set scanmode 1
,输出[bttool] Scan Mode:1 set success
。
- name:自定义适配器名称
- 功能:设置向其他设备展示的名称(最多 64 个字符)。
- 示例:
bttool> set name XIAOMI-VELA
,输出[bttool] Local Name:XIAOMI-VELA set success
。
- class:设置设备类别
- 功能:通过十六进制值定义设备的功能类型(如可穿戴设备、音频设备等),需符合 Bluetooth SIG 标准。
- 示例:设置为 “可穿戴腕表” 时,输入
bttool> set class 740704
,输出对应类别信息。
- 其他常用配置:
iocap
:设置输入输出能力(如 4 表示支持键盘和显示)。appearance
:定义 LE 模式下的设备外观(如 0x00C2 表示智能手表)。scanparams
:配置扫描参数(间隔、窗口等),需注意时隙单位(1 时隙 = 0.625ms)。
四、适配器属性查询:get 子命令
get 命令与 set 命令对应,用于获取适配器的当前配置和状态信息,方便验证配置结果或排查问题。
常用查询项及示例
- 基础属性查询:
- 扫描模式:
bttool> get scanmode
→ 输出[bttool] Scan Mode:2
- 设备名称:
bttool> get name
→ 输出[bttool] Local Name:XIAOMI-VELA
- 设备类别:
bttool> get class
→ 输出[bttool] Local class of device: 0x00740704
- 扫描模式:
- 连接与绑定信息:
- 已绑定设备:
bttool> get bonded 1
(1 表示 BR/EDR 模式),返回绑定设备的地址、名称等信息。 - 已连接设备:
bttool> get connected 0
(0 表示 LE 模式),显示当前连接设备的状态详情。
- 已绑定设备:
- 地址信息:
- BR/EDR 地址:
bttool> get addr
→ 输出[bttool] Local Address:[xx:xx:xx:xx:xx:xx]
- LE 地址:
bttool> get leaddr
→ 输出地址及类型(0 为公共地址,1 为私有地址)。
- BR/EDR 地址:
总结
bttool 及其子命令为 openvela 环境下的蓝牙开发提供了完整的工具链,从适配器的基础控制到属性的精细化配置,再到连接状态的查询,覆盖了蓝牙设备调试的全流程。掌握这些命令的使用方法,能够高效地进行蓝牙功能测试、问题排查 和设备适配,为蓝牙应用开发奠定坚实基础。