Overview
- BlueZにてBLEアドバタイズパケットの内容を変更する.
- Service UUIDをアドバタイズパケットにのせる.
コマンド
$ sudo hcitool -i hci0 cmd 0x08 0x0008 AdvLength AdvData
※各データは16進数表記.1オクテットごとにスペース区切り.リトルエンディアン.
リトルエンディアンとは:http://www.wdic.org/w/TECH/%E3%83%AA%E3%83%88%E3%83%AB%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3
AdvLength (Advertising_Data_Length)
値 |
説明 |
0x00-0x1F |
Advertising_Dataのオクテット数 |
AdvData (Advertising_Data)
値 |
説明 |
|
Advertising Data (最大31オクテット) |
|
すべてゼロ (初期値) |
Advertising Data Format
format
Length[1 octet] Type[n octet] Data[Length-n octet]
Type : 0x01 "Flag"
bit |
説明 |
0 |
LE Limited Discoverable Mode |
1 |
LE General Discoverable Mode |
2 |
BR/EDR Not Supported |
3 |
Simultaneous LE and BR/EDR capable (Controller) |
4 |
Simultaneous LE and BR/EDR capable (Host) |
5...7 |
未使用 |
Type : 0x07 "Complete List of 128-bit Service Class UUIDs"
値 |
説明 |
(128bit) |
Service UUIDs (リトルエンディアン) |
備考
- いろいろパラメータをいじった場合,
hciconfig hci0 leadv 3
にてアドバタイズを開始しないこと.
hcitool -i hci0 cmd 0x08 0x000a 01
にてアドバタイズを開始すること.
-
リトルエンディアン記法に注意.
実行例
- UUID「E1F40469-CFE1-43C1-838D-DDBC9DAFDDE6」をパケットに乗せる.
- FlagはLE General Discoverable Mode,BR/EDR Not Supportedとする.
$ hcitool -i hci0 cmd 0x08 0x0008 15 02 01 06 11 07 e6 dd af 9d bc dd 8d 83 c1 43 e1 cf 69 04 f4 e1
$ sudo hcitool -i hci0 cmd 0x08 0x000a 01
参考