Bluetooth Low Energy: Utiliser la pile BlueZ en tant que périphérique (avec des services et des caractéristiques personnalisés)

Je suis en train d'utiliser le BlueZ pile sur une machine Linux pour créer une GATT de serveur avec des services personnalisés et de ses caractéristiques. L'objectif final est d'utiliser un appareil central (par exemple, un appareil iOS ou Android) pour vous connecter à l'GATT de serveur, de découvrir les services et les caractéristiques, et de manipuler les données dans les caractéristiques.

Exemple:

  • Périphérique avec 1 service qui contient les 3 caractéristiques.
  • Service uuid = 0xFFFF
  • Char 1 uuid = 0xaaaaa, propriétés = lisible
  • Char 2 uuid = 0xBBBB, propriétés = lisible & écriture
  • Char 3 uuid = 0xCCCC, propriétés = déclaration obligatoire

De l'appareil central, je devrais voir le le périphérique, connectez-vous à découvrir un service (0xFFFF) qui a trois caractéristiques (0xaaaaa, 0xBBBB, 0xCCCC). Je dois être capable de lire la valeur de 0xaaaaa, lire et écrire à la valeur de 0xBBBB, et d'activer les notifications sur 0xCCCC.

Veuillez noter que je suis conscient qu'un question similaire existe, mais elle n'explique comment utiliser le périphérique en tant qu'annonceur. Un autre résolu la question explique comment créer une GATT de serveur, mais n'explique pas comment jouer avec les propriétés des caractéristiques (par exemple, lisible, à déclaration obligatoire, etc.), ou peut-être que je suis absent quelque chose.

Vous en remercie d'avance.

source d'informationauteur yousif saeed