Deteksi Kemacetan

Lihat sumber di GitHub

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

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

Cara kerjanya

Deteksi Interferensi memantau RSSI (indikator kekuatan sinyal yang diterima) dari node selama jangka waktu tertentu untuk menentukan apakah saluran telah terganggu.

Jika Deteksi Pemblokiran diaktifkan:

  1. Status Deteksi Pemblokiran disetel ke false.
  2. Node mengambil sampel RSSI beberapa kali selama setiap interval satu detik.
  3. Jika RSSI selama interval satu detik tersebut tetap di atas Threshold RSSI yang dikonfigurasi untuk setiap sampel, interval satu detik tersebut dianggap terganggu.
  4. Jika jumlah gabungan interval satu detik yang macet lebih dari atau sama dengan jumlah gabungan detik Periode Sibuk yang dikonfigurasi dalam Jendela Deteksi detik yang dikonfigurasi sebelumnya pada waktu tertentu, Status Deteksi Kemacetan pada waktu tersebut ditetapkan ke true.
  5. Jika jumlah gabungan interval satu detik yang macet kurang dari jumlah gabungan detik Periode Sibuk yang dikonfigurasi dalam Jendela Deteksi detik yang dikonfigurasi sebelumnya pada titik waktu mana pun, Status Deteksi Kemacetan pada titik waktu tersebut ditetapkan ke false.

Bitmap Histori

Di OpenThread API, bitmap 63 detik sebelumnya dapat diambil. Bitmap ini menunjukkan apakah RSSI melampaui Threshold RSSI yang dikonfigurasi pada setiap 63 detik sebelumnya.

Misalnya, Anda dapat mengambil bitmap berikut:

0xC248068C416E7FF0

Mengonversi ke biner akan menghasilkan setiap instance RSSI yang melebihi Nilai Minimum RSSI yang dikonfigurasi selama 63 detik sebelumnya:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Jika Jendela Deteksi disetel ke 16 detik, dan Periode Sibuk disetel ke 8 detik, Status Deteksi Jamming akan menjadi true pada 51 detik, karena itu adalah instance pertama saat Threshold RSSI terlampaui setidaknya selama 8 detik penuh dalam 16 detik sebelumnya. Dalam contoh ini, Status Deteksi Kemacetan 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 Threshold RSSI yang dikonfigurasi:

Deteksi Gangguan OT

Cara mengaktifkan

Fitur ini dinonaktifkan secara default.

Dengan menentukan

Untuk mengaktifkan Deteksi Jamming, tetapkan OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE sebagai 1 dalam file openthread/src/core/config/openthread-core-default-config.h sebelum membangun 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 Interferensi hanya dapat dikonfigurasi melalui OpenThread API atau protokol Spinel. Nilai default diterapkan jika fitur diaktifkan tanpa konfigurasi berikutnya.

Sesuaikan fitur ini menggunakan parameter berikut:

Parameter
Nilai Minimum RSSI
Nilai default
0 dBm
Deskripsi
Menentukan tingkat RSSI minimum dalam dBm yang dianggap sebagai gangguan saluran.
Jendela Deteksi
Nilai default
63 detik
Deskripsi
Menentukan interval dalam detik untuk memeriksa gangguan sinyal. Rentang: 1-63.
Periode Sibuk
Nilai default
63 detik
Deskripsi
Menentukan jumlah detik gabungan dalam Jendela Deteksi saat RSSI harus berada di atas Threshold RSSI untuk memicu Deteksi Jamming. Harus lebih kecil dari Jendela Deteksi. Rentang: 1-63.

API

OpenThread

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

  • Memulai dan menghentikan fitur
  • Melihat Status Deteksi Gangguan
  • Mengelola semua parameter
  • Mengambil bitmap histori Deteksi Kemacetan saat ini
  • Mendaftarkan fungsi callback saat kemacetan terdeteksi

Spinel

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

  • Memulai dan menghentikan fitur
  • Melihat Status Deteksi Gangguan
  • Mengelola semua parameter
  • Mengambil bitmap histori Deteksi Kemacetan saat ini

CLI

OpenThread

Tidak ada perintah CLI OpenThread yang terkait dengan fitur ini.