כדי לספק מנגנון יעיל באנרגיה למכשיר קצה במצב שינה (SED) כדי לוודא שהוא עדיין מחובר לנתב ההורה שלו (שרשום בטבלת הצאצאים של הנתב ההורה), מפעילים את התכונה 'פיקוח על ילדים'.
מפרט ה-Thread מחייב SED כדי לבצע מדי פעם בקשות ל-MLE Child Update ושרשור תגובה עם נתב ההורה שלו כדי לאמת את הקישוריות. פיקוח על ילדים הוא פתרון חלופי לאימות של קישוריות נתב SED, שיוצר את הנטל של העברת ההודעות על הנתב הראשי במקום על ה-SED המוגבל באנרגיה.
איך זה עובד
התכונה הזו פועלת בשתי דרכים, בהתאם לסוג הצומת ולפרמטרים שמוגדרים:
בהורה
אם נתב הורה לא מעביר הודעה ל-SED הצאצא שלו בתוך OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, נתב ההורה מוסיף את ההודעה לתור ושולח אותה ל-SED הצאצא. ההודעה 'פיקוח על ילדים' היא מסגרת 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 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
לפי אפשרות
לחלופין, אפשר להשתמש באפשרות ה-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 שקשורות לתכונה הזו.