مراقبة القناة

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

الملخّص

تتوفر الوظائف في هذه الوحدة عند تفعيل ميزة مراقبة القناة (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE).

وستراقب ميزة "مراقبة القنوات" بشكل دوري جميع القنوات لتحديد القنوات النظيفة (القنوات الأقل تداخلاً).

عندما تكون مراقبة القناة نشطة، يتم تنفيذ فحص طاقة لمدة صفر، وجمع نموذج RSSI واحد على كل قناة في كل فاصل زمني. تتم مقارنة نماذج RSSI مع حد RSSI المحدد مسبقًا. كمؤشر على جودة القناة، تحتفظ وحدة مراقبة القناة بمتوسط معدل/نسبة مئوية من عينات RSSI التي تتجاوز الحد الأدنى (خلال تقريبًا) عيّنة من النافذة (يُشار إليها باسم إشغال القناة).

الدوال

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
تتيح إشغال القناة الحالية لقناة معيّنة.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
الحصول على الحدّ الأدنى لمراقبة قناة RSSI بالديسيبل ميلي واط
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)
تعمل هذه الوظيفة على تفعيل/إيقاف عملية مراقبة القناة.

الدوال

otChannel ومراقبة الحصول على الإشغال

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

تتيح إشغال القناة الحالية لقناة معيّنة.

تمثّل قيمة إشغال القناة متوسط المعدّل/النسبة المئوية لعيّنات RSSI التي كانت أعلى من الحدّ الأدنى لنماذج RSSI ("عيّنات" RSSI).

بالنسبة إلى أول نماذج "النافذة"، يتم الاحتفاظ بالمتوسط كنسبة مئوية فعلية (أي نسبة عدد العينات "السيئة" حسب إجمالي عدد العينات). بعد استخدام نماذج "النافذة"، يستخدم المتوسّط متوسّطًا متحرّكًا مركّزًا بدرجة كبيرة. عمليًا، يعني ذلك أنّ المتوسّط يمثّل ما يصل إلى 3 * window عيّنة نهائية ذات أعلى وزن تمّ منحه إلى العيّنات الـ kSampleWindow الأخيرة.

وتشير القيمة القصوى التي تبلغ 0xffff إلى أنّ جميع عينات RSSI كانت أعلى من الحدّ الأدنى RSSI (أي أنّ 100% من العيّنات كانت "سيئة").

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

otChannelControllerGetRssi الحد الأدنى

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

الحصول على الحدّ الأدنى لمراقبة قناة RSSI بالديسيبل ميلي واط

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
طلبات الإرجاع
الحدّ الأدنى لـ RSSI بالديسيبل ميلي واط.

otChannel مسجّل الحصول على نموذج

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

يمكنك الحصول على العدد الإجمالي لعيّنات RSSI (لكل قناة) لمراقبة القناة.

يشير هذا العدد إلى العدد الإجمالي للعيّنات لكل قناة حسب وحدة مراقبة القناة منذ بدئها (منذ تفعيل واجهة شبكة سلاسل المحادثات).

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
طلبات الإرجاع
إجمالي عدد عينات RSSI (لكل قناة) التي تم إجراؤها حتى الآن.

otChannelControllerGetGetInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

الحصول على نموذج الفاصل الزمني لمراقبة القناة بالمللي ثانية.

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

otChannel مسجّل الحصول على نموذج Windowsdow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

احصل على مراقبة للقناة بمتوسط طول نافذة (عدد العينات).

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

otChannelشاشةIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

تشير هذه الدالة إلى ما إذا كانت عملية "مراقبة القناة" مفعّلة وقيد التشغيل.

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

otChannelControllerSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

تعمل هذه الوظيفة على تفعيل/إيقاف عملية مراقبة القناة.

بعد بدء العملية، يتم محو أي بيانات تم جمعها سابقًا. ومع ذلك، بعد إيقاف العملية، لا تزال البيانات السابقة التي تم جمعها صالحة ويمكن قراءتها.

التفاصيل
المعلَمات
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aEnabled
TRUE تعمل على تفعيل/بدء عملية مراقبة القنوات، أو FALSE لإيقافها أو إيقافها.
قيم الإرجاع
OT_ERROR_NONE
تم تغيير حالة "مراقبة القناة" بنجاح
OT_ERROR_ALREADY
مراقبة القناة في الحالة نفسها بالفعل.

المراجع

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