Mode pelaporan

Sensor dapat menghasilkan peristiwa dengan berbagai cara yang disebut mode pelaporan; setiap jenis sensor memiliki satu dan hanya satu mode pelaporan yang terkait dengannya. Ada empat mode pelaporan.

Berkelanjutan

Peristiwa dihasilkan dengan kecepatan konstan yang ditentukan oleh parameter sampling_period_ns yang diteruskan ke fungsi batch. Contoh sensor yang menggunakan mode pelaporan berkelanjutan adalah akselerometer dan giroskop.

Saat berubah

Peristiwa hanya dibuat jika nilai yang diukur telah berubah. Mengaktifkan sensor di tingkat HAL (memanggil activate(..., enable=1) di dalamnya) juga memicu peristiwa, yang berarti HAL harus segera menampilkan peristiwa saat sensor saat perubahan diaktifkan. Contoh sensor yang menggunakan mode pelaporan sesuai perubahan adalah jenis sensor detak jantung, kedekatan, dan penghitung langkah.

Parameter sampling_period_ns yang diteruskan ke fungsi batch digunakan untuk menetapkan waktu minimum antara peristiwa berturut-turut, yang berarti peristiwa tidak boleh dihasilkan hingga sampling_period_ns nanodetik berlalu sejak peristiwa terakhir, meskipun nilainya berubah sejak saat itu. Jika nilai berubah, peristiwa harus dibuat segera setelah sampling_period_ns berlalu sejak peristiwa terakhir.

Misalnya, anggaplah:

  • Kita mengaktifkan penghitung langkah dengan sampling_period_ns = 10 * 10^9 (10 detik).
  • Kita berjalan selama 55 detik, lalu berdiri diam selama satu menit.
  • Peristiwa dihasilkan sekitar setiap 10 detik selama menit pertama (termasuk pada waktu t=0 karena aktivasi sensor, dan t=60 detik), dengan total tujuh peristiwa. Tidak ada peristiwa yang dihasilkan pada menit kedua karena nilai jumlah langkah tidak berubah setelah t=60 detik.

One-shot

Setelah mendeteksi peristiwa, sensor akan menonaktifkan dirinya sendiri, lalu mengirim satu peristiwa melalui HAL. Urutan penting untuk menghindari kondisi race. (Sensor harus dinonaktifkan sebelum peristiwa dilaporkan melalui HAL). Tidak ada peristiwa lain yang dikirim hingga sensor diaktifkan kembali. Pergerakan yang signifikan adalah contoh jenis sensor ini.

Sensor one-shot terkadang disebut sebagai sensor pemicu.

Parameter sampling_period_ns dan max_report_latency_ns yang diteruskan ke fungsi batch akan diabaikan. Peristiwa dari peristiwa one-shot tidak dapat disimpan dalam FIFO hardware; peristiwa harus dilaporkan segera setelah dibuat.

Khusus

Lihat setiap deskripsi jenis sensor untuk mengetahui detail tentang kapan peristiwa dibuat.