لتوفير آلية قابلة للتهيئة لاكتشاف تشويش الإشارات في أي عقدة OpenThread، مكّن ميزة "اكتشاف محتوى Jam".
هذه الميزة مفيدة لشهادات الأجهزة التي تتطلب القدرة على اكتشاف تشويش الإشارات على قناة معينة. يمكن تهيئته لاستيفاء متطلبات كل نوع من الشهادات.
آلية العمل
ترصد ميزة "رصد محتوى Jam" مؤشر RSSI (مؤشر قوة الإشارة المستلَمة) لأي عقدة خلال فترات زمنية محدّدة لتحديد ما إذا كان قد تمّ تشويش القناة.
عند تفعيل اكتشاف محتوى Jam:
- تم ضبط حالة اكتشاف محتوى Jam على
false
. - تأخذ العقدة عينة RSSI عدة مرات خلال كل فاصل زمني مدته ثانية واحدة.
- إذا بقي مؤشر RSSI خلال هذه الفاصل الزمني لثانية واحدة أعلى من الحد الأدنى الذي يتم ضبطه على RSSI لكلّ عيّنة، سيُعتبَر الفاصل الزمني لثانية واحدة هذا مكتظًا.
- إذا كان العدد الإجمالي للفواصل الزمنية التي تبلغ مدتها ثانية واحدة مزدحمًا بها أكثر من أو مساويًا له للعدد الإجمالي لثواني فترة الانشغال التي تم ضبطها خلال
فترة الاكتشاف التي تم إعدادها سابقًا في أي وقت، يتم ضبط "حالة اكتشاف محتوى Jam" في هذه النقطة الزمنية على
true
. - إذا كان العدد الإجمالي للفواصل الزمنية التي تبلغ مدتها ثانية واحدة وأقل من العدد أقل من العدد المجمّع لثواني فترة الانشغال المهيأة ضمن ثوانٍ في فترة الكشف التي تم ضبطها في أي وقت، يتم ضبط "حالة اكتشاف محتوى Jam" في هذه المرحلة على
false
.
الصورة النقطية التاريخية
في واجهة برمجة تطبيقات OpenThread وwpantund
، تتوفّر استعادة صورة نقطية من آخر 63 ثانية. توضح هذه الصورة النقطية ما إذا كان RSSI قد تجاوز حد RSSI المهيأ في كل من الثواني الـ 63 السابقة.
على سبيل المثال، قد تسترد الصورة النقطية التالية:
0xC248068C416E7FF0
ويؤدي التحويل إلى تنسيق ثنائي إلى إنشاء كل مثيل لمؤشر RSSI أعلى من حد RSSI المهيأ أثناء الثواني الـ 63 السابقة:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
إذا تم ضبط نافذة الكشف على 16 ثانية، وتم ضبط فترة الانشغال على 8 ثوانٍ، تصبح حالة اكتشاف محتوى Jam true
في الدقيقة 51، حيث إن هذه هي الحالة الأولى التي يتم فيها تجاوز الحد الأدنى لترميز RSSI لمدة 8 ثوانٍ بالكامل على الأقل في الثواني الـ 16 السابقة. في هذا المثال، تظل "حالة اكتشاف محتوى Jam"
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
المعلَمات
لا يمكن ضبط معلّمات "رصد محتوى Jam" إلا من خلال واجهة برمجة تطبيقات OpenThread أو بروتوكول
Spinel أو أداة سطر الأوامر wpantund
في "wpanctl
" لإدارة
المعالج المشارك للشبكة (NCP). يتم تطبيق القيم الافتراضية إذا تم تمكين الميزة
بدون تهيئة لاحقة.
يمكنك تخصيص هذه الميزة باستخدام المَعلمات التالية:
المعلَمات | |||||
---|---|---|---|---|---|
الحد الأدنى لترميز RSSI |
|
||||
نافذة الكشف |
|
||||
فترة الانشغال |
|
واجهة برمجة التطبيقات
OpenThread
استخدِم واجهة برمجة تطبيقات اكتشاف Jam لإدارة ميزة اكتشاف Jam مباشرةً في تطبيق OpenThread. توفر واجهة برمجة تطبيقات OpenThread الوظائف التالية:
- بدء الميزة وإيقافها
- عرض حالة اكتشاف محتوى Jam
- إدارة جميع المعلمات
- استرداد الصورة النقطية الحالية لسجل اكتشاف محتوى Jam
- تسجيل دالة رد اتصال عند رصد محتوى Jam
سبينل
يتيح بروتوكول Spinel لجهاز مضيف إمكانية التواصل مباشرةً مع NCP.
يعرض هذا البروتوكول خصائص اكتشاف محتوى Jam في
openthread/src/lib/spinel/spinel.h
التي توفّر الوظائف التالية:
- بدء الميزة وإيقافها
- عرض حالة اكتشاف محتوى Jam
- إدارة جميع المعلمات
- استرداد الصورة النقطية الحالية لسجل اكتشاف محتوى Jam
واجهة سطر الأوامر
OpenThread
لا توجد أوامر CLI لـ OpenThread ذات صلة بهذه الميزة.
بانتند
استخدِم واجهة سطر الأوامر wpanctl
لإدارة ميزة "رصد محتوى Jam" لإعداد
NCP في OpenThread. تحتفظ wpantund
بجميع إعدادات اكتشاف Jam عند إعادة ضبط NCP.
يوفر wpanctl
إمكانية الدخول إلى خصائص wpantund
التالية:
أماكن إقامة | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
على سبيل المثال، للحصول على حالة اكتشاف Jam لـ 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
، اطّلع على مستودع wpantund
GitHub.