Я пытаюсь использовать 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
Но та же проблема.Может ли кто-нибудь помочь мне решить проблему? Спасибо