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. 开发板串口连接到主机。 编译 ---- .. code-block:: console ./build.sh -C -S samples/bluetooth/ble/central/client -DBOARD=arcs_evb -w 烧录与串口 ---------- 先确认开发板串口设备名,例如 ``/dev/ttyACM0``,然后烧录完整固件: .. code-block:: console ./tools/burn/cskburn -C arcs -s /dev/ttyACM0 -b 3000000 0x0 build/arcs.bin 使用 921600 波特率打开可交互串口终端: .. code-block:: console picocom -b 921600 /dev/ttyACM0 按回车出现 Shell 提示符后,执行 ``help`` 应能看到 ``ble`` 命令。若日志中出现 ``Shell init failed``,应先检查串口设备配置和可用堆内存。 使用方法 -------- 出现 ``BLE central client ready`` 后,可执行以下命令。单独执行 ``ble`` 会显示帮助: .. code-block:: text ble scan [seconds] ble list ble connect ble services ble read ble notify on|off ble status ble monitor [seconds] ble disconnect 典型测试流程 ------------ 1. 执行 ``ble scan 10``,等待扫描结束后用 ``ble list`` 检查设备名、地址、RSSI 和广播包中的服务 UUID。 2. 执行 ``ble connect
``,地址使用 ``ble list`` 显示的格式,例如 ``ble connect 57:4E:C9:6B:48:26``。也可继续使用设备 index。程序会从扫描缓存中 读取该设备的 public/random 地址类型,然后检查连接耗时和连接参数。 3. 执行 ``ble services``,记录服务、Characteristic、Descriptor UUID 和 handle, 并检查广播声明的服务是否存在于实际 GATT 数据库。 4. 使用 ``ble read `` 读取可读特征值。 5. 使用 ``ble notify 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 字节;超出时日志会 标记截断。