Python套接字蓝牙。

4

我正在尝试将我的心率蓝牙传感器与我的Windows电脑配对。 经过一些搜索,我找到了适用于x64系统的pyBluez,现在我能够发现周围的蓝牙设备,它们的名称、地址和服务。 我的Polar传感器具有L2CAP协议,理论上来说,它过于简单,可以监听其传输内容。

我找到了以下示例:

server_sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)

port = 5
server_sock.bind(port)
server_sock.listen(1)

client_sock = server_sock.accept()
print ("Accepted connection from "+address)

data = client_sock.recv(1024)
print ("received [%s]" % data)

还有不同的端口
当我运行这段代码时,我从未读到“接受连接...”

可能的原因是pyBluez Windows版本缺少L2CAP。 我还尝试了套接字连接,但是“socket.AF_BLUETOOTH”方法在Windows上也不可用。 你有什么建议吗?

非常感谢,对我的英语表示抱歉。

2个回答

3

你可以尝试使用套接字库。

import socket

baddr = 'a4:50:4f:f8:44:66'
channel = 4
s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, 
socket.BTPROTO_RFCOMM)
s.connect((baddr,channel))
s_sock = server_sock.accept()
print ("Accepted connection from "+address)

data = s_sock.recv(1024)
print ("received [%s]" % data)

s.listen(1)

我尝试使用pybluez,但它无法运行。我在Linux系统上尝试过。希望它能在Windows上运行...


什么是 baddr?你是如何找到它的? - Murtaza Haji
MacOS:system_profiler SPBluetoothDataType Linux:hciconfig -a - elulcao

0
@murtaza-haji - 值a4:50:4f:f8:44:66是蓝牙地址。
您可以使用pybluez中的discover_devices方法来发现它。
import bluetooth  # from pip install pybluez

nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(f"Found {len(nearby_devices)} devices.")

for addr, name in nearby_devices:
    print(f"  {addr} - {name}")

1
您的回答可以通过添加更多支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便其他人可以确认您的答案是否正确。您可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接