מצבי דיווח

חיישנים יכולים ליצור אירועים בדרכים שונות הנקראות מצבי דיווח; לכל סוג חיישן יש מצב דיווח אחד ויחיד המשויך אליו. קיימים ארבעה מצבי דיווח.

רָצִיף

אירועים נוצרים בקצב קבוע המוגדר על ידי הפרמטר sampling_period_ns המועבר לפונקציית batch . חיישנים לדוגמה המשתמשים במצב דיווח רציף הם מדי תאוצה וג'ירוסקופים .

בשינוי

אירועים נוצרים רק אם הערכים הנמדדים השתנו. הפעלת החיישן ברמת ה-HAL (קוראת activate(..., enable=1) בו) מפעילה גם אירוע, כלומר ה-HAL חייב להחזיר אירוע מיד כאשר חיישן ב-change מופעל. חיישנים לדוגמה המשתמשים במצב הדיווח בעת שינוי הם מונה הצעדים, הקרבה וסוגי חיישני הדופק.

הפרמטר 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 של חומרה; יש לדווח על האירועים ברגע שהם נוצרים.

מיוחד

ראה את תיאורי סוגי החיישנים הבודדים לפרטים על מועד הפקת האירועים.