Pair, Scan ... взаимодействовать с Bluetooth с Python не возможно - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь использовать bluetoothctl в python для сканирования и сопряжения с каким-либо устройством, но мне это не удалось.например, при выполнении этого кода:

 scan_process = subprocess.Popen(['bluetoothctl', 'devices'], stdout=subprocess.PIPE) 

и последующей передаче вывода с помощью .communicate (0) программа зависает, фактически bluettothctl ожидает непрерывный поток (то есть действует как вспомогательная оболочка), и именно поэтомусвязь не работает.поэтому я попытался передать вторую команду через stdin так:

   open_blue = subprocess.Popen(["bluetoothctl"], shell=True, stdout=subprocess.PIPE,
                             stderr=subprocess.STDOUT, stdin=subprocess.PIPE)

while True:  # lets wait for 'user' prompt
    line = open_blue.stdout.readline().rstrip()
    if line.endswith("#"):  # this is the prompt, presumably, so stop reading STDOUT
        break
    print(line + "\n")  # print the subprocesses STDOUT

open_blue.stdin.write("help\n")  # send the `help` command

while True:
    line = open_blue.stdout.readline().rstrip()
    if line.endswith("#"):  # this is the prompt, presumably, so stop reading STDOUT
        break
    print(line + "\n")  # print the subprocesses STDOUT

Но та же проблема.Может ли кто-нибудь помочь мне решить проблему? Спасибо

...