ble吞吐

[English]

概述

本示例介绍如何通过两块开发板测试双板BLE吞吐速率

简介

本示例的发送方使用gatt notify,当对端收到后立刻发下一包,从而可得出最大吞吐。

单板与手机测试

  1. 开发板A作为server,串口下发AT命令

AT+BLE=REGPERFORMANCESERVICE,1,0x1234,0x5678 (注册服务)
AT+BLE=SETADVPARAM,7,120,120,0,0,3,1,1 (设置广播参数)
AT+BLE=SETADVDATA,0201060908373235365f424c45,D (设置广播内容)
AT+BLE=SETADVENABLE,1 (开启广播)
  1. 用手机nrf连接并discovery service

  2. nrf更新mtu为251

  3. A板输入 AT+BLE=SETTXTESTPARAM,240,100 (240为每次发送payload的长度,必须小于gatt mtu)

  4. A板输入 AT+BLE=ENABLEPERFORMANCESTATISTIC,tx,1

  5. 手机开启notify(可以看到只有一个可以开启)

  6. log会输出统计的速率

双板对测

  1. 开发板A作为server,串口下发AT命令

AT+BLE=REGPERFORMANCESERVICE,1,0x1234,0x5678 (注册服务)
AT+BLE=SETADVPARAM,7,120,120,0,0,3,1,1 (设置广播参数)
AT+BLE=SETADVDATA,0201060908373235365f424c45,D (设置广播内容)
AT+BLE=SETADVENABLE,1 (开启广播)
  1. 开发板B作为client,串口下发AT命令

AT+BLE=REGPERFORMANCESERVICE,1,0x1234,0x5678 (注册服务)
AT+BLE=CREATECONNECT,6,0,200,1,0,xx:xx:xx:xx:xx:xx (开发板A蓝牙地址)
  1. 连接成功后,B板输入 AT+BLE=UPDATEMTU2MAX,xx:xx:xx:xx:xx:xx (开发板A蓝牙地址) 设置mtu至最大,目前单ble情况下为1000

  2. (可省略)A板输入 AT+BLE=SETTXTESTPARAM,240,100

  3. A板输入 AT+BLE=ENABLEPERFORMANCESTATISTIC,tx,1

  4. B板输入 AT+BLE=ENABLEPERFORMANCESTATISTIC,rx,1

  5. A板输入 AT+BLE=SETTXTESTENABLE,1

  6. log会输出统计的速率

示例

相关AT测试代码可参考: components/at/src/ble_at_command.c

参考链接

API参考: 介绍了蓝牙API接口

开发者指南: 介绍了蓝牙常用使用场景

样例演示: 介绍了蓝牙样例使用和操作

蓝牙工程: 介绍了蓝牙相关工程