لتوفير آلية قابلة للضبط لرصد التشويش على الإشارة في أي مثبّت OpenThread، فعِّل ميزة "رصد التشويش".
هذه الميزة مفيدة لشهادات الأجهزة التي تتطلّب إمكانية رصد تشويش الإشارات على قناة معيّنة. ويمكن ضبطه لاستيفاء متطلبات كل نوع من أنواع الاعتماد.
آلية العمل
تتتبّع ميزة "رصد التشويش" مؤشر RSSI (مؤشر قوة الإشارة المستلَمة) للعقدة خلال فترات زمنية محدّدة لتحديد ما إذا كانت القناة قد تعرضت للتشويش.
عند تفعيل ميزة "رصد التشويش":
- تم ضبط حالة رصد التشويش على
false
. - تأخذ العقدة عيّنات من مؤشر RSSI عدّة مرات خلال كل فاصل زمني مدته ثانية واحدة.
- إذا ظلّت RSSI خلال هذه الفاصل الزمني التي تبلغ ثانية كاملة أعلى من الحد الأدنى لخلاصة RSSI الذي تم ضبطه لكل عيّنة، سيُعتبر هذا الفاصل الزمني الذي تبلغ مدته ثانية واحدة عالقًا.
- إذا كان العدد الإجمالي للفواصل الزمنية التي تبلغ مدتها ثانية واحدة والتي تتضمّن تشويشًا أكبر من
أو يساوي العدد الإجمالي لثواني فترة الانشغال
المُعدّة خلال ثواني فترة الكشف المُعدّة السابقة
في أيّ وقت، يتم ضبط حالة رصد التشويش في ذلك الوقت
على
true
. - إذا كان العدد الإجمالي للفواصل الزمنية المتعثّرة التي تبلغ ثانية واحدة أقل من
العدد المجمّع لثواني فترة الازدحام التي تم ضبطها خلال
ثواني فترة الكشف التي تم ضبطها سابقًا في أي وقت،
سيتم ضبط حالة رصد محتوى Jam في هذه المرحلة الزمنية على
false
.
صورة نقطية للسجلّ
في OpenThread API وخصائص wpantund
، يتوفّر bitmap لآخر 63 ثانية لاسترداده. تشير هذه الصورة المخصّصة للترميز المرئي
إلى ما إذا كان مؤشر RSSI قد تجاوز الحدّ الأدنى لمؤشر RSSI الذي تم ضبطه في كلّ من
الثواني الـ 63 السابقة.
على سبيل المثال، يمكنك استرداد الصورة النقطية التالية:
0xC248068C416E7FF0
تؤدي عملية التحويل إلى ثنائي إلى إنشاء كل مثيل تجاوز فيه RSSI الحدّ الأدنى ل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
يمكن تمثيل هذه الصورة النقطية بالرسم البياني التالي، إذا كان -45 ديسيبل هو الحدّ الأدنى لمقياس RSSI الذي تم ضبطه:

كيفية تفعيل الميزة
تكون هذه الميزة غير مفعّلة تلقائيًا.
حسب التعريف
لتفعيل ميزة "رصد محتوى Jam"، حدِّد 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 API أو بروتوكول
Spinel أو wpanctl
، وهي أداة سطر أوامر wpantund
لإدارة معالج
الشبكة المشترَك (NCP). يتم تطبيق القيم الافتراضية إذا تم تفعيل الميزة
بدون ضبط لاحق.
يمكنك تخصيص هذه الميزة باستخدام المَعلمات التالية:
المعلمات | |||||
---|---|---|---|---|---|
الحدّ الأدنى لمستوى RSSI |
|
||||
فترة رصد التهديدات |
|
||||
فترة انشغال |
|
واجهة برمجة التطبيقات
OpenThread
استخدِم Jam Detection API لإدارة ميزة "رصد محتوى Jam" مباشرةً في تطبيق OpenThread. توفّر واجهة برمجة التطبيقات OpenThread API الوظائف التالية:
- تفعيل الميزة وإيقافها
- عرض حالة رصد الازدحام
- إدارة جميع المَعلمات
- استرداد الصورة النقطية لسجلّ "رصد التشويش" الحالي
- تسجيل دالة ردّ اتصال عند رصد ازدحام
الإسبينل
يتيح بروتوكول Spinel للجهاز المضيف التواصل مباشرةً مع وحدة التحكّم في الشبكة.
يعرِض هذا البروتوكول سمات رصد التشويش في
openthread/src/lib/spinel/spinel.h
التي توفّر الوظائف التالية:
- تفعيل الميزة وإيقافها
- عرض حالة رصد الازدحام
- إدارة جميع المَعلمات
- استرداد الصورة النقطية لسجلّ "رصد التشويش" الحالي
CLI
OpenThread
لا تتوفّر أوامر OpenThread CLI ذات صلة بهذه الميزة.
wpantund
استخدِم wpanctl
CLI لإدارة ميزة "رصد التشويش" لإعدادات OpenThread NCP
. يحتفظ wpantund
بجميع إعدادات "رصد محتوى Jam" عند إعادة ضبط بروتوكول NCP.
توفّر wpanctl
إمكانية الوصول إلى خصائص wpantund
التالية:
أماكن إقامة | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
على سبيل المثال، للحصول على حالة رصد التشويش لأحد وحدات التحكّم في حدود الجلسة (NCP):
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
لضبط الحدّ الأدنى لخلاصة RSSI لرصد محتوى Jam على -45 ديسيبل ملي واط في جهاز NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
لمزيد من المعلومات عن سمات wpantund
، يُرجى الاطّلاع على مستودع GitHub
wpantund
.