مانیتورینگ کانال

این ماژول شامل عملکردهایی برای ویژگی نظارت بر کانال است.

خلاصه

عملکردهای این ماژول زمانی در دسترس هستند که ویژگی مانیتور کانال ( OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE ) فعال باشد.

مانیتورینگ کانال به صورت دوره‌ای تمام کانال‌ها را برای کمک به تعیین کانال‌های تمیزتر (کانال‌هایی با تداخل کمتر) نظارت می‌کند.

هنگامی که نظارت کانال فعال است، یک اسکن انرژی با مدت زمان صفر انجام می شود و یک نمونه RSSI در هر کانال در هر بازه نمونه جمع آوری می شود. نمونه های RSSI با آستانه RSSI از پیش تعیین شده مقایسه می شوند. به عنوان شاخصی از کیفیت کانال، ماژول نظارت کانال میانگین نرخ/درصد نمونه‌های RSSI را که بالاتر از آستانه در (تقریبا) یک پنجره نمونه مشخص (به عنوان اشغال کانال) هستند، حفظ و ارائه می‌کند.

کارکرد

otChannelMonitorGetChannelOccupancy ( otInstance *aInstance, uint8_t aChannel)
uint16_t
اشغال کانال فعلی را برای یک کانال مشخص دریافت می کند.
otChannelMonitorGetRssiThreshold ( otInstance *aInstance)
int8_t
آستانه نظارت بر کانال RSSI را بر حسب dBm دریافت کنید.
otChannelMonitorGetSampleCount ( otInstance *aInstance)
uint32_t
تعداد کل نمونه های RSSI (در هر کانال) نظارت بر کانال را دریافت کنید.
otChannelMonitorGetSampleInterval ( otInstance *aInstance)
uint32_t
فاصله نمونه نظارت بر کانال را بر حسب میلی ثانیه دریافت کنید.
otChannelMonitorGetSampleWindow ( otInstance *aInstance)
uint32_t
دریافت نظارت بر کانال با میانگین طول پنجره نمونه (تعداد نمونه).
otChannelMonitorIsEnabled ( otInstance *aInstance)
bool
نشان می دهد که آیا عملیات نظارت بر کانال فعال و در حال اجرا است یا خیر.
otChannelMonitorSetEnabled ( otInstance *aInstance, bool aEnabled)
عملیات نظارت بر کانال را فعال یا غیرفعال می کند.

کارکرد

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

اشغال کانال فعلی را برای یک کانال مشخص دریافت می کند.

مقدار اشغال کانال نشان‌دهنده میانگین نرخ/درصد نمونه‌های RSSI است که بالاتر از آستانه RSSI بودند (نمونه‌های RSSI "بد").

برای اولین نمونه های "پنجره نمونه"، میانگین به عنوان درصد واقعی حفظ می شود (یعنی نسبت تعداد نمونه های "بد" به تعداد کل نمونه ها). پس از نمونه های "پنجره"، میانگین گیر از میانگین متحرک وزن دار نمایی استفاده می کند. در عمل، این به این معنی است که میانگین حداکثر نمونه‌های آخر 3 * window با بالاترین وزن داده‌شده به آخرین نمونه‌های kSampleWindow است.

حداکثر مقدار 0xffff نشان می دهد که تمام نمونه های RSSI بالاتر از آستانه RSSI بودند (یعنی 100٪ نمونه ها "بد" بودند).

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aChannel
کانالی که اشغال لینک آن را دریافت کنید.
برمی گرداند
اشغال کانال فعلی برای کانال داده شده.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

آستانه نظارت بر کانال RSSI را بر حسب dBm دریافت کنید.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
آستانه RSSI بر حسب dBm.

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

تعداد کل نمونه های RSSI (در هر کانال) نظارت بر کانال را دریافت کنید.

شمارش تعداد کل نمونه ها در هر کانال را توسط ماژول نظارت کانال از زمان شروع آن (از زمانی که رابط شبکه Thread فعال شده است) نشان می دهد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
تعداد کل نمونه های RSSI (در هر کانال) تا کنون گرفته شده است.

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

فاصله نمونه نظارت بر کانال را بر حسب میلی ثانیه دریافت کنید.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
فاصله نمونه مانیتور کانال بر حسب میلی ثانیه.

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

دریافت نظارت بر کانال با میانگین طول پنجره نمونه (تعداد نمونه).

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
پنجره نمونه میانگین.

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

نشان می دهد که آیا عملیات نظارت بر کانال فعال و در حال اجرا است یا خیر.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
اگر عملیات نظارت بر کانال فعال باشد، درست است، در غیر این صورت نادرست است.

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

عملیات نظارت بر کانال را فعال یا غیرفعال می کند.

پس از شروع عملیات، هر گونه داده جمع آوری شده قبلی پاک می شود. با این حال، پس از غیرفعال شدن عملیات، داده های جمع آوری شده قبلی هنوز معتبر هستند و قابل خواندن هستند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aEnabled
TRUE برای فعال کردن/شروع کردن عملیات نظارت بر کانال، FALSE برای غیرفعال کردن/توقف آن.
ارزش های بازگشتی
OT_ERROR_NONE
وضعیت نظارت کانال با موفقیت تغییر کرد
OT_ERROR_ALREADY
مانیتورینگ کانال قبلاً در همین وضعیت است.

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.