Sensörler, raporlama modları olarak adlandırılan farklı şekillerde olaylar üretebilir; her sensör tipinin kendisiyle ilişkilendirilmiş bir ve yalnızca bir raporlama modu vardır. Dört raporlama modu mevcuttur.
Sürekli
Olaylar, batch
işlevine geçirilen sampling_period_ns
parametresi tarafından tanımlanan sabit bir hızda oluşturulur. Sürekli raporlama modunu kullanan örnek sensörler, ivmeölçerler ve jiroskoplardır .
değiştirildiğinde
Olaylar, yalnızca ölçülen değerler değiştiyse oluşturulur. Sensörün HAL düzeyinde etkinleştirilmesi (üzerinde activate(..., enable=1)
çağrılması) ayrıca bir olayı tetikler, yani HAL, bir değişime bağlı sensör etkinleştirildiğinde hemen bir olay döndürmesi gerekir. Değişimde raporlama modunu kullanan örnek sensörler, adım sayacı, yakınlık ve kalp atış hızı sensörü türleridir.
batch
işlevine iletilen sampling_period_ns
parametresi, ardışık olaylar arasındaki minimum süreyi ayarlamak için kullanılır; yani, değer o zamandan beri değişse bile, son olaydan bu yana sampling_period_ns
nanosaniye geçene kadar bir olay oluşturulmamalıdır. Değer değiştiyse, son olaydan bu yana sampling_period_ns
geçer geçmez bir olay oluşturulmalıdır.
Örneğin, varsayalım:
- Adım sayacını
sampling_period_ns = 10 * 10^9
(10 saniye) ile aktif hale getiriyoruz. - 55 saniye yürüyoruz, sonra bir dakika hareketsiz duruyoruz.
- Olaylar, toplam yedi olay için ilk dakika boyunca (sensörün aktivasyonu nedeniyle
t=0
zamanı vet=60
saniye dahil) yaklaşık her 10 saniyede bir oluşturulur. Adım sayısının değerit=60
saniye sonra değişmediği için ikinci dakikada hiçbir olay oluşturulmaz.
Tek atış
Bir olayın algılanması üzerine, sensör kendini devre dışı bırakır ve ardından HAL aracılığıyla tek bir olay gönderir. Yarış koşullarından kaçınmak için sıralama önemlidir. (Olay HAL aracılığıyla rapor edilmeden önce sensör devre dışı bırakılmalıdır). Sensör yeniden etkinleştirilene kadar başka bir olay gönderilmez. Önemli hareket , bu tür bir sensöre bir örnektir.
Tek atış sensörlerine bazen tetik sensörleri denir.
batch
işlevine iletilen sampling_period_ns
ve max_report_latency_ns
parametreleri yok sayılır. Tek seferlik olaylardan gelen olaylar, donanım FIFO'larında saklanamaz; olaylar oluştukları anda rapor edilmelidir.
Özel
Olayların ne zaman oluşturulduğuna ilişkin ayrıntılar için ayrı sensör tipi açıklamalarına bakın.