2017-05-25 2 views
-1

Je configure la configuration d'un esclave/périphérique BLE qui a deux variables de contrôle dont chacune doit être lisible/inscriptible par le maître mais chacune peut également être modifiée par des boutons sur l'esclave. Je veux inclure un mécanisme pour que l'esclave sache au maître si les variables de contrôle sont changées localement sur l'esclave via les boutons. On s'attend à ce que l'Esclave soit assez souvent hors de portée du Maître, donc il y a vraiment deux exigences. La première est que l'esclave notifie le maître lorsqu'une variable de contrôle est modifiée localement et l'autre que le maître a besoin d'apprendre quel est l'état actuel des variables de contrôle chaque fois que la connexion est rétablie automatiquement. Je ne veux pas que le maître soit obligé d'interroger l'esclave quand il y a une connexion parce que j'essaie de minimiser la consommation d'énergie de l'esclave et de tels changements seront normalement très peu fréquents. Dois-je définir l'option «Notifier» dans la caractéristique du profil personnalisé contenant les deux variables ou configurer un service distinct (ou autre chose) qui effectue la notification. C'est OK si le maître doit lire le profil/caractéristique quand il est averti qu'un changement s'est produit. Je pense qu'il doit aussi y avoir un moyen que l'esclave puisse dire que le maître a reçu la notification afin qu'il puisse la réessayer à la prochaine occasion. Je suis en train d'apprendre sur BLE et il semble y avoir plusieurs façons de faire les choses et je n'ai pas trouvé de bonnes références qui expliquent les différentes options et leurs avantages/inconvénients.Quelle est la meilleure façon d'avoir un esclave BLE notifier un maître quand quelque chose se passe?

Répondre

0

Réglez simplement la propriété de notification sur la caractéristique. Lorsqu'une nouvelle valeur est disponible, envoyez une notification contenant la nouvelle valeur.

Pour "synchroniser" la valeur lors de la reconnexion, laissez simplement le maître lire la caractéristique. Vous pouvez également envoyer une notification.

Si vous voulez économiser de l'énergie sur le périphérique, je peux vous recommander la "latence esclave" si vous voulez encore un faible délai.