Sensörler, raporlama modları adı verilen farklı şekillerde etkinlik oluşturabilir. Her sensör türünün kendisiyle ilişkili yalnızca bir raporlama modu vardır. Dört raporlama modu vardır.
Sürekli
Etkinlikler, batch
işlevine iletilen sampling_period_ns
parametresi tarafından tanımlanan sabit bir hızda oluşturulur. Sürekli raporlama modunu kullanan sensörlere örnek olarak ivme ölçer ve jiroskoplar verilebilir.
Değişimde
Etkinlikler yalnızca ölçülen değerler değiştiyse oluşturulur.
Sensörü HAL düzeyinde etkinleştirmek (activate(..., enable=1)
çağrısı yapmak) da bir etkinlik tetikler. Yani HAL, değişiklik algılayan bir sensör etkinleştirildiğinde hemen bir etkinlik döndürmelidir. Değişiklik raporlama modunu kullanan örnek sensörler arasında adım sayar, yakınlık ve nabız sensörü türleri bulunur.
batch
işlevine iletilen sampling_period_ns
parametresi, ardışık etkinlikler arasındaki minimum süreyi ayarlamak için kullanılır. Diğer bir deyişle, değer o zamandan beri değişse bile, son etkinlikten bu yana sampling_period_ns
nanosaniye geçene kadar bir etkinlik oluşturulmamalıdır. Değer değiştiyse
son etkinlikten bu yana sampling_period_ns
geçer geçmez bir etkinlik
oluşturulmalıdır.
Örneğin, diyelim ki:
- Adım sayacını
sampling_period_ns = 10 * 10^9
(10 saniye) ile etkinleştiririz. - 55 saniye boyunca yürüyüp bir dakika boyunca hareketsiz kalırız.
- Etkinlikler, ilk dakika boyunca yaklaşık 10 saniyede bir (sensörün etkinleştirilmesi nedeniyle
t=0
saniye vet=60
saniye dahil) oluşturulur ve toplam yedi etkinlik oluşur. Adım sayısıt=60
saniye sonra değişmediğinden ikinci dakikada etkinlik oluşturulmaz.
Tek seferlik
Sensör, bir etkinlik algıladığında kendini devre dışı bırakır ve ardından HAL üzerinden tek bir etkinlik gönderir. Yarışma koşullarını önlemek için sıra önemlidir. (Sensör, HAL üzerinden etkinlik bildirilmeden önce devre dışı bırakılmalıdır.) Sensör yeniden etkinleştirilene kadar başka etkinlik gönderilmez. Önemli hareket bu tür bir sensöre örnektir.
Tek seferlik sensörlere bazen tetikleyici sensörler denir.
batch
işlevine iletilen sampling_period_ns
ve max_report_latency_ns
parametreleri yoksayılır. Tek seferlik etkinliklerden gelen etkinlikler donanım FIFO'larında depolanamaz. Etkinlikler oluşturulur oluşturulmaz raporlanmalıdır.
Özel
Etkinliklerin ne zaman oluşturulduğuyla ilgili ayrıntılar için her bir sensör türü açıklamasına bakın.