Raporlama modları

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 ve t=60 saniyede) olmak üzere toplam yedi etkinlik olarak oluşturulur. Adım sayısının değeri t=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.