Configurar fuentes de tiempo de AAOS

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

  • ANDROID_EPOCH_TIME para usar Android como fuente de confianza por 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 corporal (BCM).
  • EXTERNAL_CAR_TIME para no usar Android como fuente de verdad por el tiempo. En este caso, el VHAL admite el canal de solo lectura Propiedad EXTERNAL_CAR_TIME, que comunica los cambios de horario desde otros vehículos (como ECU y BCM) a Android.

AAOS también proporciona un TimeDetectorStrategy configurable para ayudarte a priorizar diferentes fuentes de tiempo en Android.

Android es la fuente de información para el tiempo

Cuando se usa Android como fuente de tiempo, los OEM pueden sincronizar otros sistemas de vehículos (incluidos los ECU y BCM) con la hora de Android.

Para ello, la implementación de VHAL debe admitir la propiedad de solo escritura. propiedad ANDROID_EPOCH_TIME. Android publica una actualización de la propiedad leyendo del sistema, tanto en el inicio como cuando se cambia la fuente de tiempo en Android.

Android no es la fuente de información de tiempo

Cuando no se usa Android como fuente de tiempo, puedes sincronizar la hora de Android ser la fuente de información para el tiempo (por ejemplo, con una ECU o el BCM). En este caso, el La implementación de VHAL debe admitir la propiedad de solo lectura EXTERNAL_CAR_TIME y publicar se actualizará esta propiedad cada vez que la fuente de hora cambie o vuelva a calibrar el reloj.

Los OEM también deben asegurarse de lo siguiente:

  • Los valores config_autoTimeSourcesPriority se encuentran en core/res/res/values/config.xml
  • La propiedad config_enableExternalCarTimeToExternalTimeSuggestion en la Configuración de superposición de CarServices packages/services/Car/service/res/values/config.xml se configura en true.
  • La hora de external tiene la prioridad adecuada en la Configuración de TimeDetectorStrategy. Para obtener más información, consulta Detección de hora de 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 se lleva a cabo cuando la propiedad ANDROID_EPOCH_TIME de VHAL se compatibles:

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

El siguiente flujo se lleva a cabo cuando la propiedad EXTERNAL_CAR_TIME de VHAL se compatibles:

  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 un ExternalTimeSuggestion a TimeManager
  4. TimeManager reenvía la sugerencia a TimeDetectorService.
  5. TimeDetectorService usa TimeDetectorStrategy para elegir un nuevo elemento tiempo del sistema.