Режимы отчетности

Датчики могут генерировать события разными способами, называемыми режимами отчетности; с каждым типом датчика связан один и только один режим отчетности. Существуют четыре режима отчетности.

Непрерывный

События генерируются с постоянной скоростью, определяемой параметром sampling_period_ns переданным в batch функцию. Примерами датчиков, использующих режим непрерывной отчетности, являются акселерометры и гироскопы .

По изменению

События генерируются только в том случае, если измеренные значения изменились. Активация датчика на уровне HAL (вызов для него activate(..., enable=1) ) также запускает событие, то есть HAL должен немедленно возвращать событие, когда активируется датчик изменения. Примерами датчиков, использующих режим отчета об изменении, являются датчики шагов, приближения и датчики частоты пульса.

Параметр sampling_period_ns переданный в batch функцию, используется для установки минимального времени между последовательными событиями, то есть событие не должно генерироваться до тех пор, пока не sampling_period_ns наносекунды sampling_period_ns с последнего события, даже если значение изменилось с тех пор. Если значение изменилось, событие должно быть сгенерировано, как только sampling_period_ns истечет с момента последнего события.

Например, предположим:

  • Активируем счетчик шагов с помощью sampling_period_ns = 10 * 10^9 (10 секунд).
  • Мы ходим 55 секунд, затем стоим одну минуту.
  • События генерируются примерно каждые 10 секунд в течение первой минуты (включая время t=0 из-за активации датчика и t=60 секунд), всего семь событий. Во вторую минуту событие не генерируется, потому что значение счетчика шагов не изменилось после t=60 секунд.

Один выстрел

При обнаружении события датчик деактивируется, а затем отправляет одно событие через HAL. Порядок имеет значение, чтобы избежать условий гонки. (Датчик должен быть отключен, прежде чем о событии будет сообщено через HAL). Никакое другое событие не отправляется, пока датчик не будет повторно активирован. Значительное движение является примером такого датчика.

Одноразовые датчики иногда называют датчиками триггера.

Параметры sampling_period_ns и max_report_latency_ns переданные в batch функцию, игнорируются. События из одноразовых событий не могут быть сохранены в аппаратных FIFO; о событиях необходимо сообщать сразу после их создания.

Специальный

Подробные сведения о том, когда генерируются события, см. В описании отдельных типов датчиков .