מקורות נתונים

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

קוד לדוגמה להטמעות של מקורות נתונים זמין בספרייה system/software_defined_vehicle/samples/telemetry.

הגדרה של מקור נתונים בהגדרות של מדדים

הגדרות של מדדים מגדירות מקור נתונים אחד או יותר לאיסוף מדדים. כל מקור נתונים מזוהה באמצעות source_identifier. הפורמט source_identifier תלוי במקור הנתונים:

מקור נתונים פורמט תיאור דוגמאות
שירות SDV שם ההודעה ב-Protobuf השם המוגדר במלואו של הודעת ה-protobuf. אם לשירות יש כמה מופעים, צריך להוסיף את שם יחידת השירות, מופרד באמצעות קו אנכי (|). "com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
שם מופע מוגדר במלואו (FQIN) עם שם יחידת שירות ה-FQIN ושם יחידת השירות מופרדים באמצעות קו אנכי (|). "vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
בעל תוכן דיגיטלי שמתבסס על רישום בעלי תוכן דיגיטלי שניתן להגדרה שם בעל התוכן הדיגיטלי הערך המדויק של serviceName ששימש לרישום בעל האפליקציה במאגר הניתן להגדרה של בעלי אפליקציות. כל מחרוזת היא תקינה.

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

אפשרות סוג תיאור
connection_type SUBSCRIPTION או ON_DEMAND אם הערך הוא SUBSCRIPTION, שירות הטלמטריה נרשם כמנוי למקור הנתונים. אם ההגדרה היא ON_DEMAND, שירות הטלמטריה מאחזר הודעות ממקור הנתונים רק לפי דרישה.
configuration google.protobuf.Any אם ההגדרה הזו מוגדרת, שירות הטלמטריה מעביר את אובייקט ההגדרה למקור הנתונים כשהוא מתקשר איתו.
sub_sampling_interval google.protobuf.Duration אם הערך מוגדר, ההודעות נדגמות, כך ששירות הטלמטריה מעבד הודעה לכל היותר כל sub_sampling_interval זמן.
fetch_last_message bool אם ההגדרה הזו מוגדרת, שירות הטלמטריה מאחזר את ההודעה האחרונה שפורסמה כשנרשמים כמנויים למקור הנתונים, גם אם ההודעה פורסמה בעבר.

בהתאם לסוג מקור הנתונים (ראו את הקטעים הבאים), שירות הטלמטריה תומך רק בקבוצת משנה של פרמטרים. בטבלה הבאה מופיע סיכום.

אפשרות שירות SDV של RPC שירות SDV של פרסום והרשמה (pub/sub) בעלי תוכן דיגיטלי שמתבססים על Publisher Registry וניתן להגדיר אותם
connection_type: SUBSCRIPTION נתמך 1 נתמך נתמך
connection_type: ON_DEMAND נתמך 2 נתמך נתמך 3
configuration נתמך לא רלוונטי נתמך
sub_sampling_interval לא נתמך נתמך 4 לא נתמך
fetch_last_message לא נתמך נתמך 5 לא נתמך
1 נתמך אם מטמיעים את השיטה CreateSubscription.
2 נתמך אם מטמיעים את השיטה GetLatestMessage.
3 נתמך אם PublisherInfo.supportsGet הוא true.
4 נתמך ב-connection_type: SUBSCRIPTION, לא רלוונטי ל-connection_type: ON_DEMAND.
5 נתמך ב-connection_type: SUBSCRIPTION, לא רלוונטי ל-connection_type: ON_DEMAND.

שירותי SDV (באמצעות מחסנית תקשורת SDV)

שירות הטלמטריה יכול לאסוף נתונים משירותי SDV אחרים. שירותי SDV של RPC ושל pub/sub נתמכים. מכיוון ששירות הטלמטריה לא יודע את רשימת השירותים שהוא יירשם אליהם בזמן הבנייה, הוא מסתמך על שיקוף של Protobuf כדי לפענח הודעות שמתקבלות משירותי SDV.

שירותי SDV לא מספקים מטא-נתונים של שיקוף כברירת מחדל. כדי להשתמש בשירות SDV כמקור לנתוני טלמטריה, צריך להפעיל את יצירת קטלוג ה-VSIDL של השירות בזמן הריצה. מידע נוסף זמין במאמר מדריך לספקי VSIDL למפתחים של חבילות שירותים.

למטרות בדיקה והערכה בלבד, אפשר להגדיר את האפשרות register_reflection_metadata לערך true בהגדרת חבילת השירותים. מידע נוסף מופיע במאמר חבילת שירותים.

שירותי SDV של RPC

התמיכה בטלמטריה מוגבלת לשירותי RPC SDV. מידע נוסף זמין במאמר בנושא הגדרת שירותי RPC. כדי לאסוף נתונים משירות RPC SDV, השירות צריך לחשוף אחת או את שתי שיטות ה-RPC הבאות:

  • CreateSubscription מחזירה זרם של תשובות שמוגדרות על ידי המשתמש:

    rpc CreateSubscription(<configuration>) returns (stream <response>)
    
  • GetLatestMessage מחזירה תגובה שמוגדרת על ידי המשתמש:

    rpc GetLatestMessage(<configuration>) returns (<response>)
    

אתם יכולים להשתמש בארגומנט של ההגדרה כדי להגדיר פרמטרים להתנהגות של מקור הנתונים. לדוגמה, כדי לבקש תדירות פרסום שונה או כדי לבחור את הישות שרוצים להירשם אליה (למשל, איזו צמיגות לקרוא מלחץ הצמיגים).

כשמגדירים שירות SDV של RPC כמקור נתונים בהגדרת מדדים, אפשר לציין ערך configuration בהגדרת מקור הנתונים, שמשמש כארגומנט ל-RPC הזה. שירות הטלמטריה מטפל באובייקט ההגדרות באופן שקוף ומעביר את כל מה שמגדירים.

סוג ארגומנט ההגדרה בשתי השיטות יכול להיות google.protobuf.Any או סוג שמוגדר על ידי המשתמש. אם מציינים את שתי השיטות, סוגי הארגומנטים צריכים להיות זהים. אם לא צריך ארגומנט של הגדרה לשיטות ה-RPC האלה, משתמשים ב-google.protobuf.Empty.

בהתאם לconnection_type שצוין בהגדרת מקור הנתונים של הגדרת המדדים, שירות הטלמטריה מפעיל את CreateSubscription (עבור connection_type: SUBSCRIPTION) או את GetLatestMessage (עבור connection_type: ON_DEMAND).

שירותי SDV של Pub/Sub

ל-Telemetry יש תמיכה מלאה בניטור ערוצי pub/sub שמוגדרים ב-VSIDL ונחשפים על ידי שירותי SDV, ללא צורך בהגדרות נוספות. מידע נוסף זמין במאמר הוספת בעל תוכן דיגיטלי לחבילת שירותים.

בנוסף להרשמה לערוצי pub/sub, ‏ Telemetry תומכת גם באחזור לפי דרישה של ההודעה האחרונה שפורסמה בערוץ.

מאגר נתונים של בעלי תוכן דיגיטלי שאפשר להגדיר

בנוסף לאיסוף נתונים משירותי SDV באמצעות מחסנית התקשורת של SDV,‏ Telemetry תומך באיסוף נתונים מאפליקציות וממשקים שרושמים מפרסמים במאגר המפרסמים הניתן להגדרה של שירות Telemetry. היכולת הזו שימושית במיוחד במערכות IVI, שבהן מחסנית התקשורת של SDV לא זמינה.

מאגר הנתונים של בעלי תוכן דיגיטלי שניתן להגדרה יכול להיות שימושי גם לניפוי באגים וליצירת אב טיפוס בלי לכתוב חבילות שירות SDV. מידע נוסף זמין במאמר בנושא מאגר נתונים של בעלי תוכן דיגיטלי שאפשר להגדיר.