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

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

ملخّص

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

تعمل مراقبة القناة على مراقبة جميع القنوات بشكل دوري للمساعدة في تحديد القنوات التي تكون أكثر وضوحًا (أي القنوات التي لا يحدث فيها أي تداخل).

عندما تكون ميزة مراقبة القناة مفعّلة، يتم إجراء بحث عن الطاقة مدته 0 صفر، حيث يتم جمع نموذج 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)
تفعيل عملية مراقبة القناة أو إيقافها

الدوال

otChannelMonitorGetChannelOccupin

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

رصد معدل إشغال القناة الحالي لقناة معيّنة

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

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

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

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

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

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

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

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
اضغط على "صحيح" لتفعيل/بدء عملية مراقبة القناة، أو على "خطأ" لإيقاف/إيقاف الميزة.
قيم الإرجاع
OT_ERROR_NONE
تم تغيير حالة مراقبة القناة بنجاح.
OT_ERROR_ALREADY
ميزة تتبّع القناة في الحالة نفسها.

الموارد

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