Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

報告方式

傳感器可以通過稱為報告模式的不同方式生成事件。每種傳感器類型都有一個且只有一個與之關聯的報告模式。存在四種報告模式。

連續

事件以傳遞給batch函數的sampling_period_ns參數定義的恆定速率生成。使用連續報告模式的示例傳感器是加速度計陀螺儀

不斷變化

僅當測量值已更改時,才會生成事件。在HAL級別上激活傳感器(在其上調用activate(..., enable=1) )也會觸發一個事件,這意味著當激活變化傳感器時,HAL必須立即返回一個事件。使用變化報告模式的示例傳感器為計步器,接近度和心率傳感器類型。

sampling_period_ns參數傳遞給batch功能用於設置連續事件之間的最短時間,這意味著不應該發生的事件,直到sampling_period_ns納秒自上次事件後所經歷,即使自那時以來,價值改變。如果該值改變,必須盡快產生一個事件sampling_period_ns自上次事件已經過去。

例如,假設:

  • 我們以sampling_period_ns = 10 * 10^9 (10秒)激活步數計數器。
  • 我們走了55秒,然後停了一分鐘。
  • 在第一分鐘(包括由於傳感器激活而在時間t=0處,並且在t=60秒處,包括在時間t=0處大約每10秒生成一次事件,總共七個事件。由於t=60秒後步數的值沒有變化,因此第二分鐘不會產生任何事件。

一槍

在檢測到事件後,傳感器會自行停用,然後通過HAL發送單個事件。為了避免比賽條件,訂購很重要。 (必須先禁用傳感器,然後才能通過HAL報告事件)。除非重新激活傳感器,否則不會發送其他事件。明顯的運動就是這種傳感器的一個例子。

單發傳感器有時稱為觸發傳感器。

sampling_period_nsmax_report_latency_ns傳遞給參數batch功能被忽略。一次性事件中的事件不能存儲在硬件FIFO中。事件一產生就必須報告。

特別

有關何時生成事件的詳細信息,請參見各個傳感器的類型說明