Ta funkcja pozwala partnerom wybrać sposób synchronizowania czasu, niezależnie od tego, czy z samochodowego systemu operacyjnego (AAOS) lub z systemów samochodowych na Androida. Aby zapewnić wysoką jakość implementacji, możesz skonfigurować AAOS tak, aby używał jednej z 2 nowych właściwości VHAL opisane poniżej, aby umożliwić skuteczne propagowanie wartości. Użyj opcji:
ANDROID_EPOCH_TIME
, aby używać Androida jako źródła informacji czas. VHAL obsługuje właściwość tylko do zapisu, która przekazuje zmiany czasu z Androida do innych systemów samochodowych, takich jak i modułu kontroli ciała (BCM).EXTERNAL_CAR_TIME
, aby nie używać Androida jako źródła za prawdę. W tym przypadku VHAL obsługuje tryb tylko do odczytu właściwośćEXTERNAL_CAR_TIME
, która przekazuje informacje o zmianach czasu w porównaniu z innymi pojazdami. (takich jak ECU czy BCM) na Androida.
AAOS udostępnia też konfigurowalne TimeDetectorStrategy
, aby ułatwić Ci ustalanie priorytetów
z różnych źródeł czasu w Androidzie.
Android to źródło prawdy dla czasu
Gdy źródłem czasu jest Android, producenci OEM mogą synchronizować inne systemy samochodowe (w tym jednostki ECU i BCM) z czasem dla Androida.
Aby to było możliwe, implementacja VHAL musi obsługiwać właściwość tylko do zapisu.
Usługa ANDROID_EPOCH_TIME
. Android publikuje aktualizację usługi, odczytując treść
zgodnie z czasem systemowym – zarówno podczas uruchamiania, jak i po zmianie źródła czasu w Androidzie.
Android nie jest źródłem prawdy dla czasu
Jeśli Android nie jest używany jako źródło czasu, możesz zsynchronizować czas z Androida
za źródło prawdy dla czasu (np. dla ECU lub BCM). W tym przypadku parametr
Implementacja VHAL musi obsługiwać właściwość tylko do odczytu EXTERNAL_CAR_TIME
i publikować
aktualizuje tę właściwość za każdym razem, gdy źródło czasu zmieni się lub ponownie skalibruje zegar.
OEM musi też dopilnować, że:
- Wartości
config_autoTimeSourcesPriority
znajdują się w argumenciecore/res/res/values/config.xml
- Właściwość
config_enableExternalCarTimeToExternalTimeSuggestion
w parametrach Konfiguracje nakładek CarServicespackages/services/Car/service/res/values/config.xml
ma wartośćtrue
. - Czas
external
ma odpowiedni priorytet w KonfiguracjaTimeDetectorStrategy
. Więcej informacji: Wykrywanie czasu GNSS. Na przykład:<!-- 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>
Szczegóły wewnętrznej implementacji Androida
Poniższy proces ma miejsce, gdy właściwość VHAL ANDROID_EPOCH_TIME
jest
obsługiwane:
TimeHalService
(w usługach CarServices) otrzymuje komunikat z systemu Android dlaIntent.ACTION_TIME_CHANGED
TimeHalService
publikuje aktualizację własności VHALANDROID_EPOCH_TIME
- VHAL może przekazać otrzymaną wartość czasu do różnych jednostek ECU i/lub BCM.
Poniższy proces ma miejsce, gdy właściwość VHAL EXTERNAL_CAR_TIME
jest
obsługiwane:
- VHAL aktualizuje właściwość
EXTERNAL_CAR_TIME
. TimeHalService
(w CarServices) odczytuje usługę za pomocą subskrypcji.TimeHalService
tworzy i wysyłaExternalTimeSuggestion
do:TimeManager
TimeManager
przekazuje sugestię doTimeDetectorService
.TimeDetectorService
używa opcjiTimeDetectorStrategy
, aby wybrać nowy czasu systemowego.