2015/04/23

汝の名はBlueZ - (2)

BlueZのことを調べていたのだけれど、情報が少ない。
こういうコマンドが使える、みたいなのはあるのだが、何をどこまでやっているのかがわからない。

あきらめて書いてしまうと、私はCONNECTするチャネルを固定させたかったのだ。
Advertisingは37ch, 38ch, 39chの3つでやるのだけど、CentralがどのチャネルでCONNECTするかよくわかってない。
BLEの無線モニタを使うとわかるのだけど、どれか1chをAdvertisingのときから監視し、CONNECTされたらそこでやりとりする情報を使ってホッピングにも対応してモニタが続けられる、という感じだ(たぶん)。
だから、CONNECTがどのチャネルになるかわからないとなると、うまくCONNECT後もモニタできる確率は3分の1くらいになってしまう。
もし再現性がほとんどない不具合を追っていて、それをモニタで見られる確率が3分の1とかになると、非常に腹立たしいだろうと思うのだ。

BlueZだったらソースコードもあるし、その辺がいじれるんじゃないかと期待していた。
が、Core_V4.1とかのメッセージシーケンスを見ても、Advertisingは開始要求するだけだし、Scanningについても同様だ。
gatttoolを少し追ったけど、チャネルを指定してCONNECTするような感じには見えない。
なので、そういう部分はドライバか、おそらくはモジュールの内部で行われているのだろう。

 

という結論を勝手に出した。
どうしてもきっちりモニタしたいなら、モニタを3つ買え、ということになるが、まあそんなにがんばってないから、まだよしとしよう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。