Layer)の機能ということだろう。AdvertisingするのがSlaveで、それを受け入れるのがMaster、と思っている。PeripheralがAdvertisingし、Centralが受け入れる、ということになる。Initiator/Responderこれはまだ私の調べごとには出てこないのだが、Interface誌にでていた。「マスタ(イニシエータ)」「スレーブ(レスポンダ)」と書いてある。p.2130に出てきている。Acceptコマンドを受けとるとResponderになるのかな。initiator/responder」だから、PHYの機能ということだろう。PHYが一番下の階層だ。LL(Master/Slave)はその上。GAP(Central/Peripheral)はもっと上。検索したけど、あんまりそれっぽいことが書かれていない。clientみたいだ。serverに対して送信する、と書いてある。clientに送信する。Protocolの説明なので、これはGAPと同じ階層のようだ。p.1637にプロファイルスタックの図があったのだけど、GAPがベースのようになっていて、そこにGATTがいるのか。この辺でPushとかPullとかの話が出てくると思ったのだが、Core_V4.0を「Push」で検索しても引っかからない。なんだ?それに、CharacteristicとAttributeの区別もついていない。「Characteristic」という属性がついたAttributeがCharacteristicってことかいな?Characteristicのアクセスは、ReadとかWriteとかNotifyとか、そんなのだよなぁ。(5)iOSはまあ何とかなりそうなので、Androidを進めていこう。miniは遅くてイライラしてしまうのだ。SSDにすべきかなぁ。そうそう、スキャンして目的のデバイスを見つけることについて考えないと。今は、デバイス名だけを見比べて、一致したらやめている。同じBLEデバイスが何台も置いてあるという状況もあるだろう。考えると、デバイス名だけってのは乱暴そうだ。デバイス一覧を表示させて、ユーザに選んでもらうしかない。ペアリングの入力無しで、デバイスに対しても個別の設定が不要なのであれば、見つけたものをどんどん処理していけばよいだろう。そのときは、デバイスのハードウェアアドレスで見分けるしかないのかもしれないが、外見ではどれがどのデバイスかを見分けるのは難しいだろう。安く作りたいとしても、LEDくらいはつけておいて、自分の状態を表現できた方がよさそうに思う。あ、デバイスを作るときのことね。スキャンした結果がコールバックされたとき、引数が3つついてくる。device.」とあるので、Advertisingのときに送られてきたデータなのだろう。RC-S390の場合、37byte返ってきているみたいだ(配列要素は62あるけど、37byteまでデータが詰まってて、残りは0x00だった)。バイナリ値があれば解析をする・・・それが刑事の哀しい性(?)だ。Core_V4.0の仕様書を「37」で探したところ、p.2202がそれっぽい。octets.」ここのLengthだろう。スキャンした結果が返ってきたのならば、p.2206のSCAN_RSPになるのか。AdvAはランダムだかなんだかのデバイスアドレス、ScanRspDataはAdvertiseしたホストからのデータ。いうことは、RC-S390が私に送ってくれた何かということになる。scanRecordを眺めてみたが・・・さっぱりわからん。最後の6byteが「PaSoRi」という文字になっているということはわかった。SCAN_RSPでネットを調べると、私が思い違いをしているようだ。http://reinforce-lab.github.io/blog/2013/02/07/ble-linklayer/AdvertisingとScanは別の動作らしい。p.2203によると、PDUの種類は7つ。Payloadは、AdvAはどれもあり、違いはAdvDataがあったり別だったりするくらいだ。どれもホストからのデータというくらいで、詳細は無い。Typeで検索すると、p.1735が出てきた。1octのLengthと、そのLength長のData。Typeはこちらの一覧を見るらしい。いやあ、ここまで書かれてあると非常に助かりますわい。これを見ながら解析していったのだが・・・あわない。AdvAが無いものとして解析するとちょうどよさそうなのだ。引数のscanRecordは、AdvertisingのパラメータとScanの結果が一緒に入ってきてるような気がする。サイズも62byte分ということで合うし。いうことは・・・「37」って数字でそれっぽいところが引っかかったのは、単なる偶然だったのか・・・。入っていたのは、こんな情報。このデータをアプリがどのくらい管理しないといかんのかはわからないが、あまり気にしなくてもよさそうな気はする。次はConnectionだ。Androidのサンプルはなんか難しいので、こちらを見てやっていくことにする。ble[java]コールバックしてToastを出したい半分Java、半分Androidだ。