是否有用于较低级别 bt 功能的 pybluez 包装函数?我在文档中找不到任何内容。我需要使用的功能等效于:
l2ping (single ping)
hcitool cc
hcitool rssi
hcitool lq
hcitool tpl
hcitool dc
有没有办法从 pybluez(或实际上任何其他包装器和/或脚本语言)访问它?
最佳答案
获得完全相同功能的简单方法是让 python 脚本从命令行调用 hcitool。
但对于自定义解决方案,您可以使用 pybluez 发送那些其他命令生成的相同 HCI 命令数据包。例如,hcitool rssi 只是将 HCI Read RSSI 命令发送到本地 BT 适配器,并解析结果。使用 pybluez,您可以打开 HCI 套接字、构造命令包并自行解析结果。如果您无权访问定义命令数据包格式的 BT 规范,您可以查看 hcitool 的源代码以查看它们发送的内容,或者您可以使用 hcidump。
要使用 hcidump,您可以在终端中运行 hcidump 以嗅探本地 HCI 命令流量,同时使用另一个终端通过 hcitool 执行其他命令。使用 hcidump,您将能够捕获原始数据包事务,您可以将其用作要从 pybluez 生成的内容的引用。
这个例子http://code.google.com/p/pybluez/source/browse/trunk/examples/advanced/inquiry-with-rssi.py展示了如何处理 HCI 套接字以手动形成命令包和解析结果。您只需针对要使用的命令进行自定义。
关于python - 如何访问 pybluez 中的蓝牙低级功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784854/