2016-11-10 6 views
0

"中央"と "周辺"に異なるパラメータが設定されている場合、パラメータのネゴシエーションがどのように機能するのか疑問に思っています。BLEパラメータネゴシエーションはどのように機能しますか?

私は間違いかもしれませんが、私の理解から、周辺機器は、接続のために接続する際にパラメータを設定するように要求します。そして中央はそれを承認するかどうかを決めます。

私が理解していないのは、これらのパラメータが承認されているかどうかがどのように決定されるかです。そして、私はそれのためのコードを発見していない。

例えば私は(単にランダムな値を選ぶ)次のように設定している場合:間隔50ミリ秒、スレーブ待ち時間10、supervisortimeout 3000

:500

周辺をsupervisortimeout間隔10msで、スレーブ待ち時間0:

セントラル

私の周辺機器のパラメータが使用されるかどうか、あるいはそれらが承認される基準は何ですか?

誰かが素敵な説明をすることができたら、私はとても感謝しています。

答えて

3

セントラルは必要なものを実行し、周辺機器はパラメータを保持するか、切断する必要があります。

周辺機器は、セントラルによって編集された他のパラメータを親切に頼むことができますが、承認する必要があることは何も教えていません。中央から

合格基準は、制約のミックスです:

  • 規範ほとんどの時間、彼らはペリフェラルタイプ/実装されているサービスに依存して、
  • 実装固有の、(これらは定数とグローバルです) (Apple explicitly defines some、例えば、()3.6を参照)、
  • 動的(Centralは、同時に複数の接続を管理している場合、それはそれらのそれぞれの間隔は、共通ベースの倍数であるようにそれらをスケジュールすることを好むことができる。

Peripheralを開発する際に、好みの接続パラメータが使用されるかどうかを判断することはできません。あなたはそれに対処しなければなりません。また、一部のセントラルは固定パラメータに接続し、接続直後に接続パラメータの更新を発行し、サービスを列挙して決定を下すため、接続パラメータの更新がニーズに合わない場合は、盲目的に切断できません。

+0

"Centralは必要なものを実行し、周辺機器はパラメータを保持しなければなりません。"それは完全に正しいわけではありません: "更新された接続パラメータが周辺機器に受け入れられない場合は、エラーコード" Unacceptable Connection Interval "»で接続を切断する可能性があります。 (Core Spec V4、Vol.3、Part C、9.3.9.2を参照) – Nebr

+0

もちろん、私は「Centralはそれが正しいものであれば何でもいい」という意味で、仕様通りです。 – Nipo

+0

これは第2です「周辺機器はパラメータを保持しなければならない」という問題の文章の一部。いいえ、それはまた、それが適切であると思われる何らかの理由でそれらを拒否することを選ぶこともできます。それは守る必要はありません。 (ちょうど記録のために:私は答えをdownvoteしなかった) – Nebr

関連する問題