ble吞吐
概述
本示例介绍如何通过两块开发板测试双板BLE吞吐速率
简介
本示例的发送方使用gatt notify,当对端收到后立刻发下一包,从而可得出最大吞吐。
单板与手机测试
开发板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 (开启广播)
用手机nrf连接并discovery service
nrf更新mtu为251
A板输入
AT+BLE=SETTXTESTPARAM,240,100
(240为每次发送payload的长度,必须小于gatt mtu)A板输入
AT+BLE=ENABLEPERFORMANCESTATISTIC,tx,1
手机开启notify(可以看到只有一个可以开启)
log会输出统计的速率
双板对测
开发板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 (开启广播)
开发板B作为client,串口下发AT命令发起连接:
AT+BLE=CREATECONNECT,6,0,200,1,0,xx:xx:xx:xx:xx:xx
(包括开发板A蓝牙地址)B板输入
AT+BLE=UPDATEMTU2MAX,8,251
(更新gatt mtu至251,其中8是步骤2返回的conn_id)A板输入
AT+BLE=SETTXTESTPARAM,240,100
(240为每次发送payload的长度,必须小于gatt mtu)A板输入
AT+BLE=ENABLEPERFORMANCESTATISTIC,tx,1
B板输入
AT+BLE=ENABLEPERFORMANCESTATISTIC,rx,1
B板输入
AT+BLE=ATTWRITE,8,13,0001
(其中8为步骤2返回的conn_id,13为0x1234特征的client config attribute hande,0001为开启notify)log会输出统计的速率
示例
相关AT测试代码可参考:components/at/src/ble_at_command.c