Condividi tramite


struttura GNSS_DEVICE_CAPABILITY (gnssdriver.h)

La struttura GNSS_DEVICE_CAPABILITY viene usata per determinare le funzionalità del dispositivo del motore GNSS sottostante.

Sintassi

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;

Membri

Size

Dimensioni della struttura.

Version

Numero di versione.

SupportMultipleFixSessions

Indica se il driver GNSS supporta in modo nativo più sessioni per lo stesso tipo (ad esempio, più sessioni di rilevamento della distanza simultanee avviate da HLOS). Se FALSE, l'adattatore GNSS eseguirà il multiplex delle richieste di sessione di correzione da più app LBS da combinare in una richiesta di sessione di correzione che soddisfa tutte le richieste client.

Se questa funzionalità non è presente, il driver deve supportare almeno una sessione attiva di ogni tipo di sessione di correzione supportata. Ad esempio, se il driver supporta il rilevamento basato sulla distanza e la funzionalità a singolo scatto, deve supportare una sessione di correzione basata su distanza e una sessione di correzione singola attiva contemporaneamente.

Il driver deve sempre supportare la modifica del parametro di sessione per un tipo di sessione di correzione attiva, in modo che l'adattatore GNSS non debba arrestare o avviare una sessione di correzione in corso quando una nuova richiesta di correzione deve essere multiplexed. In Windows 10, l'adattatore GNSS non supporta l'avvio nel driver GNSS più sessioni dello stesso tipo.

SupportMultipleAppSessions

Indica se il driver GNSS supporta in modo nativo e tiene traccia delle richieste provenienti da più applicazioni HLOS. Il driver GNSS non deve limitare la chiamata da più applicazioni contemporaneamente.

Un valore TRUE indica che il driver tiene traccia delle diverse sessioni dell'applicazione HLOS, partiziona logicamente le richieste, garantisce che la richiesta da una sessione dell'applicazione non influisca su un'altra sessione dell'applicazione e così via. Ad esempio, sarà in grado di gestire separatamente l'adattatore GNSS e un'applicazione di test e rispondere ai comandi da ognuno separatamente.

Un valore FALSE indica che il driver non differenzia le diverse sessioni dell'applicazione HLOS e considera logicamente tutto in modo globale come se provenissero da una singola sessione di applicazione HLOS.

RequireAGnssInjection

Indica se il driver GNSS richiede che i dati di assistenza vengano inseriti per un TTFF più veloce.

AgnssFormatSupported

Specifica una maschera di bit contenente i diversi formati AGNSS (GNSS_AGNSSFORMAT_*) che il driver può gestire.

#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

I valori 0x0080-0xFFFF sono riservati per l'estendibilità.

Questo elenco include attualmente alcuni formati proprietari IHV. L'elenco può essere aggiornato quando gli IHD o gli OEM decidono di ottenere le informazioni di assistenza GNSS, in particolare ephemeri estese, tramite la piattaforma location.

AgnssFormatPreferred

Specifica il formato AGNSS preferito usando la stessa maschera di bit di AgnssFormatSupported. Ad esempio, se sia XTRA1 che XTRA2 sono supportati, ma XTRA2 è il formato preferito, il driver GNSS imposta AgnssFormatSupported su 0x000C e AgnssFormatPreferred su 0x0004.

SupportDistanceTracking

Indica se il driver/motore GNSS supporta in modo nativo il rilevamento a basso consumo del dispositivo in base a una soglia specifica della sessione. Un valore TRUE implica che il driver può supportare questo in modo nativo in modalità a basso consumo, ad esempio, eseguendo l'offload del rilevamento in un processore a basso consumo e non richiedendo che il processore dell'app sia attivo ed esegua il polling per lo spostamento.

Se il driver GNSS supporta il rilevamento della distanza, supporta implicitamente altri tipi di sessioni di correzione parallela contemporaneamente. Ad esempio, se una sessione di rilevamento della distanza è attiva, è necessario che sia consentita anche una singola registrazione parallela e che entrambi i tipi di sessioni di correzione siano rispettati.

SupportContinuousTracking

Indica se il driver/motore GNSS supporta in modo nativo il rilevamento continuo a basso consumo del dispositivo. Un valore TRUE implica che il driver può supportare questa funzionalità in modo nativo in modalità a basso consumo, ad esempio, eseguendo l'offload del rilevamento in un processore a basso consumo e non richiedendo che il processore dell'app sia attivo ed esegua il polling continuo.

Se il driver GNSS supporta il rilevamento continuo, supporta in modo implicito altri tipi di sessioni di correzione parallela contemporaneamente. Ad esempio, il rilevamento continuo e singolo può verificarsi in parallelo.

Reserved1

Riservato per uso futuro.

Reserved2

Riservato per uso futuro.

Reserved3

Riservato per uso futuro.

Reserved4

Riservato per uso futuro.

Reserved5

Riservato per uso futuro.

GeofencingSupport

I driver GNSS versione 1 devono indicare che questa funzionalità non è supportata.

I driver GNSS versione 2 e versioni successive possono indicare il supporto del recinto virtuale impostando le maschera di bit seguenti:

#define GNSS_GEOFENCESUPPORT_SUPPORTED     0x01
#define GNSS_GEOFENCESUPPORT_CIRCLE        0x02

GNSS_GEOFENCESUPPORT_SUPPORTED indica che il motore GNSS supporta il rilevamento del recinto virtuale. Il supporto della funzionalità di rilevamento del recinto virtuale implica che viene eseguito in modo nativo, in modo ottimizzato per l'alimentazione e usa le tecnologie di posizionamento ibride appropriate disponibili nel motore GNSS, a seconda delle esigenze.

GNSS_GEOFENCESUPPORT_CIRCLE indica che il motore GNSS supporta recinti virtuali circolari.

Reserved6

Riservato per uso futuro.

Reserved7

Riservato per uso futuro.

SupportCpLocation

Specifica se la posizione CP è supportata.

SupportUplV2

Specifica se la posizione del piano utente V2 per CDMA è supportata.

SupportSuplV1

Specifica se SUPL V1 è supportato.

SupportSuplV2

Specifica se SUPL V2 è supportato.

SupportedSuplVersion

Specifica la versione più recente di SUPL supportata dal client SUPL. Queste informazioni sulla versione non vengono attualmente usate dal modulo HLOS in per scopi di convalida.

MaxGeofencesSupported

Specifica il numero di recinti virtuali che il motore GNSS può tenere traccia in base ai vincoli impostati dalla piattaforma. Questo valore sarà valido solo quando è impostato il campo GeofencingSupport.

SupportMultipleSuplRootCert

Specifica il parametro SUPL.

GnssBreadCrumbPayloadVersion

Deve essere BREADCRUMBING_UNSUPPORTED o BREADCRUMBING_VERSION_x.

MaxGnssBreadCrumbFixes

Deve essere maggiore o uguale a MIN_BREADCRUMBS_SUPPORTED.

Unused[496]

Buffer di riempimento riservato per uso futuro.

Osservazioni

Questo è un elenco di supporto delle singole funzionalità. La funzionalità è rappresentata da un valore booleano o da un'enumerazione ben definita dell'attributo specifico.

Fabbisogno

Requisito Valore
intestazione gnssdriver.h (include Gnssdriver.h)