نظارت بر کودک، نظارت بر کودک

مشاهده منبع در GitHub

برای ارائه یک مکانیسم کارآمد انرژی برای یک دستگاه انتهایی خواب‌آلود (SED) تا تأیید کند که هنوز به روتر اصلی خود متصل است (در جدول فرزند روتر والد ذکر شده است)، ویژگی نظارت بر کودک را فعال کنید.

مشخصات Thread به یک SED نیاز دارد تا به صورت دوره‌ای یک تبادل درخواست و پاسخ به‌روزرسانی فرزند MLE را با روتر اصلی خود انجام دهد تا اتصال را تأیید کند. Child Supervision یک راه حل جایگزین برای تأیید اتصال روتر SED است که بار انتقال پیام را به جای SED با محدودیت انرژی بر روی روتر والد قرار می دهد.

چگونه کار می کند

این ویژگی بسته به نوع گره و پارامترهای پیکربندی شده به دو روش کار می کند:

روی پدر و مادر

اگر روتر والد SED را در OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL به فرزند خود مخابره نکند، روتر والد در نوبت قرار می‌گیرد و پیام نظارت کودک را به SED فرزند ارسال می‌کند. پیام Child Supervision یک قاب MAC است که حاوی اطلاعات زیر است:

  • RLOC16 از SED به عنوان مقصد در هدر MAC.
  • محموله خالی

به طور پیش فرض، یک هدر MAC حاوی یک درخواست ACK 802.15.4 است. برای غیرفعال کردن این درخواست در پیام نظارت بر کودک، پارامتر OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST را روی ۱ تنظیم کنید.

روی بچه

اگر یک 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 از گزینه ساخت -DOT_CHILD_SUPERVISION=ON استفاده کنید:

./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 فعال است)
توضیحات
برای پاک کردن/غیرفعال کردن درخواست 802.15.4 ACK در هدر MAC یک پیام نظارت، روی 1 تنظیم کنید.

API

از Child Supervision API برای مدیریت نظارت و بررسی فواصل زمان‌بندی مستقیماً در برنامه OpenThread خود استفاده کنید.

CLI

هیچ دستور CLI مربوط به این ویژگی وجود ندارد.