我使用Raspberry Pi作为iBeacon,创建一个在启动时运行的LaunchService,执行以下操作(使用BlueZ):
sudo hciconfig hci0 up
sudo hcitool -i hci0 cmd 0x08 0x0006 40 [...] 00
sudo hcitool -i hci0 cmd 0x08 0x000A 01
sudo hcitool -i hci0 cmd 0x08 0x0008 1E [...] 02 C0 00 00 00 00 C5 00
到目前为止,这一点非常有效。该服务运行,只要Pi上电,就会宣传iBeacon。
现在我想发送一些包含广告数据的信息。我有一个连接到Pi的亮度传感器,如果超过某个亮度阈值,它只返回true
。
我的想法是使用次要标识符并使用1
来表示"它很明亮"和0
代表"它是黑暗的"。我的应用程序可以解释这一点,而无需通过网络请求轮询Pi目前的传感器状态。
但是,由于我静态设置了广告包,我相信我无法使用这种方法。
我不知道该如何做到这一点,所以我希望有人可能有一些见解并指出我正确的方向。
谢谢你的时间!
答案 0 :(得分:1)
易。您可以简单地重新发出这些命令,特别是最后一个命令:
sudo hcitool -i hci0 cmd 0x08 0x0008 1E [...] 02 C0 00 00 00 00 C5 00
如果你想发送一个未成年人1,只需将上面C5之前的最后一个字节更改为01,如果你想发送一个0的小调,则将其改回00.