Para proporcionar un mecanismo de eficiencia energética para que un dispositivo final adormecido (SED) verifique que todavía está conectado a su enrutador principal (enumerado en la tabla secundaria del enrutador principal), habilite la función de supervisión infantil.
La especificación de subprocesos requiere que un SED realice periódicamente una solicitud de actualización secundaria de MLE y un intercambio de respuesta con su enrutador principal para verificar la conectividad. Child Supervision es una solución alternativa para la verificación de la conectividad del enrutador SED que coloca la carga de la transmisión de mensajes en el enrutador principal en lugar de en el SED con restricción de energía.
Cómo funciona
Esta función funciona de dos formas, según el tipo de nodo y los parámetros configurados:
En el padre
Si un enrutador principal no transmite a su SED secundario dentro de OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, el enrutador principal se pone en cola y envía un mensaje de supervisión secundaria al SED secundario. El mensaje de supervisión de niños es una trama 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 deshabilitar esta solicitud en el mensaje de supervisión infantil, establezca el parámetro OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
en 1.
En el niño
Si un SED no OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
noticias de su enrutador principal dentro de OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, asume que ha perdido su conexión con el enrutador principal e inicia el proceso de conexión MLE para volver a conectarse al enrutador principal.
Cómo habilitar
Esta función esta desactivada por defecto.
Por definir
Para habilitar la supervisión infantil, defina OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
como 1
en el archivo /src/core/config/child_supervision.h
, antes de construir OpenThread :
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE #define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1 #endif
Por interruptor
Alternativamente, use el CHILD_SUPERVISION=1
compilación CHILD_SUPERVISION=1
al compilar OpenThread :
make -f examples/Makefile-<platform> CHILD_SUPERVISION=1
Parámetros
Utilice los siguientes parámetros en /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
Use la API de supervisión infantil para administrar la supervisión y verificar los intervalos de tiempo de espera directamente en su aplicación OpenThread.
CLI
No hay comandos CLI relacionados con esta función.