Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Deteksi Jam

Lihat sumber di GitHub

Guna menyediakan mekanisme yang dapat dikonfigurasi untuk mendeteksi gangguan sinyal pada node OpenThread apa pun, aktifkan fitur Deteksi Jam.

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

Cara kerja

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

Saat Deteksi Jam diaktifkan:

  1. Status Deteksi Jam disetel ke false.
  2. Node mengambil sampel RSSI beberapa kali selama setiap satu detik detik.
  3. Jika RSSI selama satu detik interval tersebut tetap berada di atas Ambang Batas RSSI yang dikonfigurasi untuk setiap sampel, interval satu detik tersebut akan dianggap macet.
  4. Jika jumlah gabungan kemacetan satu detik yang macet lebih dari atau sama dengan jumlah gabungan Periode Sibuk yang dikonfigurasi dalam Periode Deteksi yang telah dikonfigurasi sebelumnya kapan saja, Status Deteksi Jam pada saat tersebut ditetapkan ke true.
  5. Jika jumlah gabungan kemacetan satu detikkurang dari jumlah agregat yang dikonfigurasiPeriode Ramai detik dalam detik sebelumnyaPeriode Deteksi detik pada waktu tertentu, Status Deteksi Jam pada waktu tersebut disetel kefalse Domain.

Bitmap Histori

Dalam properti OpenThread API dan properti wpantund, bitmap dari 63 detik sebelumnya tersedia untuk diambil. Bitmap ini menunjukkan apakah RSSI melewati Nilai Minimum RSSI yang dikonfigurasi di setiap 63 detik sebelumnya.

Misalnya, Anda dapat mengambil bitmap berikut:

0xC248068C416E7FF0

Konversi ke biner menghasilkan setiap instance RSSI yang melampaui Ambang Batas RSS 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 akan menjadi true pada 51 detik, karena itulah instance pertama dengan Ambang Batas RSSI adalah melampaui setidaknya 8 detik seluruh dalam 16 detik sebelumnya. Dalam contoh ini, Status Deteksi Jam tetap true untuk 13 detik ke depan.

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

Bitmap ini dapat diwakili oleh grafik berikut, jika -45 dBm adalah nilai minimum RSSI yang dikonfigurasi:

Deteksi Jam OT

Cara mengaktifkan

Fitur ini dinonaktifkan secara default.

Menurut definisi

Untuk mengaktifkan Deteksi Jam, tentukan OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE sebagai 1 dalam file openthread/src/core/config/openthread-core-default-config.h, sebelum membuat 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 membuat OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Parameter

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

Sesuaikan fitur ini menggunakan parameter berikut:

Parameter
Nilai Minimum RSSI
Nilai default
0 dBm
Deskripsi
Menentukan ambang batas RSSI di dBm di atas untuk mempertimbangkan saluran yang macet.
Periode Deteksi
Nilai default
63 detik
Deskripsi
Menentukan periode waktu dalam detik untuk memeriksa kemacetan sinyal. Rentang: 1-63.
Periode Sibuk
Nilai default
63 detik
Deskripsi
Menentukan jumlah detik gabungan dalam Jendela Deteksi tempat RSSI harus berada di atas Ambang Batas 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 langsung di aplikasi OpenThread Anda. 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 menampilkan 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 CLI wpanctl untuk mengelola fitur Deteksi Jam untuk konfigurasi OpenCP NCP. wpantund mempertahankan semua konfigurasi Jam Detection saat menyetel ulang NCP.

wpanctl menyediakan akses ke properti wpantund berikut:

Properti
JamDetection:Status
Format
boolean
Deskripsi
Hanya baca. Status Deteksi Jam. Menunjukkan apakah kemacetan sinyal saat ini terdeteksi.
JamDetection:Enable
Format
boolean
Deskripsi
Aktifkan atau nonaktifkan fitur Deteksi Jam.
JamDetection:RssiThreshold
Format
dBm
Deskripsi
Menentukan ambang batas RSSI dalam dBm di atas yang dianggap sebagai pemblokiran saluran.
JamDetection:Window
Format
detik
Deskripsi
Menentukan periode waktu dalam detik untuk memeriksa kemacetan 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 menyetel Ambang Batas 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.