回報模式

感應器可透過不同的方式產生事件,稱為報表模式。 每個感應器類型只有一個報表模式 報表有四種模式。

連續

事件會以傳遞至 batch 函式的 sampling_period_ns 參數定義的固定頻率產生。感應器範例 啟用持續報表模式 加速計陀螺儀

變更時

只有在測量值有變更時,系統才會產生事件。 在 HAL 層級啟用感應器 (呼叫 activate(..., enable=1)) 也會觸發事件, 這表示 HAL 必須在變更感應器的情況下立即傳回事件 就會啟動。使用變更時回報模式的例子感應器包括步數計、接近度和心率感應器類型。

傳遞至 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 中;事件必須 即可立即回報

特別節目

查看個別感應器類型 說明,進一步瞭解產生事件的時間。