2016-07-05 1 views
0

Je dispose actuellement d'un périphérique Bluetooth basse consommation (écrit en swift, une machine OSX) avec un seul service. Le service a deux caractéristiques, une qui doit être écrite par un périphérique central (Android) avec une chaîne représentant une commande, et une autre que le périphérique écrit avec une réponse correspondant à la commande qu'il a reçue.Conception de système basse énergie Bluetooth, protocole de réponse

La question que j'ai est la suivante: est-ce une façon normale de procéder? Ou y a-t-il une meilleure façon de répondre à une écriture de l'appareil central? J'ai également du mal à écrire le côté Android de cela, j'ai utilisé BLE Scanner pour tester et cela a fonctionné parfaitement mais je ne peux pas trouver la source d'un exemple qui fonctionne de manière similaire.

Répondre

0

vous pouvez le faire mais ce n'est pas la manière normale. C'est aussi fondamentalement comment vous voyez l'échange de données. BLE est conçu de manière à ce que l'esclave (périphérique) fournisse des caractéristiques différentes lorsque vous écrivez et lisez des données sur l'esclave (comme un registre) ou que l'esclave envoie des notifications pour informer le maître des modifications. Votre réponse sera écrite dans votre deuxième caractéristique et vous la lirez avec le scanner Ble ou? Donc, ce n'est pas un "envoi réel de réponse" vous venez d'écrire les données et lire à partir du maître. Le maître doit toujours envoyer une demande à l'esclave. (Sauf les notifications)

J'espère que cela vous aide.

br

+0

Essentiellement, le maître envoie une commande qui est analysé par l'esclave et l'esclave répond par un message spécifique à la demande spécifiée par ladite instruction. Il y a BEAUCOUP de commandes et de réponses différentes en ce moment, pensez-vous que je devrais réécrire chaque réponse de commande comme sa propre caractéristique? Par exemple, j'envoie DEV_00 GET_NAME et je reçois DEV_00 NAME = "SampleName" ... SampleName devrait-il être stocké en tant que caractéristique? –

+0

et la raison principale pour laquelle je préfère ne pas faire cela est parce que la façon dont il est mis en place fonctionne maintenant bien sur USB (UART série), et mon objectif est simplement de convertir ce protocole en bluetooth. –

+0

Oui exactement, En outre il y a déjà des caractéristiques prédéfinies exactes pour cela. Regardez [ceci] (https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicsHome.aspx) Il y a une liste de toutes les caractéristiques spécifiques de bluetooth. Le nom de l'appareil est déjà défini par Bluetooth SIG, vous pouvez donc l'utiliser. – ph10