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 laju konstan yang ditentukan oleh
sampling_period_ns
yang diteruskan ke fungsi batch
. Contoh sensor
yang menggunakan mode pelaporan berkelanjutan adalah
akselerometer
dan giroskop.
Siap berubah
Peristiwa hanya dibuat jika nilai yang diukur telah berubah.
Mengaktifkan sensor pada tingkat HAL (memanggil
activate(..., enable=1)
) juga memicu peristiwa,
artinya HAL harus segera mengembalikan
kejadian ketika sensor perubahan
diaktifkan. Contoh sensor yang menggunakan mode pelaporan saat perubahan adalah
jenis sensor penghitung langkah, kedekatan, dan detak jantung.
Tujuan
sampling_period_ns
yang diteruskan ke fungsi batch
digunakan untuk mengatur
waktu minimum di antara peristiwa berturut-turut, artinya peristiwa tidak boleh
dihasilkan hingga sampling_period_ns
nanodetik berlalu sejak
kejadian terakhir, meskipun nilainya berubah sejak saat itu. Jika nilai berubah,
peristiwa harus dibuat segera setelah sampling_period_ns
berlalu sejak peristiwa terakhir.
Misalnya:
- Kami mengaktifkan penghitung langkah dengan
sampling_period_ns = 10 * 10^9
(10 detik). - Kita berjalan selama 55 detik, lalu diam selama satu menit.
- Peristiwa dibuat kira-kira setiap 10 detik selama
menit (termasuk pada waktu
t=0
karena aktivasi sensor, dant=60
detik), dengan total tujuh peristiwa. Tidak ada peristiwa yang dihasilkan dalam menit kedua karena nilai jumlah langkah tidak berubah setelaht=60
detik.
Satu kali
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. Gerakan yang signifikan adalah contoh sensor jenis ini.
Sensor one-shot terkadang disebut sebagai sensor pemicu.
sampling_period_ns
dan max_report_latency_ns
parameter yang diteruskan ke fungsi batch
akan diabaikan. Acara
dari kejadian satu kali tidak dapat
disimpan dalam FIFO perangkat keras; peristiwa harus
segera dilaporkan setelah dibuat.
Khusus
Melihat jenis sensor secara terpisah deskripsi untuk mengetahui detail tentang kapan peristiwa dibuat.