برای فراهم کردن یک مکانیزم کارآمد در مصرف انرژی برای یک دستگاه انتهایی در حالت خواب (SED) تا تأیید کند که هنوز به والد خود (که در جدول فرزند والد ذکر شده است) متصل است، ویژگی نظارت بر فرزند را فعال کنید.
مشخصات نخ (Thread Specification) ایجاب میکند که یک SED به صورت دورهای یک تبادل درخواست و پاسخ بهروزرسانی فرزند (MLE Child Update Request and Response) با والد خود انجام دهد تا اتصال را تأیید کند. نظارت بر فرزند (Child Supervision) یک راهحل جایگزین برای تأیید اتصال SED به والد است که بار انتقال پیام را به جای SED با محدودیت انرژی، بر والد قرار میدهد.
چگونه کار میکند؟
این ویژگی بسته به نوع گره و پارامترهای پیکربندی شده، به دو روش کار میکند:
روی والدین
اگر یک والد 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 ، OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE را در فایل openthread/src/core/config/child_supervision.h برابر با 1 تعریف کنید:
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
بر اساس گزینه
روش دیگر، هنگام ساخت OpenThread از گزینه build -DOT_CHILD_SUPERVISION=ON استفاده کنید:
./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 نظارت بر کودکان برای مدیریت نظارت و بررسی فواصل زمانی وقفه مستقیماً در برنامه OpenThread خود استفاده کنید.
رابط خط فرمان
هیچ دستور CLI مربوط به این ویژگی وجود ندارد.