A fin de proporcionar un mecanismo de eficiencia energética para que un dispositivo final con sueño (SED) verifique que aún esté conectado a su router superior (que aparece en la tabla secundaria del router superior), habilita la función de supervisión del niño.
La Especificación Thread requiere un SED para realizar periódicamente un intercambio de solicitudes y respuestas de actualización de MLE con su router superior para verificar la conectividad. La supervisión del niño es una solución alternativa para la verificación de la conectividad del router SED que coloca la carga de la transmisión de mensajes en el router superior en lugar del SED de energía limitada.
Cómo funciona
Esta característica funciona de dos maneras, según el tipo de nodo y los parámetros configurados:
Padre
Si un router superior no transmite a su SED secundario dentro de OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, el router superior pone en cola y envía un mensaje de supervisión secundario al SED secundario. El mensaje de supervisión secundaria 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 ACK 802.15.4. Para inhabilitar esta solicitud en el mensaje de supervisión del niño, establece el parámetro OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
en 1.
En el niño
Si un SED no recibe noticias del router superior en el OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, se supone que perdió la conexión con el router superior y se inicia el proceso MLE Connect para volver a conectarse al router superior.
Cómo habilitar
Esta función está inhabilitada de forma predeterminada.
Por definición
Para habilitar la supervisión secundaria, 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 secundaria para administrar la supervisión y verificar los intervalos de tiempo de espera directamente en tu aplicación de OpenThread.
CLI
No hay comandos de la CLI relacionados con esta característica.