Sensor dapat menghasilkan peristiwa dengan cara berbeda yang disebut mode pelaporan; setiap jenis sensor memiliki satu dan hanya satu mode pelaporan yang terkait dengannya. Ada empat mode pelaporan.
Kontinu
Peristiwa dihasilkan pada laju konstan yang ditentukan oleh parameter sampling_period_ns
yang diteruskan ke fungsi batch
. Contoh sensor yang menggunakan mode pelaporan berkelanjutan adalah akselerometer dan giroskop .
Dalam perubahan
Peristiwa dihasilkan hanya jika nilai terukur telah berubah. Mengaktifkan sensor pada level HAL (memanggil activate(..., enable=1)
di atasnya) juga memicu suatu peristiwa, yang berarti HAL harus segera mengembalikan suatu peristiwa ketika sensor on-change diaktifkan. Contoh sensor yang menggunakan mode pelaporan saat perubahan adalah jenis sensor penghitung langkah, jarak, dan detak jantung.
Parameter sampling_period_ns
yang diteruskan ke fungsi batch
digunakan untuk mengatur waktu minimum antara peristiwa yang berurutan, yang berarti suatu peristiwa tidak boleh dihasilkan sampai sampling_period_ns
nanodetik berlalu sejak peristiwa terakhir, bahkan jika nilainya berubah sejak saat itu. Jika nilainya berubah, peristiwa harus dibuat segera setelah sampling_period_ns
berlalu sejak peristiwa terakhir.
Misalnya, misalkan:
- Kita aktifkan penghitung langkah dengan
sampling_period_ns = 10 * 10^9
(10 detik). - Kami berjalan selama 55 detik, lalu berdiri diam selama satu menit.
- Peristiwa dihasilkan setiap 10 detik selama menit pertama (termasuk pada waktu
t=0
karena aktivasi sensor, dant=60
detik), dengan total tujuh peristiwa. Tidak ada kejadian yang dihasilkan pada menit kedua karena nilai jumlah langkah tidak berubah setelaht=60
detik.
Satu tembakan
Setelah mendeteksi suatu peristiwa, sensor akan menonaktifkan dirinya sendiri dan kemudian mengirimkan satu peristiwa melalui HAL. Ketertiban penting untuk menghindari kondisi balapan. (Sensor harus dinonaktifkan sebelum kejadian dilaporkan melalui HAL). Tidak ada peristiwa lain yang dikirim hingga sensor diaktifkan kembali. Gerakan signifikan adalah contoh dari sensor jenis ini.
Sensor sekali tembak terkadang disebut sebagai sensor pemicu.
Parameter sampling_period_ns
dan max_report_latency_ns
yang diteruskan ke fungsi batch
akan diabaikan. Peristiwa dari peristiwa satu kali tidak dapat disimpan di FIFO perangkat keras; peristiwa tersebut harus dilaporkan segera setelah dibuat.
Spesial
Lihat deskripsi masing-masing jenis sensor untuk detail tentang kapan peristiwa tersebut dihasilkan.