Compartir a través de


enumeración GNSS_DRIVERCOMMAND_TYPE (gnssdriver.h)

Esta enumeración indica el tipo de comando o configuración del controlador GNSS proporcionado en la estructura GNSS_DRIVERCOMMAND_PARAM.

Sintaxis

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;

Constantes

 
GNSS_SetLocationServiceEnabled
Informa al controlador de si la ubicación está habilitada en el dispositivo. Este comando se emite cada vez que el servicio de ubicación está habilitado o deshabilitado en el dispositivo.

Los datos de comando asociados son un BOOL.

Al recibir este comando establecido en FALSE, el controlador GNSS y el dispositivo GNSS deben:

- Detenga las sesiones de ubicación en curso de cualquier tipo y desde cualquier aplicación HLOS (si se admiten varias aplicaciones).

- Si el dispositivo o el controlador GNSS realizan cualquier operación en segundo plano, por ejemplo, seguimiento de geovalla, actualización de datos de asistencia, etc., también deben detenerse. El adaptador de GNSS detendrá todas las operaciones descargadas cuando la ubicación esté deshabilitada.

En relación con las solicitudes de ubicación del operador de telefonía móvil:

- Las solicitudes de ubicación del operador de telefonía móvil para la ubicación de emergencia, para cumplir los requisitos de CALEA, etc., deben seguir siendo atendidas independientemente del estado del conmutador de ubicación. Se espera que estas solicitudes tengan establecida la marca de invalidación de privacidad o/y se inicien en torno al momento en que el usuario realiza una llamada de emergencia.

- Otras solicitudes de ubicación iniciadas por la red deben respetar el comando GNSS_SetLocationNIRequestAllowed si el operador de telefonía móvil requiere este comportamiento e implementado por el controlador GNSS.

Si el HLOS necesita iniciar cualquier nueva solicitud de ubicación, por ejemplo, para permitir que el usuario encuentre el dispositivo de forma remota, el adaptador de GNSS enviará un comando para establecer el GNSS_SetLocationServiceEnabled en TRUE, iniciar la sesión de corrección y, cuando se reciban los resultados, enviará otro comando para establecer el GNSS_SetLocationServiceEnabled en FALSE:

- GNSS_SetLocationServiceEnabled establecido en TRUE=1-> Habilitado

- GNSS_SetLocationServiceEnabled establecido en FALSE=0-> Disabled

A menos que el adaptador de GNSS emita este comando, el controlador debe asumir que el servicio de ubicación está deshabilitado en el sistema.
GNSS_SetLocationNIRequestAllowed
Informa al controlador si se permite entretener las solicitudes de ubicación iniciadas por la red móvil procedentes de la red móvil. El comando solo debe ser compatible si es necesario por el operador de telefonía móvil. A partir de Windows 10, Microsoft no conoce a ningún operador de telefonía móvil que requiera esto más, pero esto sigue siendo para evitar problemas de bloqueo durante la comercialización. Si el comando no se implementa, el controlador GNSS simplemente debe mantener su comportamiento predeterminado.

Los datos del comando asociado son una bool de:

- GNSS_SetLocationNIRequestAllowed establecido en TRUE=1-> Permitir

- GNSS_SetLocationNIRequestAllowed establecido en FALSE=0-> NotAllow

A menos que el adaptador de GNSS emita explícitamente este comando, el controlador debe asumir que las solicitudes de NI están habilitadas en el sistema.

El adaptador GNSS mantiene un estado de todo el sistema que indica si se permiten solicitudes ni. Este estado viene determinado por el conmutador maestro de ubicación (la configuración que el usuario puede alternar para activar o desactivar la ubicación) y una configuración configurada por el operador de telefonía móvil para indicar si las solicitudes de NI dependen del conmutador maestro de ubicación o no.

El adaptador de GNSS evaluará el valor de estos dos valores e indicará al controlador GNSS si se permiten o no las solicitudes de NI.

Las solicitudes de ubicación para los servicios de emergencia o para CALEA (por ejemplo, el caso de invalidación de privacidad que se establece) deben atenderse independientemente del valor de esta configuración.
GNSS_ForceSatelliteSystem
Este comando hace que el controlador GNSS use los sistemas satélite especificados para obtener correcciones. El parámetro es un DWORD de con los siguientes valores:

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

0x10-0xFF están reservados.

Se espera que solo se use con fines de prueba. Algunos operadores móviles requieren validaciones mediante un único sistema satélite.
GNSS_ForceOperationMode
Este comando hace que el controlador GNSS use el modo de operación especificado.

El parámetro es un DWORD de con los siguientes valores:

- 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 están reservados.

Este comando se usa para dos propósitos:

- Para configurar el modo de funcionamiento en el caso de la configuración de SUPL. Se espera que los operadores móviles solo configuren el dispositivo para que funcione en modo basado en Microsoft mediante el cual el servicio SUPL se usa para obtener datos de asistencia (GNSS_OPERMODE_MSB), o en modo independiente (GNSS_OPERMODE_MSS) en el que el dispositivo GNSS puede funcionar realmente independiente o usar asistencia obtenida de orígenes distintos del servicio SUPL. El modo independiente es realmente equivalente al modo predeterminado (GNSS_OPERMODE_ANY).

- Para configurar diferentes modos de funcionamiento con fines de prueba. Esto lo usarían principalmente los operadores de telefonía móvil o los OEM con fines de validación.

Establecer el GNSS_ForceOperationMode SUPL en GNSS_OPERMODE_MSS es una indicación del sistema GNSS para que no realice ninguna interacción con el servidor SUPL para los datos de AGNSS.
GNSS_ResetEngine
Este comando borra el estado del motor GNSS. Una vez emitido este comando, el motor estará listo para una corrección de arranque en frío:

- Se eliminarán todos los datos de asistencia.

- El almanac se conservará.

- Los parámetros de configuración del motor GNSS se conservarán.

Solo se debe llamar a este comando cuando no hay ninguna sesión de corrección activa. Este comando se usa normalmente para probar de forma recursiva la hora de GNSS para corregir primero el arranque en frío.
GNSS_ClearAgnssData
Este comando borra los datos de asistencia de AGNSS del motor GNSS. Esto se usa principalmente con fines de prueba para asegurarse de que el controlador solicita datos de asistencia cuando se solicita una corrección. Los datos de comando asociados contienen la enumeración GNSS_AGNSS_REQUEST_TYPE específica para indicar el elemento de datos específico que se va a borrar:

- Si se especifica GNSS_AGNSS_TimeInjection, la referencia de hora se eliminará en el motor GNSS. Esto puede hacer que el motor de GNSS vuelva a solicitar la inyección de tiempo.

- Si se especifica GNSS_AGNSS_PositionInjection, la referencia de posición general se eliminará en el motor GNSS. Esto puede hacer que el motor de GNSS solicite de nuevo la inyección de posición general.

- Si se especifica GNSS_AGNSS_BlobInjection, las ephemeris adquiridas a partir de los satélites y cualquier blob de ayuda insertado se eliminará en el motor GNSS. Esto puede hacer que el motor de GNSS solicite de nuevo un blob de ayuda.

Se recomienda encarecidamente que este comando se admita con fines de prueba incluso si los datos de asistencia no se obtienen de la plataforma de ubicación del sistema operativo.
GNSS_SetSuplVersion
Este comando establece la versión de SUPL que el operador de telefonía móvil quiere admitir. Los datos del comando contienen un valor de GNSS_SUPL_VERSION estructura que incluye las versiones principales y secundarias de SUPL indicadas por el operador de telefonía móvil.

El cliente SUPL debe usar la versión de SUPL como se especifica en los estándares de SUPL de OMA, que resume de la siguiente manera:

- En escenarios iniciados por la red, el mensaje SUPL INIT de H-SLP o E-SLP al SET lleva el SUPL principal y la versión secundaria M1.m1 previsto (normalmente la versión más alta compatible con el SLP) en el parámetro de versión. El mensaje INIT de SUPL también incluye el número mínimo de versión principal de SUPL M2 para el que la continuación de la sesión por set es posible en el parámetro de versión mínima. El valor de M2 dependerá del servicio SUPL previsto; por ejemplo, para una única corrección de ubicación M2 puede ser uno; para la ubicación desencadenada M2 puede ser dos. Se puede realizar una sesión de SUPL entre el SLP y el SET siempre que el SET use una versión principal de SUPL entre M2 y M1. Set continúa la sesión de SUPL normalmente si admite una versión principal M de SUPL entre M2 y M1 (por ejemplo, M2 ≤ M ≤ M1) e indica esta versión principal y una versión secundaria admitida m en el mensaje siguiente (por ejemplo, implícitamente en el parámetro de versión del mensaje).

- Para las sesiones de SUPL iniciadas por SET, el mensaje SUPL inicial de SET lleva la versión principal y secundaria de SUPL compatible M1.m1 (implícitamente en el parámetro de versión). H-SLP continúa la sesión si admite la misma versión principal M1 y, de lo contrario, envía un EXTREMO SUPL y finaliza la sesión.
GNSS_SetNMEALogging
Este comando establece el estado del registro de NMEA.

Este comando hace que el controlador GNSS se inicie o deje de proporcionar la información de corrección de datos a través de cadenas NMEA. El controlador GNSS debe seguir proporcionando correcciones en la estructura GNSS_FIXDATA.

El parámetro es un DWORD de con los siguientes valores:

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

El valor predeterminado de este comando no es ningún registro de NMEA (GNSS_NMEALOGGING_NONE).

Este comando no debe persistir en el reinicio del sistema.

Este comando se ha introducido para admitir pruebas de OEM.

El marco de ubicación o las herramientas de prueba de Microsoft no usan este comando.
GNSS_SetUplServerAccessInterval
Este comando establece el tiempo mínimo entre las solicitudes al servidor para la posición asistida para evitar la sobrecarga del servicio. El intervalo de tiempo se especifica en segundos.

Los operadores móviles pueden usar el proveedor de servicios de configuración para ajustar esta configuración, si lo requieren. Si no se admite este parámetro, si se puede omitir, pero no se deben producir errores en los comandos de configuración de SUPL.
GNSS_SetNiTimeoutInterval
Este comando establece el tiempo que el dispositivo debe esperar a la entrada de un usuario antes de responder a la solicitud de NI que ejecuta la acción predeterminada. El intervalo de tiempo se especifica en segundos y el valor predeterminado es de 35 segundos. Este tiempo de espera es de 5 segundos mayor que el tiempo de espera usado por el sistema operativo para esperar la respuesta del usuario y es simplemente un error seguro en caso de que el sistema operativo no responda.

Este comando solo es aplicable a las solicitudes iniciadas por la red en las que se solicita la comprobación del usuario. Los operadores móviles pueden usar el proveedor de servicios de configuración para invalidar el valor predeterminado del sistema operativo. En tal caso, los valores predeterminados especificados anteriormente deben reemplazarse por los valores proporcionados por el operador de telefonía móvil.
GNSS_ResetGeofencesTracking
Este comando restablece la operación de seguimiento de geovalla. El controlador GNSS debe eliminar todas las geovallas del motor GNSS, detener el seguimiento de geovalla y detener la supervisión de las condiciones de señal. La operación de seguimiento de geovalla comenzará como de costumbre solo cuando HLOS cree una o varias geovallas nuevas.
GNSS_SetSuplVersion2
Este comando establece la versión DE SUPL 2 para el controlador GNSS.
GNSS_CustomCommand
Intervalo para comandos GNSS específicos de IHV personalizados: 0x0100: 0x01FF.

Requisitos

Requisito Valor
encabezado de gnssdriver.h