Configurer les sources de temps AAOS

Cette fonctionnalité permet aux partenaires de choisir comment synchroniser l'heure, qu'il s'agisse d'appareils Android Automotive Operating System (AAOS) ou depuis des systèmes automobiles vers Android. Pour garantir des implémentations de qualité, vous pouvez configurer AAOS afin d'utiliser l'une des deux nouvelles propriétés VHAL décrites ci-dessous pour propager efficacement les valeurs. Utilisez :

  • ANDROID_EPOCH_TIME pour utiliser Android comme source de référence pour le temps. Le VHAL accepte cette propriété en écriture seule, qui communique les changements d'heure. d'Android vers d'autres systèmes automobiles, tels que les unités de commande électronique et le module de contrôle du corps (BCM).
  • EXTERNAL_CAR_TIME pour ne pas utiliser Android comme source pour le temps. Dans ce cas, le VHAL est compatible avec l'API read-only EXTERNAL_CAR_TIME, qui communique les changements d'heure par d'autres véhicules (processeurs ECU et BCM, par exemple) vers Android.

AAOS fournit également un TimeDetectorStrategy configurable pour vous aider à hiérarchiser différentes sources de temps dans Android.

Android est la source d'informations fiables pour le temps

Lorsque Android est utilisé comme source de temps, les OEM peuvent synchroniser d'autres systèmes du véhicule (y compris ECU et BCM) avec l'heure Android.

Pour ce faire, l'implémentation VHAL doit accepter la propriété write-only (écriture seule). ANDROID_EPOCH_TIME. Android publie une mise à jour de la propriété en lisant l'heure système, à la fois au démarrage et chaque fois que la source horaire dans Android est modifiée.

Android n'est pas la source de référence pour le temps

Lorsqu'Android n'est pas utilisé comme source de temps, vous pouvez synchroniser l'heure Android comme source de référence pour le temps (par exemple, dans le cas d'une unité de calcul de calcul ou de BCM). Dans ce cas, L'implémentation VHAL doit accepter la propriété en lecture seule EXTERNAL_CAR_TIME et publier met à jour cette propriété chaque fois que la source de l'heure change ou recalibre l'horloge.

Les OEM doivent également s'assurer que:

  • Les valeurs config_autoTimeSourcesPriority sont contenues dans core/res/res/values/config.xml
  • La propriété config_enableExternalCarTimeToExternalTimeSuggestion dans Configurations de superposition CarServices packages/services/Car/service/res/values/config.xml est défini sur true.
  • external a la priorité appropriée dans le Configuration de TimeDetectorStrategy. Pour en savoir plus, consultez Détection de l'heure GNSS : Exemple :
    <!-- 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>

Détails de l'implémentation interne Android

Le flux suivant a lieu lorsque la propriété VHAL ANDROID_EPOCH_TIME est compatibles:

  1. TimeHalService (dans CarServices) reçoit une annonce du système Android pour Intent.ACTION_TIME_CHANGED
  2. TimeHalService publie une mise à jour de la propriété VHAL ANDROID_EPOCH_TIME
  3. Le VHAL peut propager la valeur de temps reçue à plusieurs ECU et/ou unités BCM.

Le flux suivant a lieu lorsque la propriété VHAL EXTERNAL_CAR_TIME est compatibles:

  1. VHAL met à jour la propriété EXTERNAL_CAR_TIME.
  2. TimeHalService (dans CarServices) lit la propriété via un abonnement.
  3. TimeHalService crée et envoie un ExternalTimeSuggestion à TimeManager
  4. TimeManager transmet la suggestion à TimeDetectorService.
  5. TimeDetectorService utilise TimeDetectorStrategy pour choisir un nouveau l'heure système.