Modos de relatório

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 e t=60 segundos), totalizando sete eventos. Nenhum evento é gerado no segundo minuto porque o valor da contagem de passos não mudou após t=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.