Opcje strefy czasowej

Dokładne wyświetlanie czasu to podstawowa funkcja, jakiej oczekuje się od samochodowego systemu informacyjno-rozrywkowego. Chociaż może się to wydawać zwodniczo proste, zwłaszcza gdy oczekiwania dotyczące zarządzania czasem i strefą czasową są niskie i muszą zostać spełnione, czas szybko staje się skomplikowany, gdy trzeba wyświetlać niezawodnie dokładną datę i godzinę bez ręcznej interwencji.

Wszystkie zegary czasu rzeczywistego zwykle używane w układach typu „system na chipie” (SoC) zawierają pewne odchylenia, które kumulują się z czasem i mogą prowadzić do znacznych błędów, jeśli nie zostaną skorygowane. Ponadto, ponieważ oczekiwania co do dokładnego wyświetlania czasu lokalnego są wysokie, należy wziąć pod uwagę prawidłowe przesunięcie w stosunku do uniwersalnego czasu koordynowanego (UTC).

Można oczekiwać, że informacje o strefie czasowej, a także zastosowanie czasu letniego (DST) ulegną zmianie w oczekiwanym okresie użytkowania pojazdu. Na przykład po wielu latach wdrażania czasu letniego Brazylia zdecydowała się nie wprowadzać harmonogramu czasu letniego w 2019 r.

Android zapewnia infrastrukturę potrzebną do negocjowania komplikacji związanych z zarządzaniem regułami stref czasowych. Aby uzyskać szczegółowe informacje, zobacz Reguły stref czasowych , które umożliwiają producentom OEM przesyłanie zaktualizowanych danych reguł stref czasowych do urządzeń bez konieczności aktualizacji systemu. Mechanizm ten umożliwia:

  • Użytkownicy mogą otrzymywać aktualne aktualizacje (które wydłużają żywotność urządzenia z Androidem).
  • Producenci OEM testują aktualizacje stref czasowych niezależnie od aktualizacji obrazu systemu.

Uwaga: AAOS 10 nie obsługuje mechanizmu aktualizacji modułów opartego na APEX, dostępnego w wersjach Androida 10 (i nowszych).

Uwaga: aby zaimplementować ten mechanizm, wymagane jest ponowne uruchomienie systemu.

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

Urządzenia z systemem Android zarządzają czasem w systemie Unix na poziomie systemu, stosują żądane przesunięcie strefy czasowej, a następnie konwertują wartość na czas lokalny w celu wyświetlenia użytkownikom. Identyfikator strefy bieżącego użytkownika (często określany jako identyfikator Olson) jest zapisywany jako ustawienie. Na przykład Europa/Londyn .

Większość mechanizmu opisanego poniżej opisuje informacje o czasie. Celem tych standardów jest zapewnienie użytkownikom aktualnego czasu, a nie opisanie obowiązujących zasad stref czasowych. Aby określić rzeczywistą strefę czasową, przed ustawieniem identyfikatora strefy urządzenie musi sprawdzić czynniki takie jak kraj, przesunięcie i przesunięcie czasu letniego.

Proces może być wyzwaniem. Powrót do przeszłości w oparciu o dostępne informacje może być niejednoznaczny. Na przykład reguła strefy czasowej America/Denver przestrzega czasu letniego, ale latem przyjmuje czas górski (MDT), podczas gdy America/Phoenix nadal uznaje czas MDT.

Radio komórkowe

Informacje systemowe (SI) to istotny aspekt interfejsu radiowego Long-Term Evolution (LTE), który jest przesyłany przez stację bazową (BS) za pośrednictwem kanału sterującego rozgłoszeniem (BCCH). 3GPP TS 36.331 określa 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ą funkcjonalność można znaleźć w sieciach 2G i 3G, gdzie można rozgłaszać informacje o tożsamości sieci i strefie czasowej (NITZ) (szczegóły można znaleźć w dokumencie 3GPP TS 22.042). Inne standardy łączności komórkowej mają równoważne funkcje.

Niestety wspólną cechą większości standardów jest to, że wysyłanie tych informacji jest opcjonalne, więc nie są one powszechnie dostępne we wszystkich sieciach.

Plusy Cons
  • Jeśli jest dostępny, zapewnia większość żądanych informacji.
  • Prostota, obsługiwana już przez Androida, gdy radio komórkowe jest eksponowane jako telefon, a nie tylko jako modem do transmisji danych.
  • Nie wymaga połączenia z Internetem.
  • Brak gwarancji, że informacje zostaną rozesłane ani że stacja bazowa zostanie prawidłowo skonfigurowana.

  • W regionach przygranicznych może przechwycić stację komórkową (w roamingu) z sąsiedniego kraju i potencjalnie przenieść się do niewłaściwej strefy czasowej.

  • W niektórych lokalizacjach aktualizacje mogą zająć wiele godzin, a nawet dni.

Sieciowy protokół czasu

Network Time Protocol (NTP) jest często używany do uzyskania stosunkowo dokładnych informacji o czasie epoki systemu Unix. Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli można go udostępnić klientom RadioManager za pośrednictwem ogólnych metadanych RadioTuner.getParameters() . NTP aktualizuje czas systemowy, gdy traci synchronizację, a operator nie dostarczał ostatnio aktualizacji NITZ. Jeśli użytkownik włączy AUTO_TIME , gdy NITZ nie jest dostępny, system natychmiast sprawdzi czas sieci.

Plusy Cons

Prostota obsługiwana przez Androida.

  • Niekompletny, NTP dostarcza tylko jedną potrzebną wartość (czas). Nawet w najlepszym przypadku NTP nie może podać strefy czasowej.

  • Wymaga połączenia z Internetem.

Tuner radiowy

Chociaż wykorzystanie wbudowanego tunera do pobierania informacji o czasie i strefie czasowej jest atrakcyjne, wiąże się to z pewnymi wyzwaniami. Liczne standardy transmisji radiowych określają możliwości udostępniania żądanych informacji. Ogólnie rzecz biorąc, tuner radiowy zapewnia 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ługach, które dostarczają dodatkowych informacji o usługach zarówno dla programów audio, jak i danych dla systemów cyfrowej transmisji audio (DAB). Sekcja 8.1.3 definiuje format godziny i daty, a także informacje dotyczące przesunięcia czasu krajowego i lokalnego.

Podobnie w przypadku systemu danych radiowych (RDS), powszechnie stosowanego w tunerach FM, sekcja 3.1.5.6 normy EN 50067 definiuje format czasu zegarowego i danych (przesyłanych raz na minutę). Ponadto rozszerzony kod kraju (ECC) można również odzyskać jako część nadawanej identyfikacji programu.

HD Radio zawiera odpowiednie opcje w ramach opisu projektu interfejsu radiowego HD Radio™. Specyfikacja transportu usługi informacyjnej stacji w komunikacie parametrów stacji informacyjnej (SIS) (MSG ID 0111). W sekcji 5 wyraźnie znajdują się przestrogi, których należy przestrzegać podczas próby korzystania z obsługi zegara w transmisji. Ta sama mądrość odnosi się w równym stopniu do innych systemów:

... dane te opisują lokalne zwyczaje obowiązujące w miejscu nadawcy, które mogą, ale nie muszą, być takie same, jak lokalne zwyczaje w miejscu odbiorcy. W pobliżu granic stref czasowych konsumenci mogą odbierać wiele stacji dostarczających różne dane. Dlatego też dane te mają jedynie charakter wskazówek, których interpretacja i wykorzystanie powinny być uznaniowe i podlegają kontroli Klienta. ..."

Ponadto, przynajmniej w przypadku radia HD, nadawanie tych informacji jest opcjonalne i nie należy na nim polegać wyłącznie.

Plusy Cons
  • Zwykle dostępne w różnych regionalnych standardach transmisji radiowych.
  • Nie wymaga połączenia z Internetem.
  • Android nie obsługuje tego od razu po wyjęciu z pudełka.
  • Wymaga włączonego tunera (przynajmniej okazjonalnie w tle), aby niezawodnie wykrywać informacje.
  • Niezawodność zależy od nadawcy.

Wskazówki dotyczące wdrożenia

Android obsługuje synchronizację czasu systemowego z czasem serwera NTP, jeśli można go udostępnić klientom RadioManager . Zalecanym rozwiązaniem jest wykorzystanie funkcji rozszerzenia dostawcy. Implementacja tej funkcjonalności musi nastąpić w warstwie abstrakcji sprzętu (HAL), po czym można ją udostępnić klientom RadioManager za pomocą ogólnej metody RadioTuner.getParameters() .

Aby rozwiązanie pozostało niezawodne, konsument tego rozszerzenia dostawcy musi ustalić, czy warstwa HAL obsługuje tę funkcję (nie zakładaj, że istnieje). Ciągi parametrów wywołania getParameters muszą być uporządkowane, aby zapewnić ich jednoznaczne wykorzystanie wśród dostawców. Na przykład wykorzystując przestrzeń nazw swojej organizacji, poprzedzając ją odpowiednią domeną, na przykład com.me.timezoneTuner.currenttimezone .

Biorąc pod uwagę charakter informacji sterowany zdarzeniami, korzystne może być użycie wywołania zwrotnego RadioTuner.Callback.onParametersUpdated() do otrzymywania tych informacji. Jeśli tę funkcję można konfigurować, zaprojektuj zestaw niestandardowych procedur na podstawie setParameters . Na przykład:

com.me.timezoneTuner.currenttimezoneEvent.enable

Sam globalny system nawigacji satelitarnej (GNSS) może dostarczać jedynie dokładne informacje o czasie i pozycji.

Geolokalizacja

Rozwiązaniem tej niedogodności jest wykonanie odwrotnego geokodowania oraz określenie kraju i strefy czasowej poprzez wyszukiwanie na podstawie pozycji. GNSS to oczywisty (i najlepszej jakości) wybór informacji o lokalizacji w pojeździe. Interfejs API strefy czasowej Google oferuje wszystko, co jest potrzebne do przeprowadzenia wymaganej konwersji. Oczywiście wymagane jest połączenie z Internetem. Zapewnienie prywatności użytkownika musi być najwyższym priorytetem przy wdrażaniu rozwiązania online! Wymagana jest zgoda użytkownika na zaakceptowanie (lub nie) kosztów wykorzystania danych i należy o nią poprosić.

Możliwe jest stworzenie odpowiedniego rozwiązania do użytku offline. Lokalna baza danych map o rozdzielczości wystarczającej do dokładnego określenia kraju i strefy czasowej może zmieścić się w pamięci pojazdu. Dzięki temu oraz w pełni wdrożonej strategii aktualizowania informacji o strefie czasowej (i kraju) w razie potrzeby, można odwrócić geokodowanie kraju/strefy czasowej w oparciu o pozycję GNSS uzyskaną z podsystemu lokalizacji.

Plusy Cons
  • Potrafi jednoznacznie określić właściwą strefę czasową.
  • Nie wymaga połączenia z Internetem (w przypadku lokalnej bazy danych).
  • Działa niezawodnie w większości scenariuszy jazdy.
  • Android nie obsługuje tego od razu po wyjęciu z pudełka.
  • Jeśli pojazd znajduje się w pomieszczeniu/na obszarze zadaszonym, gdzie podczas wstępnej konfiguracji nie jest możliwy dobry odbiór satelitarny GNSS, uzyskanie dokładnych informacji o czasie, lokalizacji i strefie czasowej nie jest możliwe.
  • Lokalna baza danych wymaga mechanizmu aktualizacji.
  • Złożoność wdrożenia.

Telefon podłączony przez Bluetooth, Wi-Fi lub USB

Aby wykorzystać telefon użytkownika do uzyskania danych o czasie i strefie czasowej, można zastosować kilka technologii. W przypadku wszystkich telefonów należy zainstalować parę aplikacji niestandardowych i aplikacji towarzyszących na telefonie oraz w systemie informacyjno-rozrywkowym pojazdu (IVI). Można wówczas synchronizować czas w żądanych odstępach czasu. Na przykład po nawiązaniu połączenia i wykryciu przez telefon nowej strefy czasowej.

Niektóre telefony obsługujące technologię Bluetooth Low Energy (BLE) umożliwiają pobieranie czasu za pośrednictwem charakterystyki bieżącego czasu GATT i specyfikacji profilu usługi bieżącego czasu 1.1 . Opcja ta nie dotyczy jednak wystarczająco dużego segmentu rynku, aby można było na niej wyłącznie polegać.

Plusy Cons
  • Nie wymaga połączenia z Internetem.
  • Zmiany strefy czasowej wykryte przez telefon mogą zostać przekazane do jednostki głównej.
  • Android nie obsługuje tego od razu po wyjęciu z pudełka.
  • Działa tylko wtedy, gdy telefon jest podłączony do jednostki głównej.
  • Czas jest tak dobry, jak i zły, w zależności od tego, co zapewnia telefon.
  • Wdrożenie jest złożone.
  • Nie wszystkie telefony obsługują profil usługi bieżącego czasu BLE GATT.

Korzystaj ze źródeł

Każdy dostawca urządzeń musi określić, jak wysoko ustawić poprzeczkę i które podróże użytkownika uznać za najważniejsze. Tylko dzięki jasnemu zrozumieniu pożądanych, krytycznych doświadczeń użytkowników można podjąć najlepszą decyzję. W większości przypadków dostawcy muszą rozważyć kompromis między wygodą a złożonością wdrożenia.

Każda z opisanych powyżej opcji ma zalety i wady. Na przykład należy dokonać krytycznego wyboru projektu, biorąc pod uwagę akceptowalną odporność w porównaniu ze sporadycznym złym wyświetlaniem czasu i sposób radzenia sobie z wadami. W pełni automatyczne rozwiązanie, od którego można oczekiwać, że będzie dobrze działać we wszystkich scenariuszach, musi jednak opierać się na połączeniu kilku źródeł informacji. Żadna pojedyncza opcja nie zapewnia 100% dostępności.

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