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

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

ครั้งเดียว

เมื่อตรวจพบเหตุการณ์ เซ็นเซอร์จะปิดใช้งานตัวเอง แล้วส่ง เหตุการณ์เดียวผ่าน HAL ลำดับมีความสำคัญเพื่อหลีกเลี่ยงการแข่งขัน (ต้องปิดใช้งานเซ็นเซอร์ก่อนรายงานเหตุการณ์ผ่าน HAL) ระบบจะไม่ส่งเหตุการณ์อื่นๆ จนกว่าจะเปิดใช้งานเซ็นเซอร์อีกครั้ง การเคลื่อนไหว ที่สำคัญเป็นตัวอย่างของเซ็นเซอร์ประเภทนี้

บางครั้งเซ็นเซอร์แบบครั้งเดียวจะเรียกว่าเซ็นเซอร์ทริกเกอร์

ระบบจะไม่สนใจพารามิเตอร์ sampling_period_ns และ max_report_latency_ns ที่ส่งไปยังฟังก์ชัน batch เหตุการณ์ จากเหตุการณ์แบบครั้งเดียวจะจัดเก็บไว้ใน FIFO ของฮาร์ดแวร์ไม่ได้ โดยต้องรายงานเหตุการณ์ ทันทีที่สร้างขึ้น

พิเศษ

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