مدیر کانال

این ماژول شامل توابعی برای Channel Manager است.

خلاصه

عملکردهای این ماژول زمانی در دسترس هستند که ویژگی مدیر کانال ( OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE ) فعال باشد. Channel Manager فقط در یک ساخت FTD در دسترس است.

کارکرد

otChannelManagerGetAutoChannelSelectionEnabled ( otInstance *aInstance)
bool
نشان می دهد که آیا عملکرد انتخاب خودکار کانال فعال است یا خیر.
otChannelManagerGetAutoChannelSelectionInterval ( otInstance *aInstance)
uint32_t
بازه دوره (بر حسب ثانیه) مورد استفاده توسط عملکرد انتخاب خودکار کانال را دریافت می کند.
otChannelManagerGetCcaFailureRateThreshold ( otInstance *aInstance)
uint16_t
آستانه نرخ شکست CCA را دریافت می کند.
otChannelManagerGetDelay ( otInstance *aInstance)
uint16_t
تأخیر (بر حسب ثانیه) توسط مدیر کانال برای تغییر کانال را دریافت می کند.
otChannelManagerGetFavoredChannels ( otInstance *aInstance)
uint32_t
ماسک کانال مورد علاقه را دریافت می کند.
otChannelManagerGetRequestedChannel ( otInstance *aInstance)
uint8_t
کانال را از آخرین تماس موفق با otChannelManagerRequestChannelChange() دریافت می کند
otChannelManagerGetSupportedChannels ( otInstance *aInstance)
uint32_t
ماسک کانال پشتیبانی شده را دریافت می کند.
otChannelManagerRequestChannelChange ( otInstance *aInstance, uint8_t aChannel)
void
درخواست تغییر کانال شبکه Thread را دارد.
otChannelManagerRequestChannelSelect ( otInstance *aInstance, bool aSkipQualityCheck)
از ChannelManager درخواست می کند که کانال جدیدی را بررسی و انتخاب کند و تغییر کانال را شروع کند.
otChannelManagerSetAutoChannelSelectionEnabled ( otInstance *aInstance, bool aEnabled)
void
عملکرد انتخاب خودکار کانال را فعال یا غیرفعال می کند.
otChannelManagerSetAutoChannelSelectionInterval ( otInstance *aInstance, uint32_t aInterval)
بازه دوره (بر حسب ثانیه) مورد استفاده توسط عملکرد انتخاب خودکار کانال را تنظیم می کند.
otChannelManagerSetCcaFailureRateThreshold ( otInstance *aInstance, uint16_t aThreshold)
void
آستانه نرخ شکست CCA را تنظیم می کند.
otChannelManagerSetDelay ( otInstance *aInstance, uint16_t aDelay)
تأخیر (بر حسب ثانیه) مورد استفاده برای تغییر کانال را تنظیم می کند.
otChannelManagerSetFavoredChannels ( otInstance *aInstance, uint32_t aChannelMask)
void
ماسک کانال مورد علاقه را تنظیم می کند.
otChannelManagerSetSupportedChannels ( otInstance *aInstance, uint32_t aChannelMask)
void
ماسک کانال پشتیبانی شده را تنظیم می کند.

کارکرد

otChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

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

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

otChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

بازه دوره (بر حسب ثانیه) مورد استفاده توسط عملکرد انتخاب خودکار کانال را دریافت می کند.

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

otChannelManagerGetCcaFailureRate Threshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

آستانه نرخ شکست CCA را دریافت می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
آستانه نرخ شکست CCA. 0 نقشه ها را تا 0% و نقشه های 0xffff را تا 100% ارزش گذاری کنید.

otChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

تأخیر (بر حسب ثانیه) توسط مدیر کانال برای تغییر کانال را دریافت می کند.

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

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

ماسک کانال مورد علاقه را دریافت می کند.

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

otChannelManagerGetRequestedChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

کانال را از آخرین تماس موفق با otChannelManagerRequestChannelChange() دریافت می کند

جزئیات
برمی گرداند
آخرین کانال درخواستی یا صفر اگر هنوز درخواست تغییر کانال وجود نداشته باشد.

otChannelManagerGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

ماسک کانال پشتیبانی شده را دریافت می کند.

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

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

درخواست تغییر کانال شبکه Thread را دارد.

شبکه پس از یک تاخیر مشخص به کانال داده شده سوئیچ می کند (به otChannelManagerSetDelay() مراجعه کنید). تغییر کانال با به‌روزرسانی مجموعه داده‌های عملیاتی در انتظار انجام می‌شود.

تماس بعدی، تغییر کانالی را که قبلاً درخواست شده بود لغو می‌کند.

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

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

از ChannelManager درخواست می کند که کانال جدیدی را بررسی و انتخاب کند و تغییر کانال را شروع کند.

برخلاف otChannelManagerRequestChannelChange() که در آن کانال باید به عنوان پارامتر داده شود، این تابع از ChannelManager می خواهد که به تنهایی یک کانال را انتخاب کند (بر اساس اطلاعات جمع آوری شده کیفیت کانال).

پس از تماس، مدیر کانال 3 مرحله زیر را انجام می دهد:

1) ChannelManager تصمیم می گیرد که آیا تغییر کانال مفید است یا خیر. اگر aSkipQualityCheck روی درست تنظیم شود (اجبار کردن انتخاب کانال و رد شدن از بررسی کیفیت) می‌توان از این بررسی صرفنظر کرد. این مرحله از معیارهای کیفیت پیوند جمع‌آوری‌شده در دستگاه (مانند نرخ شکست CCA، نرخ خطای فریم و پیام به ازای هر همسایه و غیره) استفاده می‌کند تا مشخص کند آیا کیفیت کانال فعلی در سطحی است که تغییر کانال را توجیه می‌کند یا خیر.

2) اگر مرحله اول بگذرد، ChannelManager کانال بالقوه بهتری را انتخاب می کند. از داده های کیفیت کانال جمع آوری شده توسط ماژول ChannelMonitor استفاده می کند. کانال های پشتیبانی شده و مورد علاقه در این مرحله استفاده می شوند. (به otChannelManagerSetSupportedChannels() و otChannelManagerSetFavoredChannels() مراجعه کنید).

3) اگر کانال تازه انتخاب شده با کانال فعلی متفاوت باشد، ChannelManager فرآیند تغییر کانال را درخواست می کند/شروع می کند (به طور داخلی RequestChannelChange() ).

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aSkipQualityCheck
نشان می دهد که آیا بررسی کیفیت (مرحله 1) باید نادیده گرفته شود.
ارزش های بازگشتی
OT_ERROR_NONE
انتخاب کانال با موفقیت به پایان رسید.
OT_ERROR_NOT_FOUND
ماسک کانال پشتیبانی شده خالی است، بنابراین نمی توان کانالی را انتخاب کرد.

otChannelManagerSetAutoChannelSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

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

وقتی فعال باشد، ChannelManager به صورت دوره‌ای یک RequestChannelSelect(false) را فراخوانی می‌کند. بازه دوره را می توان توسط SetAutoChannelSelectionInterval() تنظیم کرد.

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

otChannelManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

بازه دوره (بر حسب ثانیه) مورد استفاده توسط عملکرد انتخاب خودکار کانال را تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aInterval
فاصله بر حسب ثانیه
ارزش های بازگشتی
OT_ERROR_NONE
فاصله با موفقیت تنظیم شد.
OT_ERROR_INVALID_ARGS
aInterval معتبر نیست (صفر).

otChannelManagerSetCcaFailureRate Threshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

آستانه نرخ شکست CCA را تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aThreshold
آستانه نرخ شکست CCA. 0 نقشه ها را تا 0% و نقشه های 0xffff را تا 100% ارزش گذاری کنید.

otChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

تأخیر (بر حسب ثانیه) مورد استفاده برای تغییر کانال را تنظیم می کند.

تأخیر ترجیحاً باید بیشتر از حداکثر فاصله نظرسنجی داده استفاده شده توسط همه دستگاه‌های پایان خواب در شبکه Thread باشد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aDelay
تاخیر در ثانیه
ارزش های بازگشتی
OT_ERROR_NONE
تاخیر با موفقیت به روز شد.
OT_ERROR_INVALID_ARGS
تاخیر داده شده aDelay خیلی کوتاه است.

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

ماسک کانال مورد علاقه را تنظیم می کند.

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

otChannelManagerSetSupportedChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

ماسک کانال پشتیبانی شده را تنظیم می کند.

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

منابع

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