Pour fournir un mécanisme écoénergétique à un périphérique endormi (SED) pour vérifier qu'il est toujours connecté à son routeur parent (répertorié dans le tableau enfant du routeur parent), activez la fonction de supervision enfant.
La spécification de thread exige qu'un SED effectue périodiquement une demande de mise à jour enfant MLE et un échange de réponse 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 le fardeau de la transmission des messages sur le routeur parent plutôt que sur le SED à énergie limitée.
Comment ça fonctionne
Cette fonctionnalité fonctionne de deux manières, selon le type de nœud et les paramètres configurés:
Sur le parent
Si un routeur parent ne transmet pas à son SED enfant dans 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 supervision enfant est une trame MAC contenant les informations suivantes:
- Le 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 802.15.4 ACK. Pour désactiver cette demande dans le message de 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 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 activer
Cette fonctionnalité est désactivée par défaut.
Par définir
Pour activer la supervision enfant, définissez OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
comme 1
dans le fichier /src/core/config/child_supervision.h
, avant de construire OpenThread :
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE #define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1 #endif
Par interrupteur
Vous pouvez également utiliser le commutateur de construction CHILD_SUPERVISION=1
lors de la construction d'OpenThread :
make -f examples/Makefile-<platform> CHILD_SUPERVISION=1
Paramètres
Utilisez les paramètres suivants dans /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 les intervalles de supervision et de vérification des délais d'expiration directement dans votre application OpenThread.
CLI
Il n'y a pas de commandes CLI liées à cette fonctionnalité.