Konfigurasikan sumber waktu AAOS

Fitur ini memungkinkan mitra memilih cara menyinkronkan waktu, baik dari Sistem Operasi Otomotif Android (AAOS) atau dari sistem kendaraan ke Android. Untuk memastikan implementasi yang berkualitas, Anda dapat mengonfigurasi AAOS untuk menggunakan salah satu dari dua properti VHAL baru yang dijelaskan di bawah ini untuk menyebarkan nilai secara efektif. Menggunakan:

  • ANDROID_EPOCH_TIME untuk menggunakan Android sebagai sumber kebenaran waktu. VHAL mendukung properti write-only ini, yang mengomunikasikan perubahan waktu dari Android ke sistem kendaraan lain, seperti Electronic Control Unit (ECU) dan Body Control Module (BCM).
  • EXTERNAL_CAR_TIME untuk tidak menggunakan Android sebagai sumber kebenaran waktu. Dalam hal ini, VHAL mendukung properti EXTERNAL_CAR_TIME read-only , yang mengkomunikasikan perubahan waktu dari sistem kendaraan lain (seperti ECU dan BCM) ke Android.

AAOS juga menyediakan TimeDetectorStrategy yang dapat dikonfigurasi untuk membantu Anda memprioritaskan sumber waktu yang berbeda dalam Android.

Android adalah sumber kebenaran saat ini

Saat Android digunakan sebagai sumber waktu, OEM dapat menyinkronkan sistem mobil lain (termasuk ECU dan BCM) dengan waktu Android.

Untuk melakukannya, implementasi VHAL harus mendukung properti ANDROID_EPOCH_TIME yang hanya dapat ditulis . Android memublikasikan pembaruan pada properti dengan membaca waktu sistem, baik saat boot maupun kapan pun sumber waktu di Android diubah.

Android bukanlah sumber kebenaran saat ini

Ketika Android tidak digunakan sebagai sumber waktu, Anda dapat menyinkronkan waktu Android untuk menjadi sumber kebenaran waktu (misalnya, dengan ECU atau BCM). Dalam hal ini, implementasi VHAL harus mendukung properti read-only EXTERNAL_CAR_TIME dan mempublikasikan pembaruan pada properti ini setiap kali sumber waktu mengubah atau mengkalibrasi ulang jam.

OEM juga harus memastikan bahwa:

  • Nilai config_autoTimeSourcesPriority terkandung dalam core/res/res/values/config.xml .
  • Properti config_enableExternalCarTimeToExternalTimeSuggestion di konfigurasi overlay CarServices packages/services/Car/service/res/values/config.xml disetel ke true .
  • waktu external memiliki prioritas yang sesuai dalam konfigurasi TimeDetectorStrategy . Untuk mempelajari lebih lanjut, lihat Deteksi Waktu GNSS . Misalnya:
    <!-- 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>
    

Detail implementasi internal Android

Alur berikut terjadi ketika properti ANDROID_EPOCH_TIME VHAL didukung:

  1. TimeHalService (di CarServices) menerima siaran dari sistem Android untuk Intent.ACTION_TIME_CHANGED .
  2. TimeHalService menerbitkan pembaruan pada Properti VHAL ANDROID_EPOCH_TIME .
  3. VHAL dapat menyebarkan nilai waktu yang diterima ke berbagai ECU dan/atau unit BCM.

Alur berikut terjadi ketika properti VHAL EXTERNAL_CAR_TIME didukung:

  1. VHAL memperbarui properti EXTERNAL_CAR_TIME .
  2. TimeHalService (di CarServices) membaca properti melalui langganan.
  3. TimeHalService membuat dan mengirimkan ExternalTimeSuggestion ke TimeManager .
  4. TimeManager meneruskan saran ke TimeDetectorService .
  5. TimeDetectorService menggunakan TimeDetectorStrategy untuk memilih waktu sistem baru.