Pour fournir un mécanisme économe en énergie permettant à un appareil final en veille (SED) de vérifier qu'il est toujours connecté à son routeur parent (indiqué dans la table enfant du routeur parent), activez la fonctionnalité de supervision des enfants.
La spécification Thread exige qu'un SED effectue périodiquement un échange de requêtes et de réponses de mise à jour enfant MLE avec son routeur parent pour vérifier la connectivité. La supervision des enfants est une autre solution de vérification de la connectivité entre le SED et le routeur qui met la charge de la transmission des messages sur le routeur parent plutôt que sur le SED soumis à des contraintes énergétiques.
Fonctionnement
Cette fonctionnalité fonctionne de deux manières, en fonction du type de nœud et des paramètres configurés:
Sur le parent
Si un routeur parent ne transmet pas de données à son SED enfant dans le OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, le routeur parent met en file d'attente et envoie un message de supervision enfant au SED enfant. Le message de surveillance des enfants est un frame MAC contenant les informations suivantes :
- L'RLOC16 de la SED comme destination dans l'en-tête MAC.
- Charge utile vide.
Par défaut, un en-tête MAC contient une requête ACK 802.15.4. Pour désactiver cette requête dans le message de supervision des enfants, définissez le paramètre OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
sur 1.
Sur l'enfant
Si un SED ne reçoit pas de réponse de son routeur parent dans le délai OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, il suppose qu'il a perdu sa connexion au routeur parent et lance le processus MLE Attach pour se reconnecter au routeur parent.
Comment l'activer
Cette fonctionnalité est désactivée par défaut.
En définissant
Pour activer la supervision des enfants, définissez OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
sur 1
dans le fichier openthread/src/core/config/child_supervision.h
avant de créer OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
Par option
Vous pouvez également utiliser l'option de compilation -DOT_CHILD_SUPERVISION=ON
lors de la création d'OpenThread:
./script/build -DOT_CHILD_SUPERVISION=ON
Paramètres
Utilisez les paramètres suivants dans openthread/src/core/config/child_supervision.h
pour personnaliser cette fonctionnalité :
Paramètres | |||||
---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
Utilisez l'API Child Supervision pour gérer la supervision et vérifier les intervalles de délai avant expiration directement dans votre application OpenThread.
CLI
Aucune commande CLI n'est associée à cette fonctionnalité.