GNU/Linux >> Tutoriales Linux >  >> Linux

BlueZ:Cómo configurar un servidor GATT desde la línea de comandos

También me he enfrentado al mismo problema, pero podría encontrar una solución adecuada, lo que mejor puede hacer usando una pila bluez en una máquina Ubuntu es usar algunos comandos hci para anunciar paquetes LE. Estos paquetes se anunciarán constantemente, ya que esto es si se trata de un servidor LE. Si realiza un escaneo con un cliente GATT, obtendrá el nombre de su dispositivo bluez en la lista de escaneo.

Utilice los siguientes comandos a continuación:

Establezca los paquetes de publicidad LE con el siguiente 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

· Ahora anuncie los paquetes LE con el siguiente comando:

sudo hciconfig hcix leadv

Entonces esto ahora se maneja con el nuevo bluetoothctl herramienta. Se puede configurar una tabla gatt usando esta herramienta de la siguiente manera:-

#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

Probé esto con algunas combinaciones de servicio/características y pude hacerlo funcionar. Los servicios GAP (0x1800) y GATT (0x1801) están disponibles de forma predeterminada y formarán parte de la tabla GATT cuando haga publicidad. También puede usar el siguiente comando para ver los servicios disponibles:-

[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. ¿Cómo reiniciar Icewm desde la línea de comandos?

  2. ¿Cómo establecer una variable igual a la salida de un comando en Grub2?

  3. ¿Cómo silenciar desde la línea de comandos?

  4. ¿Cómo envío un correo electrónico desde la línea de comandos?

  5. ¿Cómo puedo ejecutar código PHP desde la línea de comandos?

Cómo reiniciar o reiniciar el servidor Linux desde la línea de comandos

Cómo buscar archivos desde la línea de comandos de Linux

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

¿Cómo crear un cuadro de mensaje desde la línea de comandos?

¿Cómo configurar el navegador predeterminado desde la línea de comandos?

¿Cómo obtengo mi dirección IP desde la línea de comandos?