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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez voir gatt-exemple de la pratique, ou des profils définis en vertu du profil/répertoire comme alerte/serveur.c. Fondamentalement, vous avez juste à vous inscrire à votre service à l'aide de gatt_service_add() de la fonction, à la suite du code existant. Par exemple :
Aussi, j'ai oublié les détails, mais dans le but d'obtenir alerte le travail de serveur, vous devez activer expérimentale (et responsable de mode?) au cours de la configuration en ajoutant "--enable-responsable-mode" et "--enable-expérimentale"
De courir, de courir compilé "bluetoothd"- n et -d options de debug (aussi-E pour l'activation des services expérimentaux). Vous pouvez réinitialiser votre adaptateur de nouveau après l'exécution de bluetoothd. Et puis vous pouvez vous connecter à partir de l'appareil à distance à l'aide de gatttool (également avec bluetoothd en cours d'exécution sur un appareil distant).
1) goto Bluez dossier
2) sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --, localstatedir=/var --disable-systemd --enable-expérimental --enable-responsable-mode
3) sudo make tous
4) faire de la Publicité connectable paquets
5) sudo service bluetooth arrêter
6) sudo src/bluetoothd -d-n
7) à Partir d'un autre PC, type (Changement de MAC-id gatt de serveur mac)
l'étape 6 est dans le cas où vous voulez compiler plugins/gatt-exemple.c
si vous voulez compiler serveur.c de profil/temps ou profile/alerte(remplacer avec de l'alerte à la place de l'heure) ou tout autre fichier dans profil dossier remplacer étape 6
sudo src/bluetoothd --plugin=temps -n