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 del comando associati sono 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 essere arrestati. L'adattatore GNSS arresterà tutte le operazioni di offload 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 gestite indipendentemente dallo stato del cambio di posizione. Queste richieste devono avere il flag di override della privacy impostato o/e devono essere avviate nel momento in cui l'utente 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 il modulo 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 questo 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 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 di interfaccia di rete 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 dall'opzione master della posizione o meno.

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, in caso di override della privacy impostate) 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.

Questa operazione deve essere usata 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. Si prevede che gli operatori di telefonia mobile configurino il dispositivo in modo che funzioni in modalità basata su Microsoft tramite cui viene usato il servizio SUPL 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 realmente autonomo o usare assistenza ottenuta da origini diverse dal servizio SUPL. La modalità autonoma è in realtà equivalente 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 agNSS dal motore GNSS. Questo viene usato principalmente per scopi di test per garantire che il driver richieda i 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 all'ora verrà eliminato nel motore GNSS. In questo modo il motore GNSS può richiedere di nuovo l'inserimento del tempo.

- Se viene specificato GNSS_AGNSS_PositionInjection , il riferimento alla posizione grossolana verrà eliminato nel motore GNSS. In questo modo il motore GNSS potrebbe richiedere nuovamente inserimento di posizioni grossolane.

- Se viene specificato GNSS_AGNSS_BlobInjection , nel motore GNSS verranno eliminati sia gli ephemeri acquisiti dai satelliti che eventuali BLOB di assistenza inseriti. In questo modo il motore GNSS può richiedere di nuovo 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 che l'operatore di telefonia mobile vuole supportare. 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 SUPL OMA, riepilogando come segue:

- Per gli scenari avviati dalla rete, il messaggio SUPL INIT da H-SLP o E-SLP al SET contiene la versione principale e secondaria prevista M1.m1 (in genere la versione più alta supportata dalla SLP) nel parametro version. Il messaggio SUPL INIT contiene anche il numero di versione principale SUPL minimo M2 per cui la continuazione della sessione da parte di SET è possibile nel parametro di versione minima. Il valore di M2 dipenderà dal servizio SUPL previsto, ad esempio per una singola correzione della posizione M2 potrebbe essere uno; per la posizione attivata M2 può essere due. È possibile eseguire una sessione SUPL tra SLP e SET, purché il SET usi una versione principale SUPL tra M2 e M1. 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 contiene la versione principale e secondaria di SUPL supportata M1.m1 (in modo implicito 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 fa sì che il driver GNSS venga avviato/interrotto 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 è registrazione NMEA (GNSS_NMEALOGGING_NONE).

Questo comando non deve essere persistente nel 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 impedire 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 la quantità di tempo che 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 dell'utente ed è semplicemente un errore in caso di mancata risposta del sistema operativo.

Questo comando è applicabile solo alle richieste avviate dalla rete in cui viene richiesta la verifica dall'utente. Gli operatori di telefonia mobile possono usare il provider di servizi di configurazione per eseguire l'override del valore predefinito dal sistema operativo. In questo 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.

Requisiti

Requisito Valore
Intestazione gnssdriver.h