مدير القناة

تشمل هذه الوحدة وظائف "مدير القناة".

الملخّص

تتوفر الوظائف في هذه الوحدة عند تفعيل ميزة "مدير القناة" (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE). مدير القناة متاح فقط على إصدار FTD.

الدوال

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
تشير هذه الدالة إلى ما إذا كانت وظيفة الاختيار التلقائي للقناة مفعّلة أم لا.
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
تحصل هذه الدالة على الفاصل الزمني للفترة (بالثواني) الذي تستخدمه وظيفة اختيار القنوات تلقائيًا.
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
تحصل هذه الدالة على الحدّ الأدنى لمعدّل تعذُّر تعديل CAA.
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
تطلب هذه الدالة تغيير قناة شبكة سلاسل محادثات.
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
تحدِّد هذه الدالة الحدّ الأدنى لمعدّل تعذُّر تعديل CAA.
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.
طلبات الإرجاع
الفاصل الزمني بالثواني.

otChannelManagerGetCCaFailureRateRate

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

تحصل هذه الدالة على الحدّ الأدنى لمعدّل تعذُّر تعديل CAA.

التفاصيل
المعلَمات
[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.
طلبات الإرجاع
القنوات المفضلة كقناع.

otChannelManagerGetRequestChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

تحصل هذه الدالة على القناة من آخر مكالمة ناجحة إلى otChannelManagerRequestChannelChange()

التفاصيل
طلبات الإرجاع
آخر قناة تم طلبها أو صفر إذا لم يتم تقديم طلب لتغيير القناة حتى الآن.

otChannelManagerGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

تحصل هذه الدالة على قناع القناة المعتمد.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
طلبات الإرجاع
القنوات المتوافقة كقناع.

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

تطلب هذه الدالة تغيير قناة شبكة سلاسل محادثات.

تنتقل الشبكة إلى القناة المحددة بعد مهلة معيّنة (راجع otChannelManagerSetDelay()). ويتم إجراء تغيير القناة من خلال تحديث مجموعة البيانات التشغيلية في انتظار المراجعة.

وسيؤدي الاستدعاء لاحقًا لهذه الدالة إلى إلغاء تغيير القناة الذي تم طلبه من قبل.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aChannel
القناة الجديدة لشبكة سلاسل المحادثات.

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

تطلب هذه الدالة من ChannelManager التحقّق من قناة جديدة واختيارها وبدء تغيير القناة.

وعلى عكس otChannelManagerRequestChannelChange() التي يجب فيها توجيه القناة كمعلّمة، تطلب هذه الوظيفة من ChannelManager اختيار قناة بمفردها (بناءً على معلومات جودة القناة التي يتم جمعها).

بعد الاتصال، سينفّذ مدير القناة الخطوات الثلاث التالية:

1) يقرر ChannelManager ما إذا كان تغيير القناة مفيدًا أم لا. يمكن تخطّي هذا الفحص إذا تم ضبط القيمة aSkipQualityCheck على true (فرض اختيار القناة وتخطي فحص الجودة). تستخدم هذه الخطوة مقاييس جودة الروابط المُجمَّعة على الجهاز (مثل معدّل تعذُّر الكشف عن المحتوى، والإطارات، وأخطاء الرسائل لكل الجيران وغير ذلك) لتحديد ما إذا كانت جودة القناة الحالية على المستوى الذي يبرّر تغيير القناة.

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 غير صالح (صفر).

otChannelManagerSetCCaFailureRateRate

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

تحدِّد هذه الدالة الحدّ الأدنى لمعدّل تعذُّر تعديل CAA.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aThreshold
حدّ معدّل حالات تعذُّر تحليل المحتوى المفتوح (CCA). ويتم تعيين القيمة 0 على 0% وربط 0xffff بنسبة 100%.

otChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

تعمل هذه الدالة على تحديد التأخير (بالثواني) الذي يتم استخدامه لتغيير القناة.

من المُفترَض أن يكون التأخير لمدة أطول من الحد الأقصى لفاصل البيانات الذي تستخدمه جميع الأجهزة النائمة في شبكة سلسلة المحادثات.

التفاصيل
المعلَمات
[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 من رمز المصدر، المتوفر على GitHub. للاطّلاع على مزيد من المعلومات أو للمساهمة في مستنداتنا، يُرجى الرجوع إلى المراجع.