【问题标题】:how to check ping for a bluetooth device in python如何在python中检查蓝牙设备的ping
【发布时间】:2021-04-02 19:56:39
【问题描述】:

我已连接蓝牙控制器来控制流动站。 我可以在终端上使用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中有没有其他方法可以做到这一点?

【问题讨论】:

    标签: python-3.x ubuntu bluetooth root pybluez


    【解决方案1】:

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

    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 年获得 deprecated 的八个工具之一,因此会在某个时候消失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2013-05-16
    相关资源
    最近更新 更多