Opções de fuso horário

A exibição precisa do tempo é um recurso central esperado de um sistema de infoentretenimento automotivo. Embora isso possa parecer enganosamente simples, especialmente quando as expectativas de gerenciamento de tempo e fuso horário são baixas e devem ser atendidas, o tempo rapidamente se torna complexo quando uma data e hora precisas e confiáveis ​​devem ser exibidas sem intervenção manual.

Todos os relógios de tempo real normalmente usados ​​em Systems-on-Chip (SoC) contêm algum desvio, que se acumula com o tempo e pode levar a erros significativos quando não corrigidos. Além disso, como as expectativas são altas de que o horário local seja exibido com precisão, o deslocamento correto do Tempo Universal Coordenado (UTC) deve ser considerado.

As informações de fuso horário, bem como a aplicação do horário de verão (DST), podem mudar durante a vida útil esperada de um veículo. Por exemplo, depois de muitos anos implementando o horário de verão, o Brasil optou por não iniciar um cronograma de horário de verão em 2019.

O Android fornece a infraestrutura necessária para negociar as complicações do gerenciamento de regras de fuso horário. Para obter detalhes, consulte Regras de fuso horário , que permite que os OEMs enviem dados de regras de fuso horário atualizados para dispositivos sem exigir uma atualização do sistema. Este mecanismo permite:

  • Os usuários recebem atualizações oportunas (que prolongam a vida útil de um dispositivo Android).
  • OEMs para testar atualizações de fuso horário independentemente das atualizações de imagem do sistema.

Observação: o AAOS 10 não oferece suporte ao mecanismo de atualização de módulo baseado em APEX fornecido nas versões do Android 10 (e superior).

Observação: para implementar esse mecanismo, é necessária uma reinicialização do sistema.

Fontes de informação de tempo (zona) em carros

Os dispositivos Android gerenciam o horário no horário Unix no nível do sistema, aplicam o deslocamento de fuso horário desejado e, em seguida, convertem o valor para a hora local para exibição aos usuários. O ID da zona do usuário atual (muitas vezes referido como ID Olson) é armazenado como uma configuração. Por exemplo, Europa/Londres .

Grande parte do mecanismo descrito abaixo descreve informações de tempo. A intenção desses padrões é fornecer aos usuários a hora atual, não descrever as regras de fuso horário aplicáveis. Para determinar o fuso horário real, o dispositivo deve voltar a partir de fatores como país, deslocamento e deslocamento do horário de verão antes de definir a ID da zona.

O processo pode ser um desafio. Voltar a trabalhar com base nas informações disponíveis pode ser ambíguo. Por exemplo, a regra de fuso horário America/Denver observa o horário de verão, mas adota o horário de verão das montanhas (MDT) durante o verão, enquanto America/Phoenix continua a reconhecer o MDT.

rádio celular

A informação do sistema (SI) é um aspecto essencial da interface aérea Long-Term Evolution (LTE), que é transmitida pela estação base (BS) pelo canal de controle de transmissão (BCCH). 3GPP TS 36.331 especifica o SystemInformationBlockType16 (SIB16) que contém informações relacionadas a GPS e Tempo Universal Coordenado (UTC), deslocamento de horário local, bem como informações de horário de verão.

Funcionalidades semelhantes podem ser encontradas em 2G e 3G, onde informações de identidade de rede e fuso horário (NITZ) podem ser transmitidas (consulte 3GPP TS 22.042 para obter detalhes). Outros padrões de rádio celular têm recursos equivalentes.

Infelizmente, a semelhança entre a maioria dos padrões é que o envio dessas informações é opcional e, portanto, não está disponível universalmente em todas as redes.

Prós Contras
  • Quando disponível, fornece a maioria das informações desejadas.
  • Simplicidade, já suportada pelo Android quando o rádio celular é exposto como um telefone, não apenas como um modem de dados.
  • Não requer conectividade com a Internet.
  • Não há garantia de que as informações sejam transmitidas nem de que a estação base esteja configurada corretamente.

  • Em regiões fronteiriças, é possível captar uma torre de celular (roaming) de um país vizinho e potencialmente transmitir o fuso horário errado.

  • Em alguns locais, as atualizações podem levar horas, até dias, para ocorrer.

Protocolo de tempo de rede

Network Time Protocol (NTP) é freqüentemente usado para obter informações relativamente precisas de tempo de época do Unix. O Android oferece suporte à sincronização do horário do sistema com o de um servidor NTP se puder ser exposto aos clientes do RadioManager por meio do genérico RadioTuner.getParameters() atualiza o horário do sistema quando fica fora de sincronia e uma operadora não forneceu recentemente uma atualização do NITZ. Se o usuário ativar AUTO_TIME quando NITZ não estiver disponível, o sistema verificará imediatamente o horário da rede.

Prós Contras

Simplicidade, suportada pelo Android.

  • Incompleto, o NTP fornece apenas um valor necessário (tempo). Mesmo na melhor das hipóteses, o NTP não pode fornecer o fuso horário.

  • Requer conectividade com a Internet.

Sintonizador de rádio de transmissão

Embora seja atraente aproveitar um sintonizador integrado para recuperar informações de fuso horário e horário, há desafios envolvidos. Numerosos padrões de transmissão de rádio definem opções para expor as informações desejadas. De um modo geral, um sintonizador de rádio broadcast fornece as mesmas informações que um rádio celular.

ETSI EN 300 401 V1.4.1 (2006-06), seção 8.1 especifica recursos de informações de serviço que fornecem informações suplementares sobre serviços para programas de áudio e dados para sistemas de transmissão de áudio digital (DAB). A Seção 8.1.3 define o formato de hora e data, bem como as informações de diferença de horário local e do país.

Da mesma forma, para o sistema de dados de rádio (RDS) comumente implementado em sintonizadores de FM, a seção 3.1.5.6 do padrão EN 50067 define o formato do relógio e dos dados (transmitidos uma vez por minuto. Além disso, o código de país estendido (ECC) também pode ser recuperado como parte da identificação do programa transmitido.

O HD Radio contém as opções correspondentes como parte da descrição do design da interface aérea do HD Radio™, especificação de transporte do serviço de informações da estação na mensagem de parâmetro do serviço de informações da estação (SIS) (MSG ID 0111). A Seção 5 descreve claramente as palavras de advertência que devem ser observadas ao tentar usar o suporte de relógio da transmissão. A mesma sabedoria se aplica igualmente a outros sistemas:

... esses dados descrevem o costume local no local da emissora, que pode ou não ser o mesmo que o costume local no local do receptor. Perto dos limites do fuso horário, os consumidores podem receber uma multiplicidade de estações fornecendo dados diferentes. Portanto, esses dados são fornecidos apenas como dicas, cuja interpretação e utilização devem ser feitas de forma discricionária, sujeitas ao controle do cliente. …"

Além disso, pelo menos para HD Radio, a transmissão dessas informações é opcional e, portanto, não deve ser considerada exclusivamente.

Prós Contras
  • Normalmente disponível em diferentes padrões de rádio de transmissão regional.
  • Não requer conectividade com a Internet.
  • O Android não oferece suporte a isso pronto para uso.
  • Requer que o sintonizador esteja ligado (pelo menos ocasionalmente em segundo plano) para detectar informações de forma confiável.
  • A confiabilidade depende da emissora.

dicas de implementação

if pode ser exposto aos clientes do RadioManager através dos metadados genéricos RadioTuner.getParameters() . Portanto, a solução recomendada é aproveitar o recurso de extensão do fornecedor. A implementação dessa funcionalidade deve ocorrer na camada de abstração de hardware (HAL), após a qual pode ser exposta aos clientes do RadioManager por meio do método genérico RadioTuner.getParameters() .

Para que a solução permaneça robusta, o consumidor dessa extensão de fornecedor deve determinar que o HAL oferece suporte ao recurso (não assuma sua existência). As sequências de parâmetros para a chamada getParameters devem ser organizadas de forma limpa para uso inequívoco entre fornecedores. Por exemplo, usando o namespace de sua organização prefixando-o com o domínio apropriado como em "com.me.timezoneTuner.currenttimezone"

Dada a natureza orientada a eventos das informações, pode ser benéfico usar o retorno de chamada RadioTuner.Callback.onParametersUpdated() para receber essas informações. Caso esse recurso deva ser configurável, crie um conjunto de rotinas customizadas sobre setParameters . Por exemplo:

com.me.timezoneTuner.currenttimezoneEvent.enable

Por si só, o Sistema Global de Navegação por Satélite (GNSS) só pode fornecer informações de tempo (muito) precisas, bem como a posição.

geolocalização

A solução para esse inconveniente é executar a geocodificação reversa e determinar o país e o fuso horário fazendo uma pesquisa com base na posição. O GNSS é a escolha óbvia (e de melhor qualidade) de informações de localização em um veículo. A API de fuso horário do Google oferece tudo o que é necessário para executar a conversão necessária. Claro, a conectividade com a Internet é necessária. Garantir a privacidade do usuário deve ser uma prioridade ao implementar uma solução online! A permissão de um usuário para aceitar os custos de uso de dados (ou não) é necessária e deve ser solicitada.

É viável criar uma solução adequada para uso offline. Um banco de dados de mapas locais com resolução suficiente para determinar com precisão o país e o fuso horário pode caber no armazenamento de um veículo. Com isso e uma estratégia totalmente implementada para atualizar as informações de fuso horário (e país) conforme necessário, pode-se fazer geocodificação reversa do país/fuso horário com base na posição GNSS obtida do subsistema de localização.

Prós Contras
  • Pode determinar inequivocamente o fuso horário correto.
  • Não requer conectividade com a Internet (no caso de DB local).
  • Funciona de forma confiável para a maioria dos cenários de direção.
  • Android não suporta isso fora da caixa.
  • Se o veículo estiver dentro de casa/área coberta onde uma boa recepção de satélite GNSS não é possível durante a configuração inicial, é impossível obter informações precisas de hora, localização e fuso horário.
  • O banco de dados local precisa de um mecanismo de atualização.
  • Complexidade de implementação.

Telefone conectado via Bluetooth, Wi-Fi ou USB

Várias tecnologias podem ser usadas para alavancar o telefone de um usuário para obter dados de horário e fuso horário. Para todos os telefones, um par de aplicativos personalizados e aplicativos complementares devem ser instalados no telefone e no sistema In-Vehicle Infotainment (IVI). É então possível sincronizar o tempo no intervalo desejado. Por exemplo, ao estabelecer a conexão e quando o telefone detecta um novo fuso horário.

Alguns telefones que suportam Bluetooth Low Energy (BLE) oferecem a opção de recuperar a hora por meio da característica GATT Current Time e da Current Time Service Profile Specification 1.1 . No entanto, esta opção não atende a um segmento de mercado suficientemente grande para ser invocado exclusivamente.

Prós Contras
  • Não requer conectividade com a Internet

  • As alterações de fuso horário detectadas pelo telefone podem ser retransmitidas para a unidade principal.

  • Android não suporta isso fora da caixa.

  • Funciona apenas enquanto o telefone está conectado à unidade principal.

  • O tempo será tão bom ou ruim quanto o que o telefone oferece.

  • Complexidade de implementação.

  • Apenas alguns telefones suportam o perfil BLE GATT Current Time Service.

Usando fontes

Cada fornecedor de dispositivo deve determinar o quão alto um padrão deve ser definido e quais jornadas do usuário devem ser consideradas mais críticas. Somente com uma compreensão clara das experiências críticas do usuário desejadas, a melhor decisão pode ser tomada. Na maioria dos casos, os fornecedores devem considerar as compensações entre conveniência e complexidade de implementação.

Cada opção descrita acima apresenta vantagens e desvantagens. Por exemplo, uma escolha crítica de design deve ser feita com relação a quanta resiliência, em comparação com a exibição ocasional de tempo ruim, é aceitável e como gerenciar as desvantagens. Uma solução totalmente automática que pode funcionar bem em todos os cenários, mas deve ser baseada em uma combinação de várias fontes de informação. Nenhuma opção pode fornecer 100% de disponibilidade.

Uma opção de configuração manual como alternativa temporária é fácil de executar e pode, na prática, ser suficiente para muitos usuários.