Configuración de fuentes de tiempo AAOS

Esta función permite a los socios elegir cómo sincronizar la hora, ya sea desde el sistema operativo automotriz Android (AAOS) o desde los sistemas vehiculares a Android. Para garantizar implementaciones de calidad, puede configurar AAOS para usar una de las dos nuevas propiedades VHAL que se describen a continuación para propagar los valores de manera efectiva. Utilizar:

  • ANDROID_EPOCH_TIME para usar Android como fuente de verdad para el tiempo. El VHAL admite esta propiedad de solo escritura , que comunica los cambios de hora de Android a otros sistemas vehiculares, como las unidades de control electrónico (ECU) y el módulo de control de la carrocería (BCM).
  • EXTERNAL_CAR_TIME para no usar Android como fuente de verdad para el tiempo. En este caso, VHAL admite la propiedad EXTERNAL_CAR_TIME de solo lectura , que comunica los cambios de hora de otros sistemas vehiculares (como ECU y BCM) a Android.

AAOS también proporciona una TimeDetectorStrategy configurable para ayudarlo a priorizar diferentes fuentes de tiempo dentro de Android.

Android es la fuente de la verdad para el tiempo

Cuando se utiliza Android como fuente de tiempo, los OEM pueden sincronizar otros sistemas de automóviles (incluidas las ECU y un BCM) con el tiempo de Android.

Para hacerlo, la implementación de VHAL debe admitir la propiedad de solo escritura ANDROID_EPOCH_TIME . Android publica una actualización de la propiedad leyendo la hora del sistema, tanto en el momento del arranque como cada vez que se cambia la fuente de tiempo en Android.

Android no es la fuente de la verdad para el tiempo

Cuando Android no se utiliza como fuente de tiempo, puede sincronizar la hora de Android para que sea la fuente de tiempo real (por ejemplo, con una ECU o BCM). En este caso, la implementación de VHAL debe admitir la propiedad de solo lectura EXTERNAL_CAR_TIME y publicar actualizaciones de esta propiedad siempre que la fuente de la hora cambie o recalibre el reloj.

Los OEM también deben asegurarse de que:

  • los valores de config_autoTimeSourcesPriority están contenidos en core/res/res/values/config.xml .
  • la propiedad config_enableExternalCarTimeToExternalTimeSuggestion en los paquetes de configuración de superposición de CarServices packages/services/Car/service/res/values/config.xml ) se establece en true .
  • la hora externa tiene la prioridad adecuada en la configuración de TimeDetectorStrategy . Para obtener más información, consulte Detección de tiempo GNSS . Por ejemplo:
    <!-- 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>
    

Detalles de implementación interna de Android

El siguiente flujo tiene lugar cuando se admite la propiedad ANDROID_EPOCH_TIME VHAL:

  1. TimeHalService (en CarServices) recibe una transmisión del sistema Android para Intent.ACTION_TIME_CHANGED .
  2. TimeHalService publica una actualización de la propiedad ANDROID_EPOCH_TIME .
  3. El VHAL puede propagar el valor de tiempo recibido a varias ECU y/o unidades BCM.

El siguiente flujo tiene lugar cuando se admite la propiedad EXTERNAL_CAR_TIME VHAL:

  1. VHAL actualiza la propiedad EXTERNAL_CAR_TIME .
  2. TimeHalService (en CarServices) lee la propiedad a través de una suscripción.
  3. TimeHalService crea y envía una ExternalTimeSuggestion a TimeManager .
  4. TimeManager reenvía la sugerencia a TimeDetectorService .
  5. TimeDetectorService utiliza TimeDetectorStrategy para elegir una nueva hora del sistema.