Cảm biến có thể tạo ra các sự kiện theo nhiều cách khác nhau được gọi là chế độ báo cáo; mỗi loại cảm biến có một và chỉ một chế độ báo cáo được liên kết với nó. Bốn chế độ báo cáo tồn tại.
Tiếp diễn
Các sự kiện được tạo với tốc độ không đổi được xác định bởi tham số sampling_period_ns
được chuyển đến hàm batch
. Các cảm biến ví dụ sử dụng chế độ báo cáo liên tục là gia tốc kế và con quay hồi chuyển .
Đang thay đổi
Các sự kiện chỉ được tạo ra nếu các giá trị đo được thay đổi. Kích hoạt cảm biến ở cấp độ HAL (gọi activate(..., enable=1)
trên đó) cũng kích hoạt một sự kiện, nghĩa là HAL phải trả về một sự kiện ngay lập tức khi cảm biến thay đổi được kích hoạt. Các cảm biến ví dụ sử dụng chế độ báo cáo khi thay đổi là các loại cảm biến đếm bước, độ gần và nhịp tim.
Tham số sampling_period_ns
được chuyển đến hàm batch
được dùng để đặt thời gian tối thiểu giữa các sự kiện liên tiếp, nghĩa là không nên tạo một sự kiện cho đến khi sampling_period_ns
nano giây trôi qua kể từ sự kiện cuối cùng, ngay cả khi giá trị đã thay đổi kể từ đó. Nếu giá trị thay đổi thì sự kiện phải được tạo ngay sau khi sampling_period_ns
trôi qua kể từ sự kiện cuối cùng.
Ví dụ: giả sử:
- Chúng tôi kích hoạt bộ đếm bước với
sampling_period_ns = 10 * 10^9
(10 giây). - Chúng ta đi bộ trong 55 giây, sau đó đứng yên trong một phút.
- Các sự kiện được tạo ra khoảng 10 giây một lần trong phút đầu tiên (bao gồm cả thời điểm
t=0
do kích hoạt cảm biến vàt=60
giây), với tổng số bảy sự kiện. Không có sự kiện nào được tạo vào phút thứ hai vì giá trị của số bước không thay đổi saut=60
giây.
Một Châu
Khi phát hiện một sự kiện, cảm biến sẽ tự tắt và sau đó gửi một sự kiện duy nhất thông qua HAL. Đặt hàng các vấn đề để tránh điều kiện chủng tộc. (Cảm biến phải được tắt trước khi sự kiện được báo cáo thông qua HAL). Không có sự kiện nào khác được gửi cho đến khi cảm biến được kích hoạt lại. Chuyển động đáng kể là một ví dụ về loại cảm biến này.
Cảm biến một lần chụp đôi khi được gọi là cảm biến kích hoạt.
Các tham số sampling_period_ns
và max_report_latency_ns
được truyền cho hàm batch
sẽ bị bỏ qua. Các sự kiện từ các sự kiện diễn ra một lần không thể được lưu trữ trong FIFO phần cứng; các sự kiện phải được báo cáo ngay khi chúng được tạo ra.
Đặc biệt
Xem mô tả từng loại cảm biến để biết chi tiết về thời điểm các sự kiện được tạo.