如何在 python 中检查蓝牙设备的 ping

how to check ping for a bluetooth device in python

我已经连接了一个蓝牙控制器来控制流动站。 我可以在终端上使用 sudo l2ping 84:30:95:06:C6:6C ping 控制器。 基本上我想在 ping 不可用时执行某些代码。即,当控制器断开连接时。 我试过这个:

import bluetooth

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

    else:
        print("do something")

但这有一点延迟,当控制器断开连接时,大约需要 2-3 秒才能给我输出。 在 python 中还有其他方法吗?

所以我们可以使用hcitool来了解蓝牙设备的状态。这是一个对我有用的小片段。获得输出没有延迟,这绝对没问题。

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")