為睡著的終端裝置 (SED) 提供節能機制,藉此確認裝置是否仍與其上層路由器 (並列在上層路由器的子表格中列出) 進行啟用,請啟用兒童監督功能。
執行緒規格要求 SED 定期執行其父項路由器的 MLE 子項更新要求和回應交換作業,以驗證連線能力。子項監督模式是驗證 SED 路由器連線的替代解決方案,可將訊息傳輸負擔負擔於父路由器,而非能源受限的 SED。
運作方式
這項功能的運作方式有兩種,視節點類型和所設定的參數而定:
上層
如果父項路由器未在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
中傳輸其子項 SED,則父項路由器會將子項監督訊息排入佇列,並將該 S 上監管訊息傳送給子項的 SED。兒童監督訊息是內含下列資訊的 MAC 框架:
- SED 的 RLOC16 做為 MAC 標頭的目的地。
- 空白的酬載。
在預設情況下,MAC 標頭會包含 802.15.4 ACK 要求。如要在子項監督訊息中停用這個要求,請將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
參數設為 1。
兒童
如果 SED 在 OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
中聽不到父路由器,則假設 SED 已中斷與上層路由器的連線,並啟動 MLE 附加程序重新連線到父項路由器。
如何啟用
這項功能預設為停用。
定義
如要啟用兒童監督功能,請在建立 OpenThread 之前,在 openthread/src/core/config/child_supervision.h
檔案中將 OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
定義為 1
:
#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 指令。