使用bluetoothctl的Python脚本失败

时间:2018-01-12 01:28:31

标签: python shell bluetooth

目前正在开展一个项目,我正在尝试将我的RPi 3与BLE设备进行通信(仅从设备读取信息)。我正在使用bluez和bluetoothctl。我成功地将RPi连接到设备,并且可以选择属性并读取特征,但我想用python脚本(不需要编写命令)来完成。

我的问题是,当我运行我的代码时,它似乎停留在第一个命令。这是我的代码:

 import subprocess 
 subprocess.call('bluetoothctl')
 subprocess.call('connect E5:10:78:27:B5:22')

这是结果

 pi@raspberrypi:~ $ cd Desktop/bluetooth/
 pi@raspberrypi:~/Desktop/bluetooth $ python main.py
 [NEW] Controller 5C:F3:70:87:7E:2E raspberrypi #1 [default]
 [NEW] Device E5:10:78:27:B5:22 PARKING CONNECTE
 [NEW] Controller B8:27:EB:6B:EC:CE raspberrypi 
 [NEW] Device E5:10:78:27:B5:22 PARKING CONNECTE
 [NEW] Device 0C:8F:FF:59:61:48 Wifi a vendre - 5e l'acces 
 [NEW] Device CF:8E:BE:9C:C1:30 Nordic_UART
 [bluetooth]# 

有没有人有解决方案或其他方式来阅读设备的特性? (并可能将其恢复到文件中)

1 个答案:

答案 0 :(得分:1)

我建议你看一下subprocess module's docs,尤其是subprocess.Popen()函数。

我不确定edadNiño是否是一个在启动时接受参数的程序,或者它是否必须继续运行以便侦听传入的命令。

如果它是第二个未经测试的虚拟代码看起来像:

bluetoothctl

然后,您需要做的就是如何将变量的内容写入Python中的文件。 (这真的不应该太难找到)。