在 Ubuntu 上,安装 bluez 后,根据 https://learn.adafruit.com/pibeacon-ibeacon-with-a-raspberry-pi/adding-ibeacon-data我们可以通过
设置蓝牙低功耗/4.0 广告数据sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1
并使用带有 sudo hcitool lescan
的 wireshark 或 python 我们可以看到数据由第二个 btle 加密狗接收。有没有办法用 python 代替 hcitool 来写广告包?某种类型的图书馆将是理想的选择。
在 python 中,我可以使用 How to retrieve advertising payload from iBeacon / BLE 的修改版本打印接收到的数据(data[44:13:-1]
而不是 data[12:6:-1]
),现在我希望传输数据。
(背景故事:我想相当频繁地广播一条消息(一对多多播),我听说 btle 广告可以每 20 毫秒发送给多个机器人,而无需为每个机器人配对。我不关心安全性,我不需要连接到机器人,我只需要从一个中心站传输并让几个机器人接收数据。我也有兴趣学习如何在 iOS/Android 上编写广告包数据,如果人们有提示)。
规范:python2.7/3.2,两个来自 ebay 的 CSR 4.0 USB dongle,ubuntu 14.04。
最佳答案
没有。 :(
Python 甚至还没有 catch Linux 对套接字上 BLE 地址的处理。如果你想使用 python,你要么必须将它与用 C 编写的位结合起来,要么只是让它调用 bluez 命令行工具。
不过,对于使用 BLE 的“多播”消息,您有正确的概念。您可以通过将其作为广告数据包的一部分发送来实现,任何其他设备都可以被动接收这些数据包并根据需要使用它。
关于python - 用 python 在蓝牙低功耗中编写广告包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24481154/