Python 3.x 如何在python中检查蓝牙设备的ping

Python 3.x 如何在python中检查蓝牙设备的ping,python-3.x,ubuntu,bluetooth,root,pybluez,Python 3.x,Ubuntu,Bluetooth,Root,Pybluez,我已经连接了一个蓝牙控制器来控制漫游者。 我可以在终端上使用sudo l2ping 84:30:95:06:C6:6Cping控制器。 基本上,我希望在ping不可用时执行某些代码。i、 例如,当控制器断开时。 我试过这个: import bluetooth while True: if bluetooth.lookup_name('84:30:95:06:C6:6C'): print("do nothing") else:

我已经连接了一个蓝牙控制器来控制漫游者。 我可以在终端上使用
sudo l2ping 84:30:95:06:C6:6C
ping控制器。 基本上,我希望在ping不可用时执行某些代码。i、 例如,当控制器断开时。 我试过这个:

import bluetooth

while True:
    if bluetooth.lookup_name('84:30:95:06:C6:6C'):
        print("do nothing")

    else:
        print("do something")
但这有一点延迟,当控制器断开时,大约需要2-3秒才能给我输出。 在python中是否还有其他方法可以做到这一点?

因此我们可以使用它来了解蓝牙设备的状态。这里有一个对我有用的小片段。没有延迟来获得输出,这绝对是好的

import subprocess as sp

dev_addr = '84:30:95:06:C6:6C'
stdoutdata = sp.getoutput("hcitool con")

while True:
    if dev_addr in stdoutdata.split():
        print("do nothing")

    if dev_addr not in stdoutdata.split():
        print("do something")
因此,我们可以使用来了解蓝牙设备的状态。这里有一个对我有用的小片段。没有延迟来获得输出,这绝对是好的

import subprocess as sp

dev_addr = '84:30:95:06:C6:6C'
stdoutdata = sp.getoutput("hcitool con")

while True:
    if dev_addr in stdoutdata.split():
        print("do nothing")

    if dev_addr not in stdoutdata.split():
        print("do something")

hcitool
是2017年回归的八种工具之一,因此在某一时刻将消失。
hcitool
是2017年回归的八种工具之一,因此在某一时刻将消失。