2017-10-23 19 views
0

を実行し、私は、Bluetoothデバイスに数バイトの書き込みAndroidのアプリケーションを持っています。すぐにすべてを書く:私はバイトの大量BLEデバイスに送信された場合、アプリの使用が書き込み要求より多くの時間を準備してから書き込み要求を実行し、ことがわかりbtsnoop_hci.logに探し
。 私の問題は、RN4870モジュールを使用してアプリケーションでこれを実行する方法です。このとき
私は、接続サービスおよび特性を読み、数バイトがあるマニュアルに記載されているよう CHWコマンドを使用して書くことができます。
バイト数が多い場合、リモートのBLEデバイスが期待するように書き込むことはできません。
はサポートしていただきありがとうございます
マルコRN4870が書き込み要求を準備し、書き込み要求

+0

本当にPrepared Write/Execute Write Requestを使用する必要がありますか?非常に非効率的です。はるかに良いオプションはMTUを増やすことで、すべてを1つのWrite RequestまたはWrite Without Responseで送ることができます。 MTU> = 515では、各属性を1つのパケットに書き込み、読み取ることができます。 – Emil

+0

ええと私はマニュアルを読んで、それは完全な機能から遠いようです... – Emil

+0

あなたのコメントのためにEmilありがとう。 私はPrepared Write/Execute Write Requestを使用しません。 –

答えて

0

これは、マイクロチップ社の答えは:

こんにちは、

コア仕様はファームウェアによって処理されます。 ユーザーはこのレベルでアクセス権を持たないため、設定することはできません。長いデータの質問について

: は「?RN4870は、モジュールデータ長拡張機能をサポートしています」 RN4870は1.28サポートDLEを吹けますが、部分的に。 DLEのないBLEの通常のパケットサイズは20バイトです。 標準のDLE機能では、通常のパケットサイズは251バイトにする必要があります。 ただし、RN4870 Rev 1.28では、パケットサイズは151バイトです。したがって、DLEの完全な実装ではありません。

DLE機能(データ長拡張)はBluetoothスタックの下位レベルに埋め込まれるとDLEを有効または無効にする特定のコマンドが存在しません。基本的に、ピアデバイスもDLEをサポートする場合、DLEが有効になります。 したがって、DLEを使用してスループットを向上させるために行う必要のある特定の(コマンド)はありません。

よろしくお願いします。

つまり、何もしません。

+0

MTUは(G)ATTのものです。それはDLEとは関係ありません。 DLEは大規模なパケット断片を大気中で許可するものです... – Emil

関連する問題