Para fornecer um mecanismo de eficiência energética para um dispositivo final sonolento (SED) para verificar se ele ainda está conectado ao roteador pai (listado na tabela filho do roteador pai), ative o recurso Supervisão filho.
A especificação de thread exige que um SED execute periodicamente uma troca de solicitação e resposta de atualização filho MLE com seu roteador pai para verificar a conectividade. O Child Supervision é uma solução alternativa para verificação da conectividade do roteador SED que coloca o ônus da transmissão de mensagens no roteador pai em vez de no SED com restrição de energia.
Como funciona
Esse recurso funciona de duas maneiras, dependendo do tipo de nó e de quais parâmetros estão configurados:
No pai
Se um roteador pai não transmitir para seu SED filho dentro do OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, o roteador pai enfileirará e enviará uma mensagem de Supervisão filho ao SED filho. A mensagem Child Supervision é um quadro MAC contendo as seguintes informações:
- O RLOC16 do SED como destino no cabeçalho MAC.
- Uma carga vazia.
Por padrão, um cabeçalho MAC contém uma solicitação ACK 802.15.4. Para desabilitar esta solicitação na mensagem de Supervisão Infantil, defina o parâmetro OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
como 1.
Na criança
Se um SED não ouvir de seu roteador pai dentro do OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, ele assume que perdeu sua conexão com o roteador pai e inicia o processo de anexação MLE para reconectar ao roteador pai.
Como habilitar
Este recurso está desabilitado por padrão.
Por definir
Para habilitar o Child Supervision, defina OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
como 1
no openthread/src/core/config/child_supervision.h
, antes de construir o OpenThread :
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
Por opção
Como alternativa, use a opção de compilação -DOT_CHILD_SUPERVISION=ON
ao compilar OpenThread :
./script/build -DOT_CHILD_SUPERVISION=ON
Parâmetros
Use os seguintes parâmetros em openthread/src/core/config/child_supervision.h
para personalizar esse recurso:
Parâmetros | |||||
---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
| ||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
| ||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
Use a API Child Supervision para gerenciar a supervisão e verificar os intervalos de tempo limite diretamente em seu aplicativo OpenThread.
CLI
Não há comandos CLI relacionados a esse recurso.