סוכן ניהול ההספק ומצב הרכב (VPM) עוזר לרכב לשלוט במערכת ההספק של מערכת האקולוגית של רכב מוגדר תוכנה (SDV).
סוכן ה-VPM מאפשר תקשורת של מצבי הרכב וההספק לרכיבי תוכנה שונים, כולל סוכני SDV וחבילות שירותים בתוך SDV.
סוכן VPM מאפשר לרכיבי SDV לעקוב אחרי המצב הנוכחי של הרכב, כמו מצב ההפעלה שלו (לדוגמה, חניה או נסיעה) ומצב ההספק (לדוגמה, מופעל, השהיה או כבוי). מצב הרכב זהה בכל תוכנות הרכב, אבל מצב הטעינה ייחודי לכל מכונה וירטואלית של SDV ברכב.
סוכן VPM מאותת לפלטפורמת מערכת SDV כדי להפעיל מצבי הפעלה ספציפיים. היכולת הזו מבצעת אופטימיזציה של צריכת החשמל ומקצרת את זמן האתחול במקרה של הפעלה מחדש, ועוזרת להבטיח את הפעולה היעילה של רכיבי התוכנה המגוונים של ה-SDV.
בדף הזה מפורטות הדרישות, המגבלות והתלות העיקריות שקשורות לסוכן VPM. הוא מסביר את הפונקציונליות הצפויה ואת הנחיות השילוב של סוכן VPM ליצרני ציוד מקורי (OEM) ולמפתחי SDV אחרים.
ארכיטקטורה
איור 1 מציג את ארכיטקטורת ניהול צריכת החשמל:
איור 1. ארכיטקטורה של ניהול צריכת חשמל.
סוכן ה-VPM מקבל פקודות של מצב הפעלה (כמו כיבוי והשהיה) משירות ניהול ההפעלה של יצרן הציוד המקורי.
סוכן ה-VPM מעביר את הפקודות האלה לסוכני ה-SDV המתאימים וממתין עד שהסוכנים יבצעו אותן. הגישה המתואמת הזו עוזרת להבטיח מעבר חלק ובטוח בין מצבי צריכת החשמל, ומצמצמת את הסיכון לאובדן נתונים או לחוסר יציבות במערכת.
אחרי שכל סוכני ה-SDV משלימים את מעברי ההספק שלהם, סוכן ה-VPM מודיע ליצרן הציוד המקורי (OEM), וכך מערכות ה-OEM יכולות להמשיך בפעולות הנדרשות (לדוגמה, מעבר למצב הבא או כיבוי). מעברי מצב צריכת החשמל הם חסימה; המעבר מתרחש רק כשכל סוכני ה-SDV מבצעים את המעבר בתוך פסק זמן שמוגדר על ידי יצרן הציוד המקורי.
בתרשים הבא מוצג מצב המכונה לניהול צריכת החשמל:
איור 2. מכונת מצבים לניהול צריכת חשמל.
סוכן VPM פועל עם מערכת התיזמור וניהול מחזור החיים כדי להודיע לחבילות שירות SDV על עדכונים במצב ההפעלה. כך חבילות השירות יכולות לטפל במעברי מתח ולמנוע שיבושים בפעולה שלהן. לפרטים על שימוש במצבי ניהול צריכת חשמל עם חבילות שירות וטיפול בתקשורת SDV, אפשר לעיין במאמר בנושא טיפול בהשהיה ובהפעלה מחדש.
מצבי צריכת חשמל
המצבים המותרים לניהול צריכת החשמל ב-SDV הם:
| מדינה | הסבר |
|---|---|
REPORT_UNSPECIFIED |
ערך ברירת המחדל אם לא צוין דוח. |
POWER_OFF_EXIT |
המכונה הווירטואלית מופעלת מאתחול קר. נציגי SDV מתחילים ב-init.rc. |
SUSPEND_TO_RAM_EXIT |
המכונה הווירטואלית מתחדשת מהשהיה ל-RAM. סוכני SDV ממשיכים מ-RAM ומקבלים התראה על עדכון ההספק אם הם נרשמו כמנויים להתראות על מצב ההספק. |
ON |
המכונה הווירטואלית פועלת כרגיל. |
POWER_OFF_ENTER |
המכונה הווירטואלית מתכוננת לכיבוי. אפליקציות OEM שאפשר לנקות מוקדם יותר צריכות לעבור ניקוי במצב הזה. אפליקציות OEM עדיין יכולות להסתמך על סוכני SDV שפועלים בשלב הזה. בשלב הזה, סוכני SDV לא צריכים להשהות או לכבות את המכשיר כי יכול להיות שאפליקציות OEM עדיין צריכות לתקשר איתם. |
SUSPEND_TO_RAM_ENTER |
המכונה הווירטואלית מתכוננת להשהיה ב-RAM. אפליקציות OEM שאפשר לנקות מוקדם צריכות להיות מנוקות במצב הזה. אפליקציות OEM עדיין יכולות להסתמך על סוכני SDV שפועלים בשלב הזה. בשלב הזה, סוכני SDV לא צריכים להשהות או לכבות את המכשיר כי יכול להיות שאפליקציות OEM עדיין צריכות לתקשר איתם. |
WAIT_FOR_FINISH |
המכונה הווירטואלית סיימה את הניקוי הראשוני וממתינה לאות מיצרן הציוד המקורי כדי להשלים או לבטל כיבוי או השהיה. |
SHUTDOWN_CANCELLED |
יצרן הציוד המקורי ביקש לבטל את ההזמנה כדי להתכונן לסגירת החשבון. הבקשה הזו יכולה להתבצע לכל המאוחר עד WAIT_FOR_FINISH. אפליקציות OEM נדרשות על ידי הכלי לניהול מחזור החיים כדי לבטל את ההשעיה או את ההכנה לכיבוי. |
POWER_OFF_POST_FINISH |
בעקבות הבקשה FINISH_SHUTDOWN מהיצרן, המכונה הווירטואלית מסיימת את הניקוי הסופי ומכבה את הפלטפורמה הבסיסית. נציגי SDV צריכים לנקות את המכשיר לפני שמכבים אותו. |
SUSPEND_TO_RAM_POST_FINISH |
המכונה הווירטואלית עומדת להיות מושעית ל-RAM, והפלטפורמה הבסיסית עומדת להיות מושעית ל-RAM. אפליקציות OEM לא יכולות להסתמך על סוכני SDV בשלב הזה כי הם גם מושעים. נציגי SDV צריכים לבצע את הניקויים שלהם לפני ההשעיה. |
קבלת עדכונים על מצב הרכב
סוכן ה-VPM מקבל עדכונים על מצבי הרכב הנוכחיים מחבילת שירותי בקרת הרכב של יצרן הציוד המקורי (OEM).
לאחר מכן, הסוכן מעביר את המידע הזה לרכיבי ה-SDV הרלוונטיים דרך מערך התקשורת המתוקנן של ה-SDV. המידע הזה מועבר לכל רכיבי ה-SDV כדי שיוכלו להתאים את ההתנהגות שלהם בהתאם למצב התפעולי של הרכב.
כדי לקבל עדכונים לגבי מצבי הרכב, משתמשים בהגדרה הבאה של VSIDL בחבילת השירות:
package: "com.sdv.google.vpm.vehicle.client.subscriber"
service_bundle {
name: "VehicleStateSubscriber"
//Subscriber to the vehicle state updates.
subscriber {
message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
}
}
המעברים בין מצבי הרכב הם לא חוסמים ואסינכרוניים. בניגוד למעברי הספק, לא נאכפת מכונת מצבים.
המצבים המותרים של רכב ב-SDV הם:
| מדינה | הסבר |
|---|---|
VEHICLE_STATE_UNSPECIFIED |
ערך ברירת המחדל של מצבי הרכב אם לא צוין מצב. |
LOW_POWER |
מנקודת המבט של המשתמש, הרכב כבוי, אבל יחידת בקרת ההספק עדיין יכולה לזהות שהרכב פועל. |
SOFTWARE_UPDATE |
מתבצעים עדכוני תוכנה בחלקים מסוימים של הרכב או בכל החלקים. אלה עדכוני תוכנה שלא קשורים ל-SDV. |
PARK |
מספר ה-ECU שמוקצים לפעילות הספציפית הזו בלי נוכחות של לקוח הוא נמוך. |
LIFE_ON_BOARD |
יחידות בקרה אלקטרוניות (ECU) של מערכות נוחות, כמו חימום מושבים, לוחות מכשירים ולוחות מרכזיים, מסופקות וניתן להשתמש בהן, או שמזוהה פעילות של לקוחות, כמו פתיחת דלת או ביטול נעילה של מכונית. |
VEHICLE_ON |
מסופקים יחידות בקרה אלקטרוניות של המנוע, המנוע פועל ואי אפשר לנהוג. |
TRACTION_ON |
מסופקים מחשבי ECU של המנוע, המנוע פועל ואפשר לנהוג ברכב. |
שליטה ברכב ובניהול צריכת החשמל באמצעות סוכן VPM
כדי להטמיע חבילת שירות ששולטת במכונת מצבי ההפעלה ב-SDV, צריך להשתמש בהגדרות VSIDL הבאות:
package: "com.sdv.google.vpm.client"
service_bundle {
name: "VpmSystemClient"
//Client for VPM system interface.
client {
service: "com.sdv.google.vpm.VpmSystemService"
}
//Server to VPM notification interface.
server {
service: "com.sdv.google.vpm.client.PowerNotificationService"
}
}
אחרי שמטמיעים את החבילה ומוסיפים רשימות ACL לסוכן VPM, החבילה יכולה לשלוח בקשות RPC לסוכן VPM ולקבל התראות על מצב ההפעלה בשרת המוגדר.