最終更新:2023-09-26 (火) 15:46:51 (74d)
BLE/アドバタイズ
BLE/チャンネル
- 最大3つのチャンネルが利用される
BLE/アドバタイズパケット
- 標準:31バイトのペイロード
- 追加:31バイト (アドバタイズペイロード?、BLE/スキャン応答と呼ばれる)
Extended Advertising
- Bluetooth 5.0
- データの最大サイズを31バイトから254バイトに拡張
間隔
- 20ms~10.24秒
- 0.625[ms]の整数倍
20ms 32
登場人物
アドバタイザ アドバタイジングパケットを送っているデバイス スキャナ アドバタイジングパケットを受け取るデバイス イニシエータ ACL接続したいデバイス (接続完了したらセントラルとなる)
アドバタイズの種別
Connect Scan ADV_IND Connectable Undirected Advertising ○ ○ すべてのデバイスにブロードキャスト ADV_DIRECT_IND? Connectable Directed Advertising ○ ○ 特定のアドレスにブロードキャスト ADV_NONCONN_IND? Non-connectable Undirected Advertising ✗ ✗ すべてのデバイスにブロードキャストするが要求は受け付けない。ビーコン用。 ADV_SCAN_IND? Scannable Undirected Advertising ✗ ○ すべてのデバイスにブロードキャスト、スキャン要求のみ受け入れ
メモ
- スキャンとアドバタイズはバラバラに行われるため、受信に成功するのはたまたま受信と送信がオーバーラップした場合のみ
- 例
- アドバタイズ間隔は20ms
- スキャナのスキャン間隔: 50ms (1chのスキャン25ms、チャンネル切り替えに25msとか)
BLE/スキャン
BLE/パッシブスキャン
- 単にアドバタイズパケットを待ち受け
BLE/アクティブスキャン
- アドバタイズパケットを受信したあとにBLE/スキャン要求を発行
- アドバタイザはBLE/スキャン応答で応答
- スキャナがアドバタイザ似ユーザデータを送る手段としては使えない
機能
- ホワイトリスト
コマンド
- hciconfig hci0 leadv
- hcitool cmdで手動でアドバタイズ
- HCI_LE_Set_Advertising_Enable
- hcitool -i hci0 cmd 0x08 0x000a 01
- HCI_LE_Set_Advertising_Enable