Modes de rapport

Les capteurs peuvent générer des événements de différentes manières appelées modes de rapport ; chaque type de capteur a un et un seul mode de rapport qui lui est associé. Quatre modes de rapport existent.

Continu

Les événements sont générés à une vitesse constante définie par les sampling_period_ns paramètre transmis à la batch la fonction. Capteurs par exemple en utilisant le mode de reporting en continu sont des accéléromètres et des gyroscopes .

Sur le changement

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

Le sampling_period_ns paramètre passé à la batch la fonction est utilisée pour régler le temps minimum entre les événements consécutifs, ce qui signifie un événement ne doit pas être généré jusqu'à ce que sampling_period_ns nanosecondes se sont écoulées depuis le dernier événement, même si la valeur a changé depuis. Si la valeur modifiée, un événement doit être généré dès sampling_period_ns se sont écoulés depuis le dernier événement.

Par exemple, supposons :

  • 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 toutes les 10 secondes au cours de la première minute (y compris à l' instant t=0 en raison de l'activation du capteur, et t=60 secondes), pour un total de sept événements. Aucun événement est généré dans la deuxième minute parce que la valeur du nombre de pas n'a pas changé après t=60 secondes.

Un tir

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

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

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

Spécial

Voir les différentes descriptions de type de capteur pour plus de détails lorsque les événements sont générés.