2017-09-09 2 views
0

Je travaille sur un croquis de base pour un Adafruit Huzzah qui utilise la bibliothèque Adafruit IO MQTT. Ceci est mis en place par copier/coller à partir de diverses sources et d'exemples, et fonctionne principalement - mais il y a une chose que je ne peux pas comprendre.Dernière valeur connue d'Adafruit IO sur Arduino

En ce moment, je suis en utilisant une ligne de code qui se déclenche au large un gestionnaire chaque fois qu'un nouveau message est reçu par l'alimentation Je suis abonné à:

group->onMessage("daniel", handleMessage); 

Cela est bien, et fait ce Je l'ai besoin de faire pour les valeurs qui sont mises à jour. Ce que je veux faire, cependant, est de saisir la dernière valeur connue sur le flux au cours de la routine setup(), plutôt que d'avoir à attendre qu'une nouvelle valeur apparaisse. Dans le langage MQTT, je crois que cela s'appelle des messages conservés, ce que je pense qu'Adafruit IO a par défaut, mais je ne sais pas comment récupérer ces valeurs pendant le processus startup().

Quelqu'un peut-il m'aider?

(Si vous êtes intéressé, voici mon code à ce jour: https://github.com/LimeBlast/family-box/blob/master/family-box.ino)

Répondre

1

Réponse courte est que vous ne ... rien faire.

Les messages conservés sont délivrés exactement comme les messages normaux (via le rappel onMessage), ils sont simplement livrés dès que vous vous abonnez au sujet.

+0

Oh, il semble que j'ai besoin d'une autre solution à mon problème - probablement celle qui utilise directement MQTT, au lieu d'Adafruit IO. Je vous remercie. –

+1

Voici comment MQTT pur fonctionne, les messages conservés sont toujours délivrés par le rappel onMessage – hardillb