Deteksi Kemacetan

Lihat sumber di GitHub

Untuk menyediakan mekanisme yang dapat dikonfigurasi untuk deteksi gangguan sinyal di node OpenThread, aktifkan fitur Deteksi Gangguan.

Fitur ini berguna untuk sertifikasi perangkat yang memerlukan kemampuan untuk mendeteksi gangguan sinyal di saluran tertentu. Sertifikat ini dapat dikonfigurasi untuk memenuhi persyaratan setiap jenis sertifikasi.

Cara kerjanya

Deteksi Jam memantau RSSI (indikator kekuatan sinyal yang diterima) node selama jangka waktu yang ditentukan untuk menentukan apakah saluran telah diganggu.

Jika Deteksi Jam diaktifkan:

  1. Status Deteksi Jam disetel ke false.
  2. Node mengambil sampel RSSI beberapa kali selama setiap interval satu detik.
  3. Jika RSSI selama seluruh interval satu detik tersebut tetap di atas Batas RSSI yang dikonfigurasi untuk setiap sampel, interval satu detik tersebut dianggap mengalami gangguan.
  4. Jika jumlah gabungan interval satu detik yang mengalami gangguan lebih dari atau sama dengan jumlah gabungan detik Periode Sibuk yang dikonfigurasi dalam detik Jendela Deteksi yang dikonfigurasi sebelumnya pada waktu tertentu, Status Deteksi Gangguan pada waktu tersebut ditetapkan ke true.
  5. Jika jumlah gabungan interval satu detik yang macet kurang dari jumlah agregat detik Periode Sibuk yang dikonfigurasi dalam detik Periode Deteksi yang dikonfigurasi sebelumnya pada setiap waktu tertentu, Status Deteksi Jam pada titik waktu tersebut akan ditetapkan ke false.

Bitmap Histori

Di properti OpenThread API dan wpantund, bitmap dari 63 detik sebelumnya dapat diambil. Bitmap ini menunjukkan apakah RSSI melampaui Batas RSSI yang dikonfigurasi pada setiap 63 detik sebelumnya.

Misalnya, Anda dapat mengambil bitmap berikut:

0xC248068C416E7FF0

Konversi ke biner menghasilkan setiap instance RSSI yang melebihi Threshold RSSI yang dikonfigurasi selama 63 detik sebelumnya:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Jika Periode Deteksi disetel ke 16 detik, dan Periode Sibuk disetel ke 8 detik, Status Deteksi Jam menjadi true pada 51 detik, karena itu adalah kasus pertama saat Nilai Minimum RSSI terlampaui setidaknya selama 8 detik dalam 16 detik sebelumnya. Dalam contoh ini, Status Deteksi Jam tetap true selama 13 detik berikutnya.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Bitmap ini dapat direpresentasikan oleh grafik berikut, jika -45 dBm adalah Batas RSSI yang dikonfigurasi:

Deteksi Jam OT

Cara mengaktifkan

Fitur ini dinonaktifkan secara default.

Menurut mendefinisikan

Untuk mengaktifkan Deteksi Jam, tentukan OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE sebagai 1 dalam file openthread/src/core/config/openthread-core-default-config.h, sebelum mem-build OpenThread:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Berdasarkan opsi

Atau, gunakan opsi build -DOT_JAM_DETECTION=ON saat mem-build OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Parameter

Parameter Deteksi Jam hanya dapat dikonfigurasi melalui OpenThread API, Protokol Spinel, atau wpanctl, alat command line wpantund untuk pengelolaan Co-Processor Jaringan (NCP). Nilai default diterapkan jika fitur diaktifkan tanpa konfigurasi berikutnya.

Sesuaikan fitur ini menggunakan parameter berikut:

Parameter
Batas RSSI
Nilai default
0 dBm
Deskripsi
Menentukan nilai minimum level RSSI dalam dBm yang akan dianggap sebagai gangguan saluran.
Jendela Deteksi
Nilai default
63 detik
Deskripsi
Menentukan periode dalam detik untuk memeriksa gangguan sinyal. Rentang: 1-63.
Periode Sibuk
Nilai default
63 detik
Deskripsi
Menentukan jumlah detik gabungan dalam Periode Deteksi ketika RSSI harus berada di atas Nilai Minimum RSSI untuk memicu Deteksi Jam. Harus lebih kecil dari Periode Deteksi. Rentang: 1-63.

API

OpenThread

Gunakan Jam Detection API untuk mengelola fitur Jam Detection secara langsung di aplikasi OpenThread. OpenThread API menyediakan fungsi berikut:

  • Memulai dan menghentikan fitur
  • Melihat Status Deteksi Jam
  • Kelola semua parameter
  • Mengambil bitmap histori Deteksi Jam saat ini
  • Mendaftarkan fungsi callback saat Jam terdeteksi

Spinel

Protokol Spinel memungkinkan perangkat host berkomunikasi langsung dengan NCP. Protokol ini mengekspos properti Deteksi Jam di openthread/src/lib/spinel/spinel.h yang menyediakan fungsi berikut:

  • Memulai dan menghentikan fitur
  • Melihat Status Deteksi Jam
  • Kelola semua parameter
  • Mengambil bitmap histori Deteksi Jam saat ini

CLI

OpenThread

Tidak ada perintah CLI OpenThread yang terkait dengan fitur ini.

wpantund

Gunakan wpanctl CLI untuk mengelola fitur Deteksi Jam untuk konfigurasi NCP OpenThread. wpantund mempertahankan semua konfigurasi Deteksi Jam setelah reset NCP.

wpanctl memberikan akses ke properti wpantund berikut:

Properti
JamDetection:Status
Format
boolean
Deskripsi
Hanya baca. Status Deteksi Jam. Menunjukkan apakah macet sinyal saat ini terdeteksi.
JamDetection:Enable
Format
boolean
Deskripsi
Aktifkan atau nonaktifkan fitur Deteksi Jam.
JamDetection:RssiThreshold
Format
dBm
Deskripsi
Menentukan level RSSI nilai minimum dalam dBm, yang lebih tinggi dari nilai minimum untuk dianggap sebagai channel yang diblokir.
JamDetection:Window
Format
detik
Deskripsi
Menentukan periode dalam detik untuk memeriksa gangguan sinyal. Rentang: 1-63.
JamDetection:BusyPeriod
Format
detik
Deskripsi
Menentukan jumlah detik gabungan dalam JamDetection:Window dengan RSSI harus di atas JamDetection:RssiThreshold untuk memicu Deteksi Jam. Harus lebih kecil dari JamDetection:Window. Rentang: 1-63.
JamDetection:Debug:HistoryBitmap
Format
Nilai 64-bit
Deskripsi
Memberikan informasi tentang histori Status Deteksi Jam untuk tujuan pemantauan dan proses debug.

Misalnya, untuk mendapatkan Status Deteksi Jam untuk NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Untuk menetapkan Nilai Minimum RSSI Deteksi Jam ke -45 dBm pada NCP:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Untuk mengetahui informasi selengkapnya tentang properti wpantund, lihat repositori GitHub wpantund.