โหมดการรายงาน

เซ็นเซอร์สามารถสร้างเหตุการณ์ได้หลายรูปแบบ ซึ่งเรียกว่าโหมดการรายงาน เซ็นเซอร์แต่ละประเภทจะมีโหมดการรายงานเพียงโหมดเดียวที่เชื่อมโยงกับเซ็นเซอร์นั้น โหมดการรายงานมี 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 ของฮาร์ดแวร์ไม่ได้ เหตุการณ์ต้องได้รับการรายงานทันทีที่สร้างขึ้น

พิเศษ

ดูรายละเอียดเกี่ยวกับเวลาที่ระบบสร้างเหตุการณ์ได้ที่คำอธิบายประเภทเซ็นเซอร์แต่ละประเภท