La création d'une Gatt de Serveur?
J'ai un plus large éventail question ici, donc si quelqu'un pouvait m'indiquer un doc ou un article qui pourrait expliquer ce qui suffirait. Inutile de dire qu'un jours d'une valeur de googler je me suis retrouvée nulle part, et je pourrait utiliser un coup de main.
Je suis de la connexion à un BeagleBoard avec BlueZ 5.9, et mon intention est de:
- Créer une Gatt de serveur,
- Charge avec quelques pas accessible en écriture aux attributs, et
- De faire de la publicité server pour vous connecter à un appareil android.
J'ai créé l'application Android qui permettront de connecter et d'utiliser, dans la centrale, le rendu de 3 essentiellement terminée. Je ne sais pas comment les commandes - le littéral choses à type d'initier une Gatt de serveur /créer des attributs sur la BeagleBoard. Je suis su le matériel au sens large, donc il est possible que je viens d'avoir ma terminologie tout à fait incorrect - cela dit, toute aide serait appréciée dans l'achèvement 1 et 2, même si c'est juste un pousser dans la bonne direction. Merci!
Vous devez vous connecter pour publier un commentaire.
Votre terminologie est essentiellement correcte.
Généralement, une GATT de base de données a les services 0x1800 (Generic Access) et 0x1801 Générique (Attribut) au moins. Le Générique du service d'Accès contient obligatoire de deux caractéristiques: Nom De L'Appareil et Apparence. Le Générique de l'Attribut de service doit être vide.
Par conséquent, le minimum GATT de base de données ressemble à ceci:
Après ces deux services, vous pouvez ajouter vos propres services. Dans votre cas, vous ne semblez pas pour cible un service connu, de sorte que vous allez créer un propre.
Tout d'abord, créez un cryptage de 128 bits UUID, par exemple à l'aide de la
uuidgen
outil sur votre Mac ligne de commandeCe sera votre UUID de service
Ensuite, vous avez mentionné que vous souhaitez plusieurs inscriptible caractéristiques. Donc, nous allons créer un autre UUID pour que l'on.
Et ajouter une caractéristique à la service
Votre valeur de caractéristique ne doit pas dépasser 20 octets, et vous devez sélectionner "Demande d'Écriture" pour s'assurer que les accusés de réception de l'écrit sont envoyés à la centrale. Si vous choisissez l'option "Commande d'Écriture", écrit peut être jeté en soit de votre téléphone de la pile ou de la périphérie.
Après avoir défini cette caractéristique, vous êtes prêt à commencer à coder.
Je ne connais pas la BeagleBoard SDK, mais généralement, on commence par l'initialisation du GATT de bibliothèque et d'autres modules (par exemple, à l'appui de l'écrit, vous devez l'initialiser une deuxième partie de la bibliothèque).
Après cette initialisation, vous enregistrez votre GATT de base de données. Si vous n'avez pas un bel outil pour générer les données binaires, vous pourriez avoir à les écrire vous-mêmes. C'est expliqué dans le Bluetooth De Base Spec V4.0. Espérons que vous pouvez trouver une API qui ne la transformation pour vous 🙂
Lorsque l'inscription est réussie, vous devez définir les paramètres de la publicité et vous pouvez commencer à faire de la publicité (consultez le kit de développement logiciel de la documentation et des échantillons pour cela, encore une fois).
Ce qui se passe maintenant, c'est qu'à un certain moment, vous obtiendrez un rappel qu'une connexion a été établie, et plus tard, vous obtiendrez un attribut de la demande, pour un identifiant donné. Ensuite, il vous suffit de traiter la demande par la recherche au niveau de la poignée, la valeur et le type de l'opération (lecture /écriture). N'oubliez pas de toujours renvoyer une valeur de succès ou un code d'erreur en réponse à la demande, car sinon, vous allez verrouiller les communications Bluetooth.
Normalement, ces puces Bluetooth toujours travailler avec les opérations asynchrones. Vous pourrez envoyer une demande, et de devoir attendre jusqu'à ce que la demande est terminée avant d'envoyer la suivante. Rappelez-vous que lors de la programmation, il vous fait gagner du temps :-).
Si vous voulez essayer sur Android d'abord parce que c'est plus familier pour vous, vous pouvez essayer le Galaxy S 4 avec Android 4.2. Il dispose également d'un CHIER de périphérique en mode - je n'ai pas testé sa fiabilité, cependant. Le plus fiable smartphone pile au moment d'agir en tant que LE périphérique est actuellement en iOS 7 - de sorte qu'il peut être la peine de ramasser un iPod touch si c'est abordable pour jouer avec elle.
Caisse bleno, c'est un BLE périphérique de la pile de la bibliothèque que j'ai créé pour node.js récemment. Il prend actuellement en charge de Linux (testé avec BlueZ 4.101) et OS X 10.9.
Il y a des exemples de comment l'utiliser ici et ici.
La clé pour personnaliser gatt de service est le démon programme bluetoothd de bluez.
J'ai décrit comment personnaliser une gatt de service dans mon blogueur, s'il vous plaît vérifier.