BLEのスニファで、SensorTagのiBeaconパケットを取ってみた。
iBeaconというよりも、BLEがまだよくわかっていないので、そこからだ。
Core_V4.1の"Core System Package [Low Energy Controller volume] PartB LINK LAYER SPECIFICATION"に説明がありそうだ。
iBeaconは、「俺ここにいるぜ!」のようなビーコンパケットに特定のフォーマットを持たせたものだ、という認識。
サザエのしっぽを、苦いから切り捨てるか、これはつまみによいと思って食べるか、の違いみたいなものか。
通信めいたものはAdvertisingだけで、あとは受信側がそれを解析して、好きなように使うだけなんだろう。
まず、ADV_NON_CONN_INDから。
Core_v4.1のp.2507 2.3.1.3 ADV_NONCONN_IND。
このPDUは、non-connectable undirected advertisingイベントで使うものらしい。
接続せず、特定の相手向けでもない、ということか。
Lengthが33で、AdvAが6ということは、AdvDataは27ということになる。
AdvAは、advertiser's public(TxAdd=0) or random(TxAdd=1) device addressが載っているらしい。TxAddは0だから、SensorTag固有の値か、TI固有の値か、そんなのなんだろう。
AdvDataには、advertiser's HostからのAdvertising Dataが載っているとのこと。
Advertising Dataのフォーマットみたいなものが見当たらない。これがいいのか?
https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile
ここからは、iBeaconのデータと言うことになる。
http://stackoverflow.com/questions/18906988/what-is-the-ibeacon-bluetooth-profile
1A : データ長。AdvDataが27バイトなので、残り26バイト。
FF : <<Manufacturer Specific Data>> CSS v4.pdf
4C, 00 : Company Identifier Code。これがAppleのコードらしい。
02, 15 : iBeacon advertisement indicator
FA, 5F, 55, D9, BC, 63, 40, 2E, A2, 54, 09, 1B, 8F, E8, C9, 91 : iBeacon proximity uuid
00, 01 : major
00, 01 : minor
C5 : Tx Power
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。