Sensörler olayları raporlama modları olarak adlandırılan farklı yollarla oluşturabilir; her sensör türünde bir ve yalnızca bir raporlama modu bulunur. Dört raporlama modu vardır.
Sürekli
On-değişim
Olaylar yalnızca ölçülen değerler değiştiğinde oluşturulur. Sensörü HAL seviyesinde
activate(..., enable=1) çağrısı) da bir olayı tetikler, yani bir değişim sensörü etkinleştirildiğinde HAL'nin bir olayı derhal döndürmesi gerekir. Değişen raporlama modunu kullanan örnek sensörler, adım sayacı, yakınlık ve kalp atış hızı sensörü tipleridir.
batch işlevine geçirilen
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 geçen
sampling_period_ns nanosaniye geçene kadar bir olay oluşturulmamalıdır. Değer değiştiyse,
sampling_period_ns son olaydan bu yana 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 etkinleştiririz.
- 55 saniye yürüdükten sonra bir dakika hareketsiz duruyoruz.
- Olaylar, toplam yedi olay için ilk dakikada yaklaşık 10 saniyede bir (sensörün aktivasyonu nedeniyle
t=0ve
t=60saniye dahil) oluşturulur. İkinci dakikada hiçbir olay üretilmez, çünkü adım sayısının değeri
t=60saniye sonra değişmedi.
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 emir ö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 sensörlere bir örnektir.
Tek atış sensörleri bazen tetik sensörleri olarak adlandırılır.
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şturulur üretilmez raporlanmalıdır.
Özel
Olayların ne zaman oluşturulduğuyla ilgili ayrıntılar için ayrı sensör tipi açıklamalarına bakın.