Configura le origini dell'ora AAOS

Questa funzionalità consente ai partner di scegliere come sincronizzare l'ora, se dal sistema operativo Android Automotive (AAOS) o dai sistemi veicolari ad Android. Per garantire implementazioni di qualità, puoi configurare AAOS per utilizzare una delle due nuove proprietà VHAL descritte di seguito per propagare i valori in modo efficace. Utilizzo:

  • ANDROID_EPOCH_TIME per utilizzare Android come fonte di verità per il tempo. Il VHAL supporta questa proprietà di sola scrittura , che comunica i cambiamenti di orario da Android ad altri sistemi veicolari, come le unità di controllo elettronico (ECU) e il modulo di controllo del corpo (BCM).
  • EXTERNAL_CAR_TIME per non utilizzare Android come fonte di verità per il momento. In questo caso, il VHAL supporta la proprietà di sola lettura EXTERNAL_CAR_TIME , che comunica le modifiche dell'orario da altri sistemi veicolari (come ECU e BCM) ad Android.

AAOS fornisce anche una TimeDetectorStrategy configurabile per aiutarti a dare priorità a diverse fonti di tempo all'interno di Android.

Android è la fonte della verità per il tempo

Quando si utilizza Android come fonte dell'ora, gli OEM possono sincronizzare altri sistemi dell'auto (comprese le ECU e un BCM) con l'ora di Android.

A tale scopo, l'implementazione VHAL deve supportare la proprietà di sola scrittura ANDROID_EPOCH_TIME . Android pubblica un aggiornamento alla proprietà leggendo l'ora del sistema, sia all'avvio che ogni volta che viene modificata l'origine dell'ora in Android.

Android non è la fonte della verità per il momento

Quando Android non viene utilizzato come fonte dell'ora, è possibile sincronizzare l'ora di Android in modo che sia la fonte esatta dell'ora (ad esempio, con un'ECU o il BCM). In questo caso, l'implementazione VHAL deve supportare la proprietà di sola lettura EXTERNAL_CAR_TIME e pubblicare aggiornamenti su questa proprietà ogni volta che la fonte dell'ora cambia o ricalibra l'orologio.

Gli OEM devono inoltre garantire che:

  • I valori config_autoTimeSourcesPriority sono contenuti in core/res/res/values/config.xml .
  • La proprietà config_enableExternalCarTimeToExternalTimeSuggestion nelle configurazioni dell'overlay CarServices packages/services/Car/service/res/values/config.xml è impostata su true .
  • l'ora external ha la priorità appropriata nella configurazione TimeDetectorStrategy . Per saperne di più, consulta Rilevamento dell'ora GNSS . Ad esempio:
    <!-- 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>
    

Dettagli di implementazione interna di Android

Il flusso seguente ha luogo quando è supportata la proprietà VHAL ANDROID_EPOCH_TIME :

  1. TimeHalService (in CarServices) riceve una trasmissione dal sistema Android per Intent.ACTION_TIME_CHANGED .
  2. TimeHalService pubblica un aggiornamento alla proprietà VHAL ANDROID_EPOCH_TIME .
  3. Il VHAL può propagare il valore temporale ricevuto a varie ECU e/o unità BCM.

Il flusso seguente ha luogo quando è supportata la proprietà VHAL EXTERNAL_CAR_TIME :

  1. VHAL aggiorna la proprietà EXTERNAL_CAR_TIME .
  2. TimeHalService (in CarServices) legge la proprietà tramite un abbonamento.
  3. TimeHalService crea e invia un ExternalTimeSuggestion a TimeManager .
  4. TimeManager inoltra il suggerimento a TimeDetectorService .
  5. TimeDetectorService utilizza TimeDetectorStrategy per scegliere una nuova ora di sistema.