BLEのAdvertisingを見ていると、当然ながらPeripheralのアドレスが拾える。
そういえば、アドレスには種類があったよなあ、と思って調べた。
Device Address
Core_v4.2.pdfのVol.6 Part B "1.3 Device Address"
- Public Device Address
- Random Device Address
- Static Device Address
- Private Device Address
- non-resolvable private address
- resolvable private address
種類としては、publicが1つ、randomが3つになる。
randomのアドレスは、下位の2bitがどういう値かで見分けられる。
が、publicとrandomを見分ける方法が書かれていない。
そもそも、randomだったら偶然publicと同じアドレスになることもありうるだろうし・・・。
と思ったら、違うところで見分けるようになっていた。
Advertising PDUs
Core_v4.2.pdfのVol.6 Part B "2.3.1 Advertising PDUs"
Advertisingで投げるアドレスのAdvAだけ見てもpublicかrandomかはわからず、ヘッダにあるTxAddで表しているということが書かれている。
- publicアドレス
- TxAddかRxAddが0(AdvAだとTxAdd、InitAだとRxAddだったが、他にもあるかも)
- randomアドレス
- TxAddかRxAddが1(AdvAだとTxAdd、InitAだとRxAddだったが、他にもあるかも)
- staticアドレス
- 下位2bitが1
- 残りのビットが全部0じゃないこと(0x000000000003はダメ)
- 残りのビットが全部1じゃないこと(0xFFFFFFFFFFFFはダメ)
- privateアドレス(non-resolvable)
- 下位2bitが0
- 残りのビットが全部0じゃないこと(0x000000000000はダメ)
- 残りのビットが全部1じゃないこと(0xFFFFFFFFFFFCはダメ
- privateアドレス(resolvable)
- 下位2bitがb10
- 残りのビットが全部0じゃないこと(0x000000000002はダメ)
- 残りのビットが全部1じゃないこと(0xFFFFFFFFFFFEはダメ)
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。