GNU/Linux >> LINUX-Kenntnisse >  >> Linux

BlueZ:Wie man einen GATT-Server von der Kommandozeile aus einrichtet

Ich hatte auch das gleiche Problem, konnte aber eine geeignete Lösung finden. Was Sie am besten mit einem Bluez-Stack auf einem Ubuntu-Computer tun können, ist die Verwendung einiger hci-Befehle, um LE-Pakete anzukündigen. Diese Pakete werden ständig angekündigt, da dies der Fall ist, wenn es sich um einen LE-Server handelt. Wenn Sie mit einem GATT-Client scannen, erhalten Sie den Namen Ihres bluez-Geräts in der Scan-Liste.

Verwenden Sie die folgenden Befehle unten:

Legen Sie die LE-Ankündigungspakete mit dem folgenden Befehl fest:

sudo hcitool -i hcix cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8 00

· Kündigen Sie nun die LE-Pakete mit dem folgenden Befehl an:

sudo hciconfig hcix leadv

Daher wird dies jetzt mit dem neuen bluetoothctl gehandhabt Werkzeug. Eine Gatt-Tabelle kann mit diesem Tool wie folgt eingerichtet werden:-

#bluetoothctl
[bluetoothctl] menu gatt
[bluetoothctl] register-service 0xFFFF # (Choose yes when asked if primary service)
[bluetoothctl] register-characteristic 0xAAAA read       # (Select a value of 1 when prompted)
[bluetoothctl] register-characteristic 0xBBBB read,write # (Select a value of 0 when prompted)
[bluetoothctl] register-characteristic 0xCCCC read       # (Select a value of 2 when prompted)
[bluetoothctl] register-application # (This commits the services/characteristics and registers the profile)
[bluetoothctl] back
[bluetoothctl] advertise on

Ich habe dies mit ein paar Kombinationen von Diensten und Merkmalen ausprobiert und konnte es zum Laufen bringen. Die Dienste GAP (0x1800) und GATT (0x1801) sind standardmäßig verfügbar und werden Teil der GATT-Tabelle, wenn Sie werben. Sie können auch den folgenden Befehl verwenden, um die verfügbaren Dienste anzuzeigen:-

[bluetoothctl] show
Controller 00:AA:BB:CC:DD:EE (public)
    Name: MyMachine
    Alias: MyMachine
    Class: 0x000c0000
    Powered: yes
    Discoverable: no
    Pairable: yes
    UUID: Headset AG                (00001112-0000-1000-8000-00805f9b34fb)
    UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
    UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
    UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
    UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
    UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
    **UUID: Unknown                   (0000ffff-0000-1000-8000-00805f9b34fb)**
    UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
    Modalias: usb:v1D6Bp0246d0532
    Discovering: no

Linux
  1. Wie starte ich Icewm von der Befehlszeile aus neu?

  2. Wie setze ich eine Variable gleich der Ausgabe eines Befehls in Grub2?

  3. So leiten Sie Text von der Befehlszeile in die Zwischenablage

  4. Wie kann ich einen Ordner über die Linux-Befehlszeile kopieren?

  5. Wie erhalte ich die URL der Dropbox-Datei von der Befehlszeile?

So starten oder starten Sie den Linux-Server über die Befehlszeile neu

So suchen Sie nach Dateien über die Linux-Befehlszeile

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

Wie erstelle ich ein Meldungsfeld von der Befehlszeile aus?

Wie kann man von der Befehlszeile aus stummschalten?

Wie stelle ich den Standardbrowser über die Befehlszeile ein?