כדי לספק מנגנון חסכוני באנרגיה עבור מכשיר קצה רדום (SED) שיאפשר לו לוודא שהוא עדיין מחובר לנתב ההורה שלו (הרשום בטבלת הצאצאים של הנתב ההורה), יש להפעיל את התכונה 'פיקוח על ילדים'.
לפי המפרט של השרשור, SED צריך לבצע מדי פעם חילופי בקשות עדכון ותגובה ל-MLE עם הנתב הראשי כדי לאמת את הקישוריות. פיקוח על ילדים הוא פתרון חלופי לאימות קישוריות נתב-SED שמפעילה את הנטל של העברת ההודעות בנתב ההורה, במקום על SED מוגבל באנרגיה.
איך זה עובד
התכונה הזו פועלת בשתי דרכים, בהתאם לסוג הצומת ולפרמטרים שמוגדרים:
בהורה
אם הנתב ההורה לא משדר ל-SED של הצאצא ב-OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, הנתב ההורה מוסיף את ההודעה לילד בפיקוח ושולח אותה אליו. ההודעה לפיקוח על ילדים היא מסגרת MAC שיש בה את הפרטים הבאים:
- RLOC16 של ה-SED, כיעד בכותרת ה-MAC.
- מטען ייעודי (payload) ריק.
כברירת מחדל, כותרת 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
, לפני Open OpenThread:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
לפי אפשרות
לחלופין, יש להשתמש באפשרות ה-build של -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 הקשורות לתכונה הזו.