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) |