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 batch işlevine aktarılan batch parametresiyle tanımlanan sabit bir hızda 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, bir 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, değer o zamandan beri değişmiş olsa bile son etkinlikten bu yana sampling_period_ns nanosaniye geçene kadar bir etkinlik oluşturulmaması gerektiği anlamına gelir. Değer değiştiyse son etkinlikten bu yana sampling_period_ns süresi dolduğu anda bir etkinlik oluşturulmalıdır.

Örneğin, aşağıdaki durumu ele alalım:

  • Adım sayacını sampling_period_ns = 10 * 10^9 (10 saniye) ile etkinleştiriyoruz.
  • 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 dahil) 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. (Sensör, etkinlik HAL üzerinden 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 kullanımlık sensörlere bazen tetikleyici sensörler de 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 sensör türü açıklamalarını inceleyin.