如何android ble协议读取数据速度
大家好,不知道论坛里面做BLE的多不多。
现在我用android 4.4 作为central设备,ti的c2451作为peripheral 设备,已经成功读取c2541的characteristic.但是速度却比较慢。我在android上面抓了一下发现完成一次20B读取需要50ms左右。(我已经修改了c2541上面的连接参数,min/max connection interval 已经调成6了, slave latency为0 ). 但是根据BLE协议上面它的传输速度可以达到5.9kb/s, ti的人也说最起码4kb/s 是没问题的。所以问题是不是在android 代码这边。我是基于 BluetoothLeGatt Demo 修改的。下面是相关部分代码。如果需要我可以发全部代码。所以有没有做过这方面内容的高手帮忙解决一下?不胜感激。
发出读数据请求:
//测试读取当前Characteristic数据,会触发mOnDataAvailable.onCharacteristicRead()
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mBLE.readCharacteristic(gattCharacteristic);
}
}, 5);
接收到数据:
@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
if (status == BluetoothGatt.GATT_SUCCESS)
Log.e(TAG,"onCharRead "+gatt.getDevice().getName()
+" read "
+characteristic.getUuid().toString()
+" -> "
+Utils.bytesToHexString(characteristic.getValue()));
}