如何在Linux上始终连接到相同的rfcomm端口?

我有几个蓝牙设备,我正在尝试连接到Linux。除了一个设备外,我对任何设备都没有任何问题。不同之处在于所有其他设备都以标准方式处理其(我假设的)蓝牙连接,即它们等待主机设备(PC)发起连接。另一方面,另一个设备尝试每隔几秒启动一次连接,其间有两秒左右的睡眠。 对于其他设备,我一直在这样连接:
rfcomm connect /dev/rfcommX <deviceMacAddress>
(其中X是任何未使用的rfcomm端口号) 在发出此命令之前,我使用所需的配对键运行bluetooth-agent。这里的一切都很好。 对于有问题的设备,这在设备配对之前第一次运行良好。但是,配对后,rfcomm connect命令很可能失败。这是因为设备本身正在尝试初始化连接..当设备处于休眠状态时,连接失败(“主机关闭”)。 相反,我发现,对于这个设备,以下命令就像一个魅力:
rfcomm listen /dev/rfcommX
(我不得不先通过sdptool添加一个串口添加SP) 由于PC将坐在那里并等待来自设备的传入连接,因此每次都可以工作。 但是,当我有多个设备时会出现问题。 rfcomm listen命令运行良好,但似乎没有办法控制哪个设备(由Mac地址标识)连接到哪个rfcomm端口;如果打开了多个设备,则第一个尝试连接的设备将连接,无论如何。但是,在我们的应用程序中,我们希望用户知道他们要连接到哪个设备。 以前有人处理过这样的事吗?我们正在考虑编写bluez蓝牙套件的自定义版本,所以任何帮助都会非常感激:)     
已邀请:
编写一个udev规则,每次创建一个具有相同名称的符号链接,或者按照
/sys
的相应路径访问设备。     

要回复问题请先登录注册