【发布时间】:2014-06-22 09:09:06
【问题描述】:
有一篇众所周知的博客文章介绍了如何将 USB 蓝牙 4 加密狗设置为 iBeacon。归结为这个神奇的命令:
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00
这个例子的问题是它太不透明了,很难以任何更通用的格式使用它。我已经能够把它拆开一点:
sudo hcitool -i hci0 cmd
向 hci0 设备发送 hci 命令
0x08 0x0008
设置广告包只是魔术,其他stackoverflow命令都说“使用它,不要问
1e
是整个后续数据包的长度,以字节为单位
02 01 1a 1a
是设置广告包的标志(详情请咨询)
ff 4c 00 ...
是对 iBeacon 信息进行编码的“公司特定数据”
我尝试做的是将“FF ...”字节替换为用于设置 NAME 参数“04 09 41 42 43”(应该将其设置为 ABC)的操作码,但这不起作用。
我很惊讶 hcitool 没有给我们一些关于如何设置广告包的示例,因为这对于设置各种其他参数(如 TEMP 或 POWER)非常有用。有没有其他人有过使用 hcitool 来设置 NAME 之类的东西的经验?
【问题讨论】:
-
最终传输的广告数据包负载以“02 01 1a 1a”序列开头。因此,您尝试更改的“ff 4c”很好地位于有效负载内,因此更改不会导致不同的命令,而只会导致传输乱码。
标签: bluetooth bluetooth-lowenergy ibeacon bluez hci