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

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

Непрерывный

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

По изменению

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

В sampling_period_ns параметр , передаваемый в batch функции используется для установки минимального времени между последовательными событиями, то есть событие не должно быть сформировано , пока 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; о событиях необходимо сообщать сразу после их создания.

Особый

Смотрите отдельные описания типов датчиков для получения подробной информации о том, когда генерируется событие.