python - 用 python 在蓝牙低功耗中编写广告包?

标签 python ubuntu bluetooth bluetooth-lowenergy

在 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/

相关文章:

android - Arduino安卓蓝牙通讯

ios - 在 iOS 设备和树莓派之间创建 ad-hoc 网络

python - Python 2.7 上的正则表达式导致在字符串中查找文本时出现问题

java - 不同语言版本的Murmurhash会得到不同的结果

Python (pip) throw [SSL : CERTIFICATE_VERIFY_FAILED] even if certificate chain updated

ubuntu - PuPHPet Vagrant box 需要 apt-get 更新吗?

ios - 如果应用程序被锁定,它可以接收蓝牙数据吗?

python - 将 python 程序设置为 SCHED_RR 或 SCHED_FIFO

php - Laravel Homestead 'apt-get update' 给出一些 404

python - 如何将 libgit2/pygit2 安装到 virtualenv 中? (乌类图)