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

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

พิเศษ

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