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