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 dibuat pada 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 diubah
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 berurutan, yang berarti peristiwa tidak boleh
dibuat 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:
- 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 dibuat setiap 10 detik selama satu menit pertama (termasuk pada waktu
t=0
karena aktivasi sensor, dant=60
detik), dengan total tujuh peristiwa. Tidak ada peristiwa yang dibuat pada menit kedua karena nilai jumlah langkah tidak berubah setelaht=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. Gerakan signifikan adalah contoh sensor jenis ini.
Sensor sekali pemicu terkadang disebut sebagai sensor pemicu.
Parameter sampling_period_ns
dan max_report_latency_ns
yang diteruskan ke fungsi batch
akan diabaikan. Peristiwa
dari peristiwa sekali pemicu tidak dapat disimpan di FIFO hardware; peristiwa harus
dilaporkan segera setelah dihasilkan.
Khusus
Lihat deskripsi jenis sensor masing-masing untuk mengetahui detail tentang kapan peristiwa dibuat.