การควบคุมดูแลเด็ก

ดูซอร์สโค้ดใน GitHub

เปิดใช้ฟีเจอร์การควบคุมดูแลย่อย (SED) เพื่อมอบกลไกที่ประหยัดพลังงานสำหรับอุปกรณ์ที่สิ้นสุดการนอนหลับ (SED) เพื่อยืนยันว่าอุปกรณ์ยังคงเชื่อมต่อกับเราเตอร์ระดับบนสุด (ซึ่งระบุอยู่ในตารางย่อยของเราเตอร์หลัก)

ข้อกำหนดของเทรดกำหนดให้ 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 Attach เพื่อเชื่อมต่อกับเราเตอร์ระดับบนสุดอีกครั้ง

วิธีเปิดใช้

ฟีเจอร์นี้ปิดใช้อยู่โดยค่าเริ่มต้น

ตามการกําหนด

หากต้องการเปิดใช้การควบคุมดูแลบุตรหลาน ให้กำหนด 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 build เมื่อสร้าง OpenThread ก็ได้

./script/build -DOT_CHILD_SUPERVISION=ON

พารามิเตอร์

ใช้พารามิเตอร์ต่อไปนี้ใน openthread/src/core/config/child_supervision.h เพื่อปรับแต่งฟีเจอร์นี้

พารามิเตอร์
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
ค่าเริ่มต้น
129 วินาที
คำอธิบาย
ระบุช่วงเวลาการควบคุมดูแลเป็นวินาทีที่ผู้ปกครองใช้ ตั้งค่าเป็น 0 เพื่อปิดใช้กระบวนการควบคุมดูแลในรายการหลัก
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
ค่าเริ่มต้น
190 วินาที
คำอธิบาย
ระบุช่วงเวลาหมดเวลาของการตรวจสอบการควบคุมดูแลเป็นวินาทีที่ใช้โดยอุปกรณ์ในสถานะ "เด็ก" ตั้งค่าเป็น 0 เพื่อปิดใช้กระบวนการตรวจสอบการควบคุมดูแลสำหรับบุตรหลาน
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
ค่าเริ่มต้น
0 (เปิดใช้คำขอ ACK)
คำอธิบาย
ตั้งค่าเป็น 1 เพื่อล้าง/ปิดใช้คําขอ ACK 802.15.4 ในส่วนหัว MAC ของข้อความการควบคุมดูแล

API

ใช้ Child Supervision API เพื่อจัดการการควบคุมดูแลและตรวจสอบช่วงเวลาหมดเวลาในแอปพลิเคชัน OpenThread โดยตรง

CLI

ไม่มีคำสั่ง CLI ที่เกี่ยวข้องกับฟีเจอร์นี้