Configurare le origini temporali del sistema operativo AAOS

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

  • ANDROID_EPOCH_TIME per usare Android come fonte attendibile per il tempo. VHAL supporta questa proprietà di sola scrittura, che comunica i cambiamenti temporali da Android ad altri sistemi veicolari, come le unità di controllo elettroniche (ECU) e il Modulo di controllo del corpo (BCM).
  • EXTERNAL_CAR_TIME per non utilizzare Android come origine per il tempo. In questo caso, VHAL supporta il ruolo di sola lettura proprietà EXTERNAL_CAR_TIME, che comunica i cambiamenti di orario da un altro veicolo come ECU e BCM) ad Android.
di Gemini Advanced.

AAOS fornisce anche un TimeDetectorStrategy configurabile per aiutarti a stabilire la priorità diverse origini dell'ora in Android.

Android è la fonte di riferimento per il tempo

Quando Android viene usato come fonte di tempo, gli OEM possono sincronizzare altri sistemi dell'auto (tra cui ECU e BCM) con l'ora di Android.

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

Android non è una fonte attendibile per il tempo

Quando Android non viene utilizzato come fonte di tempo, puoi sincronizzare l'ora di Android. essere la fonte di verità per il tempo (ad esempio, con una ECU o il BCM). In questo caso, L'implementazione VHAL deve supportare la proprietà di sola lettura EXTERNAL_CAR_TIME e pubblicare vengono aggiornati a questa proprietà ogni volta che la sorgente dell'ora cambia o ricalibra l'orologio.

Gli OEM devono inoltre assicurarsi che:

  • I valori config_autoTimeSourcesPriority sono contenuti in core/res/res/values/config.xml.
  • La proprietà config_enableExternalCarTimeToExternalTimeSuggestion nel Configurazioni overlay CarServices packages/services/Car/service/res/values/config.xml è impostato su true.
  • external ora ha la priorità appropriata nel Configurazione di TimeDetectorStrategy. Per saperne di più, vedi Rilevamento del tempo 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>
di Gemini Advanced.

Dettagli sull'implementazione interna di Android

Il flusso seguente si verifica quando la proprietà VHAL ANDROID_EPOCH_TIME è supportati:

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

Il flusso seguente si verifica quando la proprietà VHAL EXTERNAL_CAR_TIME è supportati:

  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 un nuovo l'ora di sistema.