GNU/Linux >> Tutoriels Linux >  >> Linux

BlueZ :Comment configurer un serveur GATT depuis la ligne de commande

J'ai également rencontré le même problème, mais j'ai pu trouver une solution appropriée, ce que vous pouvez faire de mieux en utilisant une pile bluez sur une machine Ubuntu est d'utiliser certaines commandes hci pour annoncer les paquets LE. Ces paquets seront constamment annoncés comme s'il s'agissait d'un serveur LE. Si vous optez pour une analyse à l'aide d'un client GATT, vous obtiendrez le nom de votre appareil bluez sur la liste d'analyse.

Utilisez les commandes suivantes ci-dessous :

Définissez les paquets de publicité LE à l'aide de la commande suivante :

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

· Annoncez maintenant les paquets LE par la commande suivante :

sudo hciconfig hcix leadv

Donc, cela est maintenant géré avec le nouveau bluetoothctl outil. Une table gatt peut être configurée à l'aide de cet outil comme suit :-

#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

J'ai essayé cela avec quelques combinaisons service/caractéristiques et j'ai pu le faire fonctionner. Les services GAP (0x1800) et GATT (0x1801) sont disponibles par défaut et feront partie de la table GATT lors de la publication. Vous pouvez également utiliser la commande suivante pour voir les services 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. Migrer un serveur Linux depuis la ligne de commande

  2. Comment envoyer un e-mail à partir de la ligne de commande ?

  3. Comment effacer le contenu d'un fichier depuis la ligne de commande ?

  4. Comment connaître la version de Bluez à partir de la ligne de commande ?

  5. Comment puis-je obtenir mon adresse IP à partir de la ligne de commande ?

Comment redémarrer ou redémarrer le serveur Linux à partir de la ligne de commande

Comment rechercher des fichiers à partir de la ligne de commande Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment créer une boîte de message à partir de la ligne de commande ?

Comment définir une variable égale à la sortie d'une commande dans Grub2 ?

Comment définir le navigateur par défaut à partir de la ligne de commande ?