AAOS-Zeitquellen konfigurieren

Mit dieser Funktion können Partner auswählen, wie die Zeit synchronisiert werden soll, ob von der Android- Automotive Operating System (AAOS) oder von Fahrzeugsystemen zu Android. Um qualitativ hochwertige Implementierungen zu gewährleisten, können Sie AAOS so konfigurieren, dass eine der beiden neuen VHAL-Eigenschaften verwendet wird. damit die Werte effektiv weitergegeben werden. Verwendung:

  • ANDROID_EPOCH_TIME, um Android als „Source of Truth“ zu verwenden Zeit sparen. Die VHAL unterstützt diese write-only-Eigenschaft, die Zeitänderungen kommuniziert. von Android zu anderen Fahrzeugsystemen wie zum Beispiel Elektronik-Steuereinheiten und das Körpersteuerelement.
  • EXTERNAL_CAR_TIME, um Android nicht als Quelle zu verwenden der Wahrheit über Zeit. In diesem Fall unterstützt die VHAL die schreibgeschützte Version. EXTERNAL_CAR_TIME-Property, die Zeitänderungen gegenüber anderen Fahrzeugen mitteilt (wie ECUs und BCM) mit Android verknüpft werden.

AAOS bietet außerdem eine konfigurierbare TimeDetectorStrategy zur einfacheren Priorisierung Zeitquellen innerhalb von Android.

Android ist die wichtigste Informationsquelle für die Zeit

Wenn Android als Zeitquelle verwendet wird, können OEMs andere Autosysteme synchronisieren, ECUs und ein BCM) mit Android-Zeit.

Dazu muss die VHAL-Implementierung das Attribut write-only unterstützen. ANDROID_EPOCH_TIME-Property. Android veröffentlicht eine Aktualisierung der Property, indem Folgendes gelesen wird: Systemzeit sowohl beim Booten als auch dann, wenn sich die Zeitquelle in Android ändert.

Android ist lange Zeit nicht die wahre Quelle der Wahrheit.

Wenn Android nicht als Zeitquelle verwendet wird, können Sie die Android-Zeit synchronisieren. als zentrale Informationsquelle für die Zeit (z. B. mit der ECU oder dem BCM). In diesem Fall Die VHAL-Implementierung muss das schreibgeschützte Attribut EXTERNAL_CAR_TIME unterstützen und veröffentlichen wird immer dann aktualisiert, wenn sich die Zeitquelle ändert oder die Uhr neu kalibriert.

OEMs müssen außerdem Folgendes gewährleisten:

  • Die config_autoTimeSourcesPriority-Werte sind in core/res/res/values/config.xml.
  • Das Attribut config_enableExternalCarTimeToExternalTimeSuggestion im CarServices-Overlay-Konfigurationen packages/services/Car/service/res/values/config.xml ist auf true festgelegt.
  • external-Zeit hat die entsprechende Priorität im TimeDetectorStrategy-Konfiguration. 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:

  1. TimeHalService (in CarServices) empfängt eine Nachricht vom Android-System für Intent.ACTION_TIME_CHANGED.
  2. TimeHalService veröffentlicht eine Aktualisierung der 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 VHAL-Eigenschaft EXTERNAL_CAR_TIME unterstützt:

  1. VHAL aktualisiert das Attribut EXTERNAL_CAR_TIME.
  2. TimeHalService (in CarServices) liest die Unterkunft über ein Abo.
  3. TimeHalService erstellt eine ExternalTimeSuggestion und sendet sie an TimeManager
  4. TimeManager leitet den Vorschlag an TimeDetectorService weiter.
  5. TimeDetectorService verwendet TimeDetectorStrategy, um ein neues Systemzeit.