Sensörler, raporlama modları adı verilen farklı şekillerde etkinlik oluşturabilir. Her sensör türüyle ilişkilendirilmiş yalnızca bir raporlama modu vardır. Dört raporlama modu vardır.
Sürekli
Etkinlikler,
sampling_period_ns
işlevine aktarılan batch
parametresiyle tanımlanan sabit bir oranda oluşturulur. Sürekli raporlama modunu kullanan örnek sensörler arasında ivme ölçerler ve jiroskoplar yer alır.
Değişiklik yapıldığında
Etkinlikler 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ısı yapılması) de bir etkinliği tetikler. Bu nedenle, değişiklik üzerine sensör etkinleştirildiğinde HAL hemen bir etkinlik döndürmelidir. Değişiklik üzerine raporlama modunu kullanan sensörlere örnek olarak adım sayacı, yakınlık ve nabız sensörü türleri verilebilir.
batch
işlevine iletilen sampling_period_ns
parametresi, ardışık etkinlikler arasındaki minimum süreyi ayarlamak için kullanılır. Bu nedenle, değer o zamandan beri değişmiş olsa bile son etkinlikten bu yana sampling_period_ns
nanosaniye geçene kadar bir etkinlik oluşturulmaz. Değer değiştiyse son etkinlikten bu yana sampling_period_ns
süresi geçer geçmez bir etkinlik oluşturulmalıdır.
Örneğin, aşağıdaki gibi bir durum olduğunu varsayalım:
- Adım sayacını
sampling_period_ns = 10 * 10^9
(10 saniye) ile etkinleştiririz. - 55 saniye yürüyor, ardından bir dakika boyunca hareketsiz duruyoruz.
- Etkinlikler, ilk dakika boyunca yaklaşık 10 saniyede bir (sensörün etkinleştirilmesi nedeniyle
t=0
zamanında vet=60
saniyede) olmak üzere toplam yedi etkinlik olarak oluşturulur. Adım sayısının değerit=60
saniye sonra değişmediği için ikinci dakikada etkinlik oluşturulmaz.
Tek görevli
Sensör bir etkinlik algıladığında kendisini devre dışı bırakır ve ardından HAL üzerinden tek bir etkinlik gönderir. Yarış durumlarını önlemek için sıra önemlidir. (Etkinlik, HAL üzerinden bildirilmeden önce sensör 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 de denir.
sampling_period_ns
ve max_report_latency_ns
parametreleri batch
işlevine iletildiğinde 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 sensör türü açıklamalarına bakın.