2016-06-07 140 views
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替代方案来实现此目的。

+0

不用'&',那么。将外部流程置于后台,并立即“返回”。没有'&'外部进程会阻塞,直到它本身退出。 –

+1

但该命令是一个阻塞命令。在我们执行键盘中断之前它不会退出 – user3151330

回答

0

你可以通过os模块来运行Shell命令。你可以这样存储返回值:

from os import system 
Returnedstring = system("Shell command")