我想在Python中使用bluetoothctl
来获取有关扫描scan on
的所有内容的信息,但我无法获得正确的代码。它们只显示一个列表,其中包含可以找到的设备的名称和地址。
我目前正在使用带有sudo bluetoothctl
的BlueZ 5.47,当我在终端窗口中为BLE设备scan on
时,我从传感器获取数据,我想用Python保存此输出,怎么能我用Python做这件事吗?
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:47:AE:DD Discovering: yes
[CHG] Device 04:B3:EC:00:1E:65 RSSI: -76
[CHG] Device 04:B3:EC:00:1E:65 UUIDs: 0000fbb0-0000-1000-8000-00805f9b34fb
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Key: 0x00ac
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Value:
b2 00 52 01 12 17 0c 15 0e 65 1e 00 ec b3 04 ..R......e.....
[CHG] Device 04:B3:EC:00:1E:65 AdvertisingFlags:
06 .
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Key: 0x00ac
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Value:
b2 2e 52 01 12 45 0c 15 0e 65 1e 00 ec b3 04 ..R..E...e.....
我看到PyBluez可以提供帮助,但似乎只会在scan on
期间向我提供可用BLE设备的名称和信息。你知道另一种可以提供帮助的工具吗?谢谢!
答案 0 :(得分:0)
我不熟悉PyBluez,但如果您只想存储bluetoothctl
输出,则可以使用这样的Python 3 check_output函数。
from subprocess import check_output
ouput = check_output(['bluetoothctl'])
然后您可以按照自己的方式解析和使用它。