Raporlama modları

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 ve t=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.