问题标签 [pybluez]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 BlueZ 5 模拟键盘
我正在设置一个我想将 RaspberryPi-3 连接到另一台机器的设置。大多数情况下,它将是一台 Windows 机器。在 Pi 上,我想通过蓝牙将所有键盘敲击转发到另一台(Windows)机器。
因此我做了一些研究,几年前有人叫 Liam 写了一个 Python 脚本,显然它在 BlueZ 4 上运行良好。所以我决定在 BlueZ 5 上试一试。到目前为止还没有运气。
好吧,我想,好吧,让我们降级版本。所以我从源代码编译它,版本 4.10。没运气。覆盆子甚至不知道它安装了蓝牙适配器,可能是一些驱动程序有问题。
于是我开始接触 BlueZ 5,一开始很容易。但实际上我现在正在努力注册 sdp_Record.xml。以及稳定的连接。
首先是 BlueZ 4 实现的参考文件:
BlueZ4.py:
到目前为止,我所做的是试图将这个旧的 BlueZ 4 代码迁移到版本 5。
到目前为止我的实现:
问题是,我现在想知道的是:
HOST
变量是否正确?- 甚至是
PORT
正确的吗? - 我错过了重要的一步吗?
因为,我打印出的 Python 脚本是:
[Bluetooth - L.68] Waiting for a connection
此外,蓝牙连接一旦与远程机器“连接”就会断开。
我还注意到,我认为 SPD_Record.xml 设置不正确。
SDP_Record.xml 供参考:
如果有人可以帮助我或为我指明正确的方向,我会非常高兴,以使其再次正常工作。
在此先感谢您的帮助!
python - PyBlueZ 导致导入错误
我正在尝试编写一个可以通过蓝牙与游戏机配对并充当它的控制器的程序。为了做到这一点,我尝试安装 PyBlueZ,但我只能得到import bluetooth
,因为它在我的屏幕上显示此错误:
这是因为我的安装错误,还是模块刚刚损坏?在这两种情况下,是否有解决办法?
python-3.x - PyBluez socket.send() 即使在 socket.setblocking(True) 时也不会阻塞
我正在使用 PyBluez 来尝试确定树莓派和手机之间的蓝牙传输速度。
我想在发送数据之前启动一个计时器socket.send(data)
并在发送数据后停止它,以查看发送数据需要多长时间。但是,这不起作用,因为send()
它不是一个阻塞函数,并且在它完成执行之前继续到下一行代码。IE:
当我设置socket.setblocking(True)
时,它似乎并没有改变发送数据所需的时间。
我对手机端的代码没有太多控制,因为这只是检查带宽的初步测试,我只是使用从 google play store 下载的应用程序来实现蓝牙连接,所以我不能时间接收数据所花费的时间,即使socket.recv()
是一个阻塞函数。
有谁知道强制socket.send(data)
成为阻塞函数的方法,它只会在数据发送后才移动到下一行代码?
python - PyBluez 0.22 上的 OSError
在 Windows 10 和 Python 3.6 上运行 PyBluez,每次调用 bluetooth.discover_devices() 函数时都会出现 OSError。
截至目前,代码仅包含 3 行:
控制台然后给出:
有什么解决办法吗?我以前从未使用过 PyBluez,这应该是一个简单的测试程序......
bluetooth - 解释 AVRCP 数据包
经过一番折腾,我得到了一个 pybluez 脚本,可以连接到各种设备上的 AVRCP 配置文件,并阅读响应。
代码片段:
当我按下听筒上的按钮时,我得到的结果如下:
仔细阅读规范后,看起来我看到的是 PASSTHROUGH 命令,其中 44 是“PLAY”操作命令,而 46 是“PAUSE”(我认为)我不知道 10 11 0e 是什么意思,除了从第一个字节似乎是某种序列号这一事实来看。我的问题是三方面的:
- 我不知道在哪里可以找到有效 operation_id 的列表。它在规范中提到,但除了一些随机示例之外没有定义。
- 规范再次引用了子单元类型和 ID(在上例中为 48),但没有定义它们 AFAICT。
- 没有提到前三个字节是什么。它们甚至可能是 L2CAP 的一部分,与 AVRCP 没有直接关系,我对 pybluez 还不够熟悉。
在上述任何一点上的任何帮助都会有所帮助。编辑:作为参考,AVRCP 规范的详细信息似乎在这里:https ://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=119996
android - 如何使用 pybluez 构建 Android 蓝牙服务器应用程序处理从 Raspberry Pi 发送的数据
我想知道如何构建 Android 应用程序处理从 Raspberry pi 发送的数据。
我在 Raspberry Pi 上安装了 pybluez 模块并使用以下 python 脚本发送数据。
在我的手机上,我确实看到两台设备配对成功。但是找不到从 Raspberry Pi 发送数据的方法。有没有办法构建一个从 sock.send() 处理数据的应用程序?
python - Pybluez 在不同设备上的不稳定行为 - Python
我有 3 个设备 -> 2*PC 和 1 个 Raspberry Pi。2台PC仅用于测试。2PC = 2 台装有 Windows 10 的笔记本电脑。
在树莓派上我有蓝牙服务(Py 2.7 但如果 print() 3.5 也应该工作):
在笔记本电脑上我有客户端
一切正常,但是,使用一台笔记本电脑,我可以重复聆听和连接之间的过程。与其他 Laptot 我能够连接 2-3 次,然后我收到此错误:
这意味着错误发生在 pybluez 函数 find_service 内部。有趣的是,当它找不到设备时会发生这种情况。在从未触发此错误的另一台笔记本电脑上(始终连接),但没有设备总是以: print('Found nothing')
当 2-3 次成功连接后开始出现错误时,我需要重新启动 Raspberry pi 才能再次连接。
谢谢你的帮助
python - Python3.4.4 蓝牙 pybluez sock.recv
我正在使用 python 中的 pybluez lib 开发蓝牙服务器应用程序。我在 Windows 7 PC 上安装了 2 个版本的 python(python2.7.15 和 python 3.4.4),并且都已经安装了 pybluez 模块。该程序在 python 2.7.15 中运行良好,但我在 python 3.4.4 中发现了不同的行为。在 python 2.7.15 中,函数:
等待直到数据可用,如果接收到数据则进入下一行。但是在 python 3.4.4 中,没有等待数据,因此程序继续执行下一行,即使还没有收到数据。我应该怎么做才能使它与 python 2.7.15 中的行为相似?
谢谢你的帮助。
python - BlueZ 自动重新连接作为设备到 PC
我正在使用设备上的 Python 代码开发 HID 蓝牙设备;目前它可以通过运行连接到PC:
然后我们可以使用 pybluez 连接套接字并等待连接:
这有效,我们使用 hcitool con 进行线程轮询,以检测 Windows PC(适配器)断开连接,我们转储套接字并再次侦听。hci 的设置没有安全性,因此连接到它的 PC 会自动配对 - 这一切都有效。
然而,当设备关闭时问题就来了;PC 正确检测到设备已消失并保持配对状态。我想要做的是让设备自动连接到与之配对的 PC。我显然已经获得了 PC 的 Mac 地址,我正在尝试使用以下方式进行连接:(P_CTRL 为 17,P_INTR 为 19)
这基本上试图连接并给我回来:
在蓝牙窗口对话框中,您可以看到它轻弹连接但直接返回配对。问题是; 如何让设备连接到配对的 Windows 适配器?请注意,我在 bluetoothctl 中得到了类似的响应。