Opcje strefy czasowej

Dokładne wyświetlanie czasu to podstawowa funkcja systemu multimedialnego w samochodzie. Może się to wydawać banalnie proste, zwłaszcza gdy oczekiwania dotyczące zarządzania czasem i strefami czasowymi są niskie i muszą być spełnione, ale czas szybko staje się skomplikowany, gdy wyświetlanie wiarygodnie dokładnej daty i czasu musi odbywać się bez ręcznej interwencji.

Wszystkie zegary czasu rzeczywistego używane zwykle w systemach na chipie (SoC) mają pewną wartość odchylenia, która narasta z czasem i może prowadzić do znacznego błędu, jeśli nie zostanie skorygowana. Dodatkowo, ponieważ użytkownicy oczekują dokładnego wyświetlania czasu lokalnego, należy wziąć pod uwagę poprawną różnicę czasu względem uniwersalnego czasu koordynowanego (UTC).

Informacje o strefie czasowej, a także stosowanie czasu letniego mogą ulec zmianie w trakcie oczekiwanego okresu użytkowania pojazdu. Na przykład po wielu latach stosowania czasu letniego Brazylia zdecydowała się nie wprowadzać tego czasu w 2019 roku.

Android zapewnia infrastrukturę potrzebną do negocjowania komplikacji związanych z zarządzaniem regułami strefy czasowej. Więcej informacji znajdziesz w artykule Reguły stref czasowych, który umożliwia producentom urządzeń OEM przesyłanie na urządzenia zaktualizowanych danych o regułach stref czasowych bez konieczności aktualizacji systemu. Ten mechanizm umożliwia:

  • Użytkownicy otrzymują aktualne aktualizacje (co wydłuża okres przydatności urządzenia z Androidem).
  • OEM mogą testować aktualizacje strefy czasowej niezależnie od aktualizacji obrazu systemu.

Uwaga: AAOS 10 nie obsługuje mechanizmu aktualizacji modułów opartych na APEX, który jest dostępny w wersjach Androida 10 (i wyższych).

Uwaga: aby wdrożyć ten mechanizm, musisz ponownie uruchomić system.

Źródła informacji o czasie (strefa) w samochodach

Urządzenia z Androidem zarządzają czasem w czasie Unixa na poziomie systemu, stosują odpowiedni przesunięcie strefy czasowej, a następnie konwertują wartość na czas lokalny do wyświetlania użytkownikom. Identyfikator strefy bieżącego użytkownika (często nazywany identyfikatorem Olsona) jest przechowywany jako ustawienie. Na przykład Europa/Londyn.

Większość mechanizmów opisanych poniżej dotyczy informacji o czasie. Celem tych standardów jest dostarczanie użytkownikom aktualnej godziny, a nie opisywanie obowiązujących zasad stref czasowych. Aby określić rzeczywistą strefę czasową, urządzenie musi najpierw uwzględnić takie czynniki, jak kraj, przesunięcie i czas letni, a dopiero potem ustawić identyfikator strefy.

Może to być trudne. Odtwarzanie na podstawie dostępnych informacji może być niejednoznaczne. Na przykład reguła strefy czasowej America/Denver uwzględnia czas letni, ale latem stosuje czas górski (MDT), podczas gdy America/Phoenix nadal rozpoznaje MDT.

Radio komórkowe

Informacje o systemie (SI) są istotnym elementem interfejsu radiowego Long-Term Evolution (LTE), który jest przesyłany przez stację bazową (BS) przez kanał kontroli transmisji (BCCH). 3GPP TS 36.331 określa typ SystemInformationBlockType16 (SIB16), który zawiera informacje związane z GPS i uniwersalnym czasem koordynowanym (UTC), przesunięciem czasu lokalnego, a także informacje o czasie letnim.

Podobną funkcję można znaleźć w sieci 2G i 3G, gdzie można nadawać informacje o tożsamości sieci i strefie czasowej (NITZ) (szczegółowe informacje znajdziesz w standardzie 3GPP TS 22.042). Inne standardy radiowe sieci komórkowych mają równoważne funkcje.

Niestety w przypadku większości standardów wysyłanie tych informacji jest opcjonalne, więc nie jest dostępne we wszystkich sieciach.

Zalety Wady
  • W miarę możliwości zawiera większość potrzebnych informacji.
  • Prostota, ponieważ Android obsługuje już to, gdy radio komórkowe jest udostępniane jako telefon, a nie tylko jako modem danych.
  • Nie wymaga połączenia z internetem.
  • Nie ma gwarancji, że informacje są nadawane i że stacja bazowa jest prawidłowo skonfigurowana.

  • W regionach przygranicznych może korzystać z wieży (roamingowej) wieży komórkowej z państwa sąsiedniego i potencjalnie przesyłać dane w niewłaściwej strefie czasowej.

  • W niektórych lokalizacjach wdrożenie zmian może potrwać kilka godzin, a nawet dni.

Protokół sieciowy czasu

Do uzyskiwania stosunkowo dokładnych informacji o czasie Unixa często używa się protokołu sieciowego NTP. Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli można go udostępnić klientom RadioManager za pomocą ogólnych metadanych RadioTuner.getParameters(). NTP aktualizuje czas systemowy, gdy się rozsynchronizuje, a operator nie przesłał niedawno aktualizacji NITZ. Jeśli użytkownik włączy AUTO_TIME, gdy serwer NITZ jest niedostępny, system natychmiast sprawdzi czas sieci.

Zalety Wady

Prostota, obsługa na Androidzie.

  • Niepełne, NTP udostępnia tylko jedną potrzebną wartość (czas). Nawet w najlepszym przypadku NTP nie może podać strefy czasowej.

  • Wymaga połączenia z internetem.

Tuner radiowy

Korzystanie z wbudowanego tunera do pobierania informacji o czasie i strefie czasowej jest kuszące, ale wiąże się z pewnymi wyzwaniami. Wiele standardów nadawania radiowego określa opcje wyświetlania odpowiednich informacji. Ogólnie rzecz biorąc, tuner radia nadawczego dostarcza te same informacje co radio komórkowe.

ETSI EN 300 401 V1.4.1 (2006-06), sekcja 8.1 określa funkcje informacji o usłudze, które zawierają dodatkowe informacje o usługach zarówno w przypadku programów audio, jak i danych dla systemów cyfrowego radia DAB. W sekcji 8.1.3 zdefiniowano format daty i godziny oraz informacje dotyczące kraju i przesunięcia czasu lokalnego.

Podobnie w przypadku systemu Radio Data System (RDS) powszechnie stosowanego w tunerach FM w sekcji 3.1.5.6 standardu EN 50067 zdefiniowano format czasu i danych (przesyłanych raz na minutę). Dodatkowo w ramach przesyłanej identyfikacji programu można też pobrać rozszerzony kod kraju (ECC).

HD Radio zawiera odpowiednie opcje w ramach specyfikacji HD Radio™ Air Interface Design Description Station Information Service Transport w komunikacie o parametrach usługi informacyjnej stacji (SIS) (identyfikator MSG 0111). W sekcji 5 wyraźnie podane są słowa ostrzegawcze, których należy przestrzegać podczas próby korzystania z funkcji zegara w transmisji. Ta sama zasada dotyczy również innych systemów:

... te dane opisują lokalne zwyczaje w miejscu, w którym znajduje się nadawca, które mogą, ale nie muszą być takie same jak lokalne zwyczaje w miejscu odbiorcy. W pobliżu granic stref czasowych konsumenci mogą odbierać sygnał z wielu stacji, które dostarczają różnych danych. Dlatego te dane są podawane tylko jako wskazówki, których interpretacja i wykorzystanie powinny być uznanikowe i podlegające kontroli klienta. ..."

Ponadto w przypadku HD Radio transmisja tych informacji jest opcjonalna i nie należy się na niej opierać.

Zalety Wady
  • Zwykle dostępne w różnych regionalnych standardach radia.
  • Nie wymaga połączenia z internetem.
  • Android nie obsługuje tego domyślnie.
  • Wymaga włączenia tunera (przynajmniej od czasu do czasu w tle), aby można było niezawodnie wykrywać informacje.
  • niezawodność zależy od nadawcy.

Wskazówki dotyczące implementacji

Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli można go udostępnić klientomRadioManager. Zalecane rozwiązanie to skorzystanie z funkcji rozszerzenia dostawcy. Implementacja tej funkcji musi nastąpić na poziomie warstwy abstrakcji sprzętowej (HAL), po czym można ją udostępnić klientom RadioManager za pomocą ogólnej metody RadioTuner.getParameters().

Aby rozwiązanie było niezawodne, użytkownik rozszerzenia dostawcy musi sprawdzić, czy HAL obsługuje tę funkcję (nie zakładaj, że tak jest). Ciągi znaków parametrów wywołania getParameters muszą być uporządkowane w sposób umożliwiający jednoznaczne użycie w przypadku różnych dostawców. Na przykład za pomocą przestrzeni nazw organizacji z odpowiednią domeną, na przykład com.me.timezoneTuner.currenttimezone.

Ze względu na charakter tych informacji, zalecane jest używanie wywołania zwrotnego RadioTuner.Callback.onParametersUpdated() do odbierania tych informacji. Jeśli ta funkcja ma być konfigurowalna, zaprojektuj zestaw niestandardowych rutyn na podstawie elementu setParameters. Przykład:

com.me.timezoneTuner.currenttimezoneEvent.enable

Globalny system nawigacji satelitarnej (GNSS) może samodzielnie dostarczać tylko dokładnych informacji o czasie i pozycji.

Geolokacja

Rozwiązaniem tego problemu jest wykonanie odwrotnego geokodowania i określenie kraju oraz strefy czasowej na podstawie położenia. GNSS to oczywisty (i najlepszy pod względem jakości) wybór informacji o lokalizacji w samochodzie. Interfejs Time Zone API od Google zapewnia wszystko, co jest potrzebne do przeprowadzenia wymaganej konwersji. Oczywiście wymagane jest połączenie z internetem. Zapewnienie prywatności użytkowników musi być priorytetem podczas wdrażania rozwiązania online. Konieczne jest uzyskanie zgody użytkownika na akceptację kosztów korzystania z danych (lub odmowę takiej zgody).

Można stworzyć odpowiednie rozwiązanie do użytku offline. Lokalna baza danych map o wystarczającej rozdzielczości, aby dokładnie określić kraj i strefę czasową, może zmieścić się w pamięci pojazdu. Dzięki temu i w ramach wdrożenia strategii aktualizacji informacji o strefach czasowych (i krajach) w miarę potrzeby można odwrotnie zgeokodować strefę czasową/kraj na podstawie pozycji GNSS uzyskanej z podsystemu Lokalizacja.

Zalety Wady
  • jednoznacznie określa prawidłową strefę czasową;
  • Nie wymaga połączenia z internetem (w przypadku lokalnej bazy danych).
  • działa stabilnie w większości scenariuszy jazdy;
  • Android nie obsługuje tego domyślnie.
  • Jeśli pojazd znajduje się w pomieszczeniu lub na obszarze, na którym podczas początkowej konfiguracji nie jest możliwy dobry odbiór sygnału satelitarnego GNSS, nie można uzyskać dokładnych informacji o czasie, lokalizacji i strefie czasowej.
  • Lokalna baza danych wymaga mechanizmu aktualizacji.
  • Złożoność implementacji.

telefon połączony przez Bluetooth, Wi-Fi lub USB;

Aby uzyskać dane dotyczące czasu i strefy czasowej, można użyć telefonu użytkownika i kilku technologii. W przypadku wszystkich telefonów na telefonie i w systemie informacyjno-rozrywkowym pojazdu musi być zainstalowana para aplikacji niestandardowych i dodatkowych. Następnie można zsynchronizować czas w wybranym interwale. Na przykład po nawiązaniu połączenia i wykryciu przez telefon nowej strefy czasowej.

Niektóre telefony, które obsługują Bluetooth Low Energy (BLE), umożliwiają pobieranie czasu za pomocą właściwości GATT Current Time i specyfikacji profilu usługi Current Time 1.1. Ta opcja nie obejmuje jednak wystarczająco dużego segmentu rynku, aby można było się na niej opierać.

Zalety Wady
  • Nie wymaga połączenia z internetem.
  • Zmiany strefy czasowej wykryte przez telefon mogą być przekazywane do jednostki głównej.
  • Android nie obsługuje tego domyślnie.
  • Działa tylko wtedy, gdy telefon jest połączony z główną jednostką.
  • Czas jest tak dobry lub zły, jak to, co oferuje telefon.
  • Implementacja jest skomplikowana.
  • Nie wszystkie telefony obsługują profil BLE GATT Current Time Service.

Używanie źródeł

Każdy sprzedawca urządzeń musi określić, jak wysoką poprzeczkę ustawić i które procesy użytkownika uznać za najważniejsze. Najlepsze decyzje można podjąć tylko wtedy, gdy dokładnie pozna się oczekiwane kluczowe wrażenia użytkowników. W większości przypadków dostawcy muszą rozważyć kompromis między wygodą a złożonością implementacji.

Każda z opisanych powyżej opcji ma swoje zalety i wady. Na przykład należy podjąć kluczowy wybór dotyczący tego, jak duża odporność na błędy w porównaniu z czasem wyświetlania jest akceptowalna i jak radzić sobie z niedogodnościami. W pełni automatyczne rozwiązanie, które ma działać dobrze we wszystkich scenariuszach, musi być oparte na kombinacji kilku źródeł informacji. Żadna opcja nie zapewnia 100% dostępności.

Opcja ręcznej konfiguracji jako tymczasowe rozwiązanie zastępcze jest łatwa do wykonania i w praktyce może być wystarczająca dla wielu użytkowników.