如何在pybluez中访问蓝牙低级功能?

时间:2011-10-16 14:17:32

标签: python linux bluetooth

是否有更低级别bt功能的pybluez包装函数?我在文档中找不到任何内容。我需要使用的是与以下内容相同的功能:

l2ping (single ping)
hcitool cc
hcitool rssi
hcitool lq
hcitool tpl
hcitool dc

有没有办法从pybluez(或实际上任何其他包装和/或可编写脚本的语言)访问它?

1 个答案:

答案 0 :(得分:1)

获得完全相同功能的简单方法是让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套接字以手动形成命令包和解析结果。您只需要自定义要使用的命令。