配对,扫描...无法与python进行蓝牙交互

时间:2018-12-22 11:22:45

标签: python bluetooth popen

我正在尝试在python中使用bluetoothctl进行扫描并与某些设备配对,但未成功。 例如,运行以下代码时:

 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

但是同样的问题。 有人可以帮我解决问题吗 谢谢

0 个答案:

没有答案