เซ็นเซอร์สามารถสร้างเหตุการณ์ได้หลายรูปแบบ ซึ่งเรียกว่าโหมดการรายงาน เซ็นเซอร์แต่ละประเภทจะมีโหมดการรายงานเพียงโหมดเดียวที่เชื่อมโยงกับเซ็นเซอร์นั้น โหมดการรายงานมี 4 โหมด
ต่อเนื่อง
ระบบจะสร้างเหตุการณ์ในอัตราคงที่ที่กําหนดโดยพารามิเตอร์ 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 วินาที จากนั้นยืนนิ่งๆ 1 นาที
- ระบบจะสร้างเหตุการณ์ทุกๆ 10 วินาทีในช่วง 1 นาทีแรก (รวมถึงเวลา
t=0
วินาทีเนื่องจากการเปิดใช้งานเซ็นเซอร์ และt=60
วินาที) รวมเป็นเหตุการณ์ทั้งหมด 7 รายการ ไม่มีการสร้างเหตุการณ์ในนาทีที่ 2 เนื่องจากค่าของจํานวนก้าวไม่มีการเปลี่ยนแปลงหลังจากผ่านไปt=60
วินาที
ถ่ายครั้งเดียว
เมื่อตรวจพบเหตุการณ์ เซ็นเซอร์จะปิดใช้งานตัวเอง แล้วส่งเหตุการณ์เดียวผ่าน HAL ลำดับรายการเพื่อหลีกเลี่ยงเงื่อนไขการแข่งขัน (ต้องปิดใช้งานเซ็นเซอร์ก่อนที่จะรายงานเหตุการณ์ผ่าน HAL) ระบบจะไม่ส่งเหตุการณ์อื่นๆ จนกว่าจะมีการเปิดใช้งานเซ็นเซอร์อีกครั้ง การเคลื่อนไหวที่เห็นได้ชัดเป็นตัวอย่างของเซ็นเซอร์ประเภทนี้
เซ็นเซอร์แบบยิงครั้งเดียวบางครั้งเรียกว่าเซ็นเซอร์ทริกเกอร์
ระบบจะละเว้นพารามิเตอร์ sampling_period_ns
และ max_report_latency_ns
ที่ส่งไปยังฟังก์ชัน batch
เหตุการณ์จากเหตุการณ์ที่เกิดขึ้นครั้งเดียวจะจัดเก็บไว้ใน FIFO ของฮาร์ดแวร์ไม่ได้ เหตุการณ์ต้องได้รับการรายงานทันทีที่สร้างขึ้น
พิเศษ
ดูรายละเอียดเกี่ยวกับเวลาที่ระบบสร้างเหตุการณ์ได้ที่คำอธิบายประเภทเซ็นเซอร์แต่ละประเภท