2016-06-07 134 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")