Nadzór rodzicielski

Wyświetl źródło w GitHub

Aby zapewnić energooszczędny mechanizm weryfikacji, czy urządzenie końcowe w trybie uśpienia (SED) jest nadal połączone z urządzeniem nadrzędnym (wymienionym w tabeli urządzeń podrzędnych urządzenia nadrzędnego), włącz funkcję nadzoru nad urządzeniami podrzędnymi.

Specyfikacja Thread wymaga, aby urządzenie SED okresowo wysyłało do urządzenia nadrzędnego żądanie aktualizacji MLE i odbierało od niego odpowiedź, aby sprawdzić łączność. Nadzór nad urządzeniami podrzędnymi to alternatywne rozwiązanie do weryfikacji łączności między urządzeniem SED a urządzeniem nadrzędnym, które przenosi obciążenie związane z przesyłaniem wiadomości na urządzenie nadrzędne, a nie na urządzenie SED o ograniczonych zasobach energii.

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 urządzeniu nadrzędnym

Jeśli urządzenie nadrzędne nie przesyła danych do urządzenia podrzędnego SED w ciągu OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL, urządzenie nadrzędne umieszcza w kolejce i wysyła do urządzenia podrzędnego SED wiadomość o nadzorze nad urządzeniami podrzędnymi. Wiadomość o nadzorze nad urządzeniami podrzędnymi to ramka MAC zawierająca te informacje:

  • RLOC16 urządzenia SED jako miejsce docelowe w nagłówku MAC.
  • Pusty ładunek.

Domyślnie nagłówek MAC zawiera żądanie potwierdzenia ACK 802.15.4. Aby wyłączyć to żądanie w wiadomości o nadzorze nad urządzeniami podrzędnymi, ustaw parametr OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST na 1.

Na urządzeniu podrzędnym

Jeśli urządzenie SED nie otrzyma odpowiedzi od urządzenia nadrzędnego w ciągu OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT, zakłada, że utraciło połączenie z urządzeniem nadrzędnym, i rozpoczyna proces dołączania MLE , aby ponownie połączyć się z siecią.

Jak włączyć

Ta funkcja jest domyślnie wyłączona.

Przez zdefiniowanie

Aby włączyć nadzór nad urządzeniami podrzędnymi, zdefiniuj OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE jako 1 w pliku openthread/src/core/config/child_supervision.h, przed skompilowaniem OpenThread:

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

Według opcji

Podczas kompilowania OpenThread możesz też użyć opcji kompilacji -DOT_CHILD_SUPERVISION=ON:

./script/build -DOT_CHILD_SUPERVISION=ON

Parametry

Aby dostosować tę funkcję, użyj tych parametrów w openthread/src/core/config/child_supervision.h:

Parametry
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Wartość domyślna
129 sekund
Opis
Określa interwał nadzoru w sekundach używany przez urządzenie nadrzędne. Ustaw wartość 0, aby wyłączyć proces nadzoru na urządzeniu nadrzędnym.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Wartość domyślna
190 sekund
Opis
Określa interwał limitu czasu sprawdzania nadzoru w sekundach używany przez urządzenie w stanie podrzędnym. Ustaw wartość 0, aby wyłączyć proces sprawdzania nadzoru na urządzeniu podrzędnym.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Wartość domyślna
0 (żądanie ACK włączone)
Opis
Ustaw wartość 1, aby wyczyścić lub wyłączyć żądanie ACK 802.15.4 w nagłówku MAC wiadomości o nadzorze.

Interfejs API

Użyj interfejsu API nadzoru nad urządzeniami podrzędnymi, aby zarządzać interwałami nadzoru i limitu czasu sprawdzania bezpośrednio w aplikacji OpenThread.

CLI

Nie ma poleceń interfejsu wiersza poleceń związanych z tą funkcją.