Wie initiieren BLE pairing auf BlueZ
Möchte ich initiieren Sie die Kopplung über Bluez mit einem Bluetooth Low Energy Gerät.
Zwar gibt es einige Beiträge, wie zum auslösen des SMP-Verfahren für die Verwendung von GATT, gibt es nicht viel zur Verfügung, wenn Sie nicht verwenden möchten, GATT.
Mein Anwendungsfall ist, dass ich verwenden möchten, eine verschlüsselte Verbindung für bluetooth-6lowpan, die den Austausch von Daten über L2CAP-Kredit-Modus und nicht ATT/GATT.
Des weiteren würde ich gerne die OOB-Modus für SMP-Kopplung.
Zeiger auf, wie ich konnte trigger SMP-Kopplung entweder über die Kommandozeile oder schreiben Sie ein C-Programm geschätzt wird.
Danke!
- Deine Frage ist viel zu breit. Eine konkretere Frage würde helfen. Wenn Sie wollen, um das paar von der Befehlszeile, die Sie verwenden können, die
bluetoothctl
- Dienstprogramm. Wenn Sie wollen paar programmgesteuert verwenden Sie dann die bluez DBUS-Gerät-API - Danke Alan! Ich habe bearbeitet Sie meine Frage nach Ihrem Vorschlag! Die bluetoothctl utility scheint nicht auf meinen Plattformen (Ubunut-und R-Pi). Ich habe bluetooth-agent für das auslösen der Paarung, aber ich kann nicht herausfinden, wie man set pairing-Parameter wie OOB-Daten. Alle input ist willkommen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es möglich ist, um BLE pairing ohne den Einsatz von GATT-Befehle (aus der command-line-only). Der Grund dafür ist, dass die Sicherheit in LE ist GATT-Aktion-basierte. In anderen Worten, das Merkmal/service-Berechtigungen bestimmen, ob Sie brauchen, um das Pairing mit dem Gerät oder nicht (D. H. Lesen Sie den Herzfrequenz-Merkmal, das Gerät könnte vorschreiben, dass Sie müssen gepaart werden, der erste). Für diesen, der Betrieb wäre so etwas wie:
Dieser Befehl wird den Aufbau der Paarung zuerst vor dem Lesen des Merkmals.
Als für wie Sie dies mit einem C-Programm, können Sie die BlueZ source-code und schauen Sie, was passieren, diese "sec-level" - option hat. Ich habe schnell durchgeblättert Sie den code und fand diese in utils.c:-
wo die sec ist mit sec = BT_IO_SEC_HIGH;
Ich hoffe, das hilft.