لتوفير آلية قابلة للإعداد للكشف عن تشويش الإشارة على أي عُقدة OpenOpen، عليك تفعيل ميزة اكتشاف Jam.
وهذه الميزة مفيدة لشهادات الأجهزة التي تتطلب القدرة على رصد التشويش على قناة معيّنة. ويمكن ضبطها لتلبية متطلبات كل نوع من الشهادات.
آلية العمل
ترصد تقنية اكتشاف Jam خلاصة RSS (مؤشر قوة الإشارة المستلَمة) للعُقدة خلال فترات زمنية مُحدَّدة لتحديد ما إذا كان قد تم تشويش القناة أم لا.
عند تفعيل رصد محتوى Jam:
- تم ضبط حالة اكتشاف Jam على
false
. - وتحدّد العُقدة RSSI عدة مرات على كل فاصل زمني ثانٍ.
- إذا بقي تنسيق RSSI في ذلك الفاصل الزمني بأكمله خلال ثانية واحدة من الحدّ الأدنى لمؤشر RSSI الذي تم ضبطه لكل عيّنة، سيتم اعتبار الفاصل الزمني الثاني هذا عالقًا.
- إذا كان الرقم المجمّع للفترات الزمنية المليئة بالثغرة الواحدة أكبر من أو مساويًا للعدد المجمّع من فترة الانشغال التي تم إعدادها خلال ثواني فترة الاكتشاف التي تم ضبطها مسبقًا
في أي وقت، يتم ضبط حالة اكتشاف Jam في هذه النقطة الزمنية على
true
. - إذا كان الرقم المجمّع لفاصل زمني عالٍ واحد ثانيةأصغر من العدد المجمّعالفترة المشغولة من الثواني خلال
الإعداد السابقنافذة الاكتشاف في أي وقت، يتم ضبط
حالة اكتشاف Jam في أي وقت
false
.
الصورة النقطية للتاريخ
في واجهة برمجة تطبيقات Openthread وwpantund
، تتوفّر صورة نقطية من آخر 63 ثانية لاستردادها. تشير صورة Bitmap هذه إلى ما إذا كان 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
قبل إنشاء OpenOpen. :
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
حسب الخيار
يمكنك بدلاً من ذلك استخدام خيار الإصدار -DOT_JAM_DETECTION=ON
عند إنشاء سلسلة OpenOpen:
./script/build -DOT_JAM_DETECTION=ON
المعلَمات
لا يمكن ضبط معلَمات رصد محتوى Jam إلا من خلال واجهة برمجة تطبيقات OpenThread أو
بروتوكول Spinel أو wpanctl
، وهي أداة سطر الأوامر wpantund
لإدارة الشبكة (NCP) المشتركة. يتم تطبيق القيم التلقائية إذا كانت الميزة مفعّلة بدون إعداد لاحق.
يمكنك تخصيص هذه الميزة باستخدام المعلمات التالية:
المعلَمات | |||||
---|---|---|---|---|---|
الحدّ الأدنى لمساحة RSSI |
|
||||
فترة الاكتشاف |
|
||||
فترة الانشغال |
|
واجهة برمجة التطبيقات
OpenThread
استخدِم Jam Detection API لإدارة ميزة "رصد Jam" مباشرةً في تطبيق Openthread. توفّر واجهة برمجة تطبيقات OpenThread الوظيفة التالية:
- بدء الميزة وإيقافها
- عرض حالة اكتشاف Jam
- إدارة جميع المعلمات
- استرداد الصورة النقطية الحالية لسجل اكتشاف Jam
- تسجيل دالة رد اتصال عندما يتم اكتشاف ازدحام
عمود دوران
يمكّن بروتوكول Spini جهاز مضيف من الاتصال مباشرةً باستخدام NCP.
يعرض هذا البروتوكول خصائص رصد محتوى Jam في openthread/src/lib/spinel/spinel.h
، والتي توفّر الوظائف التالية:
- بدء الميزة وإيقافها
- عرض حالة اكتشاف Jam
- إدارة جميع المعلمات
- استرداد الصورة النقطية الحالية لسجل اكتشاف Jam
سطر الأوامر
OpenThread
لا تتوفّر أوامر OpenCL CLI مرتبطة بهذه الميزة.
بانباند
استخدِم واجهة سطر الأوامر wpanctl
CLI لإدارة ميزة "رصد Jam" من أجل ضبط OpenCP NCP. تحتفظ 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.