我的 BLE 服务器永久测量传感器值,并在每次测量后发送包含 20 字节用户数据的通知。目标是产生尽可能多的吞吐量。
在客户端,接收并处理服务器发送的值。
rxBleConnection.setupNotification(setDescriptorEnableNotification(characteristic))
.flatMap(notificationObservable -> notificationObservable)
.observeOn(Schedulers.newThread())
.buffer(1)
.subscribe(bytes -> {
onNotificationReceived(bytes, buffer);
} , throwable -> {
// Handle an error here.
onNotificationSetupFailure(throwable);
}
);
如果我将连接间隔设置为 11.25 毫秒,我会收到所有值。但是,如果我将连接间隔设置为 30ms,我会收到一些值然后关闭连接。
在 Android 日志中,我看到以下消息:
BleGattException 状态=8 (0x8),bleGattOperationType=BleGattOperation{description='CONNECTION_STATE'
为什么连接中断,触发器是什么?
在 BLE 嗅探器的帮助下,这是无法识别的。接受设置的连接参数并开始传输。突然传输结束并出现错误消息。