Próbuję napisać skrypt bash, który odpytuje btmon w poszukiwaniu połączeń urządzeń. Mam działające rozwiązanie, ale jest absurdalnie wolne i wydaje się, że problem polega na tym, że grep bardzo powoli wychodzi z gry po znalezieniu dopasowania (około 25 sekund). Co mogę zrobić, aby przyspieszyć grep
lub całkowicie go nie używać?
#!/bin/bash
COUNTER=0
while :
do
until btmon | grep -m 1 '@ Device Connected'
do :
done
let COUNTER=COUNTER+1
echo on 0 | cec-client RPI -s -d 1
sleep 5
echo as | cec-client RPI -s -d 1
until btmon | grep -m 1 '@ Device Disconnected'
do :
done
let COUNTER=COUNTER-1
if [ $COUNTER -eq 0 ];
then echo standby 0 | cec-client RPI -s -d 1;
fi
done
edycja: Aby to wyjaśnić, btmon
jest narzędziem do monitorowania Bluetooth, które jest częścią pakietu Bluez, a cec-client jest narzędziem, które jest spakowane z libCEC do wydawania poleceń przez magistralę szeregową HDMI-CEC (między innymi).
btmon
samo buforuje, w którym to przypadku nie masz szczęścia.
btmon
? czy jesteś pewien, że nie chodzi tylko o buforowanie?