1

(BGLib を使用する BLE112) を使用してペリフェラルに 40 バイトを書き込み/送信してCBCharacteristicWriteWithResponseいますが、20 バイトの 2 つのブロックで到着すると予想していました。代わりに、ブロック 18、18、4 の 3 つのブロックに到着しています。

なぜこの動作が見られるのか分かりますか?

4

1 に答える 1

1

接続後の最初の交換を嗅いでいます。

ATT_Exchange_MTU_Req を介して、iDevice は 135 バイトの MTU をサポートできると言います! (0x0087) BLE112 は 23 バイトの ATT_Exchange_MTU_Rsp で応答します。iOS はこの値を記憶し、周辺機器との将来の通信の基礎として使用します (ATT_Exchange_MTU_Req/Rsp の要点全体)。

BTSpec4.0.pdf セクション 3.4.6.1 Prepare Write Request では、Part Attribute 値に ATT_MTU-5 = 23 - 5 = 18 バイトがあり、使用する値の一部が含まれていると書かれています。

これが BLE グル @ Apple によって確認されたので、これが正しいと合理的に確信しています。

于 2014-06-03T08:02:16.423 に答える