2016-06-07 4 views
2

Требование: Мне нужно подключиться к удаленному устройству Bluetooth & и отправить данные с помощью файла устройства. 1. Сначала сканирование ближайших устройств Bluetooth 2. Подключение к удаленному BT адр & канал и общаться, используя файл устройства (/ DEV/rfcomm0)Python альтернатива команде linux bluetooth «rfcomm connect»

Я застрял на втором шаге. Я могу сделать это с помощью Linux оболочки

sudo rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 & 

Это работает, а затем я открываю интерпретатор питона и взаимодействовать с удаленным устройством с помощью файла rfcomm0 устройства.

Но мое требование таково, что устройство addr может меняться. Поэтому я хочу подключать и освобождать соединения через программу 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")