أوضاع التقارير

يمكن لأجهزة الاستشعار توليد الأحداث بطرق مختلفة تسمى أوضاع الإبلاغ؛ يحتوي كل نوع من أجهزة الاستشعار على وضع إبلاغ واحد فقط مرتبط به. توجد أربعة أوضاع لإعداد التقارير.

مستمر

يتم إنشاء الأحداث بمعدل ثابت تحدده المعلمة 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 ثانية، ثم نقف ساكنين لمدة دقيقة واحدة.
  • يتم إنشاء الأحداث كل 10 ثوانٍ تقريبًا خلال الدقيقة الأولى (بما في ذلك الوقت t=0 بسبب تنشيط المستشعر، و t=60 ثانية)، ليصبح المجموع سبعة أحداث. لم يتم إنشاء أي حدث في الدقيقة الثانية لأن قيمة عدد الخطوات لم تتغير بعد t=60 ثانية.

ضربة واحدة

عند اكتشاف حدث ما، يقوم المستشعر بإلغاء تنشيط نفسه ثم يرسل حدثًا واحدًا عبر HAL. النظام مهم لتجنب ظروف السباق. (يجب إلغاء تنشيط المستشعر قبل الإبلاغ عن الحدث من خلال HAL). ولا يتم إرسال أي حدث آخر حتى يتم إعادة تنشيط المستشعر. الحركة الكبيرة هي مثال على هذا النوع من أجهزة الاستشعار.

يُشار أحيانًا إلى أجهزة الاستشعار ذات الطلقة الواحدة باسم أجهزة استشعار الزناد.

يتم تجاهل المعلمات sampling_period_ns و max_report_latency_ns التي تم تمريرها إلى الدالة batch . لا يمكن تخزين الأحداث من أحداث اللقطة الواحدة في عناصر FIFO الخاصة بالأجهزة؛ يجب الإبلاغ عن الأحداث بمجرد إنشائها.

خاص

راجع أوصاف نوع المستشعر الفردي للحصول على تفاصيل حول وقت إنشاء الأحداث.