Konfigurieren von AAOS-Zeitquellen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit dieser Funktion können Partner wählen, wie die Zeit synchronisiert werden soll, ob vom Android Automotive Operating System (AAOS) oder von Fahrzeugsystemen zu Android. Um qualitativ hochwertige Implementierungen sicherzustellen, können Sie AAOS so konfigurieren, dass es eine der beiden unten beschriebenen neuen VHAL-Eigenschaften verwendet, um die Werte effektiv weiterzugeben. Verwenden:

  • ANDROID_EPOCH_TIME , um Android als Quelle der Wahrheit für die Zeit zu verwenden. Das VHAL unterstützt diese schreibgeschützte Eigenschaft, die Zeitänderungen von Android an andere Fahrzeugsysteme wie die elektronischen Steuereinheiten (ECU) und das Body Control Module (BCM) übermittelt.
  • EXTERNAL_CAR_TIME , um Android nicht als Quelle der Wahrheit für die Zeit zu verwenden. In diesem Fall unterstützt VHAL die schreibgeschützte EXTERNAL_CAR_TIME -Eigenschaft, die Zeitänderungen von anderen Fahrzeugsystemen (z. B. ECUs und BCM) an Android übermittelt.

AAOS bietet auch eine konfigurierbare TimeDetectorStrategy , die Ihnen hilft, verschiedene Zeitquellen in Android zu priorisieren.

Android ist die Quelle der Wahrheit für die Zeit

Wenn Android als Zeitquelle verwendet wird, können OEMs andere Fahrzeugsysteme (einschließlich ECUs und ein BCM) mit der Android-Zeit synchronisieren.

Dazu muss die VHAL-Implementierung die schreibgeschützte Eigenschaft ANDROID_EPOCH_TIME . Android veröffentlicht ein Update für die Eigenschaft, indem es die Systemzeit liest, sowohl beim Booten als auch immer dann, wenn die Zeitquelle in Android geändert wird.

Android ist nicht die Quelle der Wahrheit für die Zeit

Wenn Android nicht als Zeitquelle verwendet wird, können Sie die Android-Zeit als Quelle der Wahrheit für die Zeit synchronisieren (z. B. mit einem ECU oder dem BCM). In diesem Fall muss die VHAL-Implementierung die schreibgeschützte Eigenschaft EXTERNAL_CAR_TIME unterstützen und Aktualisierungen dieser Eigenschaft veröffentlichen, wenn sich die Zeitquelle ändert oder die Uhr neu kalibriert.

OEMs müssen außerdem sicherstellen, dass:

  • die config_autoTimeSourcesPriority Werte sind in core/res/res/values/config.xml .
  • die Eigenschaft config_enableExternalCarTimeToExternalTimeSuggestion in den CarServices-Overlay-Konfigurationspaketen packages/services/Car/service/res/values/config.xml ) auf true gesetzt ist.
  • Die externe Zeit hat die entsprechende Priorität in der TimeDetectorStrategy Konfiguration. Weitere Informationen finden Sie unter GNSS-Zeiterfassung . Zum Beispiel:
    <!-- 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>
    

Details zur internen Android-Implementierung

Der folgende Ablauf findet statt, wenn die ANDROID_EPOCH_TIME -Eigenschaft ANDROID_EPOCH_TIME unterstützt wird:

  1. TimeHalService (in CarServices) empfängt eine Sendung vom Android-System für Intent.ACTION_TIME_CHANGED .
  2. TimeHalService veröffentlicht ein Update für die VHAL-Eigenschaft ANDROID_EPOCH_TIME .
  3. Die VHAL kann den empfangenen Zeitwert an verschiedene ECUs und/oder BCM-Einheiten weitergeben.

Der folgende Ablauf findet statt, wenn die EXTERNAL_CAR_TIME -Eigenschaft EXTERNAL_CAR_TIME unterstützt wird:

  1. VHAL aktualisiert die Eigenschaft EXTERNAL_CAR_TIME .
  2. TimeHalService (in CarServices) liest die Eigenschaft über ein Abonnement.
  3. TimeHalService erstellt und sendet eine ExternalTimeSuggestion an TimeManager .
  4. TimeManager leitet den Vorschlag an TimeDetectorService .
  5. TimeDetectorService verwendet TimeDetectorStrategy , um eine neue Systemzeit auszuwählen.