BLE Central 测试客户端

功能说明

本示例将 arcs_evb 作为 BLE Central/GATT Client,通过串口命令执行扫描、 连接、服务发现、特征值读取、通知订阅和连接稳定性监测。它用于辅助执行 TC-BLE-nRF-001 至 TC-BLE-nRF-005;BLE 外设配网场景 TC-BLE-nRF-006 不在本示例范围内。

硬件准备

  1. 一块 arcs_evb 开发板。

  2. 一个进入广播状态的 BLE 外设,例如耳机或测试设备。

  3. 开发板串口连接到主机。

编译

./build.sh -C -S samples/bluetooth/ble/central/client -DBOARD=arcs_evb -w

烧录与串口

先确认开发板串口设备名,例如 /dev/ttyACM0,然后烧录完整固件:

./tools/burn/cskburn -C arcs -s /dev/ttyACM0 -b 3000000 0x0 build/arcs.bin

使用 921600 波特率打开可交互串口终端:

picocom -b 921600 /dev/ttyACM0

按回车出现 Shell 提示符后,执行 help 应能看到 ble 命令。若日志中出现 Shell init failed,应先检查串口设备配置和可用堆内存。

使用方法

出现 BLE central client ready 后,可执行以下命令。单独执行 ble 会显示帮助:

ble scan [seconds]
ble list
ble connect <index|address>
ble services
ble read <handle>
ble notify <value_handle> <cccd_handle> on|off
ble status
ble monitor [seconds]
ble disconnect

典型测试流程

  1. 执行 ble scan 10,等待扫描结束后用 ble list 检查设备名、地址、RSSI 和广播包中的服务 UUID。

  2. 执行 ble connect <address>,地址使用 ble list 显示的格式,例如 ble connect 57:4E:C9:6B:48:26。也可继续使用设备 index。程序会从扫描缓存中 读取该设备的 public/random 地址类型,然后检查连接耗时和连接参数。

  3. 执行 ble services,记录服务、Characteristic、Descriptor UUID 和 handle, 并检查广播声明的服务是否存在于实际 GATT 数据库。

  4. 使用 ble read <handle> 读取可读特征值。

  5. 使用 ble notify <value_handle> <cccd_handle> on 订阅通知,触发外设状态变化 后检查通知数据;使用 off 取消订阅。

  6. 执行 ble monitor 开始默认 300 秒稳定性监测。完整持续时间内未断连输出 stability monitor PASS,监测期间断连输出 stability monitor FAIL

测试判定

本示例输出原始测试数据,不会根据特定产品名称、UUID 或 RSSI 自动判定所有测试项。 测试人员应结合目标产品设计和测试用例要求确认结果。RSSI 会受距离、遮挡、天线方向 和环境干扰影响。

限制

  1. GATT Client 仅支持 BLE 协议栈位于本地核的构建;IPC Client 构建返回 -ENOTSUP

  2. 同一连接一次只执行一个服务发现、读取或订阅写操作。

  3. 服务发现事件最多显示 40 个属性,读取和通知数据最多显示 512 字节;超出时日志会 标记截断。