Afficher le code source sur GitHub
Pour fournir un mécanisme économe en énergie à un appareil endormi (SED) pour vérifier qu'il est toujours connecté à son routeur parent (répertorié dans la table enfant du routeur parent), activez la fonctionnalité de supervision enfant.
La spécification Thread nécessite un SED pour effectuer régulièrement une requête de mise à jour enfant et une échange de réponse MLE avec son routeur parent pour vérifier la connectivité. La supervision enfant est une solution alternative pour la vérification de la connectivité du routeur SED qui place la charge de transmission des messages sur le routeur parent plutôt que sur le SED à contrainte énergétique.
Comment ça marche ?
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 à son SED enfant dans le OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, le routeur parent met en file d'attente et envoie un message Supervision enfant au SED enfant. Le message Supervision enfant est un cadre MAC contenant les informations suivantes:
- RLOC16 du SED comme destination dans l'en-tête MAC.
- Une charge utile vide.
Par défaut, un en-tête MAC contient une requête de confirmation 802.15.4. Pour désactiver cette requête dans le message Supervision enfant, définissez le paramètre OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
sur 1.
Sur l'enfant
Si un SED n'entend pas de son routeur parent dans le OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, il suppose qu'il a perdu sa connexion au routeur parent et lance le processus MLE Attach pour le rattacher au routeur parent.
Comment l'activer
Cette fonctionnalité est désactivée par défaut.
Par définition
Pour activer la supervision enfant, définissez OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
comme 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 délais d'expiration directement dans votre application OpenThread.
CLI
Aucune commande CLI ne correspond à cette fonctionnalité.