מצבי דיווח

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

רָצִיף

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

מיוחד

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