رصد محتوى Jam

عرض المصدر على GitHub

لتوفير آلية قابلة للإعداد للكشف عن تشويش الإشارة على أي عُقدة OpenOpen، عليك تفعيل ميزة اكتشاف Jam.

وهذه الميزة مفيدة لشهادات الأجهزة التي تتطلب القدرة على رصد التشويش على قناة معيّنة. ويمكن ضبطها لتلبية متطلبات كل نوع من الشهادات.

آلية العمل

ترصد تقنية اكتشاف Jam خلاصة RSS (مؤشر قوة الإشارة المستلَمة) للعُقدة خلال فترات زمنية مُحدَّدة لتحديد ما إذا كان قد تم تشويش القناة أم لا.

عند تفعيل رصد محتوى Jam:

  1. تم ضبط حالة اكتشاف Jam على false.
  2. وتحدّد العُقدة RSSI عدة مرات على كل فاصل زمني ثانٍ.
  3. إذا بقي تنسيق RSSI في ذلك الفاصل الزمني بأكمله خلال ثانية واحدة من الحدّ الأدنى لمؤشر RSSI الذي تم ضبطه لكل عيّنة، سيتم اعتبار الفاصل الزمني الثاني هذا عالقًا.
  4. إذا كان الرقم المجمّع للفترات الزمنية المليئة بالثغرة الواحدة أكبر من أو مساويًا للعدد المجمّع من فترة الانشغال التي تم إعدادها خلال ثواني فترة الاكتشاف التي تم ضبطها مسبقًا في أي وقت، يتم ضبط حالة اكتشاف Jam في هذه النقطة الزمنية على true.
  5. إذا كان الرقم المجمّع لفاصل زمني عالٍ واحد ثانيةأصغر من العدد المجمّعالفترة المشغولة من الثواني خلال الإعداد السابقنافذة الاكتشاف في أي وقت، يتم ضبط حالة اكتشاف 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 من نوع OT

كيفية التفعيل

يتم إيقاف هذه الميزة تلقائيًا.

حسب التعريف

لتفعيل رصد محتوى 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
القيمة التلقائية
0 ديسيبل ميلي واط
الوصف
يحدِّد هذا الإعداد الحدّ الأدنى لمستوى RSSI بالديسيبل ميلي واط، والذي يجب أن يتم أخذ القناة في الاعتبار.
فترة الاكتشاف
القيمة التلقائية
63 ثانية
الوصف
تحدّد هذه الخاصية الثواني التي يتم خلالها التحقُّق من تشويش الإشارة. النطاق: من 1 إلى 63.
فترة الانشغال
القيمة التلقائية
63 ثانية
الوصف
تحدِّد هذه الخاصية عدد الثواني المجمّعة ضمن نافذة الاكتشاف التي يجب أن يكون فيها RSSI أعلى من الحدّ الأدنى RSSI لتشغيل رصد محتوى Jam. يجب أن يكون أصغر من نافذة الاكتشاف. النطاق: من 1 إلى 63.

واجهة برمجة التطبيقات

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
التنسيق
منطقي
الوصف
للقراءة فقط. حالة اكتشاف Jam يشير إلى ما إذا كان قد تم رصد تشويش في الإشارة حاليًا.
JamDetection:Enable
التنسيق
منطقي
الوصف
تفعيل ميزة "رصد Jam" أو إيقافها
JamDetection:RssiThreshold
التنسيق
ديسيبل ملي واط
الوصف
يحدِّد هذا الإعداد الحدّ الأدنى لمستوى RSSI بالديسيبل ميلي واط، والذي سيعتبر أنّ القناة محظورة.
JamDetection:Window
التنسيق
ثوان
الوصف
تحدّد هذه الخاصية الثواني التي يتم خلالها التحقُّق من تشويش الإشارة. النطاق: من 1 إلى 63.
JamDetection:BusyPeriod
التنسيق
ثوان
الوصف
تحدِّد هذه الخاصية عدد الثواني المجمَّعة خلال JamDetection:Window التي يجب أن يكون فيها RSSI أعلى من JamDetection:RssiThreshold لتشغيل رصد محتوى Jam. يجب أن يكون أصغر من JamDetection:Window. النطاق: من 1 إلى 63.
JamDetection:Debug:HistoryBitmap
التنسيق
قيمة 64 بت
الوصف
يوفِّر هذا الإعداد معلومات عن سجلّ حالة رصد محتوى Jam لأغراض المراقبة وتصحيح الأخطاء.

على سبيل المثال، للحصول على حالة اكتشاف 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.