Condividi tramite


enumerazione GNSS_DRIVERCOMMAND_TYPE (gnssdriver.h)

Questa enumerazione indica il tipo di comando o configurazione del driver GNSS fornito nella struttura GNSS_DRIVERCOMMAND_PARAM.

Sintassi

typedef enum {
  GNSS_SetLocationServiceEnabled,
  GNSS_SetLocationNIRequestAllowed,
  GNSS_ForceSatelliteSystem,
  GNSS_ForceOperationMode,
  GNSS_ResetEngine,
  GNSS_ClearAgnssData,
  GNSS_SetSuplVersion,
  GNSS_SetNMEALogging,
  GNSS_SetUplServerAccessInterval,
  GNSS_SetNiTimeoutInterval,
  GNSS_ResetGeofencesTracking,
  GNSS_SetSuplVersion2,
  GNSS_CustomCommand
} GNSS_DRIVERCOMMAND_TYPE;

Costanti

 
GNSS_SetLocationServiceEnabled
Informa il driver se la posizione è abilitata nel dispositivo. Questo comando viene eseguito ogni volta che il servizio di posizione è abilitato/disabilitato nel dispositivo.

I dati dei comandi associati sono un BOOL.

Dopo aver ricevuto questo comando impostato su FALSE, il driver GNSS e il dispositivo GNSS devono:

- Arrestare tutte le sessioni di posizione in corso di qualsiasi tipo e da qualsiasi applicazione HLOS (se sono supportate più applicazioni).

- Se il dispositivo o il driver GNSS esegue operazioni in background, ad esempio il rilevamento del recinto virtuale, l'aggiornamento dei dati di assistenza e così via, devono anche essere arrestati. L'adattatore GNSS arresterà tutte le operazioni offloaded quando la posizione è disabilitata.

In relazione alle richieste di posizione dell'operatore di telefonia mobile:

- Le richieste di posizione dell'operatore di telefonia mobile per la posizione di emergenza, per soddisfare i requisiti CALEA e così via, devono comunque essere servite indipendentemente dallo stato del cambio di posizione. Queste richieste devono avere il flag di override della privacy impostato o/e deve essere avviato nel tempo dell'utente che effettua una chiamata di emergenza.

- Altre richieste di posizione avviate dalla rete devono rispettare il comando GNSS_SetLocationNIRequestAllowed se questo comportamento è richiesto dall'operatore di telefonia mobile e implementato dal driver GNSS.

Se HLOS deve avviare una nuova richiesta di posizione, ad esempio per consentire all'utente di trovare in remoto il dispositivo, l'adattatore GNSS invierà un comando per impostare il GNSS_SetLocationServiceEnabled su TRUE, avviare la sessione di correzione e, quando i risultati vengono ricevuti, invierà un altro comando per impostare il GNSS_SetLocationServiceEnabled su FALSE:

- GNSS_SetLocationServiceEnabled impostato su TRUE=1-> abilitato

- GNSS_SetLocationServiceEnabled impostato su FALSE=0-> Disabilitato

A meno che questo comando non venga eseguito dall'adattatore GNSS, il driver deve presupporre che il servizio di posizione sia disabilitato nel sistema.
GNSS_SetLocationNIRequestAllowed
Informa il driver se è autorizzato a intrattenere le richieste di posizione avviate dalla rete mobile. Il comando deve essere supportato solo se richiesto dall'operatore di telefonia mobile. A partire da Windows 10, Microsoft non è a conoscenza di alcun operatore di telefonia mobile che richiede più questo problema, ma rimane per evitare eventuali problemi di blocco durante la commercializzazione. Se il comando non è implementato, il driver GNSS deve semplicemente mantenere il comportamento predefinito.

I dati dei comandi associati sono un BOOL:

- GNSS_SetLocationNIRequestAllowed impostato su TRUE=1-> Consenti

- GNSS_SetLocationNIRequestAllowed impostato su FALSE=0-> NotAllow

A meno che questo comando non venga emesso in modo esplicito dall'adattatore GNSS, il driver deve presupporre che le richieste NI siano abilitate nel sistema.

L'adattatore GNSS mantiene uno stato a livello di sistema che indica se le richieste NI sono consentite. Questo stato è determinato dall'opzione master della posizione (l'impostazione che l'utente può attivare o disattivare la posizione) e un'impostazione configurata dall'operatore di telefonia mobile per indicare se le richieste NI dipendono o meno dall'opzione master della posizione.

L'adattatore GNSS valuterà il valore di queste due impostazioni e indicherà al driver GNSS se le richieste ni sono consentite o meno.

Le richieste di posizione per i servizi di emergenza o per CALEA (ad esempio, il caso di override della privacy impostato) devono essere gestite indipendentemente dal valore di questa impostazione.
GNSS_ForceSatelliteSystem
Questo comando fa sì che il driver GNSS usi i sistemi satellite specificati per ottenere correzioni. Il parametro è un DWORD con i valori seguenti:

- GNSS_SATELLITE_ANY (0x00)
- GNSS_SATELLITE_GPS (0x01)
- GNSS_SATELLITE_GLONASS (0x02)
- GNSS_SATELLITE_BEIDOU (0x04)
- GNSS_SATELLITE_GALILEO (0x08)

0x10-0xFF sono riservati.

È previsto che venga usato solo a scopo di test. Alcuni operatori di telefonia mobile richiedono convalide usando un singolo sistema satellite.
GNSS_ForceOperationMode
Questo comando fa sì che il driver GNSS usi la modalità operativa specificata.

Il parametro è un DWORD con i valori seguenti:

- GNSS_OPERMODE_ANY (0x00)
- GNSS_OPERMODE_MSA (0x01)
- GNSS_OPERMODE_MSB (0x02)
- GNSS_OPERMODE_MSS (0x04)
- GNSS_OPERMODE_CELLID (0x08)
- GNSS_OPERMODE_AFLT (0x10)
- GNSS_OPERMODE_OTDOA (0x20)

0x40-0xFF sono riservati.

Questo comando viene usato per due scopi:

- Per configurare la modalità di funzionamento nel caso della configurazione SUPL. È previsto che gli operatori di telefonia mobile configurino solo il dispositivo in modo che funzioni in modalità basata su Microsoft tramite cui il servizio SUPL viene usato per ottenere i dati di assistenza (GNSS_OPERMODE_MSB) o in modalità autonoma (GNSS_OPERMODE_MSS) in cui il dispositivo GNSS può funzionare in modo davvero autonomo o usare assistenza ottenuta da origini diverse dal servizio SUPL. La modalità autonoma equivale effettivamente alla modalità predefinita (GNSS_OPERMODE_ANY).

- Per configurare diverse modalità di funzionamento a scopo di test. Questa operazione viene usata principalmente dagli operatori di telefonia mobile o dagli OEM a scopo di convalida.

L'impostazione del GNSS_ForceOperationMode SUPL su GNSS_OPERMODE_MSS indica al sistema GNSS di non eseguire alcuna interazione con il server SUPL per i dati AGNSS.
GNSS_ResetEngine
Questo comando cancella lo stato del motore GNSS. Dopo l'esecuzione di questo comando, il motore sarà pronto per una correzione di avvio a freddo:

- Tutti i dati di assistenza verranno eliminati.

- L'almanac persisterà.

- I parametri di configurazione del motore GNSS verranno mantenuti.

Questo comando deve essere chiamato solo quando non è presente alcuna sessione di correzione attiva. Questo comando viene in genere usato per testare in modo ricorsivo il tempo GNSS per la prima correzione all'avvio a freddo.
GNSS_ClearAgnssData
Questo comando cancella i dati di assistenza di AGNSS dal motore GNSS. Questo viene usato principalmente a scopo di test per garantire che il driver richieda dati di assistenza quando viene richiesta una correzione. I dati del comando associati contengono l'enumerazione GNSS_AGNSS_REQUEST_TYPE specifica per indicare l'elemento dati specifico da cancellare:

- Se viene specificato GNSS_AGNSS_TimeInjection, il riferimento temporale verrà eliminato nel motore GNSS. In questo modo il motore GNSS potrebbe richiedere nuovamente l'inserimento del tempo.

- Se viene specificato GNSS_AGNSS_PositionInjection, il riferimento alla posizione grossolana verrà eliminato nel motore GNSS. Ciò può causare l'inserimento della posizione grossolana del motore GNSS.

- Se viene specificato GNSS_AGNSS_BlobInjection, entrambe le ephemerie acquisite dai satelliti e eventuali BLOB di assistenza inseriti verranno eliminate nel motore GNSS. Ciò può causare la richiesta di nuovo da parte del motore GNSS di un BLOB di assistenza.

È consigliabile che questo comando sia supportato a scopo di test anche se i dati di assistenza non vengono ottenuti dalla piattaforma del percorso del sistema operativo.
GNSS_SetSuplVersion
Questo comando imposta la versione SUPL supportata dall'operatore di telefonia mobile. I dati del comando contengono un valore della struttura GNSS_SUPL_VERSION che include sia la versione principale che quella secondaria SUPL indicata dall'operatore di telefonia mobile.

Il client SUPL deve usare la versione SUPL come specificato negli standard OMA SUPL, riepilogando come segue:

- Per gli scenari avviati dalla rete, il messaggio SUPL INIT da H-SLP o E-SLP al SET include la versione principale e secondaria prevista M1.m1 (in genere la versione più alta supportata dalla SLP) nel parametro di versione. Il messaggio SUPL INIT contiene anche il numero di versione principale SUPL minimo M2 per il quale la continuazione della sessione da parte del SET è possibile nel parametro versione minima. Il valore di M2 dipenderà dal servizio SUPL previsto, ad esempio per una singola correzione della posizione M2 può essere uno; per la posizione attivata M2 può essere due. È possibile eseguire una sessione SUPL tra SLP e SET, purché set usi una versione principale SUPL tra M2 e M1. Il SET continua normalmente la sessione SUPL se supporta una versione principale M di SUPL tra M2 e M1 (ad esempio, M2 ≤ M ≤ M1) e indica questa versione principale e una versione secondaria supportata m nel messaggio successivo (ad esempio, implicitamente nel parametro della versione del messaggio).

- Per le sessioni SUPL avviate da SET, il messaggio SUPL iniziale del SET include la versione principale e secondaria di SUPL supportata M1.m1 (implicitamente nel parametro version). H-SLP continua la sessione se supporta la stessa versione principale M1 e in caso contrario invia un SUPL END e termina la sessione.
GNSS_SetNMEALogging
Questo comando imposta lo stato per la registrazione di NMEA.

Questo comando causa l'avvio/arresto del driver GNSS fornendo le informazioni di correzione dei dati tramite stringhe NMEA. Il driver GNSS deve continuare a fornire correzioni nella struttura GNSS_FIXDATA.

Il parametro è un DWORD con i valori seguenti:

- GNSS_NMEALOGGING_NONE (0x00)
- GNSS_NMEALOGGING_ALL (0xFF)

Il valore predefinito per questo comando non è alcuna registrazione NMEA (GNSS_NMEALOGGING_NONE).

Questo comando non deve essere persistente tra il riavvio del sistema.

Questo comando è stato introdotto per supportare i test OEM.

Questo comando non viene usato dal framework di posizione o dagli strumenti di test Microsoft.
GNSS_SetUplServerAccessInterval
Questo comando imposta il tempo minimo tra le richieste al server per la posizione assistita per evitare l'overload del servizio. L'intervallo di tempo viene specificato in secondi.

Gli operatori di telefonia mobile possono usare il provider di servizi di configurazione per ottimizzare questa impostazione, se necessario. Se questo parametro non è supportato, se può essere ignorato, ma i comandi di configurazione SUPL non devono avere esito negativo.
GNSS_SetNiTimeoutInterval
Questo comando imposta il tempo in cui il dispositivo deve attendere l'input da un utente prima di rispondere alla richiesta NI che esegue l'azione predefinita. L'intervallo di tempo viene specificato in secondi e il valore predefinito è 35 secondi. Questo timeout è maggiore di 5 secondi rispetto al timeout usato dal sistema operativo per attendere la risposta dall'utente ed è semplicemente un errore sicuro in caso di mancata risposta del sistema operativo.

Questo comando è applicabile solo alle richieste avviate dalla rete in cui viene richiesta la verifica dell'utente. Gli operatori di telefonia mobile possono usare il provider di servizi di configurazione per sostituire il valore predefinito dal sistema operativo. In tal caso, i valori predefiniti specificati in precedenza devono essere sostituiti dai valori forniti dall'operatore di telefonia mobile.
GNSS_ResetGeofencesTracking
Questo comando reimposta l'operazione di rilevamento del recinto virtuale. Il driver GNSS deve eliminare tutti i recinti virtuali dal motore GNSS, arrestare il rilevamento del recinto virtuale e arrestare il monitoraggio per le condizioni del segnale. L'operazione di rilevamento del recinto virtuale inizierà come di consueto solo quando HLOS crea uno o più nuovi recinti virtuali.
GNSS_SetSuplVersion2
Questo comando imposta la versione SUPL 2 per il driver GNSS.
GNSS_CustomCommand
Intervallo per comandi GNSS specifici di IHV personalizzati: 0x0100 - 0x01FF.

Fabbisogno

Requisito Valore
intestazione gnssdriver.h