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

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

พิเศษ

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