مدير القناة

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

ملخّص

تتوفر الوظائف في هذه الوحدة عند تفعيل ميزة "مدير القناة" (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE). لا يتوفّر "مدير القناة" إلا لإصدار 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
يتم طلب تغيير قناة "سلسلة المحادثات".
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.
المرتجعات
TRUE في حال التفعيل، FALSE في حال الإيقاف.

otChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

للحصول على الفاصل الزمني (بالثواني) الذي تستخدمه وظيفة تحديد القناة تلقائيًا.

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

otChannelManagerGetDOCUMENTaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

الحصول على الحد الأدنى لمعدّل تعذُّر تقييم CCA

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
المرتجعات
الحد الأدنى لمعدّل إخفاق CCA. وتربط القيمة 0 بين 0% و0xffff إلى 100%.

otChannelManagerGetتأخير

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

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

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
المرتجعات
التأخير (بالثواني) في تغيير القناة

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

الحصول على قناع القناة المفضّل

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

otChannelManagerGetRequestChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

ينقل القناة من آخر مكالمة ناجحة إلى otChannelManagerRequestChannelChange()

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

otChannelManagerGetSupportChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

للحصول على قناع القناة المتوافق.

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

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

يتم طلب تغيير قناة "سلسلة المحادثات".

يتم تبديل الشبكة إلى القناة المحدّدة بعد مهلة محدّدة (يُرجى الاطّلاع على otChannelManagerSetTimeout()). يتم إجراء تغيير القناة من خلال تعديل مجموعة البيانات التشغيلية المعلّقة.

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

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

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

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

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

سيتولى مدير القناة بعد اتّخاذ الإجراء تنفيذ الخطوات الثلاث التالية:

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

2) في حال تنفيذ الخطوة الأولى، يختار ChannelManager قناة يُحتمل أن تكون أفضل. تستخدم هذه الخدمة بيانات جودة القناة التي تم جمعها من خلال وحدة ChannelMonitor. يتم استخدام القنوات المعتمدة والمفضّلة في هذه الخطوة. (راجِع otChannelManagerSetAllowedChannels() وotChannelManagerSetFavoredChannels).

3) إذا كانت القناة المحددة حديثًا مختلفة عن القناة الحالية، سيطلب ChannelManager/يبدأ عملية تغيير القناة (استدعاء RequestChannelChange() داخليًا).

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aSkipQualityCheck
تحدِّد هذه السياسة ما إذا كان يجب تخطّي فحص الجودة (الخطوة 1).
قيم الإرجاع
OT_ERROR_NONE
انتهت عملية اختيار القناة بنجاح.
OT_ERROR_NOT_FOUND
لم يتم توفير قناع خاص بالقناة، لذا تعذّر اختيار قناة.

otChannelManagerSetAutoAutoSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

تعمل هذه السياسة على تفعيل وظيفة الاختيار التلقائي للقنوات أو إيقافها.

عندما يكون هذا الإعداد مفعّلاً، سيستدعي ChannelManager بشكل دوري RequestChannelSelect(false). يمكن ضبط الفاصل الزمني من قِبل SetAutoChannelSelectionInterval().

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aEnabled
يشير إلى ما إذا كان سيتم تفعيل هذه الوظيفة أو إيقافها.

otChannelManagerSetAutoAutoSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

لضبط الفاصل الزمني (بالثواني) الذي تستخدمه وظيفة الاختيار التلقائي للقناة.

التفاصيل
المَعلمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aInterval
الفاصل الزمني بالثواني
قيم الإرجاع
OT_ERROR_NONE
تمّ ضبط الفاصل الزمني.
OT_ERROR_INVALID_ARGS
إنّ القيمة aInterval غير صالحة (صفر).

otChannelManagerSet الإصدارaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

تضبط هذه السياسة الحد الأدنى لمعدّل تعذّر اجتياز تقييم CCA.

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

otChannelManagerSetTimeout

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
قناع للقناة.

otChannelManagerSetEnabledChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

لضبط قناع القناة المتوافق.

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

الموارد

تبدأ مواضيع مراجع واجهة برمجة تطبيقات OpenThread من رمز المصدر، وهو متاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في المستندات، يمكنك الاطّلاع على المراجع.