لتوفير آلية قابلة للضبط لرصد التشويش على الإشارات في أي عقدة OpenThread، فعِّل ميزة "رصد التشويش".
تكون هذه الميزة مفيدة لشهادات اعتماد الأجهزة التي تتطلّب إمكانية رصد التشويش على الإشارة في قناة معيّنة. ويمكن ضبطها لتلبية متطلبات كل نوع من شهادات الاعتماد.
آلية العمل
تراقب ميزة "رصد التشويش" مؤشر قوة الإشارة المستلمة (RSSI) لأحد العُقد خلال فترات زمنية محدّدة لتحديد ما إذا تم التشويش على القناة.
عند تفعيل ميزة "رصد التشويش":
- تم ضبط "حالة رصد التشويش" على
false
. - تأخذ العُقدة عيّنات من قوة الإشارة المستلَمة (RSSI) عدة مرات خلال كل فاصل زمني يبلغ ثانية واحدة.
- إذا ظلّت قوة الإشارة المستلَمة (RSSI) خلال فترة الثانية الكاملة أعلى من حد RSSI الذي تم ضبطه لكل عيّنة، تُعتبر فترة الثانية هذه مشوّشة.
- إذا كان العدد الإجمالي لفواصل ثانية واحدة محجوبة أكبر من أو
يساوي العدد الإجمالي لثواني الفترة المشغولة
المحدّدة ضمن ثواني فترة الرصد المحدّدة السابقة
في أي وقت، يتم ضبط حالة رصد التشويش في ذلك الوقت على
true
. - إذا كان العدد الإجمالي لفواصل زمنية مدتها ثانية واحدة تم التشويش عليها أقل من العدد الإجمالي لثواني فترة الانشغال التي تم ضبطها ضمن فترة الرصد السابقة التي تم ضبطها في أي وقت، يتم ضبط حالة رصد التشويش في ذلك الوقت على
false
.
صورة نقطية للسجلّ
في OpenThread API، تتوفّر صورة نقطية للـ 63 ثانية السابقة يمكن استرجاعها. تشير خريطة البت هذه إلى ما إذا كان مستوى إشارة RSSI قد تجاوز عتبة RSSI المضبوطة في كل ثانية من الثواني الـ 63 السابقة.
على سبيل المثال، يمكنك استرداد الصورة النقطية التالية:
0xC248068C416E7FF0
يؤدي التحويل إلى نظام العد الثنائي إلى إنشاء كل مثيل تجاوز فيه مستوى إشارة RSSI الحدّ الأدنى الذي تم ضبطه خلال الـ 63 ثانية السابقة:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
إذا تم ضبط "نافذة الرصد" على 16 ثانية، وتم ضبط "فترة الانشغال" على 8 ثوانٍ، ستصبح "حالة رصد التشويش" true
عند 51 ثانية، لأنّ هذا هو المثال الأول الذي تم فيه تجاوز "حدّ RSSI" لمدة 8 ثوانٍ كاملة على الأقل في الـ 16 ثانية السابقة. في هذا المثال، تظل حالة رصد التشويش
true
لمدة 13 ثانية أخرى.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
يمكن تمثيل صورة نقطية هذه بالرسم البياني التالي، إذا كان الحد الأدنى لمستوى إشارة RSSI الذي تم ضبطه هو -45 ديسيبل مللي واط:

كيفية تفعيل الميزة
تكون هذه الميزة غير مفعّلة تلقائيًا.
حسب التعريف
لتفعيل ميزة "رصد التشويش"، حدِّد
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
على أنّه 1
في ملف
openthread/src/core/config/openthread-core-default-config.h
قبل إنشاء OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
حسب الخيار
بدلاً من ذلك، استخدِم خيار الإنشاء -DOT_JAM_DETECTION=ON
عند إنشاء
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
المعلمات
لا يمكن ضبط مَعلمات "رصد التشويش" إلا من خلال واجهة برمجة التطبيقات OpenThread أو بروتوكول Spinel. يتم تطبيق القيم التلقائية إذا تم تفعيل الميزة بدون إجراء إعدادات لاحقة.
يمكنك تخصيص هذه الميزة باستخدام المَعلمات التالية:
المعلمات | |||||
---|---|---|---|---|---|
حدّ RSSI |
|
||||
فترة الرصد |
|
||||
فترة الانشغال |
|
واجهة برمجة التطبيقات
OpenThread
استخدِم Jam Detection API لإدارة ميزة "رصد التشويش" مباشرةً في تطبيق OpenThread. توفّر واجهة برمجة التطبيقات OpenThread الوظائف التالية:
- بدء الميزة وإيقافها
- عرض حالة رصد التشويش
- إدارة جميع المَعلمات
- استرداد صورة نقطية لسجلّ "رصد التشويش" الحالي
- تسجيل دالة ردّ اتصال عند رصد تشويش
الإسبينيل
يتيح بروتوكول Spinel لجهاز مضيف التواصل مباشرةً مع معالج NCP.
يعرض هذا البروتوكول خصائص "رصد التشويش" في
openthread/src/lib/spinel/spinel.h
التي توفّر الوظائف التالية:
- بدء الميزة وإيقافها
- عرض حالة رصد التشويش
- إدارة جميع المَعلمات
- استرداد صورة نقطية لسجلّ "رصد التشويش" الحالي
CLI
OpenThread
لا تتوفّر أوامر OpenThread CLI مرتبطة بهذه الميزة.