Compartilhar via


estrutura GNSS_DEVICE_CAPABILITY (gnssdriver.h)

A estrutura de GNSS_DEVICE_CAPABILITY é usada para determinar os recursos do dispositivo do mecanismo GNSS subjacente.

Sintaxe

typedef struct {
  ULONG             Size;
  ULONG             Version;
  BOOL              SupportMultipleFixSessions;
  BOOL              SupportMultipleAppSessions;
  BOOL              RequireAGnssInjection;
  ULONG             AgnssFormatSupported;
  ULONG             AgnssFormatPreferred;
  BOOL              SupportDistanceTracking;
  BOOL              SupportContinuousTracking;
  ULONG             Reserved1;
  BOOL              Reserved2;
  BOOL              Reserved3;
  BOOL              Reserved4;
  BOOL              Reserved5;
  ULONG             GeofencingSupport;
  BOOL              Reserved6;
  BOOL              Reserved7;
  BOOL              SupportCpLocation;
  BOOL              SupportUplV2;
  BOOL              SupportSuplV1;
  BOOL              SupportSuplV2;
  GNSS_SUPL_VERSION SupportedSuplVersion;
  ULONG             MaxGeofencesSupported;
  BOOL              SupportMultipleSuplRootCert;
  ULONG             GnssBreadCrumbPayloadVersion;
  ULONG             MaxGnssBreadCrumbFixes;
  BYTE              Unused[496];
} GNSS_DEVICE_CAPABILITY, *PGNSS_DEVICE_CAPABILITY;

Membros

Size

Tamanho da estrutura.

Version

Número da versão.

SupportMultipleFixSessions

Indica se o driver GNSS dá suporte nativo a várias sessões para o mesmo tipo (por exemplo, várias sessões simultâneas de acompanhamento de distância iniciadas pelo HLOS). Se FALSE, o adaptador GNSS multiplexará as solicitações de sessão de correção de vários aplicativos LBS para combinar em uma solicitação de sessão de correção que atenda a todas as solicitações do cliente.

Se essa funcionalidade não estiver presente, o driver deverá dar suporte a pelo menos uma sessão ativa de cada tipo de sessão de correção com suporte. Por exemplo, se o driver der suporte ao acompanhamento baseado em distância e à funcionalidade de tiro único, ele deverá dar suporte a uma sessão de correção baseada em distância e uma sessão de correção única ativa ao mesmo tempo.

O driver sempre deve dar suporte à modificação do parâmetro de sessão para um tipo de sessão de correção ativa para que o adaptador GNSS não precise parar/iniciar uma sessão de correção contínua quando uma nova solicitação de correção precisar ser multiplexada. Em Windows 10, o adaptador GNSS não dá suporte à inicialização no driver GNSS várias sessões do mesmo tipo.

SupportMultipleAppSessions

Indica se o driver GNSS dá suporte nativo e rastreia solicitações provenientes de vários aplicativos HLOS. O driver GNSS não deve restringir a chamada de mais de um aplicativo ao mesmo tempo.

Um valor true indica que o driver controla as diferentes sessões de aplicativo HLOS, particiona logicamente as solicitações, garante que a solicitação de uma sessão de aplicativo não influencie outra sessão de aplicativo e assim por diante. Por exemplo, ele poderá manipular separadamente o adaptador GNSS e um aplicativo de teste e responder a comandos de cada um separadamente.

Um valor false indica que o driver não diferencia diferentes sessões de aplicativo HLOS e trata logicamente tudo de maneira global como se todos eles fossem provenientes de uma única sessão de aplicativo HLOS.

RequireAGnssInjection

Indica se o driver GNSS requer que os dados de assistência sejam injetados para um TTFF mais rápido.

AgnssFormatSupported

Especifica uma máscara de bits que contém os diferentes formatos AGNSS (GNSS_AGNSSFORMAT_*) que o driver pode manipular.

#define GNSS_AGNSSFORMAT_XTRA1      0x01
#define GNSS_AGNSSFORMAT_XTRA2      0x02
#define GNSS_AGNSSFORMAT_LTO        0x04
#define GNSS_AGNSSFORMAT_XTRA3      0x08
#define GNSS_AGNSSFORMAT_XTRA3_1    0x10
#define GNSS_AGNSSFORMAT_XTRA3_2    0x20
#define GNSS_AGNSSFORMAT_XTRA_INT   0x40

Os valores 0x0080-0xFFFF são reservados para extensibilidade.

Atualmente, essa lista inclui alguns formatos proprietários de IHV. A lista pode ser atualizada quando IHVs ou OEMs decidem obter as informações de assistência do GNSS, especificamente efêmeros estendidos, por meio da plataforma de localização.

AgnssFormatPreferred

Especifica o formato AGNSS preferencial usando a mesma máscara de bits que AgnssFormatSupported. Por exemplo, se há suporte para XTRA1 e XTRA2, mas XTRA2 é o formato preferencial, o driver GNSS define AgnssFormatSupported como 0x000C e AgnssFormatPreferred como 0x0004.

SupportDistanceTracking

Indica se o driver/mecanismo GNSS dá suporte nativo ao acompanhamento de baixa potência do dispositivo com base em um limite específico da sessão. Um valor TRUE implica que o driver pode dar suporte a isso nativamente em um modo de baixa potência, por exemplo, descarregando o rastreamento para um processador de baixa potência e não exigindo que o processador do aplicativo esteja em atividade e sondando a movimentação.

Se o driver GNSS der suporte ao rastreamento de distância, ele oferecerá suporte implícito a outros tipos de sessões de correção paralela ao mesmo tempo. Por exemplo, se uma sessão de acompanhamento de distância estiver ativa, um single-shot paralelo também deverá ser permitido e ambos os tipos de sessões de correção deverão ser respeitados.

SupportContinuousTracking

Indica se o Driver/Mecanismo GNSS dá suporte nativo ao acompanhamento contínuo de baixa potência do dispositivo. Um valor TRUE implica que o driver pode dar suporte a isso nativamente em um modo de baixa potência, por exemplo, descarregando o rastreamento para um processador de baixa potência e não exigindo que o processador do aplicativo esteja em atividade e sondagem continuamente.

Se o Driver GNSS der suporte ao acompanhamento contínuo, ele oferecerá suporte implícito a outros tipos de sessões de correção paralela ao mesmo tempo. Por exemplo, o rastreamento único e contínuo pode acontecer em paralelo.

Reserved1

Reservado para uso futuro.

Reserved2

Reservado para uso futuro.

Reserved3

Reservado para uso futuro.

Reserved4

Reservado para uso futuro.

Reserved5

Reservado para uso futuro.

GeofencingSupport

Os drivers GNSS versão 1 devem indicar que essa funcionalidade não tem suporte.

Os drivers GNSS versão 2 e posteriores podem indicar o suporte de cerca geográfica definindo as seguintes máscaras de bits:

#define GNSS_GEOFENCESUPPORT_SUPPORTED     0x01
#define GNSS_GEOFENCESUPPORT_CIRCLE        0x02

GNSS_GEOFENCESUPPORT_SUPPORTED indica que o mecanismo GNSS dá suporte ao acompanhamento de cerca geográfica. O suporte à funcionalidade de acompanhamento de cerca geográfica implica que ele é feito nativamente, de maneira otimizada para energia, e usa as tecnologias de posicionamento híbrido apropriadas disponíveis no mecanismo GNSS, conforme aplicável.

GNSS_GEOFENCESUPPORT_CIRCLE indica que o mecanismo GNSS dá suporte a cercas geográficas circulares.

Reserved6

Reservado para uso futuro.

Reserved7

Reservado para uso futuro.

SupportCpLocation

Especifica se há suporte para o local do CP.

SupportUplV2

Especifica se há suporte para a localização do plano de usuário V2 para CDMA.

SupportSuplV1

Especifica se há suporte para SUPL V1.

SupportSuplV2

Especifica se há suporte para SUPL V2.

SupportedSuplVersion

Especifica a versão supl mais recente com suporte do cliente SUPL. Atualmente, essas informações de versão não são usadas pelo HLOS em para fins de validação.

MaxGeofencesSupported

Especifica o número de cercas geográficas que o mecanismo GNSS pode acompanhar com base nas restrições definidas pela plataforma. Esse valor só será válido quando o campo GeofencingSupport for definido.

SupportMultipleSuplRootCert

Especifica o parâmetro SUPL.

GnssBreadCrumbPayloadVersion

Deve ser BREADCRUMBING_UNSUPPORTED ou BREADCRUMBING_VERSION_x.

MaxGnssBreadCrumbFixes

Deve ser maior ou igual a MIN_BREADCRUMBS_SUPPORTED.

Unused[496]

Buffer de preenchimento reservado para uso futuro.

Comentários

Esta é uma lista de suporte a recursos individuais. A funcionalidade é representada por um booliano ou por uma enumeração bem definida do atributo específico.

Requisitos

Requisito Valor
Cabeçalho gnssdriver.h (inclua Gnssdriver.h)