#python-3.x #ubuntu #bluetooth #root #pybluez
#python-3.x #ubuntu #bluetooth #root #pybluez
Вопрос:
я подключил контроллер Bluetooth для управления ровером. я могу пинговать контроллер, используя sudo l2ping 84:30:95:06:C6:6C
терминал. по сути, я хочу выполнить определенный код, когда 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?
Ответ №1:
таким образом, мы можем использовать hcitool, чтобы узнать состояние устройства Bluetooth. вот небольшой фрагмент, который сработал для меня. для получения выходных данных нет задержки, и это работает абсолютно нормально.
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")
Комментарии:
1.
hcitool
это один из восьми инструментов, который устарел еще в 2017 году, поэтому в какой-то момент исчезнет.