Compartilhar via


enumeração GNSS_GEOFENCE_STATE (gnssdriver.h)

GNSS_GEOFENCE_STATE enumera os vários estados de uma única cerca geográfica.

Syntax

typedef enum {
  GNSS_GeofenceState_Unknown,
  GNSS_GeofenceState_Entered,
  GNSS_GeofenceState_Exited
} GNSS_GEOFENCE_STATE;

Constantes

 
GNSS_GeofenceState_Unknown
O estado da cerca geográfica é desconhecido.
GNSS_GeofenceState_Entered
A cerca geográfica foi inserida.
GNSS_GeofenceState_Exited
A cerca geográfica foi encerrada.

Comentários

As máscaras de bits a seguir são usadas pelo HLOS para solicitar alertas de alteração de estado para cercas geográficas:

#define GNSS_GEOFENCEALERTTYPE_ENTRY  GNSS_GeofenceState_Entered    // Enter Geofence
#define GNSS_GEOFENCEALERTTYPE_EXIT   GNSS_GeofenceState_Exited     // Exit Geofence

Um alerta de entrada é gerado quando o estado anterior da cerca geográfica era desconhecido ou encerrado e o dispositivo agora entrou na cerca geográfica.

Um alerta de saída é gerado quando o estado anterior da cerca geográfica foi inserido e o dispositivo agora saiu da cerca geográfica. Se o estado anterior da cerca geográfica for desconhecido e o dispositivo estiver fora da cerca geográfica, nenhum alerta de saída será gerado.

A plataforma de localização envia apenas um gatilho de saída para aplicativos quando o estado conhecido anterior de uma cerca está dentro da cerca. Essa é uma decisão de design para evitar conversas de eventos de saída na configuração de cerca geográfica (por exemplo, quando não espera que um usuário que configure uma cerca de saída de casa precise ser notificado de que está fora de casa se configurar a notificação quando já estiver fora de casa). No entanto, a plataforma de localização pode lidar com o local em que o driver GNSS envia eventos de saída, mas não é recomendável porque, em seguida, a interação entre o adaptador GNSS e o driver GNSS se tornará muito detalhada. Considerando que as chances de o usuário entrar em uma cerca geográfica são muito menores do que o usuário estar fora de uma cerca geográfica, esse comportamento reduz a interação necessária entre o driver GNSS e o adaptador GNSS. Por exemplo, no caso de 100 cercas geográficas enviadas por push para o driver GNSS e um usuário estava fora de todos eles, sem esse comportamento, o precisará enviar para as notificações de saída do adaptador GNSS 100. A probabilidade de algo semelhante a isso acontecer para eventos de entrada é muito pequena.

A transição de estado de cerca geográfica e os alertas associados são mostrados abaixo. Para simplificar, as condições de limite de histerese e cerca geográfica estão implícitas.

Diagrama de estado de cerca geográfica do GNSS.

Os principais aspectos desse diagrama de estado são:

  • Nenhum alerta deve ser gerado ao fazer a transição de GNSS_GeofenceState_Unknown para GNSS_GeofenceState_Exited estado.

  • Quando o mecanismo GNSS não consegue rastrear nenhuma cerca geográfica, um único alerta de status de rastreamento global precisa ser gerado, em vez de um alerta para cada cerca geográfica. O mecanismo GNSS pode manter o último estado de conhecimento para cada cerca em vez de fazer a transição para GNSS_GeofenceState_Unknown estado, de modo que, quando for capaz de rastrear novamente, os alertas de cerca geográfica necessários possam ser gerados com base na nova detecção de entrada/saída.

    No entanto, a manutenção desse último estado conhecido não é necessária no momento, pois uma vez que o driver GNSS gera o evento com gnss_geofences_tracking_status como FAILURE, a plataforma de localização no HLOS começará a fazer o acompanhamento de cercas geográficas. Durante esse tempo, o mecanismo GNSS deve continuar a marcar, de maneira otimizada para energia, se as cercas geográficas puderem ser rastreadas novamente. O IHV pode usar otimizações para fazer essa detecção com baixa potência. As técnicas comuns para otimização incluem o seguinte:

    • Retirada progressiva

    • Aguardando sinais de baixo custo que são indicativos de movimentações de dispositivo, como dados de acelerador ou notificações de alteração de celular/WiFi.

    • Solicitando uma sessão de acompanhamento de distância de baixa precisão do HLOS usando as APIs winRT de geolocalização pública.

    • Verificações de baixa energia para sinal de satélite.

    Quando o mecanismo GNSS é capaz de rastrear cercas geográficas novamente, ele se comunica assim definindo o gnss_geofence_tracking_status como SUCCESS para o adaptador GNSS/HLOS

    O adaptador GNSS emitirá GNSS_ResetGeofenceTracking comandos e adicionará novamente cercas geográficas ativas no momento com os critérios de entrada/saída atuais de cada cerca geográfica. Isso precisa ser feito caso o conjunto de cercas geográficas a serem controladas tenha sido alterado ou no estado de qualquer cerca geográfica tenha sido alterado.

Requisitos

Requisito Valor
Cabeçalho gnssdriver.h