Định cấu hình nguồn thời gian AAOS

Tính năng này cho phép các đối tác chọn cách đồng bộ hoá thời gian, cho dù là từ Android Automotive OS (AAOS) hay từ hệ thống trên ô tô sang Android. Để đảm bảo việc triển khai chất lượng, bạn có thể định cấu hình AAOS để sử dụng một trong hai thuộc tính VHAL mới được mô tả bên dưới nhằm truyền tải các giá trị một cách hiệu quả. Sử dụng:

  • ANDROID_EPOCH_TIME để sử dụng Android làm nguồn đáng tin cậy cho thời gian. VHAL hỗ trợ thuộc tính chỉ có thể ghi này, giúp thông báo các thay đổi về thời gian từ Android đến các hệ thống trên xe khác, chẳng hạn như Bộ điều khiển điện tử (ECU) và Mô-đun điều khiển thân xe (BCM).
  • EXTERNAL_CAR_TIME để không sử dụng Android làm nguồn đáng tin cậy cho thời gian. Trong trường hợp này, VHAL hỗ trợ thuộc tính EXTERNAL_CAR_TIME chỉ có thể đọc. Thuộc tính này sẽ thông báo các thay đổi về thời gian từ các hệ thống trên ô tô khác (chẳng hạn như ECU và BCM) cho Android.

AAOS cũng cung cấp một TimeDetectorStrategy có thể định cấu hình để giúp bạn ưu tiên các nguồn thời gian khác nhau trong Android.

Android là nguồn đáng tin cậy về thời gian

Khi Android được dùng làm nguồn thời gian, OEM có thể đồng bộ hoá các hệ thống ô tô khác (bao gồm cả ECU và BCM) với thời gian Android.

Để làm như vậy, quá trình triển khai VHAL phải hỗ trợ thuộc tính chỉ có thể ghi ANDROID_EPOCH_TIME. Android phát hành bản cập nhật cho thuộc tính này bằng cách đọc thời gian hệ thống, cả tại thời điểm khởi động và bất cứ khi nào nguồn thời gian trong Android thay đổi.

Android không phải là nguồn đáng tin cậy về thời gian

Khi Android không được dùng làm nguồn thời gian, bạn có thể đồng bộ hoá thời gian Android làm nguồn thông tin đáng tin cậy cho thời gian (ví dụ: với ECU hoặc BCM). Trong trường hợp này, việc triển khai VHAL phải hỗ trợ thuộc tính chỉ có thể đọc EXTERNAL_CAR_TIME và phát hành bản cập nhật cho thuộc tính này bất cứ khi nào nguồn thời gian thay đổi hoặc điều chỉnh lại đồng hồ.

Nhà sản xuất thiết bị gốc cũng phải đảm bảo rằng:

  • Các giá trị config_autoTimeSourcesPriority được chứa trong core/res/res/values/config.xml.
  • Thuộc tính config_enableExternalCarTimeToExternalTimeSuggestion trong cấu hình lớp phủ CarServices packages/services/Car/service/res/values/config.xml được đặt thành true.
  • Thời gian external có mức độ ưu tiên thích hợp trong cấu hình TimeDetectorStrategy. Để tìm hiểu thêm, hãy xem phần Phát hiện thời gian GNSS. Ví dụ:
    <!-- 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>

Thông tin chi tiết về cách triển khai nội bộ trên Android

Quy trình sau đây sẽ diễn ra khi thuộc tính VHAL ANDROID_EPOCH_TIME được hỗ trợ:

  1. TimeHalService (trong CarServices) nhận được thông báo truyền tin từ hệ thống Android cho Intent.ACTION_TIME_CHANGED.
  2. TimeHalService phát hành bản cập nhật cho Thuộc tính VHAL ANDROID_EPOCH_TIME.
  3. VHAL có thể truyền giá trị thời gian đã nhận được đến nhiều ECU và/hoặc đơn vị BCM.

Quy trình sau đây sẽ diễn ra khi thuộc tính VHAL EXTERNAL_CAR_TIME được hỗ trợ:

  1. VHAL cập nhật thuộc tính EXTERNAL_CAR_TIME.
  2. TimeHalService (trong CarServices) đọc thuộc tính thông qua một gói thuê bao.
  3. TimeHalService tạo và gửi ExternalTimeSuggestion đến TimeManager.
  4. TimeManager chuyển tiếp đề xuất đến TimeDetectorService.
  5. TimeDetectorService sử dụng TimeDetectorStrategy để chọn thời gian hệ thống mới.