2
要求: 我需要连接到远程蓝牙设备&端口并使用设备文件发送数据。 1.第一扫描最近的蓝牙设备 2.连接到远程BT地址&信道,并使用设备文件(的/ dev/rfcomm0)Python替代linux蓝牙命令“rfcomm connect”
我卡在第二步骤中进行通信。我可以通过Linux外壳
sudo rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 &
这个工作,然后我打开我的Python解释器和交流使用rfcomm0设备文件的远程设备来做到这一点。
但我的要求是这样的设备地址可能会改变。所以我想通过python程序来连接和释放连接。
我试过使用python子进程。 但问题是它会立即返回一个返回码0,然后在确定的延迟后建立连接。
import subprocess
host = '00:11:22:33:44:55'
port = "1"
subprocess.call(["rfcomm connect",host,port,"&"],shell=True)
我在寻找是否有任何pyBluez或任何其他python替代方案来实现此目的。
不用'&',那么。将外部流程置于后台,并立即“返回”。没有'&'外部进程会阻塞,直到它本身退出。 –
但该命令是一个阻塞命令。在我们执行键盘中断之前它不会退出 – user3151330