Tartışma

Linux BlueZ Kütüphanesi Kullanarak C/C++ ile Bluetooth Cihazları Tarama

Başlatan Ceza · 16 Nis 2026 11:39 · 18 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Bluetooth, kablosuz iletişim dünyasında önemli bir yere sahipken, Linux platformunda bu teknolojiyi kullanmak için BlueZ kütüphanesi devreye giriyor. BlueZ, Linux için resmi Bluetooth protokol yığınıdır ve C/C++ ile geliştirme yaparken harika bir araçtır. İlk olarak, BlueZ kütüphanesinin kurulumunu gerçekleştirmekle başlayalım. Ubuntu tabanlı bir sistemi tercih ediyorsanız, terminale şu komutu yazmanız yeterli olacaktır: `sudo apt-get install bluez libbluetooth-dev`. Kurulum tamamlandıktan sonra, Bluetooth cihazlarını taramak için gerekli olan temel kod yapısını oluşturmanız gerekiyor.

Bluetooth cihazları taramak için, önce bir "Bluetooth soketi" oluşturmalısınız. Bu soket, Bluetooth cihazlarıyla iletişim kurmanın temelini oluşturur. C dilinde, `socket` fonksiyonu ile soket oluşturma işlemini gerçekleştirebilirsiniz. Örneğin, soketin türünü `AF_BLUETOOTH` ve protokolünü `BTPROTO_RFCOMM` olarak ayarlamanız gerekecek. Bu noktada, soketi oluşturduktan sonra, ilgili ayarları yapılandırmanız için `bind` fonksiyonunu kullanmalısınız. Ardından, tarama işlemini başlatmak için `hci_open_dev` fonksiyonunu çağırarak Bluetooth adaptörünüzü açmalısınız. Hangi cihazların etrafta olduğunu görmek için `hci_inquiry` fonksiyonunu kullandığınızda, çevredeki Bluetooth cihazlarının bilgilerini alabileceksiniz.

Cihazları taradıktan sonra, her bir cihazın bilgilerini işlemek için bir döngü kurmalısınız. Bu döngüde, `hci_read_remote_name` fonksiyonu ile her bir cihazın adını alabilir ve bu bilgiyi ekrana yazdırabilirsiniz. Tabii ki, cihaz adları bazen boş olabiliyor, bu durumda bir hata kontrolü yapmakta fayda var. Bununla birlikte, her bir cihazın adresini de elde edebilmek için `bdaddr_t` yapısını kullanmalısınız. Bu yapı, Bluetooth cihazlarının adreslerini saklamak için oldukça kullanışlıdır ve kısa bir süre içinde tüm cihazların adreslerini elde etmenizi sağlar.

C/C++ ile geliştirme yaparken, kodunuzu derlemek için `gcc` veya `g++` kullanmalısınız. Örneğin, `gcc -o bluetooth_scan bluetooth_scan.c -lbluetooth` komutunu kullanarak kodunuzu derleyebilirsiniz. Derleme işlemi tamamlandıktan sonra, oluşturduğunuz çalıştırılabilir dosyayı çalıştırarak çevredeki Bluetooth cihazlarını kolayca görebilirsiniz. İşte bu kadar basit! Tarama işlemi sırasında dikkat etmeniz gereken bir diğer nokta ise, cihazların bağlantı durumlarıdır. Eğer bir cihaz daha önce eşleştirilmişse, bu durumda bağlantı bilgilerini almak için `hci_read_remote_features` fonksiyonunu kullanabilirsiniz.

Son olarak, BlueZ ile çalışırken, hangi cihazların çevrede olduğunu anlamak için tarama işleminin sürekliliği önemlidir. Bir döngü içerisinde belirli aralıklarla tarama işlemini tekrarlamak, yeni cihazları ve bağlantıları sürekli takip etmenizi sağlar. Örneğin, `sleep(5)` komutunu kullanarak her 5 saniyede bir tarama yapabilirsiniz. Bu sayede, çevredeki Bluetooth cihazlarının anlık durumunu takip edebilir ve gerektiğinde müdahale edebilirsiniz. Kolay gelsin ve kodlamanın tadını çıkarın!

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi