Verwenden Sie BlueZ Stack als Peripheriegerät (Werbetreibender)
-
Ziel: Verwenden BlueZ und eine Bluetooth 4LE-dongle, erstellen Sie ein Peripheriegerät, das wirbt für die bluetooth-äquivalent von "Hallo Welt".
-
Wo ich bin: ich habe momentan noch die BlueZ-stack-setup und heruntergeladen, kann ich die hci-tool zu erkennen und zu sehen, die Bluetooth-dongle. Ich habe gebastelt mit hciconfig leadv aber ich bin mir gerade nicht ganz mit bekommen es zu begreifen, was Los ist.
-
Was Helfen, ich Glaube, ich Brauche: ich brauche, um es zum nächsten Schritt. Wenn jemand kann entweder zeigen Sie mir, in Richtung eine gute Ressource, gehen mir durch dieses, oder irgendetwas, Es wäre sehr geschätzt werden. Wenn ich tun müssen, zusätzliche Bein - (such -) Arbeit, die ich kann, aber ich habe Google durchforstet und mit SO vielen verschiedenen Derivate dieser Frage, wie ich denken kann.
*Ich getaggt dies als CoreBluetooth als auch in der Hoffnung, dass vielleicht ein iOS-dev gebastelt hat, mit dieser irgendwann.
EDIT: In Antwort auf einen Kommentar, scheint Es klug, zu sagen, was mein Ziel ist. Ich würde nämlich gerne werben, die über den dongle der einfachste der einfachen Botschaften/Signale und pick, dass bis auf ein iOS-Gerät (CoreBluetooth). Ich habe in der Lage zu Holen Sie sich die iOS-Seite der Dinge gut (tonnenweise Dokumentation im Vergleich zu den Linux-Seite der Dinge), aber das schwierige Teil für mich ist immer dieser adapter die Einrichtung als eine periphere. Der BlueZ-stack ist eine schreckliche Rätsel für mich.
EDIT: Nach mehr zu Graben, habe ich schließlich stolperte über diesen Beitrag: Raspberry Pi Bluetooth 4.0-Verbindung.
Dies führte mich zum Thema der GATT-server, werde ich weiter verfolgen das Thema.
EDIT: Okay also meine Suche für das lernen geht weiter. In den letzten paar Tagen hab ich tauchte tiefer in die hci*, sdptool, und gatttool tools. Ich bin zu dem Punkt des seins in der Lage, den adapter zu werben, "hciconfig hci0 leadv". An dieser Stelle kann ich erfolgreich "siehe" den adapter, aber ich kann eigentlich alles Lesen. Ich bin mir auch nicht zu sehen, der freundliche name. Ich halte von LKW auf, aber wie immer, jede Hilfe/Anregungen sind mehr als willkommen.
EDIT: Entsprechenden Link, solide übersicht von Bluetooth LE in Bezug auf iOS.
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html#//apple_ref/doc/uid/TP40013257-CH1-SW1
LETZTE änderung: Hey all, dieser link beschreibt, wie erstellen Sie ein iBeacon mit einem Raspberry Pi + BlueZ...
http://www.wadewegner.com/2014/05/create-an-ibeacon-transmitter-with-the-raspberry-pi/
InformationsquelleAutor der Frage Ceryni | 2013-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Ihrem Bluetooth-dongle eingesteckt ist, läuft der folgende Befehl wird Ihnen sagen, den Namen des Geräts und geben Sie Ihre Status:
$ hciconfig
Sollte die Ausgabe etwa so Aussehen:
Dieser zeigt an, das Gerät wird als hci0 ist in einem down-Zustand. Geben Sie den folgenden Befehl, um es zu bringen bis:
$ sudo hciconfig hci0 up
Nun sollte es so Aussehen:
Nächsten, führen Sie die folgenden Beispiel-Befehl zum konfigurieren der Werbung-Daten werden gesendet.
Können Sie ändern die hex-bytes (beginnend mit 1e) zum senden von verschiedenen byte-Sequenzen für Ihre Werbung. Buchstäblich sendet den ASCII-Code für "HELLO WORLD" verwenden würde:
48 45 4c 4c 4f 57 4f 52 4c 44
(EDIT: Aber Sie haben auch Präfix diese Nachricht mit einem gültigen header, siehe hier.)Nun, verwenden Sie den folgenden Befehl zum aktivieren der Werbung auf den dongle, wird diese starten senden "Helo World" - Pakete.
$ sudo hciconfig hci0 leadv 0
EDIT: der obige Befehl macht das angekündigte service anschließen. Wenn Sie nicht möchten, dass verbindungen, es zu ändern
$ sudo hciconfig hci0 leadv 3
Können Sie auch deaktivieren Sie die Werbung mit dem folgenden Befehl:
$ sudo hciconfig hci0 noleadv
InformationsquelleAutor der Antwort davidgyoung
hinzufügen einige hier weitere Informationen (ref BlueZ5.x):
bluez ist nicht auszusetzen DBUS-api für die gatt-server registeration; Sie haben einige profile Umsetzung, aber Sie müssen zum konfigurieren und kompilieren mit --enable-experimental-option oder aktivieren gatt-Beispiel unter plugin-Ordner tha tregister einige gatt-server als Beispiel
wenn Ihr werben tut hciconfig hci0 leadv achten angekündigten Daten.
im Beispiel unten für iBeacon
sudo hcitool -i hci0 cmd 0x08 0x0008 1e **02 01 1a** ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00
den Fett gedruckten Teil ist für eine AD-Struktur, die rund um flags-Feld (überprüfen Sie unter " bluetooth-spec für advertisgin Daten-format). Mit diesem Flaggen-Einstellungen das Gerät ist Werbung sich als simultan-LE und BR-EDR.
Meiner Erfahrung nach bei der Werbung in dieser Weise zu einem android-Gerät, Scannen Sie den bluez-Gerät fungiert als BLE-Peripheriegerät auslösen wird, eine Verbindung über die Klassische bluetooth (wegen flag-Einstellungen) und nicht über BLE (beachten Sie, dass die Verbindung der Verfahren sind unterschiedlich für LE und Classic). Nicht sicher, wie der Apple-zentrale Geräte-act in diesem Fall. Sowieso, es zu vermeiden, können Sie festlegen, 06 anstelle von 1A, so dass BR-EDR-Unterstützung ist angekündigt. Auf diese Weise werden Sie sehen, dass eine Verbindung über BLE.
Wenn Sie es testen wollen, mit einem zentralen Android-Gerät, es ist ein kostenloser Nordic-app.
InformationsquelleAutor der Antwort user3891941