2011-10-02 18 views
5

(bağlamadan?):Linux Bluetooth sinyal gücü l2ping burada herhangi bir Linux BlueZ/BT uzmanları için

Ben bir yol için "ping" bilinen BT cihazları (BDADDR bilinir) ve eğer içinde arıyorum aralık Yaklaşık sinyal gücünü bilmek istiyorum.

İlk önce l2ping'i çalıştırabileceğimi biliyorum, ardından cihaza bir bağlantı kurun ve en sonunda bağlantı eşleştirmeden önce çalışıldığında rssi veya bağlantı kalitesini kontrol edin.

Ancak, aradığım şey, önce cihaza bağlamadan sinyal gücünü elde etmenin bir yoludur. Mükemmel, l2ping yanıt paketinden bir sinyal gücü ölçümü olabilir, ancak bu bilginin mevcut olup olmadığını ve yığın boyunca geçirilip geçirilmediğini bilmiyorum.

cevap

5

Cihazlara bağlanmadan sorgulama sırasında RSSI alabilirsiniz. İşte pybluez kullanarak bir örnek. Aynı şeyi doğrudan Linux'tan Bluez'i kullanarak da yapabilirsiniz.

inquiry-with-rssi.py

+0

Bağlantı ve fikir için teşekkürler, ancak bu aygıtların, olması gerekmeyecek keşfedilebilir modda olmaları gerekir. Ping/ölçmek istediğim tüm cihazların bd_addr'ını biliyorum, bu yüzden hedeflerin keşfedilebilir modda olmasına gerek kalmadan l2 ile başladım. – Tom

+1

Bu durumda, hcitool (BlueZ yığınının bir parçası) kullanabilirsiniz. [Hcitool] (http://linuxcommand.org/man_pages/hcitool1.html). Şifreleme/kimlik doğrulama olmadan bir bağlantı oluşturan 'hcitool cc' yaparsanız, 'hcitool rssi' kullanarak rssi'yi izleyebilirsiniz. Tek sorun, bazı aygıtların kimliğinizi doğrulamadığınız sürece bağlantının etkin kalmasına izin vermeyebilir (eşleştir). – TJD

+1

Evet, işe yarıyor. Şimdiye kadar denediğim iki cihazın ikisi de (eşleştirilmemiş) bağlantının var olmasını sağladı, böylece rssi/lq'yi kontrol edebildim. Yani bu bir çalışma çözümü, ancak herkesin hedef alınmadan ve hedef belirlenmeden bir yolu bilmesi durumunda bunu görmeyi çok isterim. – Tom

2

benim iPhone 7 ve Ahududu Pi ile bu kodu kullanıyorum ve o inşaat büyük.

#!/bin/bash 

sudo hcitool cc AA:BB:CC:DD:EE:FF 2> /dev/null 

while true 
do 
    bt=$(hcitool rssi AA:BB:CC:DD:EE:FF 2> /dev/null) 
    if [ "$bt" == "" ]; then 
     sudo hcitool cc AA:BB:CC:DD:EE:FF 2> /dev/null 
     bt=$(hcitool rssi AA:BB:CC:DD:EE:FF 2> /dev/null) 
    fi 

    echo "$bt" 
done