énumération GNSS_DRIVERCOMMAND_TYPE (gnssdriver.h)

Cette énumération indique le type de commande ou de configuration du pilote GNSS fourni dans la structure GNSS_DRIVERCOMMAND_PARAM .

Syntax

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
Indique au pilote si l’emplacement est activé sur l’appareil. Cette commande est émise chaque fois que le service d’emplacement est activé/désactivé sur l’appareil.

Les données de commande associées sont un BOOL.

Lors de la réception de cette commande définie sur FALSE, le pilote GNSS et le périphérique GNSS doivent :

- Arrêter toutes les sessions d’emplacement en cours de tout type et à partir de n’importe quelle application HLOS (si plusieurs applications sont prises en charge).

- Si le périphérique ou le pilote AUTHENTIFICATION effectue des opérations en arrière-plan, par exemple, le suivi des limites géographiques, l’actualisation des données d’assistance, etc., ils doivent également être arrêtés. L’adaptateur GNSS arrête toutes les opérations déchargées lorsque l’emplacement est désactivé.

En ce qui concerne les demandes de localisation de l’opérateur mobile :

- Les demandes de localisation de l’opérateur mobile pour l’emplacement d’urgence, pour répondre aux exigences CALEA, etc., doivent toujours être traitées, quel que soit le commutateur d’emplacement status. Ces demandes doivent avoir l’indicateur de remplacement de confidentialité défini ou/et être lancées au moment où l’utilisateur passe un appel d’urgence.

- Les autres demandes d’emplacement initiées par le réseau doivent respecter la commande GNSS_SetLocationNIRequestAllowed si ce comportement est requis par l’opérateur mobile et implémenté par le pilote GNSS.

Si le HLOS doit lancer une nouvelle demande d’emplacement, par exemple, pour permettre à l’utilisateur de rechercher à distance l’appareil, l’adaptateur GNSS envoie une commande pour définir le GNSS_SetLocationServiceEnabled sur TRUE, lancer la session de correction et, lorsque les résultats sont reçus, il envoie une autre commande pour définir le GNSS_SetLocationServiceEnabled sur FALSE :

- GNSS_SetLocationServiceEnabled défini sur TRUE=1 -> Activé

- GNSS_SetLocationServiceEnabled défini sur FALSE=0 -> Désactivé

Sauf si cette commande est émise par l’adaptateur GNSS, le pilote doit supposer que le service d’emplacement est désactivé sur le système.
GNSS_SetLocationNIRequestAllowed
Informe le pilote s’il est autorisé à recevoir les demandes d’emplacement initiées par le réseau en provenance du réseau mobile. La commande ne doit être prise en charge que si l’opérateur mobile l’exige. À compter de Windows 10, Microsoft n’est plus au courant de l’existence d’un opérateur mobile nécessitant cela, mais cela reste pour éviter tout problème de blocage lors de la commercialisation. Si la commande n’est pas implémentée, le pilote GNSS doit simplement conserver son comportement par défaut.

Les données de commande associées sont un BOOL :

- GNSS_SetLocationNIRequestAllowed défini sur TRUE=1 -> Autoriser

- GNSS_SetLocationNIRequestAllowed défini sur FALSE=0-> NotAllow

Sauf si cette commande est explicitement émise par l’adaptateur GNSS, le pilote doit supposer que les requêtes NI sont activées sur le système.

L’adaptateur GNSS conserve un état à l’échelle du système indiquant si les demandes NI sont autorisées. Cet état est déterminé par l’emplacement master commutateur (le paramètre que l’utilisateur peut activer ou désactiver pour activer ou désactiver l’emplacement) et un paramètre configuré par l’opérateur mobile pour indiquer si les demandes NI dépendent ou non de l’emplacement master commutateur.

L’adaptateur GNSS évalue la valeur de ces deux paramètres et indique au pilote GNSS si les demandes NI sont autorisées ou non.

Les demandes d’emplacement pour les services d’urgence ou pour CALEA (par exemple, le cas de remplacement de confidentialité étant défini) doivent être traitées quelle que soit la valeur de ce paramètre.
GNSS_ForceSatelliteSystem
Cette commande oblige le pilote GNSS à utiliser le ou les systèmes satellites spécifiés pour obtenir des correctifs. Le paramètre est un DWORD avec les valeurs suivantes :

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

0x10-0xFF sont réservés.

Il est prévu d’être utilisé uniquement à des fins de test. Certains opérateurs mobiles nécessitent des validations à l’aide d’un système satellite unique.
GNSS_ForceOperationMode
Cette commande oblige le pilote GNSS à utiliser le mode d’opération spécifié.

Le paramètre est un DWORD avec les valeurs suivantes :

- 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 sont réservés.

Cette commande est utilisée à deux fins :

- Pour configurer le mode d’opération dans le cas de la configuration SUPL. Il est prévu que les opérateurs mobiles configurent uniquement l’appareil pour qu’il fonctionne en mode Microsoft par lequel le service SUPL est utilisé pour obtenir des données d’assistance (GNSS_OPERMODE_MSB), ou en mode autonome (GNSS_OPERMODE_MSS) dans lequel l’appareil GNSS peut fonctionner de manière vraiment autonome ou utiliser l’aide obtenue à partir de sources autres que le service SUPL. Le mode autonome est en fait équivalent au mode par défaut (GNSS_OPERMODE_ANY).

- Pour configurer différents modes de fonctionnement à des fins de test. Cela serait principalement utilisé par les opérateurs mobiles ou les oem à des fins de validation.

Le fait de définir le GNSS_ForceOperationMode SUPL sur GNSS_OPERMODE_MSS indique au système GNSS de ne pas faire d’interaction avec le serveur SUPL pour les données AGNSS.
GNSS_ResetEngine
Cette commande efface l’état du moteur GNSS. Une fois cette commande émise, le moteur est prêt pour un correctif de démarrage à froid :

- Toutes les données d’assistance seront supprimées.

- L’almanach persistera.

- Les paramètres de configuration du moteur GNSS sont conservés.

Cette commande ne doit être appelée que lorsqu’il n’existe aucune session de correctif active. Cette commande est généralement utilisée pour tester de manière récursive l’heure du GNSS pour la première fois lors du démarrage à froid.
GNSS_ClearAgnssData
Cette commande efface les données d’assistance AGNSS du moteur GNSS. Il est principalement utilisé à des fins de test pour s’assurer que le pilote demande des données d’assistance lorsqu’un correctif est demandé. Les données de commande associées contiennent l’énumération GNSS_AGNSS_REQUEST_TYPE spécifique pour indiquer l’élément de données spécifique à effacer :

- Si GNSS_AGNSS_TimeInjection est spécifié, la référence d’heure est supprimée dans le moteur GNSS. Cela peut entraîner une nouvelle demande d’injection de temps du moteur GNSS.

- Si GNSS_AGNSS_PositionInjection est spécifié, la référence de position grossière est supprimée dans le moteur GNSS. Cela peut entraîner une nouvelle demande d’injection de position grossière par le moteur GNSS.

- Si GNSS_AGNSS_BlobInjection est spécifié, les éphémérides acquises à partir des satellites et tout objet blob d’assistance injecté seront supprimés dans le moteur GNSS. Cela peut amener le moteur GNSS à demander à nouveau un objet blob d’assistance.

Il est vivement recommandé que cette commande soit prise en charge à des fins de test, même si les données d’assistance ne sont pas obtenues à partir de la plateforme d’emplacement du système d’exploitation.
GNSS_SetSuplVersion
Cette commande définit la version SUPL que l’opérateur mobile souhaite prendre en charge. Les données de commande contiennent une valeur de GNSS_SUPL_VERSION structure qui inclut les versions SUPL principales et mineures indiquées par l’opérateur mobile.

Le client SUPL doit utiliser la version SUPL comme spécifié dans les normes SUPL OMA, en résumant comme suit :

- Pour les scénarios initiés par le réseau, le message SUPL INIT du H-SLP ou E-SLP vers la SET porte la version principale et mineure du SUPL prévu M1.m1 (normalement la version la plus élevée prise en charge par le SLP) dans le paramètre de version. Le message SUPL INIT porte également le numéro de version supl majeur minimum M2 pour lequel la continuation de la session par le SET est possible dans le paramètre de version minimale. La valeur de M2 dépend du service SUPL prévu , par exemple, pour un seul emplacement, M2 peut être un ; pour l’emplacement déclenché M2 peut être deux. Une session SUPL peut être effectuée entre le SLP et le SET tant que set utilise une version principale de SUPL entre M2 et M1. SET poursuit la session SUPL normalement s’il prend en charge une version majeure M de SUPL entre M2 et M1 (par exemple, M2 ≤ M ≤ M1) et indique cette version majeure et une version mineure prise en charge m dans le message suivant (par exemple, implicitement dans le paramètre version du message).

- Pour les sessions SUPL lancées par SET, le message SUPL initial du SET porte la version principale et mineure de SUPL prise en charge M1.m1 (implicitement dans le paramètre version). Le H-SLP poursuit la session s’il prend en charge la même version majeure M1 et envoie sinon une FIN SUPL et met fin à la session.
GNSS_SetNMEALogging
Cette commande définit la status pour la journalisation NMEA.

Cette commande entraîne le démarrage/l’arrêt du pilote AUTHENTIFICATION en fournissant les informations de correction de données via des chaînes NMEA. Le pilote GNSS doit continuer à fournir des correctifs dans la structure GNSS_FIXDATA .

Le paramètre est un DWORD avec les valeurs suivantes :

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

La valeur par défaut de cette commande n’est pas de journalisation NMEA (GNSS_NMEALOGGING_NONE).

Cette commande ne doit pas persister entre le redémarrage du système.

Cette commande a été introduite pour prendre en charge les tests OEM.

Cette commande n’est pas utilisée par l’infrastructure d’emplacement ou par les outils de test Microsoft.
GNSS_SetUplServerAccessInterval
Cette commande définit la durée minimale entre les demandes adressées au serveur pour une position assistée afin d’éviter la surcharge du service. L’intervalle de temps est spécifié en secondes.

Les opérateurs mobiles peuvent utiliser le fournisseur de services de configuration pour régler ce paramètre, s’ils en ont besoin. Si ce paramètre n’est pas pris en charge, si peut être ignoré, mais les commandes de configuration SUPL ne doivent pas échouer.
GNSS_SetNiTimeoutInterval
Cette commande définit la durée pendant laquelle l’appareil doit attendre l’entrée d’un utilisateur avant de répondre à la requête NI exécutant l’action par défaut. L’intervalle de temps est spécifié en secondes et la valeur par défaut est de 35 secondes. Ce délai d’attente est supérieur de 5 secondes au délai d’attente utilisé par le système d’exploitation pour attendre la réponse de l’utilisateur, et il s’agit simplement d’une sécurité automatique en cas de non-réponse du système d’exploitation.

Cette commande s’applique uniquement aux demandes lancées par le réseau dans lesquelles la vérification de l’utilisateur est demandée. Les opérateurs mobiles peuvent utiliser le fournisseur de services de configuration pour remplacer la valeur par défaut du système d’exploitation. Dans ce cas, les valeurs par défaut spécifiées ci-dessus doivent être remplacées par les valeurs fournies par l’opérateur mobile.
GNSS_ResetGeofencesTracking
Cette commande réinitialise l’opération de suivi des limites géographiques. Le pilote GNSS doit supprimer toutes les limites géographiques du moteur GNSS, arrêter le suivi des limites géographiques et arrêter la surveillance des conditions de signal. L’opération de suivi des limites géographiques commence comme d’habitude uniquement lorsque le HLOS crée une ou plusieurs nouvelles limites géographiques.
GNSS_SetSuplVersion2
Cette commande définit la version SUPL 2 pour le pilote GNSS.
GNSS_CustomCommand
Plage pour les commandes GNSS personnalisées spécifiques à IHV : 0x0100 – 0x01FF.

Configuration requise

Condition requise Valeur
En-tête messagedriver.h