【发布时间】:2011-12-08 17:59:23
【问题描述】:
是否有用于较低级别 bt 功能的 pybluez 包装函数?我在文档中找不到任何内容。我需要使用的功能等同于:
l2ping (single ping)
hcitool cc
hcitool rssi
hcitool lq
hcitool tpl
hcitool dc
有没有办法从 pybluez(或实际上任何其他包装器和/或脚本语言)访问它?
【问题讨论】:
是否有用于较低级别 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 套接字以手动形成命令包和解析结果。您只需要自定义要使用的命令即可。
【讨论】: