Modes de création de rapports

Les capteurs peuvent générer des événements de différentes manières, appelées modes de signalement. Chaque type de capteur est associé à un seul mode de signalement. Il existe quatre modes de création de rapports.

Continu

Les événements sont générés à un taux constant défini par le paramètre sampling_period_ns transmis à la fonction batch. Les accéléromètres et les gyroscopes sont des exemples de capteurs utilisant le mode de rapport continu.

Lors d'un changement

Les événements ne sont générés que si les valeurs mesurées ont changé. L'activation du capteur au niveau HAL (en appelant activate(..., enable=1)) déclenche également un événement, ce qui signifie que le HAL doit renvoyer un événement immédiatement lorsqu'un capteur de changement est activé. Les types de capteurs de compteur de pas, de proximité et de fréquence cardiaque sont des exemples de capteurs utilisant le mode de rapport "on-change".

Le paramètre sampling_period_ns transmis à la fonction batch est utilisé pour définir le temps minimal entre des événements consécutifs. Cela signifie qu'un événement ne doit pas être généré tant que sampling_period_ns nanosecondes ne se sont pas écoulées depuis le dernier événement, même si la valeur a changé depuis. Si la valeur a changé, un événement doit être généré dès que sampling_period_ns s'est écoulé depuis le dernier événement.

Par exemple, supposons les éléments suivants :

  • Nous activons le compteur de pas avec sampling_period_ns = 10 * 10^9 (10 secondes).
  • Nous marchons pendant 55 secondes, puis restons immobiles pendant une minute.
  • Les événements sont générés environ toutes les 10 secondes au cours de la première minute (y compris à t=0 en raison de l'activation du capteur et à t=60 secondes), pour un total de sept événements. Aucun événement n'est généré au cours de la deuxième minute, car la valeur du nombre de pas n'a pas changé après t=60 secondes.

One-shot

Lorsqu'un événement est détecté, le capteur se désactive, puis envoie un seul événement via la HAL. L'ordre est important pour éviter les conditions de concurrence. (Le capteur doit être désactivé avant que l'événement ne soit signalé via la HAL.) Aucun autre événement n'est envoyé tant que le capteur n'est pas réactivé. Le capteur Mouvement important est un exemple de ce type de capteur.

Les capteurs à déclenchement unique sont parfois appelés capteurs de déclenchement.

Les paramètres sampling_period_ns et max_report_latency_ns transmis à la fonction batch sont ignorés. Les événements ponctuels ne peuvent pas être stockés dans les FIFO matériels. Ils doivent être signalés dès qu'ils sont générés.

Spécial

Pour savoir quand les événements sont générés, consultez les descriptions des différents types de capteurs.