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