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 |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
||||
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ą.