目前正在开展一个项目,我正在尝试将我的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]#
有没有人有解决方案或其他方式来阅读设备的特性? (并可能将其恢复到文件中)
答案 0 :(得分:1)
我建议你看一下subprocess module's docs,尤其是subprocess.Popen()函数。
我不确定edadNiño
是否是一个在启动时接受参数的程序,或者它是否必须继续运行以便侦听传入的命令。
如果它是第二个未经测试的虚拟代码看起来像:
bluetoothctl
然后,您需要做的就是如何将变量的内容写入Python中的文件。 (这真的不应该太难找到)。