Konfigurieren Sie AAOS-Zeitquellen

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

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

AAOS bietet außerdem eine konfigurierbare TimeDetectorStrategy die Ihnen dabei 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 Steuergeräte und ein BCM) mit der Android-Zeit synchronisieren.

Dazu muss die VHAL-Implementierung die schreibgeschützte Eigenschaft ANDROID_EPOCH_TIME unterstützen. Android veröffentlicht ein Update der 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 synchronisieren, um als wahre Zeitquelle zu dienen (z. B. mit einem Steuergerät 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 Folgendes sicherstellen:

  • Die config_autoTimeSourcesPriority -Werte sind in core/res/res/values/config.xml enthalten.
  • Die Eigenschaft config_enableExternalCarTimeToExternalTimeSuggestion in den CarServices-Overlay- packages/services/Car/service/res/values/config.xml ist auf true gesetzt.
  • external Zeit hat in der TimeDetectorStrategy Konfiguration die entsprechende Priorität. Weitere Informationen finden Sie unter GNSS-Zeiterkennung . 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 VHAL-Eigenschaft ANDROID_EPOCH_TIME unterstützt wird:

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

Der folgende Ablauf findet statt, wenn die VHAL-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 einen ExternalTimeSuggestion an TimeManager .
  4. TimeManager leitet den Vorschlag an TimeDetectorService weiter.
  5. TimeDetectorService verwendet TimeDetectorStrategy um eine neue Systemzeit auszuwählen.