GNU/Linux >> Linux Esercitazione >  >> Linux

BlueZ:come configurare un server GATT dalla riga di comando

Ho anche affrontato lo stesso problema, ma sono riuscito a trovare una soluzione adeguata, quello che puoi fare meglio usando uno stack bluez su una macchina Ubuntu è usare alcuni comandi hci per pubblicizzare i pacchetti LE. Questi pacchetti verranno costantemente pubblicizzati come this is se si tratta di un server LE. Se esegui la scansione utilizzando un client GATT, otterrai il nome del tuo dispositivo bluez nell'elenco di scansione.

Utilizzare i seguenti comandi di seguito:

Imposta i pacchetti pubblicitari LE con il seguente comando:

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

· Ora annuncia i pacchetti LE con il seguente comando:

sudo hciconfig hcix leadv

Quindi questo è ora gestito con il nuovo bluetoothctl attrezzo. Una tabella Gatt può essere impostata utilizzando questo strumento come segue:-

#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

L'ho provato con alcune combinazioni servizio/caratteristica e sono riuscito a farlo funzionare. I servizi GAP (0x1800) e GATT (0x1801) sono disponibili per impostazione predefinita e faranno parte della tabella GATT al momento dell'annuncio. Puoi anche usare il seguente comando per vedere i servizi disponibili:-

[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. Come installare il software dalla riga di comando di Linux

  2. Come riavviare Icewm dalla riga di comando?

  3. Come faccio a inviare e-mail dalla riga di comando?

  4. Come posso eseguire il codice PHP dalla riga di comando?

  5. Come ottenere l'URL del file Dropbox dalla riga di comando?

Come riavviare o riavviare il server Linux dalla riga di comando

Come cercare file dalla riga di comando di Linux

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come dire a quale versione di Os X mi trovo dalla riga di comando?

Come creare una finestra di messaggio dalla riga di comando?

Come impostare il browser predefinito dalla riga di comando?