Opzioni del fuso orario

La visualizzazione accurata dell’ora è una caratteristica fondamentale che ci si aspetta da un sistema di infotainment automobilistico. Sebbene ciò possa sembrare apparentemente semplice, in particolare quando le aspettative sulla gestione dell'ora e del fuso orario sono basse e devono essere soddisfatte, il tempo diventa rapidamente complesso quando è necessario visualizzare una data e un'ora affidabili e precise senza intervento manuale.

Tutti gli orologi in tempo reale tipicamente utilizzati nei System on Chip (SoC) contengono una certa deriva, che si accumula nel tempo e può portare a errori significativi se non corretti. Inoltre, poiché ci sono grandi aspettative riguardo alla visualizzazione accurata dell'ora locale, è necessario considerare la corretta differenza rispetto al tempo universale coordinato (UTC).

È possibile che le informazioni sul fuso orario, così come l'applicazione dell'ora legale (DST), cambino durante la vita prevista di un veicolo. Ad esempio, dopo molti anni di implementazione dell’ora legale, il Brasile ha deciso di non avviare l’ora legale nel 2019.

Android fornisce l'infrastruttura necessaria per gestire le complicazioni legate alla gestione delle regole del fuso orario. Per maggiori dettagli, consulta Regole del fuso orario , che consentono agli OEM di inviare dati aggiornati sulle regole del fuso orario ai dispositivi senza richiedere un aggiornamento del sistema. Questo meccanismo consente:

  • Gli utenti possono ricevere aggiornamenti tempestivi (che prolungano la vita utile di un dispositivo Android).
  • Gli OEM testano gli aggiornamenti del fuso orario indipendentemente dagli aggiornamenti dell'immagine del sistema.

Nota: AAOS 10 non supporta il meccanismo di aggiornamento del modulo basato su APEX fornito nelle versioni di Android 10 (e successive).

Nota: per implementare questo meccanismo è necessario riavviare il sistema.

Fonti di informazione sull'ora (fuso) nelle automobili

I dispositivi Android gestiscono l'ora nell'ora Unix a livello di sistema, applicano la differenza di fuso orario desiderata e quindi convertono il valore nell'ora locale per la visualizzazione agli utenti. L'ID di zona dell'utente corrente (spesso indicato come ID Olson) viene memorizzato come impostazione. Ad esempio, Europa/Londra .

Gran parte del meccanismo descritto di seguito descrive le informazioni temporali. Lo scopo di questi standard è fornire agli utenti l'ora corrente, non descrivere le regole applicabili sul fuso orario. Per determinare il fuso orario effettivo, il dispositivo deve basarsi su fattori quali paese, offset e ora legale prima di impostare l'ID della zona.

Il processo può essere una sfida. Lavorare a ritroso sulla base delle informazioni disponibili può essere ambiguo. Ad esempio, la regola del fuso orario America/Denver osserva l'ora legale ma adotta l'ora legale di montagna (MDT) durante l'estate mentre America/Phoenix continua a riconoscere l'ora legale.

Radio cellulare

Le informazioni di sistema (SI) sono un aspetto essenziale dell'interfaccia aerea Long-Term Evolution (LTE), che viene trasmessa dalla stazione base (BS) sul canale di controllo della trasmissione (BCCH). 3GPP TS 36.331 specifica SystemInformationBlockType16 (SIB16) che contiene informazioni relative al GPS e al tempo universale coordinato (UTC), alla differenza dell'ora locale e alle informazioni sull'ora legale.

Funzionalità simili possono essere trovate in 2G e 3G, dove è possibile trasmettere informazioni sull'identità della rete e sul fuso orario (NITZ) (vedere 3GPP TS 22.042 per i dettagli). Altri standard radio cellulari hanno caratteristiche equivalenti.

Sfortunatamente, il punto in comune tra la maggior parte degli standard è che l'invio di queste informazioni è facoltativo, quindi non è universalmente disponibile su tutte le reti.

Professionisti Contro
  • Se disponibile, fornisce la maggior parte delle informazioni desiderate.
  • Semplicità, già supportata da Android quando la radio cellulare si propone come telefono, non solo come modem dati.
  • Non richiede connettività Internet.
  • Nessuna garanzia che le informazioni vengano trasmesse né che la stazione base sia configurata correttamente.

  • Nelle regioni di confine, è possibile che ricevano un ripetitore cellulare (in roaming) da un paese vicino e potenzialmente trasmettano il fuso orario sbagliato.

  • In alcune località, l'esecuzione degli aggiornamenti può richiedere ore, persino giorni.

Protocollo temporale di rete

Il Network Time Protocol (NTP) viene spesso utilizzato per ottenere informazioni temporali sull'epoca Unix relativamente precise. Android supporta la sincronizzazione dell'ora del proprio sistema con quella di un server NTP se può essere esposto ai client di RadioManager tramite i metadati generici RadioTuner.getParameters() . NTP aggiorna l'ora del sistema quando non è sincronizzata e un operatore non ha fornito di recente un aggiornamento NITZ. Se l'utente abilita AUTO_TIME quando NITZ non è disponibile, il sistema controlla immediatamente l'ora della rete.

Professionisti Contro

Semplicità, supportata da Android.

  • Incompleto, NTP fornisce solo un valore necessario (tempo). Anche nella migliore delle ipotesi, NTP non può fornire il fuso orario.

  • Richiede connettività Internet.

Sintonizzatore radiodiffusione

Sebbene sfruttare un sintonizzatore integrato per recuperare informazioni sull'ora e sul fuso orario sia allettante, non mancano le sfide. Numerosi standard di trasmissione radiofonica definiscono le opzioni per esporre le informazioni desiderate. In generale, un sintonizzatore radiofonico fornisce le stesse informazioni di una radio cellulare.

ETSI EN 300 401 V1.4.1 (2006-06), sezione 8.1 specifica le caratteristiche delle informazioni di servizio che forniscono informazioni supplementari sui servizi sia per i programmi audio che per i dati per i sistemi DAB (Digital Audio Broadcasting). La sezione 8.1.3 definisce il formato per l'ora e la data nonché le informazioni per il paese e la differenza dell'ora locale.

Allo stesso modo, per il Radio Data System (RDS) comunemente implementato nei sintonizzatori FM, la sezione 3.1.5.6 dello standard EN 50067 definisce il formato dell'ora e dei dati (trasmessi una volta al minuto). Inoltre come parte dell'identificazione del programma trasmesso è possibile richiamare anche il codice paese esteso (ECC).

HD Radio contiene opzioni corrispondenti come parte della specifica di trasporto del servizio informazioni della stazione Descrizione del design dell'interfaccia aerea HD Radio™ nel messaggio dei parametri del servizio informazioni della stazione (SIS) (MSG ID 0111). La Sezione 5 enuncia chiaramente le avvertenze a cui bisogna prestare attenzione quando si tenta di utilizzare il supporto dell'orologio della trasmissione. La stessa saggezza si applica anche ad altri sistemi:

... questi dati descrivono le usanze locali nel luogo in cui si trova l'emittente, che possono essere o meno le stesse usanze locali nel luogo del ricevente. In prossimità dei confini del fuso orario, i consumatori possono ricevere una molteplicità di stazioni che forniscono dati diversi. Pertanto, questi dati vengono forniti solo come suggerimenti, la cui interpretazione e utilizzo devono essere resi discrezionali, soggetti al controllo del cliente. ..."

Inoltre, almeno per la radio HD, la trasmissione di queste informazioni è facoltativa e non deve essere invocata in modo esclusivo.

Professionisti Contro
  • Tipicamente disponibile in diversi standard radiofonici regionali.
  • Non richiede connettività Internet.
  • Android non lo supporta immediatamente.
  • Richiede che il sintonizzatore sia acceso (almeno occasionalmente in background) per rilevare in modo affidabile le informazioni.
  • L'affidabilità dipende dall'emittente.

Suggerimenti per l'implementazione

Android supporta la sincronizzazione dell'ora del proprio sistema con quella di un server NTP se può essere esposto ai client di RadioManager . La soluzione consigliata è sfruttare la funzionalità di estensione del fornitore. L'implementazione di questa funzionalità deve avvenire nell'hardware abstraction layer (HAL), dopodiché può essere esposta ai client di RadioManager tramite il metodo generico RadioTuner.getParameters() .

Affinché la soluzione rimanga solida, il consumatore di questa estensione del fornitore deve determinare che l'HAL supporta la funzionalità (non presupporre la sua esistenza). Le stringhe di parametri per la chiamata getParameters devono essere organizzate in modo pulito per un utilizzo non ambiguo tra i fornitori. Ad esempio, utilizzando lo spazio dei nomi della tua organizzazione prefissandolo con il dominio appropriato, ad esempio com.me.timezoneTuner.currenttimezone .

Data la natura delle informazioni basata sugli eventi, può essere utile utilizzare il callback RadioTuner.Callback.onParametersUpdated() per ricevere queste informazioni. Se questa struttura dovesse essere configurabile, progettare una serie di routine personalizzate sopra setParameters . Per esempio:

com.me.timezoneTuner.currenttimezoneEvent.enable

Di per sé, il sistema globale di navigazione satellitare (GNSS) può fornire solo informazioni precise sull'ora e sulla posizione.

Geolocalizzazione

La soluzione a questo inconveniente è eseguire la geocodificazione inversa e determinare il paese e il fuso orario effettuando una ricerca in base alla posizione. Il GNSS è la scelta ovvia (e di migliore qualità) delle informazioni sulla posizione in un veicolo. L'API Time Zone di Google offre tutto ciò che serve per eseguire la conversione richiesta. Naturalmente è necessaria la connettività Internet. Garantire la privacy degli utenti deve essere una priorità assoluta quando si implementa una soluzione online! Il permesso di un utente di accettare (o meno) i costi di utilizzo dei dati è necessario e deve essere richiesto.

È possibile creare una soluzione adatta per l'utilizzo offline. Un database di mappe locali con una risoluzione sufficiente per determinare con precisione il paese e il fuso orario può essere inserito nella memoria di un veicolo. Con questo e una strategia completamente implementata per aggiornare le informazioni sul fuso orario (e sul paese) secondo necessità, è possibile geocodificare in modo inverso il paese/fuso orario in base alla posizione GNSS ottenuta dal sottosistema Posizione.

Professionisti Contro
  • Può determinare in modo inequivocabile il fuso orario corretto.
  • Non richiede connettività internet (in caso di DB locale).
  • Funziona in modo affidabile per la maggior parte degli scenari di guida.
  • Android non lo supporta immediatamente.
  • Se il veicolo si trova all'interno/in un'area coperta in cui non è possibile una buona ricezione satellitare GNSS durante la configurazione iniziale, è impossibile ottenere informazioni precise su ora, posizione e fuso orario.
  • Il database locale necessita di un meccanismo di aggiornamento.
  • Complessità di implementazione.

Telefono connesso tramite Bluetooth, Wi-Fi o USB

È possibile utilizzare diverse tecnologie per sfruttare il telefono di un utente per ottenere dati sull'ora e sul fuso orario. Per tutti i telefoni, è necessario installare una coppia di app personalizzate e app complementari sul telefono e sul sistema di infotainment di bordo (IVI). È quindi possibile sincronizzare l'ora all'intervallo desiderato. Ad esempio, quando si stabilisce la connessione e quando il telefono rileva un nuovo fuso orario.

Alcuni telefoni che supportano Bluetooth Low Energy (BLE) offrono la possibilità di recuperare l'ora tramite la caratteristica Ora corrente GATT e la Specifica del profilo di servizio ora corrente 1.1 . Tuttavia, questa opzione non si rivolge a un segmento di mercato sufficientemente ampio su cui fare affidamento in modo esclusivo.

Professionisti Contro
  • Non richiede connettività Internet.
  • Le modifiche del fuso orario rilevate dal telefono possono essere trasmesse all'unità principale.
  • Android non lo supporta immediatamente.
  • Funziona solo mentre il telefono è collegato all'unità principale.
  • Il tempo è buono o cattivo a seconda di quello che fornisce il telefono.
  • L'implementazione è complessa.
  • Non tutti i telefoni supportano il profilo BLE GATT Current Time Service.

Usa le fonti

Ogni fornitore di dispositivi deve determinare quanto alto sia l'asticella da impostare e quali percorsi utente riterranno più critici. Solo con una chiara comprensione delle esperienze utente critiche desiderate si può arrivare alla decisione migliore. Nella maggior parte dei casi, i fornitori devono considerare il compromesso tra comodità e complessità di implementazione.

Ciascuna opzione sopra descritta presenta vantaggi e svantaggi. Ad esempio, è necessario fare una scelta progettuale critica per quanto riguarda la resilienza, rispetto alla visualizzazione occasionale del tempo inadeguata, è accettabile e come gestire gli aspetti negativi. Una soluzione completamente automatica che può funzionare bene in tutti gli scenari ma deve basarsi su una combinazione di diverse fonti di informazione. Nessuna singola opzione può garantire una disponibilità al 100%.

Un'opzione di configurazione manuale come fallback temporaneo è facile da eseguire e può, in pratica, essere sufficiente per molti utenti.