Los sensores pueden generar eventos de diferentes formas llamadas modos de reporte; cada tipo de sensor tiene uno y solo un modo de informe asociado. Existen cuatro modos de informe.
Continuo
Los eventos se generan a una tasa constante definida por el parámetro sampling_period_ns
pasado a la función de batch
. Los sensores de ejemplo que utilizan el modo de informe continuo son acelerómetros y giroscopios .
en el cambio
Los eventos se generan solo si los valores medidos han cambiado. Activar el sensor en el nivel de HAL (llamando a activate(..., enable=1)
en él) también desencadena un evento, lo que significa que HAL debe devolver un evento inmediatamente cuando se activa un sensor de cambio. Los sensores de ejemplo que utilizan el modo de informe de cambio son los tipos de sensor de contador de pasos, proximidad y frecuencia cardíaca.
El parámetro sampling_period_ns
pasado a la función de batch
se usa para establecer el tiempo mínimo entre eventos consecutivos, lo que significa que no se debe generar un evento hasta que hayan transcurrido nanosegundos sampling_period_ns
desde el último evento, incluso si el valor cambió desde entonces. Si el valor cambió, se debe generar un evento tan pronto como transcurrió el período de sampling_period_ns
desde el último evento.
Por ejemplo, supongamos:
- Activamos el contador de pasos con
sampling_period_ns = 10 * 10^9
(10 segundos). - Caminamos durante 55 segundos, luego nos quedamos quietos durante un minuto.
- Los eventos se generan aproximadamente cada 10 segundos durante el primer minuto (incluido el tiempo
t=0
por la activación del sensor,t=60
segundos), para un total de siete eventos. No se genera ningún evento en el segundo minuto porque el valor del conteo de pasos no cambió después det=60
segundos.
Un trago
Al detectar un evento, el sensor se desactiva y luego envía un solo evento a través de HAL. El orden importa para evitar condiciones de carrera. (El sensor debe desactivarse antes de que se informe el evento a través de HAL). No se envía ningún otro evento hasta que se reactiva el sensor. El movimiento significativo es un ejemplo de este tipo de sensor.
Los sensores de disparo único a veces se denominan sensores de activación.
Los parámetros sampling_period_ns
y max_report_latency_ns
pasados a la función por batch
se ignoran. Los eventos de eventos únicos no se pueden almacenar en FIFO de hardware; los eventos deben ser reportados tan pronto como se generen.
Especial
Consulte las descripciones de los tipos de sensores individuales para obtener detalles sobre cuándo se generan los eventos.