我分别修改simpleBLEPeripheral和simpleBLECentral两个示例建了一个工程,根据在其他帖子里的内容看,peripheral和central之间的传输速率最高应该能有4~5KB/s,但是我简单测试了一下发现我这里的传输速率只有760B/s左右,我又找来三个手机(都是安卓机)测试,用peripheral向手机发送数据,有两个是160B/s左右,一个是380B/s左右。
我已经将simpleBLEPeripheral中的DEFAULT_DESIRED_MIN_CONN_INTERVAL 和DEFAULT_DESIRED_MAX_CONN_INTERVAL以及simpleBLECentral中的DEFAULT_UPDATE_MIN_CONN_INTERVAL和DEFAULT_UPDATE_MAX_CONN_INTERVAL都修改成了8。
另外,我的测试方法是在peripheral中模拟了1000组数据(每组16个字节)每次连接发一组数据,并在central中加了一段程序,测试从开始接收数据到结束所用的时间。
我的问题是:
1、我测试的传输速率这么低,是不是我的测试方法有问题导致的?如果是,应该怎样测试?
2、每个连接事件发送的最大字节只能是20个字节吗?可不可以修改?
3、不同central与同一peripheral有不同的传输速率,是因为连接间隔等参数是由central规定的,我这样理解有没有错?那么peripheral是否可以主动修改这些参数?
4、除了修改连接间隔和每次发送的字节数,还有没有什么方法可以提升传输速率?
weigang yi:
回复 Scienve Xie:
回答很详细,十分感谢!