הגדרת מקורות זמן של AAOS

התכונה הזו מאפשרת לשותפים לבחור איך לסנכרן את הזמן, ממכשיר Android מערכת הפעלה לכלי רכב (AAOS) או ממערכות רכב ל-Android. כדי להבטיח הטמעות איכותיות, אפשר להגדיר ש-AAOS ישתמש באחד משני מאפייני VHAL החדשים שמתואר בהמשך כדי להפיץ את הערכים בצורה יעילה. השתמש ב:

  • ANDROID_EPOCH_TIME כדי להשתמש ב-Android כמקור האמת לזמן יקר. VHAL תומך במאפיין הזה לכתיבה בלבד, שמודיע על שינויי זמן מ-Android למערכות רכב אחרות, כמו יחידות בקרה אלקטרוניות (ECU) ומודול Body Control (BCM).
  • EXTERNAL_CAR_TIME כדי לא להשתמש ב-Android כמקור את האמת לזמן. במקרה כזה, VHAL תומך במצב לקריאה בלבד נכס EXTERNAL_CAR_TIME, שמודיע על שינויי זמן מכלי רכב אחרים (כגון ECU ו-BCM) ל-Android.

AAOS גם מספק TimeDetectorStrategy שניתן להגדרה כדי לעזור לך לקבוע סדר עדיפויות במקורות זמן שונים ב-Android.

Android הוא מקור האמת לזמן

כש-Android משמש כמקור הזמן, יצרני ציוד מקורי יכולים לסנכרן מערכות אחרות של מכוניות (כולל ECU ו-BCM) עם זמן Android.

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

Android הוא לא מקור האמת

כש-Android לא משמש כמקור הזמן, אפשר לסנכרן את השעה ב-Android להיות מקור האמת לזמן (לדוגמה, באמצעות ECU או BCM). במקרה הזה, הפרמטר הטמעת VHAL חייבת לתמוך בנכס לקריאה בלבד EXTERNAL_CAR_TIME ולפרסם מתעדכן בנכס הזה בכל פעם שמקור הזמן משתנה או מכייל מחדש את השעון.

יצרני ציוד מקורי צריכים גם לוודא:

  • הערכים של config_autoTimeSourcesPriority נמצאים בתוך core/res/res/values/config.xml.
  • הנכס config_enableExternalCarTimeToExternalTimeSuggestion בנכס הגדרות שכבת-העל של CarServices packages/services/Car/service/res/values/config.xml מוגדר ל-true.
  • השעה external נמצאת בעדיפות המתאימה ב הגדרה של TimeDetectorStrategy. מידע נוסף זמין במאמר הבא: זיהוי זמן GNSS. לדוגמה:
    <!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.
    See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
         <string-array name="config_autoTimeSourcesPriority">
            <item>external</item>
            <item>gnss</item>
            <item>network</item>
            <item>telephony</item>
        </string-array>

פרטי הטמעה פנימית ב-Android

התהליך הבא מתרחש כשהנכס ANDROID_EPOCH_TIME VHAL נתמך:

  1. האפליקציה TimeHalService (ב-CarServices) מקבלת שידור ממערכת Android עבור Intent.ACTION_TIME_CHANGED.
  2. TimeHalService מפרסם עדכון לנכס VHAL ANDROID_EPOCH_TIME.
  3. ה-VHAL יכול להפיץ את ערך הזמן שהתקבל ליחידות ECU ו/או יחידות BCM שונות.

התהליך הבא מתרחש כשהנכס EXTERNAL_CAR_TIME VHAL נתמך:

  1. VHAL מעדכנת את המאפיין EXTERNAL_CAR_TIME.
  2. הנכס TimeHalService (ב-CarServices) קורא את הנכס באמצעות מינוי.
  3. TimeHalService יוצר ושולח ExternalTimeSuggestion אל TimeManager.
  4. ההצעה מועברת על ידי TimeManager אל TimeDetectorService.
  5. TimeDetectorService משתמש/ת ב-TimeDetectorStrategy כדי לבחור זמן המערכת.