python - 如何访问 pybluez 中的蓝牙低级功能?

标签 python linux bluetooth

是否有用于较低级别 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/

相关文章:

php - exec() 通过命令行而不是网络运行

android - android 6.0 中无需位置权限的信标扫描

android - 蓝牙连接在 Android 中丢失

ios - 在与特定蓝牙设备连接后启动我的应用程序

linux - 获取一个文件中不存在于另一个文件中的值

c++ - 是否可以定义指向构造函数的函数指针?

python - python 2.7.1 中的条件赋值语法错误(但不是 2.7.3 ?)仅发生在从 bash 运行时

python - Pandas DataFrame 到以元组为键和值的字典

python - add_subparsers 无法识别 sub_argument

python - 根据一列中与 Pandas 另一列中的引用日期最接近的日期选择行?