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