我有几个蓝牙设备,我试图在Linux中连接到。除了一个设备外,我没有任何问题。不同之处在于,所有其他设备都以标准方式处理蓝牙连接(即我所假设的),即他们等待主机设备(PC)发起连接。另一方面,另一方面,设备每隔几秒就尝试启动一次连接,休息一秒钟左右。我如何一直连接到Linux上的相同rfcomm端口?
对于其他的设备,我已经连这样的:
rfcomm connect /dev/rfcommX
(其中X为任何未使用的RFCOMM端口号)
发出此命令之前,我跑了蓝牙剂所需的配对键。这里的一切都很好。
对于有问题的设备,此设备在配对之前第一次很好地工作。然而,配对后,rfcomm connect命令很有可能失败。这是因为设备本身试图初始化连接。当设备处于睡眠状态时,连接失败(“主机关闭”)。
相反,我发现,此设备,下面的命令作品就像一个魅力:
rfcomm listen /dev/rfcommX
(我不得不通过sdptool可以添加一个串行端口添加SP第一)
由于个人电脑将坐在那里等待来自设备的传入连接,这一切都可以工作。
但是,当我有多个设备时出现问题。 rfcomm listen命令非常出色,但似乎没有办法控制哪个设备(由Mac地址标识)连接到哪个rfcomm端口;如果打开多个设备,则无论如何,第一个尝试连接的设备都将连接。然而,在我们的应用程序中,我们希望用户知道他们连接到哪个设备。
有没有人处理过这样的事情?我们正在考虑编写bluez蓝牙套装的定制版本,因此我们非常感谢这里的任何帮助:)