最大スループットを達成するためにOnCharacteristicWriteコールバック条件に基づいて同期して次のパケットを書き込もうとしています。しかし何らかの理由で、1-2秒後にOnCharacteristicWriteコールバックが開始されなくなり、パケットを再送してもそれが呼び出されることはありません。パケットごとに遅延を追加するとうまくいくが、最大スループットを達成するために遅延を追加したくない。Android BLEコールバック数秒後にOnWriteCallbackが終了します
遅延を追加せずに最大スループットを達成できる方法はありますか?
また、接続間隔ごとに複数のパケットを送信することは、どういう意味ですか(また、周辺機器経由で達成できる方法はありますか)。
どのAndroid搭載端末/ OSバージョンがありますか? – Emil
Android 4.4.2 kitkat –
@Emilまた、BLEのバージョンは4.2です。しかし、私はconnの間隔ごとに複数のパケットを送信する方法を得ていません。私はパケットごとにonCharacteristicWriteコールバックが受信されたときに、パケットを1つずつ送信しています。しかし、特定の期間(onCharacteristicWriteコールバックステータス0が成功した約300パケット後)に、コールバックは突然停止し、パケットが再送信されても決して起動しません。だから私はすべてのパケットをコールバックステータス0で正常に書き込む2つのパケットの間に8msの遅延を追加しますが、これは実際にスループットを低下させます。これを実装する方法はありますか? –