与 RPi 建立成功的蓝牙连接

Making a successful Bluetooth Connection to RPi

我的电脑上有一个 RPi 和一个普通的 Debian,它们都使用蓝牙 Python 模块进行通信。两者都有一些蓝牙 USB 加密狗。 我可以将电脑用作服务器,将树莓派用作客户端,这种连接效果很好。但是我不能反之亦然,我检查了我的 rfcomm.confmain.conf,但两者似乎都没问题。 还有其他陷阱吗?


#Server.py

import bluetooth

server_sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )

port = 1
server_sock.bind(("",port))
server_sock.listen(1)

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

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

client_sock.close()
server_sock.close()

#Client.py

import bluetooth

bd_addr = #myspecificmacaddress

port = 1

sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((bd_addr, port))

sock.send("hello!!")

sock.close()

所以更准确地说:RPi 上的 运行 Client.py 和 PC 上的 Server.py 工作正常,反之亦然,显然更正 MAC,简单地说: bluetooth.btcommon.BluetoothError: (112, 'Host is down')

原来我的配置文件不太好。 (它必须对配置文件做些什么)

/etc/bluetooth/main.conf 有一个 class 部分。 /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/config 也有一个 class 部分。

我不知道为什么,我不知道实际发生了什么,因为你无法在互联网上找到任何关于这个的信息,但是设置 both0x400100 修复了它。我不知道他们是否只需要匹配,或者这是我偶然想到的一些特别的东西,但它有效,我真的不想再破坏它了。

也许对此有更多了解的人愿意在这里改进我​​的回答。

我知道这是一个旧的post,但只是为了其他可能需要它的人,同样的事情发生在我身上,所以我不得不这样做:

$ sudo hciconfig hci0 piscan 

现在它可以被发现并能够发送和接收数据