如要為休眠終端裝置 (SED) 提供節能機制,確認裝置仍連線至上層裝置 (列於上層裝置的子項表格中),請啟用子項監護功能。
根據 Thread 規格,SED 必須定期與上層執行 MLE 子項更新要求和回應交換,以驗證連線。兒童監督功能是驗證 SED 與家長連線的替代解決方案,可將訊息傳輸的負擔轉移給家長,而非能源受限的 SED。
運作方式
這項功能有兩種運作方式,視節點類型和設定的參數而定:
在上層發布商的帳戶中
如果家長未在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL 內將 SED 傳送給孩子,家長會將 Child Supervision 訊息排入佇列並傳送給孩子的 SED。「兒童監督」訊息是 MAC 影格,內含下列資訊:
- MAC 標頭中 SED 的目的地 RLOC16。
- 空白酬載。
根據預設,MAC 標頭包含 802.15.4 ACK 要求。如要在「兒童帳戶監督」訊息中停用這項要求,請將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST 參數設為 1。
在孩子身上
如果 SED 在
OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
一段時間內未收到父項的訊息,就會假設與父項失去連線,並啟動 MLE Attach 程序,重新連線至網路。
如何啟用
這項功能預設為停用。
依定義
如要啟用孩童監督功能,請在openthread/src/core/config/child_supervision.h檔案中將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 定義為 1,然後建構 OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
依選項
或者,您也可以在建構 OpenThread 時使用 -DOT_CHILD_SUPERVISION=ON 建構選項:
./script/build -DOT_CHILD_SUPERVISION=ON
參數
在 openthread/src/core/config/child_supervision.h 中使用下列參數,自訂這項功能:
| 參數 | |||||
|---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
|
||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
||||
API
使用 Child Supervision API 直接在 OpenThread 應用程式中管理監督功能,並檢查逾時間隔。
CLI
這項功能沒有相關的 CLI 指令。