Options de fuseau horaire

L'affichage précis de l'heure est une fonctionnalité essentielle attendue d'un système d'infoloisirs automobile. Cela peut sembler simple, surtout lorsque les attentes en matière de gestion du temps et des fuseaux horaires sont faibles et doivent être satisfaites. Toutefois, le temps devient rapidement complexe lorsqu'une date et une heure fiables et précises doivent être affichées sans intervention manuelle.

Toutes les horloges en temps réel généralement utilisées dans les systèmes sur puce (SoC) contiennent une certaine dérive, qui s'accumule au fil du temps et peut entraîner une erreur importante si elle n'est pas corrigée. De plus, comme les utilisateurs s'attendent à ce que l'heure locale soit affichée avec précision, le décalage correct par rapport au temps universel coordonné (UTC) doit être pris en compte.

Les informations sur le fuseau horaire, ainsi que l'application de l'heure d'été, peuvent changer au cours de la durée de vie prévue d'un véhicule. Par exemple, après de nombreuses années d'application de l'heure d'été, le Brésil a choisi de ne pas la mettre en place en 2019.

Android fournit l'infrastructure nécessaire pour gérer les complications liées à la gestion des règles de fuseau horaire. Pour en savoir plus, consultez Règles relatives aux fuseaux horaires, qui permettent aux OEM de transmettre des données mises à jour sur les règles relatives aux fuseaux horaires aux appareils sans nécessiter de mise à jour du système. Ce mécanisme permet :

  • Les utilisateurs reçoivent des mises à jour régulières (qui prolongent la durée de vie utile d'un appareil Android).
  • Les OEM peuvent tester les mises à jour des fuseaux horaires indépendamment des mises à jour des images système.

Remarque : AAOS 10 n'est pas compatible avec le mécanisme de mise à jour des modules basé sur APEX fourni dans les versions d'Android 10 (et versions ultérieures).

Remarque : Pour implémenter ce mécanisme, un redémarrage du système est nécessaire.

Sources d'informations sur l'heure (fuseau horaire) dans les voitures

Les appareils Android gèrent l'heure au niveau du système en utilisant le format Unix, appliquent le décalage de fuseau horaire souhaité, puis convertissent la valeur en heure locale pour l'afficher aux utilisateurs. L'ID de zone de l'utilisateur actuel (souvent appelé ID Olson) est stocké en tant que paramètre. (par exemple, Europe/London).

Une grande partie du mécanisme décrit ci-dessous concerne les informations temporelles. L'objectif de ces normes est de fournir aux utilisateurs l'heure actuelle, et non de décrire les règles applicables aux fuseaux horaires. Pour déterminer le fuseau horaire réel, l'appareil doit tenir compte de facteurs tels que le pays, le décalage et le décalage de l'heure d'été avant de définir l'ID de fuseau horaire.

Ce processus peut être difficile. Il peut être difficile de remonter le fil des événements à partir des informations disponibles. Par exemple, la règle de fuseau horaire America/Denver respecte l'heure d'été, mais adopte l'heure avancée des Rocheuses (MDT) pendant l'été, tandis qu'America/Phoenix continue de reconnaître la MDT.

Radio mobile

Les informations système (SI) sont un aspect essentiel de l'interface radio Long-Term Evolution (LTE), qui est transmise par la station de base (BS) sur le canal de contrôle de diffusion (BCCH). La norme 3GPP TS 36.331 spécifie le SystemInformationBlockType16 (SIB16), qui contient des informations liées au GPS et au temps universel coordonné (UTC), au décalage horaire local et aux informations sur l'heure d'été.

Des fonctionnalités similaires sont disponibles en 2G et 3G, où les informations sur l'identité du réseau et le fuseau horaire (NITZ) peuvent être diffusées (consultez 3GPP TS 22.042 pour en savoir plus). D'autres normes de radio mobile ont des fonctionnalités équivalentes.

Malheureusement, la plupart des normes ont en commun de rendre l'envoi de ces informations facultatif. Elles ne sont donc pas disponibles sur tous les réseaux.

Avantages Inconvénients
  • Fournit la plupart des informations souhaitées, lorsqu'elles sont disponibles.
  • Simplicité, déjà prise en charge par Android lorsque la radio cellulaire est exposée en tant que téléphone, et pas seulement en tant que modem de données.
  • Ne nécessite pas de connexion Internet.
  • Aucune garantie n'est donnée quant à la diffusion des informations ni à la configuration correcte de la station de base.

  • Dans les régions frontalières, il est possible que l'appareil capte une antenne-relais (en itinérance) d'un pays voisin et indique potentiellement le mauvais fuseau horaire.

  • Dans certaines régions, les mises à jour peuvent prendre plusieurs heures, voire plusieurs jours.

Protocole NTP

Le protocole NTP (Network Time Protocol) est souvent utilisé pour obtenir des informations relativement précises sur l'heure Unix. Android est compatible avec la synchronisation de l'heure système avec celle d'un serveur NTP, qui peut être exposé aux clients de RadioManager via les métadonnées RadioTuner.getParameters() génériques. Le protocole NTP met à jour l'heure système lorsqu'elle est désynchronisée et qu'un opérateur n'a pas fourni de mise à jour NITZ récemment. Si l'utilisateur active AUTO_TIME lorsque NITZ n'est pas disponible, le système recherche immédiatement l'heure du réseau.

Avantages Inconvénients

La simplicité, avec Android.

  • Incomplet, le protocole NTP ne fournit qu'une seule valeur requise (l'heure). Même dans le meilleur des cas, le protocole NTP ne peut pas fournir le fuseau horaire.

  • Nécessite une connexion Internet.

Tuner radio

Bien qu'il soit intéressant d'utiliser un tuner intégré pour récupérer les informations sur l'heure et le fuseau horaire, cela présente des difficultés. De nombreuses normes de diffusion radio définissent des options pour exposer les informations souhaitées. En règle générale, un tuner radio fournit les mêmes informations qu'une radio cellulaire.

La section 8.1 de la norme ETSI EN 300 401 V1.4.1 (2006-06) spécifie les fonctionnalités d'informations sur les services qui fournissent des informations supplémentaires sur les services pour les programmes audio et les données des systèmes de radiodiffusion audio numérique (DAB). La section 8.1.3 définit le format de l'heure et de la date, ainsi que des informations sur le pays et le décalage horaire local.

De même, pour le système de données radio (RDS) couramment implémenté dans les tuners FM, la section 3.1.5.6 de la norme EN 50067 définit le format de l'heure et des données (transmises une fois par minute). De plus, le code pays étendu (ECC, Extended Country Code) peut également être récupéré dans l'identification du programme transmis.

HD Radio contient des options correspondantes dans la spécification HD Radio™ Air Interface Design Description Station Information Service Transport du message de paramètre SIS (Station Information Service) (MSG ID 0111). La section 5 énonce clairement les mots de prudence à respecter lorsque vous essayez d'utiliser la prise en charge de l'horloge de la diffusion. La même sagesse s'applique également aux autres systèmes :

… ces données décrivent les coutumes locales à l'emplacement du diffuseur, qui peuvent être identiques ou non à celles de l'emplacement du récepteur. À proximité des limites de fuseaux horaires, les consommateurs peuvent recevoir plusieurs stations fournissant des données différentes. Par conséquent, ces données ne sont fournies qu'à titre indicatif. Leur interprétation et leur utilisation doivent être laissées à la discrétion du client, sous son contrôle. ..."

De plus, pour la radio HD au moins, la diffusion de ces informations est facultative et ne doit pas être la seule source d'informations.

Avantages Inconvénients
  • Généralement disponible dans différentes normes régionales de diffusion radio.
  • Ne nécessite pas de connexion Internet.
  • Android n'est pas compatible avec cette fonctionnalité.
  • Nécessite que le tuner soit activé (au moins occasionnellement en arrière-plan) pour détecter les informations de manière fiable.
  • La fiabilité dépend de la chaîne.

Conseils d'implémentation

Android permet de synchroniser l'heure système avec celle d'un serveur NTP si elle peut être exposée aux clients de RadioManager. La solution recommandée consiste à utiliser la fonctionnalité d'extension du fournisseur. L'implémentation de cette fonctionnalité doit avoir lieu dans la couche d'abstraction matérielle (HAL), après quoi elle peut être exposée aux clients de RadioManager via la méthode générique RadioTuner.getParameters().

Pour que la solution reste robuste, le consommateur de cette extension de fournisseur doit déterminer que le HAL est compatible avec la fonctionnalité (ne supposez pas son existence). Les chaînes de paramètres pour l'appel getParameters doivent être clairement organisées pour une utilisation non ambiguë par les fournisseurs. Par exemple, en utilisant l'espace de noms de votre organisation en le préfixant avec le domaine approprié, par exemple com.me.timezoneTuner.currenttimezone.

Étant donné la nature événementielle des informations, il peut être utile d'utiliser le rappel RadioTuner.Callback.onParametersUpdated() pour les recevoir. Si cette fonctionnalité doit être configurable, concevez un ensemble de routines personnalisées en plus de setParameters. Exemple :

com.me.timezoneTuner.currenttimezoneEvent.enable

Le système mondial de navigation par satellite (GNSS) ne peut fournir que des informations précises sur l'heure et la position.

Géolocalisation

Pour résoudre ce problème, exécutez le géocodage inversé et déterminez le pays et le fuseau horaire en effectuant une recherche basée sur la position. Le GNSS est le choix évident (et de meilleure qualité) pour les informations de localisation dans un véhicule. L'API Time Zone de Google fournit tout ce dont vous avez besoin pour effectuer la conversion requise. Bien sûr, une connexion Internet est requise. La protection de la confidentialité des utilisateurs doit être une priorité absolue lors de l'implémentation d'une solution en ligne. L'autorisation d'un utilisateur à accepter (ou non) les coûts d'utilisation des données est requise et doit être demandée.

Il est possible de créer une solution adaptée à l'utilisation hors connexion. Une base de données cartographiques locale avec une résolution suffisante pour déterminer précisément le pays et le fuseau horaire peut être stockée dans le véhicule. Avec cette stratégie et une stratégie entièrement implémentée pour mettre à jour les informations de fuseau horaire (et de pays) si nécessaire, il est possible de faire du géocodage inversé du pays/fuseau horaire en fonction de la position GNSS obtenue à partir du sous-système de localisation.

Avantages Inconvénients
  • peut déterminer sans ambiguïté le fuseau horaire correct.
  • Ne nécessite pas de connexion Internet (en cas de base de données locale).
  • Fonctionne de manière fiable dans la plupart des scénarios de conduite.
  • Android n'est pas compatible avec cette fonctionnalité.
  • Si le véhicule se trouve dans un espace couvert où la réception des satellites GNSS n'est pas possible lors de la configuration initiale, il est impossible d'obtenir des informations précises sur l'heure, la position et le fuseau horaire.
  • La base de données locale a besoin d'un mécanisme de mise à jour.
  • Complexité de l'implémentation.

Téléphone connecté via Bluetooth, Wi-Fi ou USB

Plusieurs technologies peuvent être utilisées pour exploiter le téléphone d'un utilisateur afin d'obtenir des données sur l'heure et le fuseau horaire. Pour tous les téléphones, une paire d'applications personnalisées et d'applications associées doit être installée sur le téléphoneet sur le système d'infoloisirs embarqué (IVI). Il est ensuite possible de synchroniser l'heure à l'intervalle souhaité. Par exemple, lors de l'établissement de la connexion et lorsque le téléphone détecte un nouveau fuseau horaire.

Certains téléphones compatibles avec le Bluetooth à basse consommation (BLE) permettent de récupérer l'heure via la caractéristique GATT Current Time et la spécification du profil Current Time Service 1.1. Toutefois, cette option ne s'adresse pas à un segment de marché suffisamment vaste pour être utilisée exclusivement.

Avantages Inconvénients
  • Ne nécessite pas de connexion Internet.
  • Les changements de fuseau horaire détectés par le téléphone peuvent être transmis à l'unité principale.
  • Android n'est pas compatible avec cette fonctionnalité.
  • Ne fonctionne que lorsque le téléphone est connecté à l'unité principale.
  • L'heure est aussi précise que celle fournie par le téléphone.
  • L'implémentation est complexe.
  • Tous les téléphones ne sont pas compatibles avec le profil BLE GATT Current Time Service.

Utiliser des sources

Chaque fournisseur d'appareils doit déterminer le niveau d'exigence à définir et les parcours utilisateur à considérer comme les plus critiques. C'est uniquement en comprenant clairement les expériences utilisateur critiques souhaitées que vous pourrez prendre la meilleure décision. Dans la plupart des cas, les fournisseurs doivent tenir compte des compromis entre commodité et complexité d'implémentation.

Chacune des options décrites ci-dessus présente des avantages et des inconvénients. Par exemple, un choix de conception critique doit être fait en ce qui concerne la quantité de résilience acceptable par rapport à un affichage de l'heure parfois médiocre, et la façon de gérer les inconvénients. Solution entièrement automatique qui devrait bien fonctionner dans tous les scénarios, mais qui doit être basée sur une combinaison de plusieurs sources d'informations. Aucune option unique ne peut offrir une disponibilité de 100 %.

Une option de configuration manuelle comme solution de repli temporaire est facile à exécuter et peut, en pratique, suffire à de nombreux utilisateurs.