Aby zapewnić urządzeniu końcowemu z trybem oszczędzania energii (SED) mechanizm energooszczędny, który sprawdza, czy nadal jest ono połączone z routerem nadrzędnym (wymienionym w tabeli podrzędnych routerów), włącz funkcję nadzoru nad dziećmi.
Specyfikacja Thread wymaga, aby SED okresowo przeprowadzał wymianę żądania i odpowiedzi MLE w celu sprawdzenia połączenia z routerem nadrzędnym. Nadzór nad dziećmi to alternatywne rozwiązanie umożliwiające weryfikację połączeń SED-router, które przenosi odpowiedzialność za przesyłanie wiadomości z routera głównego na SED z ograniczonym poborem mocy.
Jak to działa
Ta funkcja działa na 2 sposoby, w zależności od typu węzła i skonfigurowanych parametrów:
Na koncie wydawcy nadrzędnego
Jeśli router nadrzędny nie przesyła danych do podrzędnego serwera SED w obrębie OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, router nadrzędny dodaje go do kolejki i wysyła do niego komunikat nadzoru podrzędnego. Komunikat dotyczący nadzoru nad dzieckiem to ramka MAC zawierająca te informacje:
- RLOC16 z SED jako miejsce docelowe w nagłówku MAC.
- Pusty ładunek.
Domyślnie nagłówek MAC zawiera żądanie potwierdzenia 802.15.4. Aby wyłączyć tę prośbę w wiadomości dotyczącej nadzoru nad dzieckiem, ustaw parametr OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
na 1.
Informacje o dziecku
Jeśli SED nie otrzyma odpowiedzi od routera nadrzędnego w ciągu OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, zakłada, że utraciło połączenie z tym routerem i inicjuje proces MLE
Attach, aby ponownie połączyć się z routerem nadrzędnym.
Jak włączyć
Ta funkcja jest domyślnie wyłączona.
Definicja
Aby włączyć nadzór nad dzieckiem, w pliku openthread/src/core/config/child_supervision.h
zdefiniuj OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
jako 1
przed utworzeniem OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
Według opcji
Możesz też użyć opcji kompilacji -DOT_CHILD_SUPERVISION=ON
podczas tworzenia OpenThread:
./script/build -DOT_CHILD_SUPERVISION=ON
Parametry
Aby dostosować tę funkcję, użyj tych parametrów:openthread/src/core/config/child_supervision.h
Parametry | |||||
---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
Interfejs API
Zarządzaj nadzorem i sprawdzaj przerwy w nadzorze bezpośrednio w aplikacji OpenThread, korzystając z interfejsu Child Supervision API.
interfejs CLI
Nie ma poleceń wiersza poleceń związanych z tą funkcją.