Ver el código fuente en GitHub
Para proporcionar un mecanismo de bajo consumo para que un dispositivo final inactivo (SED) verifique que aún está conectado a su superior (que aparece en la tabla de elementos secundarios del superior), habilita la función de supervisión de elementos secundarios.
La especificación de Thread requiere que un SED realice periódicamente un intercambio de solicitud y respuesta de actualización de MLE Child con su superior para verificar la conectividad. La supervisión de elementos secundarios es una solución alternativa para la verificación de la conectividad de SED a superior que coloca la carga de la transmisión de mensajes en el superior en lugar de en el SED con restricciones de energía.
Cómo funciona
Esta función funciona de dos maneras, según el tipo de nodo y los parámetros configurados:
En el superior
Si un superior no transmite a su SED secundario dentro de la
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL,
el superior pone en cola y envía un mensaje de supervisión de elementos secundarios al
SED secundario. El mensaje de supervisión de elementos secundarios es un marco MAC que contiene la siguiente información:
- El RLOC16 del SED como destino en el encabezado MAC.
- Una carga útil vacía.
De forma predeterminada, un encabezado MAC contiene una solicitud de ACK 802.15.4. Para inhabilitar esta
solicitud en el mensaje de supervisión de elementos secundarios, establece el
OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST parámetro en 1.
En el hijo o hija
Si un SED no recibe información de su superior dentro de
OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT,
supone que perdió la conexión con el superior y, luego, inicia
el proceso de
conexión de MLE
para volver a conectarse a la red.
Cómo habilitar
Esta función está inhabilitada de forma predeterminada.
Por definición
Para habilitar la supervisión de elementos secundarios, define
OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE como 1 en el archivo
openthread/src/core/config/child_supervision.h
antes de compilar OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
Por opción
Como alternativa, usa la opción de compilación -DOT_CHILD_SUPERVISION=ON cuando compiles
OpenThread:
./script/build -DOT_CHILD_SUPERVISION=ON
Parámetros
Usa los siguientes parámetros en
openthread/src/core/config/child_supervision.h
para personalizar esta función:
| Parámetros | |||||
|---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
||||
API
Usa la API de supervisión de elementos secundarios para administrar los intervalos de supervisión y de tiempo de espera de verificación directamente en tu aplicación OpenThread.
CLI
No hay comandos de la CLI relacionados con esta función.