Os sensores podem gerar eventos de maneiras diferentes, chamadas de modos de relatório; cada tipo de sensor tem um e apenas um modo de relatório associado a ele. Há quatro modos de relatório.
Contínuo
Os eventos são gerados a uma taxa constante definida pelo
sampling_period_ns
parâmetro transmitido para a batch função. Exemplos de sensores
que usam o modo de relatório contínuo são
acelerômetros
e giroscópios.
On-change
Os eventos são gerados apenas se os valores medidos tiverem mudado.
A ativação do sensor no nível da HAL (chamando
activate(..., enable=1) nele) também aciona um evento,
o que significa que a HAL precisa retornar um evento imediatamente quando um sensor on-change
é ativado. Exemplos de sensores que usam o modo de relatório on-change são o
contador de passos, a proximidade e os tipos de sensor de frequência cardíaca.
O parâmetro transmitido para a função é 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.sampling_period_nsbatch Se o valor tiver mudado,
um evento precisará ser gerado assim que sampling_period_ns tiver
decorrido desde o último evento.
Por exemplo, suponha que:
- 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 horário
t=0devido à ativação do sensor et=60segundos), totalizando sete eventos. Nenhum evento é gerado no segundo minuto porque o valor da contagem de passos não mudou apóst=60segundos.
One-shot
Após a detecção de um evento, o sensor se desativa e envia um único evento pela HAL. A ordem é importante para evitar disputas. O sensor precisa ser desativado antes que o evento seja informado pela HAL. Nenhum outro evento é enviado até que o sensor seja reativado. Um exemplo desse tipo de sensor é o Significant motion.
Os sensores one-shot às vezes são chamados de sensores de gatilho.
Os parâmetros sampling_period_ns e max_report_latency_ns
transmitidos para a função batch são ignorados. Os eventos
one-shot não podem ser armazenados em FIFOs de hardware. Eles precisam
ser informados assim que forem gerados.
Especial
Consulte as descrições de tipo de sensor individual para detalhes sobre quando os eventos são gerados.