Modos de relatório

Os sensores podem gerar eventos de diferentes maneiras chamadas modos de relatório; cada tipo de sensor tem 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. A ativação do sensor no nível HAL (chamando 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 na mudança são os tipos de sensores de contador de passos, proximidade e 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 sido alterado desde então. Se o valor for alterado, um evento deve 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, depois ficamos parados por um minuto.
  • Os eventos são gerados aproximadamente a cada 10 segundos durante o primeiro minuto (incluindo no tempo t=0 por causa da ativação do sensor, t=60 segundos), para um total de 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 relatado através do HAL). Nenhum outro evento é enviado até que o sensor seja reativado. Movimento significativo é um exemplo desse tipo de sensor.

Os sensores de disparo único às vezes são chamados de sensores de gatilho.

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 são gerados.

Especial

Consulte as descrições dos tipos de sensores individuais para obter detalhes sobre quando os eventos são gerados.