Os sensores podem gerar eventos de diferentes maneiras, chamadas modos de relatório; cada tipo de sensor possui um e apenas um modo de relatório associado a ele. Existem quatro modos de relatório.
Contínuo
Os eventos são gerados a uma taxa constante definida pelo parâmetro sampling_period_ns
passado para a função batch
. Exemplos de sensores que usam o modo de relatório contínuo são acelerômetros e giroscópios .
Em mudança
Os eventos são gerados somente se os valores medidos forem alterados. Ativar o sensor no nível HAL (chamar activate(..., enable=1)
nele) também aciona um evento, o que significa que o HAL deve retornar um evento imediatamente quando um sensor on-change é ativado. Exemplos de sensores que usam o modo de relatório de alteração são os tipos de contador de passos, proximidade e sensor de frequência cardíaca.
O parâmetro sampling_period_ns
passado para a função batch
é usado para definir o tempo mínimo entre eventos consecutivos, o que significa que um evento não deve ser gerado até que sampling_period_ns
nanossegundos tenham decorrido desde o último evento, mesmo que o valor tenha mudado desde então. Se o valor for alterado, um evento deverá ser gerado assim que sampling_period_ns
tiver decorrido desde o último evento.
Por exemplo, suponha:
- Ativamos o contador de passos com
sampling_period_ns = 10 * 10^9
(10 segundos). - Caminhamos por 55 segundos e depois ficamos parados por um minuto.
- Os eventos são gerados a cada 10 segundos durante o primeiro minuto (inclusive no tempo
t=0
devido à ativação do sensor et=60
segundos), totalizando sete eventos. Nenhum evento é gerado no segundo minuto porque o valor da contagem de passos não mudou apóst=60
segundos.
Um disparo
Ao detectar um evento, o sensor se desativa e então envia um único evento através do HAL. A ordem é importante para evitar condições de corrida. (O sensor deve ser desativado antes que o evento seja reportado através do HAL). Nenhum outro evento é enviado até que o sensor seja reativado. Movimento significativo é um exemplo desse tipo de sensor.
Sensores de disparo único são às vezes chamados de sensores de disparo.
Os parâmetros sampling_period_ns
e max_report_latency_ns
passados para a função batch
são ignorados. Eventos de eventos únicos não podem ser armazenados em FIFOs de hardware; os eventos devem ser reportados assim que gerados.
Especial
Consulte as descrições individuais dos tipos de sensores para obter detalhes sobre quando os eventos são gerados.