Bluetooth 如果未收到响应,BLE堆栈是否重新发送数据包?

Bluetooth 如果未收到响应,BLE堆栈是否重新发送数据包?,bluetooth,bluetooth-lowenergy,nrf51,Bluetooth,Bluetooth Lowenergy,Nrf51,我想知道在执行另一个命令之前是否需要等待服务器的响应,即执行了一个命令,或者可以说BLE堆栈是否在后台处理了这个问题 例如,我想写一个特征,然后从中读取。我应该串联执行这些命令,还是应该在发送读取请求之前等待onWriteRequest回调方法触发 如果前面的问题是肯定的,那么BLE堆栈将进行多少次重发尝试,以及在重发数据包之前等待响应的时间有多长?对于GATT协议,一次只能有一个未完成的操作。您必须等待响应,直到可以发送下一个请求。因此,对于Android,您必须等待onCharacteris

我想知道在执行另一个命令之前是否需要等待服务器的响应,即执行了一个命令,或者可以说BLE堆栈是否在后台处理了这个问题

例如,我想写一个特征,然后从中读取。我应该串联执行这些命令,还是应该在发送读取请求之前等待onWriteRequest回调方法触发


如果前面的问题是肯定的,那么BLE堆栈将进行多少次重发尝试,以及在重发数据包之前等待响应的时间有多长?

对于GATT协议,一次只能有一个未完成的操作。您必须等待响应,直到可以发送下一个请求。因此,对于Android,您必须等待onCharacteristicWrite,直到您可以发送(例如)读取请求。我想在iOS上也是这样


蓝牙协议栈将请求数据包发送到手机中的蓝牙控制器。实现链路层的蓝牙控制器将在下一次机会(连接事件)发送数据包。如果数据包未被确认,它将重新发送相同的数据包,直到确认或链路超时(监控超时)。默认超时为5秒(在早期Android版本中为20秒)。但是,外围设备可以通过发出连接参数更新请求来更改超时值。

在您的情况下,发送请求的设备是什么类型的?是安卓手机还是nrf51?手机是发送设备您是在写有响应的
还是没有响应的