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

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

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

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

אנדרואיד הוא מקור האמת לזמן

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

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

אנדרואיד אינו מקור האמת לזמן

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

יצרני OEM חייבים גם להבטיח כי:

  • ערכי config_autoTimeSourcesPriority כלולים ב- core/res/res/values/config.xml .
  • המאפיין config_enableExternalCarTimeToExternalTimeSuggestion בשכבת העל CarServices configs 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_EPOCH_TIME VHAL נתמך:

  1. TimeHalService (ב-CarServices) מקבל שידור ממערכת אנדרואיד עבור 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 כדי לבחור זמן מערכת חדש.