Modos de relatório

Os sensores podem gerar eventos de diferentes maneiras, chamados de modos de relatório. Cada tipo de sensor tem um e apenas um modo de relatório associado. Existem quatro modos de relatório.

Contínuo

Os eventos são gerados a uma taxa constante definida pelo parâmetro sampling_period_ns transmitido para a função batch. Exemplos de sensores que usam o modo de relatório contínuo são acelerômetros e giroscópios.

Ao mudar

Os eventos só serão gerados se os valores medidos tiverem mudado. Ativar o 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 de mudança é ativado. Alguns exemplos de sensores que usam o modo de comunicação na mudança são os tipos de sensor de contador de passos, proximidade e frequência cardíaca.

O parâmetro sampling_period_ns transmitido para a função batch é usado para definir o tempo mínimo entre eventos consecutivos. Isso significa que um evento não pode 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 mudar, um evento precisa ser gerado assim que sampling_period_ns tiver decorrido desde o último evento.

Por exemplo, suponha que:

  • O contador de passos é ativado com sampling_period_ns = 10 * 10^9 (10 segundos).
  • Andamos 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), 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.

One-shot

Após a detecção de um evento, o sensor se desativa e envia um único evento pelo HAL. A ordem é importante para evitar disputas. O sensor precisa ser desativado antes que o evento seja informado pelo HAL. Nenhum outro evento é enviado até que o sensor seja reativado. Movimento significativo é um exemplo desse tipo de sensor.

Os sensores de disparo são chamados de sensores de disparo.

Os parâmetros sampling_period_ns e max_report_latency_ns transmitidos para a função batch são ignorados. Os eventos de eventos únicos não podem ser armazenados em FIFOs de hardware. Eles precisam ser informados assim que forem gerados.

Especial

Consulte as descrições do tipo de sensor para saber quando os eventos são gerados.