Modes de reporting

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

Continu

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

Sur le changement

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

Le paramètre sampling_period_ns transmis à la fonction batch est utilisé pour définir le temps minimum entre des événements consécutifs, ce qui signifie qu'un événement ne doit pas être généré avant que sampling_period_ns nanosecondes ne se soient écoulées depuis le dernier événement, même si la valeur a changé depuis lors. 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 :

  • 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 pendant la première minute (y compris à l'instant t=0 du fait de l'activation du capteur, et t=60 secondes), pour un total de sept événements. Aucun événement n'est généré dans la deuxième minute car 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 est important pour éviter les conditions de concurrence. (Le capteur doit être désactivé avant que l'événement soit signalé via le HAL). Aucun autre événement n'est envoyé jusqu'à ce que le capteur soit réactivé. Le mouvement significatif est un exemple de ce type de capteur.

Les capteurs ponctuels sont parfois appelés capteurs à déclenchement.

Les paramètres sampling_period_ns et max_report_latency_ns transmis à la fonction batch 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 leur génération.

Spécial

Consultez les descriptions des différents types de capteurs pour plus de détails sur le moment où les événements sont générés.