หากต้องการมอบกลไกที่มีประสิทธิภาพด้านพลังงานให้แก่อุปกรณ์ปลายทางที่หลับ (SED) เพื่อยืนยันว่าอุปกรณ์ยังคงเชื่อมต่อกับอุปกรณ์หลัก (แสดงอยู่ในตารางอุปกรณ์ย่อยของอุปกรณ์หลัก) ให้เปิดใช้ฟีเจอร์การควบคุมดูแลอุปกรณ์ย่อย
ข้อกำหนด Thread กำหนดให้ SED ทำการแลกเปลี่ยนคำขอและการตอบกลับการอัปเดตอุปกรณ์ย่อยของ MLE กับอุปกรณ์หลักเป็นระยะๆ เพื่อยืนยันการเชื่อมต่อ การควบคุมดูแลอุปกรณ์ย่อยเป็นโซลูชันทางเลือกสำหรับการยืนยันการเชื่อมต่อระหว่าง SED กับอุปกรณ์หลัก ซึ่งจะโอนภาระการส่งข้อความไปยังอุปกรณ์หลักแทนที่จะเป็น SED ที่มีข้อจำกัดด้านพลังงาน
วิธีการทำงาน
ฟีเจอร์นี้ทำงานได้ 2 วิธี ขึ้นอยู่กับประเภทโหนดและ พารามิเตอร์ที่กำหนดค่าไว้
ในอุปกรณ์หลัก
หากอุปกรณ์หลักไม่ได้ส่งข้อมูลไปยัง SED อุปกรณ์ย่อยภายใน
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL,
อุปกรณ์หลักจะจัดคิวและส่งข้อความการควบคุมดูแลอุปกรณ์ย่อยไปยัง
SED อุปกรณ์ย่อย ข้อความการควบคุมดูแลอุปกรณ์ย่อยเป็นเฟรม MAC ที่มีข้อมูลต่อไปนี้
- RLOC16 ของ SED เป็นปลายทางในส่วนหัว MAC
- เพย์โหลดว่าง
โดยค่าเริ่มต้น ส่วนหัว MAC จะมีคำขอ ACK 802.15.4 หากต้องการปิดใช้คำขอ
นี้ในข้อความการควบคุมดูแลอุปกรณ์ย่อย ให้ตั้งค่าพารามิเตอร์
OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST เป็น 1
ในอุปกรณ์ย่อย
หาก SED ไม่ได้รับข้อมูลจากอุปกรณ์หลักภายใน
OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT,
อุปกรณ์จะถือว่าการเชื่อมต่อกับอุปกรณ์หลักขาดหายไปและเริ่ม
กระบวนการแนบ MLE
เพื่อแนบกับเครือข่ายอีกครั้ง
วิธีเปิดใช้
ฟีเจอร์นี้ปิดใช้โดยค่าเริ่มต้น
โดยกำหนด
หากต้องการเปิดใช้การควบคุมดูแลอุปกรณ์ย่อย ให้กำหนด
OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE เป็น 1 ในไฟล์
openthread/src/core/config/child_supervision.h
ก่อนที่จะสร้าง OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
ตามตัวเลือก
หรือใช้ตัวเลือกบิลด์ -DOT_CHILD_SUPERVISION=ON เมื่อ สร้าง
OpenThread:
./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 ที่เกี่ยวข้องกับฟีเจอร์นี้