Cảm biến có thể tạo sự kiện theo nhiều cách đượ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ó. Có 4 chế độ báo cáo.
Liên tục
Các sự kiện được tạo với tốc độ không đổi được xác định bằng
sampling_period_ns
được truyền đến hàm batch
. Cảm biến mẫu
sử dụng chế độ báo cáo liên tục
gia tốc kế
và con quay hồi chuyển.
Khi thay đổi
Hệ thống chỉ tạo sự kiện nếu các giá trị được đo lường đã thay đổi.
Việc kích hoạt cảm biến ở cấp HAL (gọi activate(..., enable=1)
trên cảm biế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. Ví dụ về cảm biến sử dụng chế độ báo cáo khi thay đổi là
các loại cảm biến đếm bước, cảm biến độ gần và cảm biến tần số tim.
Chiến lược phát hành đĩa đơn
sampling_period_ns
tham số được truyền đến hàm batch
dùng để đặt giá trị
thời gian tối thiểu giữa các sự kiện liên tiếp, nghĩa là một sự kiện không nên
được tạo 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ừ thời điểm đó. Nếu giá trị thay đổi,
một sự kiện phải được tạo ngay khi sampling_period_ns
trôi qua kể từ sự kiện cuối cùng.
Ví dụ: giả sử:
- Chúng ta kích hoạt bộ đếm bước bằng
sampling_period_ns = 10 * 10^9
(10 giây). - Chúng ta đi bộ trong 55 giây, sau đó đứng yên trong 1 phút.
- Các sự kiện được tạo khoảng 10 giây một lần trong
phút (bao gồm cả tại thời điểm
t=0
do sự kiện kích hoạt của cảm biến vàt=60
giây), tổng cộng là bảy sự kiện. Không có sự kiện nào được tạo trong phút thứ hai vì giá trị số bước không thay đổi saut=60
giây.
Một lần
Khi phát hiện một sự kiện, cảm biến sẽ tự tắt rồi gửi một sự kiện thông qua HAL. Thứ tự rất quan trọng để tránh tình trạng tương tranh. (Bạn phải tắt cảm biến trước khi sự kiện được báo cáo thông qua tính năng 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 đến hàm batch
sẽ bị bỏ qua. Không thể lưu trữ các sự kiện từ sự kiện một lần trong FIFO phần cứng; các sự kiện phải được báo cáo ngay khi được tạo.
Đặc biệt
Hãy xem nội dung mô tả về từng loại cảm biến để biết thông tin chi tiết về thời điểm tạo sự kiện.