Bluez Programmierung

8

Ich programmiere in BlueZ auf meinem Raspberry Pi mit einem USB Bluetooth Dongle. Ich muss in der Lage sein, programmatisch eine Verbindung zu einem Arduino BT herzustellen, das Problem ist, dass das Bluetooth-Modul des Arduino immer noch Legacy-Pairing verwendet, also wenn ich versuche, einen Socket zum Gerät zu öffnen, bekomme ich ein Permission Denied . Wie sende ich eine PIN, um die Kopplungsanfrage über BlueZ abzuschließen?

    
Sombrero Chicken 21.04.2015, 08:40
quelle

1 Antwort

8

Sie können die Datei main.c im Ordner Client überprüfen des neuesten Bluez-Quellcodes. Es ist der Quellcode für das Bluetoothctl-Tool. Lass es auch laufen. Der Quellcode zeigt genau, wie sie GDBus verwenden, einschließlich Proxies, Agenten, Aufrufmethoden wie in der API beschrieben ( / doc-Ordner ) und all das. Es ist in C und verwendet die High-Level-API.

Ich schlage vor, Sie gehen durch den Code, weil ich zwei Wochen lang endlos versucht habe, Bluez in C zu verstehen und die Tatsache, dass es keine Dokumentation gibt, aber als ich diese main.c-Datei gelesen habe, war ich an einem Tag fertig. Informieren Sie sich über die richtige Dbus-API-Dokumentation und noch wichtiger über die Konzepte. Einige Dokumente, die mir geholfen haben:

Das gdbus-Werkzeug: Ссылка

Diese enthalten alle Aufrufe an gdbus und Objekte in der main.c -Datei und erklären sie sehr gut. Ссылка

D-Feet, ein unschätzbares Werkzeug zur Überprüfung und zum Lernen von Dbus auf Ihrem System. Probieren Sie den / bluez-Bus aus. Ссылка

oder

sudo apt-get install d-feet

Nicht viel von einem Tutorial, aber eine Lektüre wert, um einige Konzepte zu verstehen, da das Bluetoothctl-Tool in das passt, was sie hier zu sagen versuchen. Ссылка

Das bluetoothctl erstellt jedoch eine interaktive Shell, daher ist es möglicherweise nicht ratsam, Zeit zu verschwenden, um Ihren Code anzupassen, sondern wählen Sie einfach aus, was Sie benötigen.

    
Zimano 05.10.2015, 22:15
quelle

Tags und Links