Aby udostępnić energooszczędny mechanizm urządzeń do snu (SED), który pozwala sprawdzić, czy urządzenie jest nadal połączone z jego routerem nadrzędnym (wymienionym w tabeli podrzędnej nadrzędnego routera), włącz funkcję Tryb podrzędny.
Specyfikacja wątków wymaga SED do okresowego wykonywania wymiany i aktualizacji żądań MLE dla dzieci z routerem nadrzędnym w celu zweryfikowania połączenia. Nadzór podrzędny to alternatywne rozwiązanie umożliwiające weryfikację połączeń routera SED, które obciąża przesyłanie wiadomości na nadrzędnym routerze, a nie na SED z ograniczoną energią.
Jak to działa
Ta funkcja działa na 2 sposoby w zależności od typu węzła i skonfigurowanych parametrów:
W elemencie nadrzędnym
Jeśli router nadrzędny nie przesyła danych do podrzędnego SED w obrębie instancji OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, router nadrzędny znajduje się w kolejce i wysyła do niego podrzędnego nadzoru rodzicielskiego. Wiadomość dotycząca nadzoru rodzicielskiego to ramka MAC zawierająca następujące informacje:
- RLOC16 lokalizacji SED jako miejsca docelowego w nagłówku MAC.
- Ładunek pusty.
Domyślnie nagłówek MAC zawiera żądanie ACK 802.15.4. Aby wyłączyć to żądanie w komunikacie nadzoru rodzicielskiego, ustaw parametr OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
na 1.
W dziedzinie dziecka
Jeśli SED nie odbiera połączeń z nadrzędnego routera w obszarze OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, zakłada, że utracił połączenie z nadrzędnym routerem, i inicjuje proces łączenia MLE, aby ponownie nawiązać połączenie z nadrzędnym routerem.
Jak włączyć
Ta funkcja jest domyślnie wyłączona.
Według definicji
Aby włączyć nadzór rodzicielski, w pliku openthread/src/core/config/child_supervision.h
zdefiniuj zasadę OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
jako wartość 1
przed tworzeniem 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 kompilowania OpenThread:
./script/build -DOT_CHILD_SUPERVISION=ON
Parametry
Użyj następujących parametrów w openthread/src/core/config/child_supervision.h
, aby dostosować tę funkcję:
Parametry | |||||
---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
Interfejs Child Supervision API służy do zarządzania nadzórem i sprawdzania przedziałów czasu bezpośrednio w aplikacji OpenThread.
interfejs CLI
Brak poleceń interfejsu wiersza poleceń związanych z tą funkcją.